モデル概要
モデル特徴
モデル能力
使用事例
🚀 Gemma-2-Llama-Swallow
Gemma-2-Llama-Swallowシリーズのモデルは、gemma-2モデルをベースに持続的な事前学習を行うことで構築されています。Gemma 2 Swallowは、英語能力を維持しながら、元のGemma 2モデルの日本語能力を強化しています。約2000億個のトークンを使用して持続的な事前学習を行いました。これらのトークンは、大型の日本語ウェブコーパス(Swallowコーパスバージョン2)、日本語と英語のウィキペディア記事、数学やコーディングの内容などからサンプリングされています(詳細はベースモデルの学習データセットのセクションを参照)。命令微調整モデル(it)は、日本語用に構築された合成データで教師あり微調整(SFT)を行うことで構築されています。Swallowモデルインデックスのセクションを参照すると、他のモデルバリエーションを見つけることができます。本モデルはGemmaとLlamaをベースに構築されています。
🚀 クイックスタート
Gemma-2-Llama-Swallowモデルを使用する基本的な手順は以下の通りです。
pip install vllm
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
model_name = "tokyotech-llm/Gemma-2-Llama-Swallow-27b-it-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,
)
message = [
{
"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)
✨ 主な機能
- 多言語能力:英語能力を維持しながら、日本語能力を大幅に強化し、複数の言語のタスクを処理できます。
- 持続的な事前学習:gemma-2モデルをベースに、大量の日本語と英語のデータを使用して持続的な事前学習を行い、モデルの性能を向上させています。
- 命令微調整:日本語用に構築された合成データで教師あり微調整を行うことで、日本語の命令タスクにより適したモデルになっています。
📦 インストール
使用する前に、vllm
ライブラリをインストールする必要があります。
pip install vllm
💻 使用例
基本的な使用法
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
model_name = "tokyotech-llm/Gemma-2-Llama-Swallow-27b-it-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,
)
message = [
{
"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)
📚 ドキュメント
リリース履歴
- 2025年5月19日:Gemma-2-Llama-Swallow-2b-pt-v0.1、Gemma-2-Llama-Swallow-9b-pt-v0.1、Gemma-2-Llama-Swallow-27b-pt-v0.1、Gemma-2-Llama-Swallow-2b-it-v0.1、Gemma-2-Llama-Swallow-9b-it-v0.1、およびGemma-2-Llama-Swallow-27b-it-v0.1がリリースされました。
Swallowモデルインデックス
モデル | gemma-2-swallow v0.1 | gemma-2-swallow-it v0.1 |
---|---|---|
2B | ü§ó HuggingFace | ü§ó HuggingFace |
9B | ü§ó HuggingFace | ü§ó HuggingFace |
27B | ü§ó HuggingFace | ü§ó HuggingFace |
このウェブサイトhttps://swallow-llm.github.io/では、Swallowチームによって開発された大規模言語モデルを提供しています。
モデル詳細
属性 | 詳細 |
---|---|
モデルタイプ | 具体的なモデルアーキテクチャの詳細は、Gemma 2論文を参照してください。 |
言語 | 日本語、英語 |
ライブラリ | maxtext |
トークナイザー | 具体的なトークナイザーの詳細は、Gemma 2論文を参照してください。 |
連絡先 | swallow[at]nlp.c.titech.ac.jp |
モデル性能
MT-Bench JA
モデル | コーディング | 抽出 | 人文科学 | 数学 | 推論 | ロールプレイ | STEM | 執筆 | JMT平均 |
---|---|---|---|---|---|---|---|---|---|
google/gemma-3-1b-it | 0.379 | 0.497 | 0.680 | 0.385 | 0.322 | 0.628 | 0.540 | 0.651 | 0.510 |
Qwen/Qwen2.5-1.5B-Instruct | 0.408 | 0.513 | 0.456 | 0.527 | 0.352 | 0.473 | 0.406 | 0.469 | 0.450 |
google/gemma-2-2b-it | 0.454 | 0.587 | 0.693 | 0.524 | 0.445 | 0.654 | 0.567 | 0.630 | 0.569 |
rinna/gemma-2-baku-2b-it | 0.470 | 0.625 | 0.810 | 0.414 | 0.382 | 0.713 | 0.609 | 0.697 | 0.590 |
google/gemma-2-2b-jpn-it | 0.467 | 0.488 | 0.741 | 0.379 | 0.406 | 0.660 | 0.589 | 0.672 | 0.550 |
tokyotech-llm/Gemma-2-Llama-Swallow-2b-it-v0.1 | 0.438 | 0.533 | 0.781 | 0.557 | 0.404 | 0.706 | 0.674 | 0.682 | 0.597 |
Qwen/Qwen2.5-3B-Instruct | 0.567 | 0.647 | 0.597 | 0.665 | 0.457 | 0.649 | 0.526 | 0.637 | 0.593 |
google/gemma-3-4b-it | 0.603 | 0.724 | 0.798 | 0.767 | 0.498 | 0.803 | 0.775 | 0.822 | 0.724 |
Qwen/Qwen2.5-7B-Instruct | 0.599 | 0.741 | 0.719 | 0.637 | 0.541 | 0.744 | 0.624 | 0.713 | 0.665 |
tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.3 | 0.562 | 0.756 | 0.869 | 0.610 | 0.512 | 0.783 | 0.748 | 0.803 | 0.705 |
google/gemma-2-9b-it | 0.652 | 0.765 | 0.857 | 0.614 | 0.673 | 0.811 | 0.713 | 0.800 | 0.736 |
tokyotech-llm/Gemma-2-Llama-Swallow-9b-it-v0.1 | 0.592 | 0.796 | 0.872 | 0.742 | 0.638 | 0.802 | 0.745 | 0.803 | 0.749 |
google/gemma-3-12b-it | 0.807 | 0.814 | 0.871 | 0.886 | 0.623 | 0.847 | 0.858 | 0.863 | 0.821 |
google/gemma-2-27b-it | 0.727 | 0.809 | 0.874 | 0.719 | 0.639 | 0.810 | 0.740 | 0.826 | 0.768 |
tokyotech-llm/Gemma-2-Llama-Swallow-27b-it-v0.1 | 0.618 | 0.839 | 0.873 | 0.741 | 0.608 | 0.814 | 0.739 | 0.836 | 0.759 |
google/gemma-3-27b-it | 0.804 | 0.927 | 0.879 | 0.876 | 0.774 | 0.846 | 0.848 | 0.882 | 0.855 |
Qwen/Qwen2.5-32B-Instruct | 0.724 | 0.885 | 0.816 | 0.918 | 0.726 | 0.834 | 0.763 | 0.808 | 0.809 |
日本語タスク
モデル | JCom. | JEMHopQA | NIILC | JSQuAD | XL-Sum | MGSM | WMT20-en-ja | WMT20-ja-en | JMMLU | JHumanEval | Ja平均 |
---|---|---|---|---|---|---|---|---|---|---|---|
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 | ||
google/gemma-3-1b-it | 0.526 | 0.330 | 0.237 | 0.700 | 0.113 | 0.088 | 0.166 | 0.115 | 0.332 | 0.245 | 0.285 |
Qwen/Qwen2.5-1.5B-Instruct | 0.812 | 0.276 | 0.241 | 0.847 | 0.128 | 0.292 | 0.147 | 0.119 | 0.447 | 0.242 | 0.355 |
google/gemma-2-2b-it | 0.862 | 0.348 | 0.315 | 0.879 | 0.117 | 0.252 | 0.207 | 0.183 | 0.437 | 0.321 | 0.392 |
rinna/gemma-2-baku-2b-it | 0.855 | 0.228 | 0.390 | 0.877 | 0.115 | 0.172 | 0.255 | 0.190 | 0.415 | 0.165 | 0.366 |
google/gemma-2-2b-jpn-it | 0.845 | 0.321 | 0.291 | 0.877 | 0.131 | 0.192 | 0.204 | 0.180 | 0.418 | 0.311 | 0.377 |
tokyotech-llm/Gemma-2-Llama-Swallow-2b-it-v0.1 | 0.862 | 0.367 | 0.483 | 0.881 | 0.145 | 0.288 | 0.258 | 0.200 | 0.485 | 0.267 | 0.424 |
Qwen/Qwen2.5-3B-Instruct | 0.876 | 0.304 | 0.293 | 0.866 | 0.144 | 0.228 | 0.198 | 0.168 | 0.536 | 0.474 | 0.409 |
google/gemma-3-4b-it | 0.818 | 0.444 | 0.404 | 0.801 | 0.134 | 0.332 | 0.217 | 0.169 | 0.477 | 0.365 | 0.416 |
Qwen/Qwen2.5-7B-Instruct | 0.915 | 0.429 | 0.391 | 0.891 | 0.168 | 0.632 | 0.211 | 0.192 | 0.623 | 0.532 | 0.498 |
tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.3 | 0.924 | 0.528 | 0.583 | 0.896 | 0.191 | 0.532 | 0.281 | 0.229 | 0.544 | 0.394 | 0.510 |
google/gemma-2-9b-it | 0.931 | 0.532 | 0.527 | 0.876 | 0.149 | 0.636 | 0.273 | 0.239 | 0.623 | 0.559 | 0.535 |
tokyotech-llm/Gemma-2-Llama-Swallow-9b-it-v0.1 | 0.946 | 0.606 | 0.643 | 0.852 | 0.170 | 0.624 | 0.296 | 0.238 | 0.639 | 0.446 | 0.546 |
google/gemma-3-12b-it | 0.935 | 0.566 | 0.542 | 0.808 | 0.148 | 0.724 | 0.289 | 0.239 | 0.645 | 0.637 | 0.553 |
google/gemma-2-27b-it | 0.956 | 0.541 | 0.576 | 0.883 | 0.166 | 0.704 | 0.290 | 0.249 | 0.670 | 0.638 | 0.567 |
tokyotech-llm/Gemma-2-Llama-Swallow-27b-it-v0.1 | 0.969 | 0.654 | 0.658 | 0.891 | 0.194 | 0.764 | 0.316 | 0.258 | 0.686 | 0.635 | 0.602 |
google/gemma-3-27b-it | 0.946 | 0.592 | 0.584 | 0.867 | 0.142 | 0.764 | 0.307 | 0.253 | 0.716 | 0.736 | 0.591 |
Qwen/Qwen2.5-32B-Instruct | 0.959 | 0.567 | 0.497 | 0.903 | 0.169 | 0.780 | 0.228 | 0.195 | 0.757 | 0.651 | 0.571 |
英語タスク
モデル | OpenBookQA | TriviaQA | HellaSWAG | SQuAD2.0 | XWINO | MMLU | GSM8K | MATH | BBH | HumanEval | En平均 |
---|---|---|---|---|---|---|---|---|---|---|---|
4-shot | 4-shot | 4-shot | 4-shot | 4-shot | 5-shot | 4-shot | 4-shot | 3-shot | 0-shot | ||
Acc | EM acc | Acc | EM acc | Acc | Acc | EM acc | CoT EM Acc | CoT EM Acc | pass@1 | ||
google/gemma-3-1b-it | 0.272 | 0.229 | 0.421 | 0.501 | 0.786 | 0.398 | 0.256 | 0.340 | 0.379 | 0.335 | 0.392 |
Qwen/Qwen2.5-1.5B-Instruct | 0.334 | 0.378 | 0.503 | 0.501 | 0.844 | 0.604 | 0.257 | 0.272 | 0.272 | 0.277 | 0.424 |
google/gemma-2-2b-it | 0.354 | 0.502 | 0.520 | 0.548 | 0.878 | 0.569 | 0.440 | 0.230 | 0.464 | 0.382 | 0.489 |
rinna/gemma-2-baku-2b-it | 0.342 | 0.416 | 0.511 | 0.522 | 0.871 | 0.526 | 0.027 | 0.174 | 0.063 | 0.158 | 0.361 |
google/gemma-2-2b-jpn-it | 0.370 | 0.503 | 0.532 | 0.539 | 0.879 | 0.557 | 0.351 | 0.132 | 0.451 | 0.392 | 0.471 |
tokyotech-llm/Gemma-2-Llama-Swallow-2b-it-v0.1 | 0.332 | 0.417 | 0.529 | 0.506 | 0.856 | 0.530 | 0.284 | 0.150 | 0.405 | 0.301 | 0.431 |
Qwen/Qwen2.5-3B-Instruct | 0.364 | 0.446 | 0.562 | 0.504 | 0.869 | 0.664 | 0.096 | 0.612 | 0.128 | 0.471 | 0.472 |
google/gemma-3-4b-it | 0.412 | 0.500 | 0.560 | 0.552 | 0.872 | 0.583 | 0.769 | 0.306 | 0.598 | 0.513 | 0.566 |
Qwen/Qwen2.5-7B-Instruct | 0.428 | 0.519 | 0.624 | 0.569 | 0.877 | 0.742 | 0.739 | 0.688 | 0.217 | 0.636 | 0.604 |
tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.3 | 0.396 | 0.629 | 0.593 | 0.570 | 0.884 | 0.629 | 0.622 | 0.266 | 0.626 | 0.445 | 0.566 |
google/gemma-2-9b-it | 0.432 | 0.658 | 0.605 | 0.659 | 0.904 | 0.723 | 0.779 | 0.394 | 0.719 | 0.613 | 0.649 |
tokyotech-llm/Gemma-2-Llama-Swallow-9b-it-v0.1 | 0.404 | 0.640 | 0.609 | 0.623 | 0.900 | 0.680 | 0.710 | 0.392 | 0.663 | 0.491 | 0.611 |
google/gemma-3-12b-it | 0.422 | 0.665 | 0.639 | 0.649 | 0.901 | 0.721 | 0.867 | 0.796 | 0.802 | 0.712 | 0.717 |
google/gemma-2-27b-it | 0.458 | 0.766 | 0.655 | 0.669 | 0.909 | 0.762 | 0.851 | 0.466 | 0.790 | 0.707 | 0.703 |
tokyotech-llm/Gemma-2-Llama-Swallow-27b-it-v0.1 | 0.424 | 0.747 | 0.663 | 0.664 | 0.911 | 0.749 | 0.821 | 0.442 | 0.772 | 0.682 | 0.687 |
google/gemma-3-27b-it | 0.418 | 0.744 | 0.661 | 0.687 | 0.906 | 0.774 | 0.916 | 0.852 | 0.793 | 0.829 | 0.758 |
Qwen/Qwen2.5-32B-Instruct | 0.424 | 0.534 | 0.671 | 0.536 | 0.893 | 0.834 | 0.581 | 0.802 | 0.017 | 0.589 | 0.588 |
評価基準
評価スクリプトは、swallow-llm/swallow-evaluationにあり、タグはv202411
です。
MT-Bench JA
多輪対話能力を評価するために、日本語MT-Benchを使用しており、設定は以下の通りです。
- 実装方法:FastChat [Zheng+, 2023](コミット番号 #e86e70d0)
- 問題:Nejumi LLM-Leaderboard NEO, mtbench_ja_question_v4
- 参考答案:Nejumi LLM-Leaderboard NEO, mtbench_ja_referenceanswer_v2の修正版で、誤った回答を検証して修正しています。この修正版は、swallow-evaluation 202411バージョンでリリースされています。
- 評価プロンプト:Nejumi LLM-Leaderboard NEO, mtbench_ja_prompt_v1
- 評価モデル:
gpt-4o-2024-08-06
- 評価方法:絶対尺度を0 - 1の範囲に正規化し、5回の実行結果の平均値を取ります。
日本語評価基準
llm-jp-eval(v1.3.0)、JP Language Model Evaluation Harness(コミット番号 #9b42d41)、およびCode Generation LM Evaluation Harness(コミット番号 #0261c52)を使用しています。詳細は以下の通りです。
- 選択問題の回答(JCommonsenseQA [Kurihara et al., 2022])
- オープンエンド型問題の回答(JEMHopQA [Ishii et al., 2024])
- オープンエンド型問題の回答(NIILC [Èñ¢Ê†π, 2003])
- 機械読解(JSQuAD [Kurihara et al., 2022])
- 自動要約(XL-Sum [Hasan et al., 2021])
- 機械翻訳(WMT2020 ja-en [Barrault et al., 2020])
- 機械翻訳(WMT2020 en-ja [Barrault et al., 2020])
- 数学的推論(MGSM [Shi et al., 2023])
- 学術試験(JMMLU [Â∞π„Çâ, 2024])
- コード生成(JHumanEval [‰ΩêËó§„Çâ, 2024])
英語評価基準
Language Model Evaluation Harness(v.0.4.2)とCode Generation LM Evaluation Harness(コミット番号 #0261c52)を使用しています。詳細は以下の通りです。
- 選択問題の回答(OpenBookQA [Mihaylov et al., 2018])
- オープンエンド型問題の回答(TriviaQA [Joshi et al., 2017])
- 機械読解(SQuAD2 [Rajpurkar et al., 2018])
- 常識推論(XWINO [Tikhonov and Ryabinin, 2021])
- 自然言語推論(HellaSwag [Zellers et al., 2019])
- 数学的推論(GSM8K [Cobbe et al., 2021])
- 数学的推論(MATH [Hendrycks et al., 2022][Lightman et al., 2024])
- 推論(BBH (BIG-Bench-Hard) [Suzgun et al., 2023])
- 学術試験(MMLU [Hendrycks et al., 2021])
- コード生成(HumanEval [Chen et al., 2021])
学習データセット
命令微調整
以下のデータセットは命令微調整に使用されています。
- Gemma-2-LMSYS-Chat-1M-Synth
- lmsys-chat-1mをベースに合成および派生された多輪日本語命令データセット [Zhang+, ICLR24]。
- 最初のユーザー命令はDeepL(機械翻訳)を使用して日本語に翻訳され、アシスタントの回答はgemma-2-27b-itを使用して生成されています。同じモデルgemma-2-27b-itを評価モデルとして拒否サンプリング(n = 6)を行っています。
- 2回目のユーザー命令と回答はgemma-2-27b-itを使用して合成されています。同じモデルで2回目の回答の品質を1 - 10の範囲で評価し、9未満の回答とそれに対応する命令は拒否されます。また、個人識別情報(PII)を含むユーザー命令やテンプレートベースのユーザー命令は削除され、重複する命令は取り除かれています。
- Swallow-Magpie-Ultra-v0.1
filtered-magpie-ultra-en
データセットの日本語バリエーションで、gemma-2-27b-itを使用して日本語に翻訳されています。
- Swallow-Gemma-Magpie-v0.1
- 全く新しい日本語合成命令微調整データセットで、gemma-2-27b-itを使用して生成されています。ユーザー命令は各トピックに対する特定のプロンプトを使用して作成され、アシスタントの回答はそれらの命令に対して生成されています。
- 会話内容は品質と長さに基づいてヒューリスティックにフィルタリングされています。その後、gemma-2-27b-itを使用して各会話の品質を1 - 10の範囲で評価し、7以下の会話は拒否されます。
🔧 技術詳細
本モデルはGemma-2をベースに持続的な事前学習を行い、日本語用に構築された合成データで教師あり微調整を行っています。具体的なモデルアーキテクチャと学習の詳細は、Gemma 2論文を参照してください。
📄 ライセンス
本モデルで使用されているライセンスは以下の通りです。
- gemma
- llama3.3
⚠️ 重要提示
ここで公開されているモデルはまだ研究と開発の初期段階にあり、出力が人間の意図や安全面の考慮に沿うように調整されていません。
💡 使用建议
モデルを使用する際には、具体的なタスクやニーズに応じてサンプリングパラメータを調整することで、より良い生成結果を得ることができます。また、評価基準のセクションの設定を参考にして、モデルを評価し最適化することもできます。



