モデル概要
モデル特徴
モデル能力
使用事例
🚀 モデル説明:deberta-v3-large-zeroshot-v2.0
本プロジェクトの deberta-v3-large-zeroshot-v2.0
モデルは零サンプル分類モデルで、訓練データを必要とせずに分類タスクを実行でき、GPUとCPUの両方で動作します。自然言語推論タスク(NLI)のタスク形式を通じて、あらゆる分類タスクをこのモデルが処理できるタスクに再構築することができます。
🚀 クイックスタート
このシリーズのモデルは、Hugging Faceパイプラインを使用した効率的な零サンプル分類用に設計されています。これらのモデルは訓練データを必要とせずに分類を行うことができ、GPUとCPUの両方で動作します。最新の零サンプル分類器の概要は、私の 零サンプル分類器コレクション で確認できます。
✨ 主な機能
- 零サンプル分類能力:訓練データを必要とせずに分類タスクを完了できます。
- クロスプラットフォーム動作:GPUとCPUの両方で動作します。
- 高い汎用性:自然言語推論タスク(NLI)に基づいて、あらゆる分類タスクをHugging Faceパイプラインを通じてこのモデルが処理できるタスクに再構築することができます。
- 商用利用に適している:一部のモデルは完全に商用利用可能なデータで訓練されており、厳格なライセンス要件を持つユーザーのニーズを満たします。
📚 ドキュメント
零サンプルv2.0シリーズモデル
このシリーズのモデルは、Hugging Faceパイプラインを使用した効率的な零サンプル分類を目的としています。これらのモデルは訓練データを必要とせずに分類を行うことができ、GPUとCPUの両方で動作します。最新の零サンプル分類器の概要は、私の 零サンプル分類器コレクション で確認できます。
zeroshot-v2.0
シリーズモデルの主な更新点は、いくつかのモデルが完全に商用利用可能なデータで訓練されており、ライセンスに厳格な要件を持つユーザーのニーズを満たすようになったことです。
これらのモデルは、一般的な分類タスクを実行できます。与えられたテキストに対して、仮説が「真」か「真でない」か(entailment
と not_entailment
)を判断します。このタスク形式は自然言語推論タスク(NLI)に基づいています。このタスクは非常に汎用的で、あらゆる分類タスクをHugging Faceパイプラインを通じてこのタスクに再構築することができます。
訓練データ
名称に “-c
” が含まれるモデルは、2種類の完全に商用利用可能なデータで訓練されています。
- 合成データ:Mixtral-8x7B-Instruct-v0.1 を使用して生成された合成データです。まず、Mistral-largeとの対話で、25種類の職種について500以上の異なるテキスト分類タスクのリストを作成し、データを手動で整理しました。その後、これらのデータをシードデータとして、Mixtral-8x7B-Instruct-v0.1を使用して数十万个のテキストを生成しました。最終的に使用されたデータセットは、synthetic_zeroshot_mixtral_v0.1 データセットの
mixtral_written_text_for_tasks_v4
サブセットで見つけることができます。データ整理は複数回の反復を行い、将来の反復で改善される予定です。 - 商用利用可能なNLIデータセット:2つの商用利用可能なNLIデータセット(MNLI、FEVER-NLI)です。これらのデータセットを追加することで、モデルの汎化能力を向上させました。
名称に “-c
” が含まれないモデルは、より広範な訓練データを含んでおり、これらのデータはより広範なライセンスを持っています。ANLI、WANLI、LingNLI、および このリスト のすべての used_in_v1.1==True
のデータセットが含まれています。
どのモデルをいつ使用するか
- deberta-v3-零サンプルとroberta-零サンプル:deberta-v3の性能はrobertaよりも明らかに優れていますが、速度は少し遅くなります。robertaはHugging Faceの本番推論TEIコンテナとフラッシュアテンションと直接互換性があります。これらのコンテナは本番用例の良い選択肢です。簡単に言えば、より高い精度を得るにはdeberta-v3モデルを使用してください。本番推論の速度が問題である場合は、robertaモデルを検討することができます(例えば、TEIコンテナと HF推論エンドポイント で)。
- 商用利用例:名称に “
-c
” が含まれるモデルは、商用利用可能なデータのみで訓練されていることが保証されています。名称に “-c
” が含まれないモデルは、より多くのデータで訓練されており、性能はより良いですが、非商用ライセンスのデータを含んでいます。このような訓練データが訓練されたモデルのライセンスに影響を与えるかどうかについては、法的意見が分かれています。厳格な法的要件を持つユーザーは、名称に “-c
” が含まれるモデルを使用することをお勧めします。 - 多言語/非英語の利用例:bge-m3-zeroshot-v2.0 または bge-m3-zeroshot-v2.0-c を使用してください。多言語モデルの性能は英語のみのモデルよりも劣ることに注意してください。したがって、まず EasyNMT などのライブラリを使用してテキストを英語に機械翻訳し、その後英語のみのモデルを翻訳後のデータに適用することもできます。チームがデータ内のすべての言語に精通していない場合、機械翻訳は検証にも役立ちます。
- コンテキストウィンドウ:
bge-m3
モデルは最大8192トークンを処理できます。他のモデルは最大512トークンを処理できます。長いテキスト入力はモデルを遅くし、性能を低下させることに注意してください。したがって、最大400単語/1ページのテキストのみを処理する場合は、debertaモデルを使用するとより良い性能が得られます。
最新のモデル更新は常に 零サンプル分類器コレクション で確認できます。
限界とバイアス
このモデルはテキスト分類タスクのみを実行できます。バイアスは、基盤となる基礎モデル、人工NLI訓練データ、およびMixtralで生成された合成データに由来する可能性があります。
柔軟な使用と「プロンプト」
零サンプルパイプラインの hypothesis_template
を変更することで、独自の仮説を作成することができます。大規模言語モデルの「プロンプトエンジニアリング」と同様に、異なる hypothesis_template
の表現と言語化されたカテゴリをテストして、性能を向上させることができます。
💻 使用例
基本的な使用法
#!pip install transformers[sentencepiece]
from transformers import pipeline
text = "Angela Merkel is a politician in Germany and leader of the CDU"
hypothesis_template = "This text is about {}"
classes_verbalized = ["politics", "economy", "entertainment", "environment"]
zeroshot_classifier = pipeline("zero-shot-classification", model="MoritzLaurer/deberta-v3-large-zeroshot-v2.0") # change the model identifier here
output = zeroshot_classifier(text, classes_verbalized, hypothesis_template=hypothesis_template, multi_label=False)
print(output)
高度な使用法
from transformers import pipeline
text = "Angela Merkel is a politician in Germany and leader of the CDU"
# formulation 1
hypothesis_template = "This text is about {}"
classes_verbalized = ["politics", "economy", "entertainment", "environment"]
# formulation 2 depending on your use-case
hypothesis_template = "The topic of this text is {}"
classes_verbalized = ["political activities", "economic policy", "entertainment or music", "environmental protection"]
# test different formulations
zeroshot_classifier = pipeline("zero-shot-classification", model="MoritzLaurer/deberta-v3-large-zeroshot-v2.0") # change the model identifier here
output = zeroshot_classifier(text, classes_verbalized, hypothesis_template=hypothesis_template, multi_label=False)
print(output)
🔧 技術詳細
指標
これらのモデルは、28の異なるテキスト分類タスクで f1_macro 指標を使用して評価されました。主な参照点は facebook/bart-large-mnli
で、この記事を書いている時点(2024年4月3日)で最も一般的に使用されている商用利用可能な零サンプル分類器です。
プロパティ | 詳細 |
---|---|
モデルタイプ | 零サンプル分類モデル |
訓練データ | 名称に “-c ” が含まれるモデルは、2種類の完全に商用利用可能なデータで訓練されています。一是 Mixtral-8x7B-Instruct-v0.1 を使用して生成された合成データ;二是2つの商用利用可能なNLIデータセット(MNLI、FEVER-NLI)です。名称に “-c ” が含まれないモデルは、ANLI、WANLI、LingNLIなどのより広範な訓練データも含んでいます。 |
これらの数字は零サンプル性能を表しています。訓練ミックスにこれらのデータセットのデータは追加されていません。名称に “-c
” が含まれないモデルは2回評価されていることに注意してください。1回目は、これらの28のデータセットのいずれのデータも使用せずに行われ、純粋な零サンプル性能をテストしました(該当する列の最初の数字)。最後の1回は、これらの28のデータセットの各カテゴリに最大500個の訓練データポイントを含めて行われました(列の括弧内の2番目の数字、「fewshot」)。いずれのモデルもテストデータで訓練されていません。
異なるデータセットの詳細情報はここで見つけることができます:https://github.com/MoritzLaurer/zeroshot-classifier/blob/main/v1_human_data/datasets_overview.csv
再現
再現コードは v2_synthetic_data
ディレクトリで見つけることができます:https://github.com/MoritzLaurer/zeroshot-classifier/tree/main
📄 ライセンス
基礎モデルはMITライセンスで公開されています。訓練データのライセンスはモデルによって異なります。詳細は上記を参照してください。
引用
このモデルは この論文 で説明されている研究の拡張です。
学術的にこのモデルを使用する場合は、以下を引用してください。
@misc{laurer_building_2023,
title = {Building {Efficient} {Universal} {Classifiers} with {Natural} {Language} {Inference}},
url = {http://arxiv.org/abs/2312.17543},
doi = {10.48550/arXiv.2312.17543},
abstract = {Generative Large Language Models (LLMs) have become the mainstream choice for fewshot and zeroshot learning thanks to the universality of text generation. Many users, however, do not need the broad capabilities of generative LLMs when they only want to automate a classification task. Smaller BERT-like models can also learn universal tasks, which allow them to do any text classification task without requiring fine-tuning (zeroshot classification) or to learn new tasks with only a few examples (fewshot), while being significantly more efficient than generative LLMs. This paper (1) explains how Natural Language Inference (NLI) can be used as a universal classification task that follows similar principles as instruction fine-tuning of generative LLMs, (2) provides a step-by-step guide with reusable Jupyter notebooks for building a universal classifier, and (3) shares the resulting universal classifier that is trained on 33 datasets with 389 diverse classes. Parts of the code we share has been used to train our older zeroshot classifiers that have been downloaded more than 55 million times via the Hugging Face Hub as of December 2023. Our new classifier improves zeroshot performance by 9.4\%.},
urldate = {2024-01-05},
publisher = {arXiv},
author = {Laurer, Moritz and van Atteveldt, Wouter and Casas, Andreu and Welbers, Kasper},
month = dec,
year = {2023},
note = {arXiv:2312.17543 [cs]},
keywords = {Computer Science - Artificial Intelligence, Computer Science - Computation and Language},
}
協力提案または質問
質問や協力のアイデアがある場合は、moritz{at}huggingface{dot}co または LinkedIn を通じて私に連絡してください。
⚠️ 重要な注意
いずれのモデルもテストデータで訓練されていません。
💡 使用上のヒント
零サンプルパイプラインの
hypothesis_template
を変更することで、独自の仮説を作成し、異なる表現をテストして性能を向上させることができます。大規模言語モデルの「プロンプトエンジニアリング」と同様に、異なるhypothesis_template
と言語化されたカテゴリの表現は異なる性能をもたらす可能性があります。








