🚀 Bonito
Bonitoは、条件付きタスク生成のためのオープンソースモデルです。このモデルは、注釈のないテキストを命令微調整用のタスク固有のトレーニングデータセットに変換するタスクを行います。

🚀 クイックスタート
Bonitoを使って合成命令微調整データセットを簡単に生成するには、transformers
と vllm
ライブラリを使用して構築された bonito パッケージを使用することをおすすめします。
from bonito import Bonito
from vllm import SamplingParams
from datasets import load_dataset
bonito = Bonito("BatsResearch/bonito-v1")
unannotated_text = load_dataset(
"BatsResearch/bonito-experiment",
"unannotated_contract_nli"
)["train"].select(range(10))
sampling_params = SamplingParams(max_tokens=256, top_p=0.95, temperature=0.5, n=1)
synthetic_dataset = bonito.generate_tasks(
unannotated_text,
context_col="input",
task_type="nli",
sampling_params=sampling_params
)
✨ 主な機能
Bonitoは、ユーザーの特殊なプライベートデータに大規模言語モデルを適応させるための合成命令微調整データセットを作成するために使用できます。また、注釈のないデータを用いて、事前学習済みモデルと命令微調整済みモデルの両方をタスクに適応させることができます。
📚 ドキュメント
モデルの詳細
モデルの説明
Bonitoは、条件付きタスク生成のためのオープンソースモデルです。このモデルは、注釈のないテキストを命令微調整用のタスク固有のトレーニングデータセットに変換するタスクを行います。
- 開発者: Nihal V. Nayak, Yiyang Nan, Avi Trost, and Stephen H. Bach
- モデルタイプ: MistralForCausalLM
- 言語 (NLP): 英語
- ライセンス: Apache 2.0
- 微調整元のモデル:
mistralai/Mistral-7B-v0.1
モデルのソース
モデルの使用方法
直接使用
合成命令微調整データセットを簡単に生成するには、transformers
と vllm
ライブラリを使用して構築された bonito パッケージを使用することをおすすめします。
想定外の使用
このモデルは、要約、感情分析、選択肢付き質問応答、抽出型質問応答、トピック分類、自然言語推論、質問生成、テキスト生成、選択肢なし質問応答、言い換え識別、文章完成、是非質問応答、単語の意味曖昧性解消、言い換え生成、テキスト的含意、共参照解消などのタスクタイプを生成するように訓練されています。これらのタスクタイプ以外では、正確な合成タスクを生成しない可能性があります。
バイアス、リスク、および制限事項
制限事項
このモデルは、大量の注釈のないテキストの可用性に依存しています。注釈のないテキストが少量しかない場合、適応後のターゲット言語モデルのパフォーマンスが低下する可能性があります。また、事前学習済みモデルと命令微調整済みモデルに対する肯定的な改善を示していますが、観察は論文で検討した3つのタスクタイプ(是非質問応答、抽出型質問応答、自然言語推論)に限定されています。
リスク
Bonitoは、他の大規模言語モデルと同様のリスクをもたらします。たとえば、このモデルは、特殊なドメインで事実誤りのあるデータセットを生成するために使用される可能性があります。また、広範な教師あり微調整を行った後でも、ベースモデルであるMistral-7Bのバイアスやステレオタイプを示す可能性があります。最後に、このモデルには安全訓練が含まれておらず、有害なコンテンツを生成する可能性があります。
推奨事項
合成タスクを使用して訓練されたモデルを実際の世界に展開する前に、生成されたタスクを十分に検査し、重要なデータセットでパフォーマンスをベンチマークすることをおすすめします。
トレーニングの詳細
トレーニングデータ
Bonitoを訓練するために、既存の命令微調整データセットを再混合して、属性付き条件付きタスク生成という新しいデータセットを作成しました。詳細は ctga-v1 を参照してください。
トレーニング手順
トレーニングハイパーパラメータ
- トレーニング方式: Q-LoRA を使用して、出力トークンの交差エントロピー損失を最適化してモデルを訓練します。モデルは100,000ステップ訓練され、4つのGPUで約4日間かかります。
以下のハイパーパラメータを使用しています。
- Q-LoRAランク (r): 64
- Q-LoRAスケーリング係数 (alpha): 4
- Q-LoRAドロップアウト: 0
- オプティマイザ: Paged AdamW
- 学習率スケジューラ: 線形
- 最大学習率: 1e-04
- 最小学習率: 0
- 重み減衰: 0
- ドロップアウト: 0
- 最大勾配ノルム: 0.3
- 有効バッチサイズ: 16
- 最大入力長: 2,048
- 最大出力長: 2,048
- ステップ数: 100,000
📄 ライセンス
このモデルは、Apache 2.0ライセンスの下で提供されています。
引用
@inproceedings{bonito:aclfindings24,
title = {Learning to Generate Instruction Tuning Datasets for Zero-Shot Task Adaptation},
author = {Nayak, Nihal V. and Nan, Yiyang and Trost, Avi and Bach, Stephen H.},
booktitle = {Findings of the Association for Computational Linguistics: ACL 2024},
year = {2024}}