🚀 SambaLingo-Japanese-Chat
SambaLingo-Japanese-Chatは、日本語と英語で訓練された、人間に適合したチャットモデルです。ベースモデルのSambaLingo-Japanese-Baseの上で直接嗜好最適化(Direct Preference Optimization)を用いて訓練されています。ベースモデルは、Llama-2-7bを、Cultura-Xデータセットの日本語分割からの420億トークンで訓練することで日本語に適応させています。このモデルはSambaLingo-chat-spaceで試すことができます。
🚀 クイックスタート
Hugging Faceでのモデルの読み込み
トークナイザーを読み込む際には、use_fast=Falseを設定してください。
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("sambanovasystems/SambaLingo-Japanese-Chat", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("sambanovasystems/SambaLingo-Japanese-Chat", device_map="auto", torch_dtype="auto")
モデルパイプラインとの対話
トークナイザーを読み込む際には、use_fast=Falseを設定してください。
from transformers import pipeline
pipe = pipeline("text-generation", model="sambanovasystems/SambaLingo-Japanese-Chat", device_map="auto", use_fast=False)
messages = [
{"role": "user", "content": {YOUR_QUESTION}},
]
prompt = pipe.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = pipe(prompt)[0]
outputs = outputs["generated_text"]
推論パラメータの提案
- 温度(Temperature): 0.8
- 繰り返しペナルティ(Repetition penalty): 1.0
- Top-p: 0.9
プロンプトガイドライン
このモデルにプロンプトを与えるには、次のチャットテンプレートを使用してください。
<|user|>\n{question}</s>\n<|assistant|>\n
プロンプトと生成結果の例
<|user|>
茶道用語で、茶室ではなく、屋外でお茶を点てることを何というでしょう?</s>
<|assistant|>
茶道用語で、茶室ではなく屋外でお茶を点てることを「野点(のだて)」といいます。
✨ 主な機能
SambaLingo-Japanese-Chatは、日本語と英語で訓練されたチャットモデルで、ベースモデルに対して直接嗜好最適化を行うことで、人間に適合した応答を生成することができます。
📦 インストール
このモデルはHugging Faceから直接読み込むことができます。具体的な読み込み方法は「クイックスタート」のセクションを参照してください。
📚 ドキュメント
モデルの説明
トークナイザーの詳細
ベースのLlamaモデルの語彙を、新しい言語から最大25,000の重複しないトークンを追加することで、32,000トークンから57,000トークンに拡張しています。
評価
評価結果については、論文SambaLingo: Teaching Large Language Models New Languagesを参照してください。
使用方法
直接使用
このモデルの使用は、MetaのLlama 2 Community License Agreementによって管理されています。モデルの重みをダウンロードする前に、ライセンスを確認して承諾してください。
範囲外の使用
SambaLingoは以下の用途には使用しないでください。
- 重要なアプリケーション
- 他人の安全に関わるアプリケーション
- 非常に重要な決定を行う用途
バイアス、リスク、および制限
他のすべての大規模言語モデル(LLM)と同様に、SambaLingoには一定の制限があります。
- 幻覚(Hallucination): モデルは時々、もっともらしく聞こえるが事実上誤ったまたは関係のない情報を含む応答を生成することがあります。
- コードスイッチング(Code Switching): モデルは、単一の応答内で言語または方言を意図せず切り替えることがあり、出力の一貫性と理解しやすさに影響を与えます。
- 繰り返し: モデルは繰り返しのフレーズや文を生成することがあり、魅力的で有益な応答が得られなくなります。
- コーディングと数学: モデルが正確なコードを生成したり、複雑な数学問題を解いたりする能力は限られています。
- 毒性: モデルは不適切または有害な内容を含む応答を誤って生成する可能性があります。
謝辞
私たちは、オープンソースAIコミュニティに心から感謝しています。この取り組みはオープンソースなしでは不可能でした。SambaNovaはオープンソースコミュニティを支持し、このイニシアチブに積極的に貢献することを目指しています。
以下のグループに特別な感謝を送ります。
- MetaがLLama 2をオープンソース化し、FLORES-200データセットを公開してくれたこと
- NguyenらがCulturaXデータセットをオープンソース化してくれたこと
- CohereAIがAYA-101をリリースし、多言語命令微調整データセットをオープンソース化してくれたこと
- EleutherAIがオープンソースの評価フレームワークを提供してくれたこと
- Hugging Face-H4チームがZephyrの訓練レシピとアライメントハンドブックのリポジトリをオープンソース化してくれたこと
SambaLingoの引用
@misc{csaki2024sambalingo,
title={SambaLingo: Teaching Large Language Models New Languages},
author={Zoltan Csaki and Bo Li and Jonathan Li and Qiantong Xu and Pian Pawakapan and Leon Zhang and Yun Du and Hengyu Zhao and Changran Hu and Urmish Thakker},
year={2024},
eprint={2404.05829},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
🔧 技術詳細
訓練の詳細
アライメントフェーズは、Zephyr-7Bのレシピに従い、教師付き微調整(SFT)と直接性能最適化(DPO)の2つの段階で構成されています。
SFTフェーズは、ultrachat_200kデータセットと、ultrachat_200kデータセットのGoogle翻訳版を混合したデータセットで行われました。グローバルバッチサイズ512、最大シーケンス長2048トークンで1エポック訓練されました。学習率は2e-5の線形減衰を使用し、10%のウォームアップを行いました。
DPOフェーズは、ultrafeedbackデータセットとcai-conversation-harmlessデータセットを、10%のデータをGoogle翻訳したものと混合したデータセットで行われました。グローバルバッチサイズ32で3エポック訓練されました。学習率は5e-7の線形減衰を使用し、10%のウォームアップを行い、DPOの正則化係数としてβ=0.1を使用しました。
📄 ライセンス
このモデルの使用は、MetaのLlama 2 Community License Agreementによって管理されています。