本プロジェクトは、Meta(旧Facebook)からリリースした商業利用可能モデル「Llama-2」をベースにしており、日本語能力を拡張させるためのLLaMA&Alpaca大規模言語モデルの二次学習を行いました。第一段階の成果物として、Japanese-LLaMA-2(基盤モデル)とJapanese-Alpaca-2(指示実行モデル)をオープンソースでデモ公開しました。
- Llama-2モデルをベースに日本語能力を拡張させ、日本語LLaMA-2及びAlpaca-2モデルを公開
- 事前学習用スクリプト、ファインチューニング用スクリプトを公開。必要に応じてモデルの二次学習が可能
- ローカルCPU/GPUを利用したモデル実装
- LLaMAエコシステムに対応:llama.cpp, text-generation-webui, LangChain
- 基盤モデル (foundation model):Japanese-LLaMA-2-13B
- 指示実行モデル (instruction-following model):Japanese-Alpaca-2-13B
[2023/12/26] Japanese-LLaMA-2-13Bをベースに、ファインチューニングを行ったJapanese-Alpaca-2-13B(指示実行モデル)を公開
[2023/12/20] 事前学習を行ったJapanese-LLaMA-2-13B(基盤モデル)公開
[2023/12/04] 🚀日本語LLaMA-2、Alpaca-2オープンソースプロジェクトスタート
タイトル | 説明 |
---|---|
💁🏻♂️概要 | 本プロジェクトの特徴 |
⏬ダウンロード | 配布中のモデルのダウンロード |
💻推理と実装 | トレーニング後の量子化 (quantify)、ローカルCPU/GPUを利用したモデル実装 |
📝事前学習とファインチューニング | 日本語LLaMA-2、Alpaca-2モデルのトレーニング |
🙏謝辞 | 貢献者の方々に感謝 |
本プロジェクトはLlama-2をベースに日本語LLaMA-2及びAlpaca-2モデルを公開しました。特徴として:
- 日本語語彙を追加し、語彙サイズを60,105に拡張
- また、LLaMAとAlpacaに使用する語彙を統一し、混在使用による問題を回避
- FlashAttention-2は、Efficient Attentionメカニズムを実装したもので、第1世代と比較して高速化とメモリ使用量の最適化を実現
- 文脈が長くなると、メモリ使用量の爆増を防ぐため、Efficient Attentionの仕様が不可欠となる
- 本プロジェクトはFlashAttention-2を利用してトレーニングを行った
日本語LLaMA-2及びAlpaca-2モデルの比較及び向いているシーンです。チャットが必要の場合はLLaMAではなくAlpacaを使ってください。
項目 | Japanese-LLaMA-2 | Japanese-Alpaca-2 |
---|---|---|
モデルタイプ | 基盤モデル | 指示実行モデル(Chat) |
配布中のモデルサイズ | 13B | 13B |
トレーニング方法 | Causal-LM (CLM) | ファインチューニング |
トレーニングパート | LoRA + emb/lm-head | LoRA + emb/lm-head |
ベースモデル | 公式オリジナル版Llama-2 | Japanese-LLaMA-2 |
トレーニングデータ | ラベリングなし汎用データ(11Gプレーンテキスト) | ラベリングありデータ(100万セット) |
語彙サイズ | 60,105 | 60,105 |
文脈サイズ(最大拡張サイズ) | 4K(12K-18K) | 4K(12K-18K) |
入力テンプレート | 不要 | Llama-2-Chatシリーズのテンプレート必要 |
向いている利用シーン | 文章の続き:文脈を基に続きのテキストを生成 | プロンプトの理解:Q&A、ライティング、チャット、インタラクションなど |
向いていない利用シーン | プロンプトの理解、連続チャットなど | 無制限のテキスト生成 |
フルモデルのダウンロードURLです。マージする必要がなく、そのまま実装できます。
モデル | モデルタイプ | ファイルサイズ | ダウンロード | GGUF形式ダウンロード |
---|---|---|---|---|
Japanese-LLaMA-2-13B | 基盤モデル | 26.6 GB | [🤗HF] | [🤗HF] |
Japanese-Alpaca-2-13B | 指示実行モデル | 26.6 GB | [🤗HF] | [🤗HF] |
LoRAモデル(emb/lm-headを含む)単体のダウンロードURLです。LoRAモデルはそのままで実装できず、基盤モデルにマージしてフルモデルを作成してから実装する必要があります。
モデル | モデルタイプ | マージに必要のベースモデル | ファイルサイズ | LoRAモデルダウンロード |
---|---|---|---|---|
Japanese-LLaMA-2-LoRA-13B | 基盤モデル | Llama-2-13B-hf | 1.73 GB | [🤗HF] |
Japanese-Alpaca-2-LoRA-13B | 指示実行モデル | Japanese-LLaMA-2-13B | 1.73 GB | [🤗HF] |
本プロジェクトのモデルは主に下記の量子化・推理・実装ツールをサポートしています。
ツール名 | 機能 | CPU | GPU | 量子化 | GUI | API | vLLM | 16K | 投機的サンプリング | チュートリアル |
---|---|---|---|---|---|---|---|---|---|---|
llama.cpp | 豊富な量子化オプションと効率的なローカル推論 | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | 作成中 |
OpenAI API Calls | OpenAI APIに互換するサーバー実装 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | 作成中 |
text-generation-webui | モデルをWeb UIとしてデプロイするツール | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | 作成中 |
LangChain | 二次開発に適したLLMアプリケーション開発フレームワーク | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | 作成中 |
- 公式オリジナル版Llama-2をベースに、大規模ラベリングなしデータを利用してトレーニングを行い、Japanese-LLaMA-2基盤モデルを作成
- ソースコードは🤗transformersのrun_clm.pyを参考
- Japanese-LLaMA-2をベースに、ラベリングありデータを利用してファインチューニングを行い、Japanese-Alpaca-2モデルを作成
- ソースコードはStanford Alpacaプロジェクトを参考
本プロジェクトは下記オープンソースプロジェクトをベースに二次開発を行いました。各プロジェクトに参加された方々に御礼申し上げます。
- Llama-2 by Meta
- llama.cpp by @ggerganov
- 🤗transformers by Hugging Face
- Stanford Alpaca by Tatsu Lab
- FlashAttention-2 by Dao-AILab
- Chinese-LLaMA-Alpaca-2 by @ymcui
本プロジェクトはGMOインターネットグループ株式会社が運営するConoHa VPS (with NVIDIA H100 GPU)上で開発及びテストを行いました。
本プロジェクトは、Meta(旧Facebook)からリリースしたLlama-2モデルの利用を前提としています。モデルを利用する際は必ずLlama-2モデルに関するオープンソースライセンス規約に従ってください。
その他ソースコードを利用する際は、それぞれのオープンソースライセンス規約に従ってください。
配布中のモデルを利用して生成されたコンテンツの正確性は、計算方法、ランダム要素、量子化精度の潜在的な劣化のために変動する可能性があります。ご了承ください。
本プロジェクトは、モデルの出力の正確性に関していかなる保証も行いません。関連リソースの使用及びその結果に起因するいかなる損失についても、責任を負うことはできません。
本プロジェクトに関連するモデルが商業目的で使用される場合、開発者は現地の法律と規制に従い、モデルを利用して生成されたコンテンツの合法性を保証する義務があります。
本プロジェクトは、モデルを利用して開発された製品やサービスに対し、いかなる責任を負うことができません。
制限事項
本プロジェクトのモデルは一定の日本語の理解及び生成能力が備わっているが、次の制限もあります:
- 予測できない有害なコンテンツや、人間の嗜好や価値観に従わないコンテンツが生成される可能性
- 計算能力とデータの問題により、関連モデルのトレーニングが十分ではなく、日本語理解能力をさらに向上させる必要
- 現在オンラインデモンストレーションを提供していない