モデル概要
モデル特徴
モデル能力
使用事例
🚀 Llama3 Swallow - Meta Llama 3をベースに構築
Llama3 Swallowモデルは、Llama 3シリーズ をベースに継続的な事前学習を行い、主に日本語データを追加しています。指令バージョンでは、教師付き微調整(SFT)とチャットベクトル技術を使用しています。他のモデルのリンクはインデックスで確認できます。
🚀 クイックスタート
pip install vllm
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
model_name = "tokyotech-llm/Llama-3-Swallow-8B-Instruct-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
llm = LLM(
model=model_name,
tensor_parallel_size=1,
)
sampling_params = SamplingParams(
temperature=0.6, top_p=0.9, max_tokens=512, stop="<|eot_id|>"
)
message = [
{"role": "system", "content": "あなたは誠実で優秀な日本人のアシスタントです。"},
{
"role": "user",
"content": "東京の夜空に打ち上がっている花火の下、向かい合っている燕とラマの温かい物語を書いてください。",
},
]
prompt = tokenizer.apply_chat_template(
message, tokenize=False, add_generation_prompt=True
)
output = llm.generate(prompt, sampling_params)
print(output[0].outputs[0].text)
✨ 主な機能
- 多言語対応:日本語と英語をサポートし、異なる言語のタスクを処理できます。
- 継続的事前学習:Llama 3シリーズをベースに継続的な事前学習を行い、モデルの性能を向上させています。
- 指令微調整:教師付き微調整(SFT)とチャットベクトル技術を使用し、モデルの指令追従能力を向上させています。
📦 インストール
必要なライブラリをインストールするには、以下のコマンドを実行します。
pip install vllm
💻 使用例
基本的な使用法
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
model_name = "tokyotech-llm/Llama-3-Swallow-8B-Instruct-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
llm = LLM(
model=model_name,
tensor_parallel_size=1,
)
sampling_params = SamplingParams(
temperature=0.6, top_p=0.9, max_tokens=512, stop="<|eot_id|>"
)
message = [
{"role": "system", "content": "あなたは誠実で優秀な日本人のアシスタントです。"},
{
"role": "user",
"content": "東京の夜空に打ち上がっている花火の下、向かい合っている燕とラマの温かい物語を書いてください。",
},
]
prompt = tokenizer.apply_chat_template(
message, tokenize=False, add_generation_prompt=True
)
output = llm.generate(prompt, sampling_params)
print(output[0].outputs[0].text)
📚 ドキュメント
モデル詳細
属性 | 詳細 |
---|---|
モデルタイプ | モデルアーキテクチャの詳細については、Llama 3 MODEL_CARD を参照してください。 |
言語 | 日本語、英語 |
ライブラリ | Megatron-LM |
トークナイザー | トークナイザーの詳細については、Llama 3ブログ を参照してください。 |
連絡先 | swallow[at]nlp.c.titech.ac.jp |
モデル性能
日本語タスク
モデル | サイズ | JCom. | JEMHopQA | NIILC | JSQuAD | XL-Sum | MGSM | WMT20-en-ja | WMT20-ja-en | JMMLU | JHumanEval | Ja Avg |
---|---|---|---|---|---|---|---|---|---|---|---|---|
4-shot | 4-shot | 4-shot | 4-shot | 1-shot | 4-shot | 4-shot | 4-shot | 5-shot | 0-shot | |||
EM acc | Char-F1 | Char-F1 | Char-F1 | ROUGE-2 | EM acc | BLEU | BLEU | EM acc | pass@1 | |||
calm2-7b-chat | 7B | 0.2413 | 0.5128 | 0.4956 | 0.7729 | 0.0551 | 0.0480 | 0.2208 | 0.1384 | 0.2482 | 0.0000 | 0.2733 |
Swallow-7b-instruct-v0.1 | 7B | 0.6059 | 0.4760 | 0.5284 | 0.8396 | 0.1546 | 0.1360 | 0.2285 | 0.1783 | 0.3510 | 0.0256 | 0.3524 |
Swallow-MS-7b-instruct-v0.1 | 7B | 0.7435 | 0.5066 | 0.4268 | 0.8594 | 0.1582 | 0.1760 | 0.2260 | 0.1880 | 0.4177 | 0.2244 | 0.3927 |
RakutenAI-7B-chat | 7B | 0.9035 | 0.2600 | 0.4619 | 0.8647 | 0.1339 | 0.2120 | 0.2667 | 0.1966 | 0.4504 | 0.2299 | 0.3980 |
Qwen2-7B-Instruct | 7B | 0.8856 | 0.3902 | 0.3859 | 0.8967 | 0.1277 | 0.5720 | 0.2041 | 0.1909 | 0.5713 | 0.5683 | 0.4793 |
Meta-Llama-3-8B-Instruct | 8B | 0.8785 | 0.3812 | 0.3936 | 0.8955 | 0.1273 | 0.4160 | 0.2143 | 0.2035 | 0.4719 | 0.2872 | 0.4269 |
Llama-3-ELYZA-JP-8B | 8B | 0.9017 | 0.5124 | 0.5016 | 0.9113 | 0.1677 | 0.4600 | 0.2509 | 0.1846 | 0.4829 | 0.3811 | 0.4754 |
Llama-3-Swallow-8B-Instruct-v0.1 | 8B | 0.9178 | 0.4963 | 0.5168 | 0.9088 | 0.1296 | 0.4880 | 0.2522 | 0.2254 | 0.4835 | 0.3927 | 0.4811 |
英語タスク
モデル | サイズ | OpenBookQA | TriviaQA | HellaSWAG | SQuAD2.0 | XWINO | MMLU | GSM8K | BBH | HumanEval | En Avg |
---|---|---|---|---|---|---|---|---|---|---|---|
4-shot | 4-shot | 4-shot | 4-shot | 4-shot | 5-shot | 4-shot | 3-shot | 0-shot | |||
Acc | EM acc | Acc | EM acc | Acc | Acc | EM acc | CoT EM Acc | pass@1 | |||
calm2-7b-chat | 7B | 0.2860 | 0.3528 | 0.5042 | 0.2524 | 0.8413 | 0.3860 | 0.0546 | 0.2990 | 0.0000 | 0.3307 |
Swallow-7b-instruct-v0.1 | 7B | 0.3280 | 0.4810 | 0.5501 | 0.2720 | 0.8774 | 0.4066 | 0.1251 | 0.3646 | 0.0866 | 0.3879 |
Swallow-MS-7b-instruct-v0.1 | 7B | 0.3600 | 0.4999 | 0.5858 | 0.3030 | 0.8834 | 0.5273 | 0.2108 | 0.4386 | 0.2512 | 0.4511 |
RakutenAI-7B-chat | 7B | 0.4160 | 0.5971 | 0.6465 | 0.3091 | 0.8886 | 0.5757 | 0.3139 | 0.4958 | 0.2671 | 0.5011 |
Qwen2-7B-Instruct | 7B | 0.4000 | 0.5468 | 0.6146 | 0.3518 | 0.8852 | 0.7073 | 0.6300 | 0.3101 | 0.6354 | 0.5646 |
Meta-Llama-3-8B-Instruct | 8B | 0.3880 | 0.6687 | 0.5834 | 0.3743 | 0.8903 | 0.6567 | 0.7453 | 0.6478 | 0.5415 | 0.6107 |
Llama-3-ELYZA-JP-8B | 8B | 0.3200 | 0.5502 | 0.5224 | 0.3631 | 0.8809 | 0.5875 | 0.5701 | 0.3213 | 0.4604 | 0.5084 |
Llama-3-Swallow-8B-Instruct-v0.1 | 8B | 0.3720 | 0.6557 | 0.5861 | 0.3648 | 0.9002 | 0.6315 | 0.5959 | 0.6391 | 0.4238 | 0.5743 |
MT-Bench JA
モデル | サイズ | coding | extraction | humanities | math | reasoning | roleplay | stem | writing | JMTAvg |
---|---|---|---|---|---|---|---|---|---|---|
calm2-7b-chat | 7B | 0.1198 | 0.3793 | 0.4231 | 0.1011 | 0.1799 | 0.4760 | 0.3568 | 0.4583 | 0.3118 |
Swallow-7b-instruct-v0.1 | 7B | 0.1947 | 0.3156 | 0.4991 | 0.1900 | 0.2141 | 0.5330 | 0.4535 | 0.4624 | 0.3578 |
Swallow-MS-7b-instruct-v0.1 | 7B | 0.2235 | 0.3743 | 0.4611 | 0.1060 | 0.3404 | 0.4287 | 0.3969 | 0.3877 | 0.3398 |
RakutenAI-7B-chat | 7B | 0.2475 | 0.3522 | 0.4692 | 0.2140 | 0.3926 | 0.4427 | 0.3977 | 0.4434 | 0.3699 |
Qwen2-7B-Instruct | 7B | 0.4635 | 0.6909 | 0.6857 | 0.5970 | 0.5042 | 0.6667 | 0.5353 | 0.6808 | 0.6030 |
Meta-Llama-3-8B-Instruct | 8B | 0.3744 | 0.6876 | 0.6225 | 0.2070 | 0.5032 | 0.5248 | 0.5326 | 0.4884 | 0.4926 |
Llama-3-ELYZA-JP-8B | 8B | 0.2908 | 0.6421 | 0.6406 | 0.3088 | 0.5500 | 0.6740 | 0.5251 | 0.6744 | 0.5382 |
Llama-3-Swallow-8B-Instruct-v0.1 | 8B | 0.3547 | 0.6508 | 0.5371 | 0.2718 | 0.4007 | 0.5493 | 0.4752 | 0.5730 | 0.4766 |
評価基準
日本語評価基準
llm-jp-eval(v1.3.0)、JP Language Model Evaluation Harness(コミット番号 #9b42d41)、および Code Generation LM Evaluation Harness(コミット番号 #0261c52) を使用しました。詳細は以下の通りです。
- 選択肢付き質問回答(JCommonsenseQA [Kuriharaら,2022])
- オープンエンド質問回答(JEMHopQA [Ishiiら,2024])
- オープンエンド質問回答(NIILC [関根,2003])
- 機械読解(JSQuAD [Kuriharaら,2022])
- 自動要約(XL-Sum [Hasanら,2021])
- 機械翻訳(WMT2020 ja-en [Barraultら,2020])
- 機械翻訳(WMT2020 en-ja [Barraultら,2020])
- 数学的推論(MGSM [Shiら,2023])
- 学術試験(JMMLU [尹ら,2024])
- コード生成(JHumanEval [佐藤ら,2024])
英語評価基準
Language Model Evaluation Harness(v.0.4.2) と Code Generation LM Evaluation Harness(コミット番号 #0261c52) を使用しました。詳細は以下の通りです。
- 選択肢付き質問回答(OpenBookQA [Mihaylovら,2018])
- オープンエンド質問回答(TriviaQA [Joshiら,2017])
- 機械読解(SQuAD2 [Rajpurkarら,2018])
- 常識推論(XWINO [TikhonovとRyabinin,2021])
- 自然言語推論(HellaSwag [Zellersら,2019])
- 数学的推論(GSM8K [Cobbeら,2021])
- 推論(BBH (BIG-Bench-Hard) [Suzgunら,2023])
- 学術試験(MMLU [Hendrycksら,2021])
- コード生成(HumanEval [Chenら,2021])
MT-Bench JA
Japanese MT-Bench を使用して、モデルの指令追従能力を評価しました。以下の設定を使用しました。
- 実装方法:FastChat [Zheng+,2023](コミット番号 #e86e70d0)
- 問題:Nejumi LLM-Leaderboard NEO, mtbench_ja_question_v3
- 参考答案:Nejumi LLM-Leaderboard NEO, mtbench_ja_referenceanswer_v1
- 評価プロンプト:Nejumi LLM-Lederboard NEO, mtbench_ja_prompt_v1
- 評価モデル:
gpt-4-1106-preview
- スコアリング方法:絶対尺度を0 - 1の範囲に正規化し、5回の実行結果の平均値を使用します。
訓練データセット
指令微調整
以下のデータセットを指令微調整に使用しました。
- OpenAssistant Conversations Dataset EN top-1 thread
- OpenAssistant Conversations Dataset の人間の発言を使用し、返信は使用しません。返信は Mixtral-8x7B-Instruct-v0.1 モデルで生成しました。
🔧 技術詳細
このプロジェクトは Megatron-LM ライブラリを使用して開発されています。モデルアーキテクチャの詳細については、Llama 3 MODEL_CARD を参照してください。トークナイザーの詳細については、Llama 3ブログ を参照してください。
📄 ライセンス
META LLAMA 3 COMMUNITY LICENSE
作者
以下はチームメンバーです。
- 東京工業大学岡崎研究室 のメンバー:
- 東京工業大学横田研究室 のメンバー:
- 国立研究開発法人産業技術総合研究所人工知能研究センター のメンバー:
引用方法
もし私たちの研究が役に立った場合は、ご自由に引用してください。
@inproceedings{Fujii:COLM2024,
title={Continual Pre-Training for Cross-Lingual LLM Adaptation:
Enhancing Japanese Language Capabilities},
author={Kazuki Fujii and Taishi Nakamura and Mengsay Loem and Hiroki
Iida and Masanari Ohi and Kakeru Hattori and Hirai Shota and Sakae
Mizuki and Rio Yokota and Naoaki Okazaki},
booktitle="Proceedings of the First Conference on Language Modeling",
series={COLM},
pages="(to appear)",
year="2024",
month=oct,
address={University of Pennsylvania, USA},
}
@inproceedings{Okazaki:COLM2024,
title={Building a Large Japanese Web Corpus for Large Language Models},
author={Naoaki Okazaki and Kakeru Hattori and Hirai Shota and Hiroki
Iida and Masanari Ohi and Kazuki Fujii and Taishi Nakamura and Mengsay
Loem and Rio Yokota and Sakae Mizuki},
booktitle="Proceedings of the First Conference on Language Modeling",
series={COLM},
pages="(to appear)",
year="2024",
month=oct,
address={University of Pennsylvania, USA},
}
引用文献
@article{llama3modelcard,
title={Llama 3 Model Card},
author={AI@Meta},
year={2024},
url = {https://github.com/meta-llama/llama3/blob/main/MODEL_CARD.md}
}
謝辞
Meta ResearchがLlama 3をオープンライセンスで公開し、その上で開発できるようにしてくれたことに感謝します。
私たちのプロジェクトは、国立研究開発法人産業技術総合研究所の 大型生成式AI開発支援プログラム による支援を受けています。
⚠️ 重要な注意事項
ここで公開されているモデルはまだ研究開発の初期段階にあり、出力が人間の意図や安全上の考慮に沿うように調整されていません。
💡 使用上の提案
モデルを使用する際には、実際のニーズに合わせて適切なモデルサイズとパラメータ設定を選択し、最適な性能を得てください。



