🚀 DistilCamemBERT-Sentiment
DistilCamemBERT-Sentimentは、フランス語の感情分析タスク用に微調整されたDistilCamemBERTモデルです。このモデルは、Amazon ReviewsとAllociné.frの2つのデータセットを使用して構築され、バイアスを最小限に抑えています。実際、Amazonのレビューはメッセージが似ており比較的短いのに対し、Allocinéの批評は長く豊富なテキストです。
このモデル化は、CamemBERTモデルに基づくtblard/tf-allocineに近いです。CamemBERTに基づくモデル化の問題は、例えば本番環境でのスケーリング時に現れます。実際、推論コストが技術的な問題になることがあります。この影響を打ち消すために、DistilCamemBERTを使用することで、同じ消費電力で推論時間を半分に短縮するこのモデル化を提案します。
📦 インストール
このモデルを使用するには、必要なライブラリをインストールする必要があります。以下のコマンドを使用して、transformers
ライブラリをインストールできます。
pip install transformers
💻 使用例
基本的な使用法
from transformers import pipeline
analyzer = pipeline(
task='text-classification',
model="cmarkea/distilcamembert-base-sentiment",
tokenizer="cmarkea/distilcamembert-base-sentiment"
)
result = analyzer(
"J'aime me promener en forêt même si ça me donne mal aux pieds.",
return_all_scores=True
)
result
[{'label': '1 star',
'score': 0.047529436647892},
{'label': '2 stars',
'score': 0.14150355756282806},
{'label': '3 stars',
'score': 0.3586442470550537},
{'label': '4 stars',
'score': 0.3181498646736145},
{'label': '5 stars',
'score': 0.13417290151119232}]
高度な使用法
from optimum.onnxruntime import ORTModelForSequenceClassification
from transformers import AutoTokenizer, pipeline
HUB_MODEL = "cmarkea/distilcamembert-base-sentiment"
tokenizer = AutoTokenizer.from_pretrained(HUB_MODEL)
model = ORTModelForSequenceClassification.from_pretrained(HUB_MODEL)
onnx_qa = pipeline("text-classification", model=model, tokenizer=tokenizer)
quantized_model = ORTModelForSequenceClassification.from_pretrained(
HUB_MODEL, file_name="model_quantized.onnx"
)
📚 ドキュメント
データセット
データセットは、Amazonからの204,993件のレビュー(トレーニング用)と4,999件のレビュー(テスト用)、およびAllocineウェブサイトからの235,516件の批評(トレーニング用)と4,729件の批評(テスト用)で構成されています。データセットは、以下の5つのカテゴリにラベル付けされています。
- 1星: 非常に悪い評価を表します。
- 2星: 悪い評価です。
- 3星: 中立的な評価です。
- 4星: 良い評価です。
- 5星: 優れた評価です。
評価結果
正確性(ここではexact accuracyと呼ばれます)に加えて、+/-1星の推定誤差に対してロバストにするために、以下の定義を性能指標として使用します。
$$\mathrm{top!-!2; acc}=\frac{1}{|\mathcal{O}|}\sum_{i\in\mathcal{O}}\sum_{0\leq l < 2}\mathbb{1}(\hat{f}_{i,l}=y_i)$$
ここで、\(\hat{f}_l\)はl番目に大きい予測ラベル、\(y\)は真のラベル、\(\mathcal{O}\)は観測値のテストセット、\(\mathbb{1}\)は指示関数です。
クラス |
正確率 (%) |
top-2 acc (%) |
サポート |
全体 |
61.01 |
88.80 |
9,698 |
1星 |
87.21 |
77.17 |
1,905 |
2星 |
79.19 |
84.75 |
1,935 |
3星 |
77.85 |
78.98 |
1,974 |
4星 |
78.61 |
90.22 |
1,952 |
5星 |
85.96 |
82.92 |
1,932 |
ベンチマーク
このモデルは、3つの参照モデルと比較されています(以下を参照)。各モデルのターゲットの定義が正確に一致しないため、各モデルで使用される性能指標を詳細に説明します。平均推論時間の測定には、AMD Ryzen 5 4500U @ 2.3GHz 6コアが使用されました。
bert-base-multilingual-uncased-sentiment
nlptown/bert-base-multilingual-uncased-sentimentは、多言語かつ小文字化されたバージョンのBERTモデルに基づいています。この感情分析器は、私たちのモデルと同様にAmazonのレビューで学習されています。したがって、ターゲットとその定義は同じです。
tf-allociné and barthez-sentiment-classification
tblard/tf-allocineはCamemBERTモデルに基づいており、moussaKam/barthez-sentiment-classificationはBARThezに基づいており、両者は同じ2クラス定義を使用しています。これを2クラス問題に帰着させるために、"1星" と "2星" のラベルをネガティブな感情とし、"4星" と "5星" をポジティブな感情として考えます。"3星" は中立クラスとして解釈できるため除外します。この文脈では、+/-1星の推定誤差の問題は解消されます。そのため、古典的な正確率の定義のみを使用します。
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。
🔗 引用
@inproceedings{delestre:hal-03674695,
TITLE = {{DistilCamemBERT : une distillation du mod{\`e}le fran{\c c}ais CamemBERT}},
AUTHOR = {Delestre, Cyrile and Amar, Abibatou},
URL = {https://hal.archives-ouvertes.fr/hal-03674695},
BOOKTITLE = {{CAp (Conf{\'e}rence sur l'Apprentissage automatique)}},
ADDRESS = {Vannes, France},
YEAR = {2022},
MONTH = Jul,
KEYWORDS = {NLP ; Transformers ; CamemBERT ; Distillation},
PDF = {https://hal.archives-ouvertes.fr/hal-03674695/file/cap2022.pdf},
HAL_ID = {hal-03674695},
HAL_VERSION = {v1},
}