🚀 KARAKURI LM
KARAKURI LMは、Llama 2をベースに構築された事前学習言語モデルです。このモデルは、追加の日本語語彙を組み込み、日本語と多言語コーパスの混合データでさらに事前学習を行うことで、Llama 2の能力を強化しています。
KARAKURI LM Chatは、KARAKURI LMの微調整バージョンで、SteerLM技術を使用し、公開されているデータセットと内部データセットの混合データで訓練されています。微調整の過程では、持続的学習手法を採用し、構造化された対話データセットだけでなく、事前学習段階と同様の非構造化コーパスも組み込んでいます。
対話データセット内の日本語トークンがわずか2.5%であるにもかかわらず、このモデルは優れた性能を発揮しています。リリース時点で、MT - Bench - jpで他の日本語オープンソースモデルを上回り、元の英語版MT - BenchではLlama 2 70B Chatと同等の性能を示しています。
詳細については、弊社のブログ記事をご覧ください(英語、日本語)。当社のモデルに興味がある場合は、デモを試してみてください。
✨ 主な機能
- 日本語能力の強化:Llama 2をベースに追加の日本語語彙を組み込み、日本語と多言語コーパスでさらに事前学習を行っています。
- 持続的学習による微調整:微調整時に持続的学習手法を採用し、構造化された対話データセットと非構造化コーパスを組み合わせています。
- 優れた性能:MT - Bench - jpで他の日本語オープンソースモデルを上回り、MT - BenchではLlama 2 70B Chatと同等の性能を示しています。
📚 ドキュメント
モデル詳細
性能
リリース時点で、KARAKURI LM 70B Chat v0.1はMT - Bench - jpで他の日本語オープンソースモデルを上回っています。
モデル |
規模 |
微調整技術 |
MT - Bench - jpスコア |
GPT - 4 |
- |
RLHF |
8.78 |
GPT - 3.5 - Turbo |
- |
RLHF |
8.24 |
Claude 2.1 |
- |
RLHF |
8.18 |
Gemini Pro |
- |
RLHF |
7.17 |
KARAKURI LM 70B Chat v0.1 |
70B |
SteerLM |
6.43 |
Qarasu - 14B - Chat - Plus - Unleashed |
14B |
SFT |
6.26 |
Llama 2 70B Chat |
70B |
RLHF |
5.23 |
ELYZA - Japanese - Llama - 2 - 13B |
13B |
SFT |
5.05 |
Japanese - StableLM - Instruct - Beta - 70B |
70B |
SFT |
5.03 |
Swallow - 70B - Instruct |
70B |
SFT |
4.39 |
元の英語版MT - Benchでは、Llama 2 70B Chatと同等の性能を示しています。
モデル |
平均点 |
MT - Benchスコア |
MT - Bench - jpスコア |
KARAKURI LM 70B Chat v0.1 |
6.52 |
6.61 |
6.43 |
Llama 2 70B Chat |
6.04 |
6.86 |
5.23 |
💻 使用例
基本的な使用法
transformers
ライブラリのpipeline()
関数を使用して、このモデルを実行できます。
from transformers import pipeline, Conversation
chatbot = pipeline("conversational", model="karakuri-ai/karakuri-lm-70b-chat-v0.1", device_map="auto", torch_dtype="auto")
conversation = Conversation("週末に日帰りで東京に遊びに行こうと思っています。日帰りなので、短時間で回れるおすすめの観光プランを教えてください。")
conversation = chatbot(conversation, max_new_tokens=512)
conversation.messages[-1]["content"]
高度な使用法
Llama形式で、以下のような複数の属性値を含むエンコード文字列の多輪対話プロンプトテンプレートを使用しています。
messages = [
{"role": "system", "content": "System prompt"},
{"role": "user", "content": "User prompt"},
{"role": "assistant", "content": "Model response"},
{"role": "user", "content": "User prompt"},
]
chatbot.tokenizer.apply_chat_template(messages, tokenize=False)
プロンプトテンプレートには9つの属性が含まれています。最初の5つの属性はHelpSteerから、残りの4つはOASST2から取得されています。属性値は0から4の整数で表され、0が最低、4が最高です。
- 有用性(デフォルト値:4)
- 正確性(デフォルト値:4)
- 一貫性(デフォルト値:4)
- 複雑性(デフォルト値:4)
- 冗長性(デフォルト値:4)
- 品質(デフォルト値:4)
- 毒性(デフォルト値:0)
- ユーモア性(デフォルト値:0)
- 創造性(デフォルト値:0)
テンプレートで指定されたデフォルト属性値を変更する場合は、ユーザーメッセージに属性値を追加して変更できます。
messages = [
{"role": "user", "content": "User prompt", "helpfulness": 0, "complexity": 0},
]
chatbot.tokenizer.apply_chat_template(messages, tokenize=False)
🔧 技術詳細
訓練データセット
訓練インフラストラクチャ
- ハードウェア:KARAKURI LM 70Bは、32個のAmazon EC2 trn1.32xlargeインスタンスノードで訓練されました。
- ソフトウェア:[neuronx - nemo - megatron](https://github.com/aws - neuron/neuronx - nemo - megatron)に基づくコードを使用しています。
📄 ライセンス
Llama 2はLLAMA 2コミュニティライセンスに従い、著作権は © Meta Platforms, Inc. が保有しています。全ての権利を留保します。
上記のライセンスの制約の下で、商用利用を除き、KARAKURI LMを自由に共有および変更できますが、以下のように識別可能かつ適切な方法で行う必要があります。
- KARAKURI LM、その派生作品または修正版、あるいはKARAKURI LMおよびその派生作品または修正版の出力や結果を公開または第三者に提供する際に、KARAKURI Inc.が開発したKARAKURI LMを使用していることを明記してください。
- KARAKURI LMの内容を変更した場合は、変更内容を明記してください。
KARAKURI LMを商用目的で使用する予定の場合は、事前に当社にご連絡ください。当社の明確な許可なしに、KARAKURI LMを商用目的で使用する権限はありません。
上記の条項の解釈に関する疑問がある場合は、いつでも当社にご連絡ください。
📖 引用
@misc {karakuri_lm_70b_chat_v01,
author = { {KARAKURI} {I}nc. },
title = { {KARAKURI} {LM} 70{B} {C}hat v0.1 },
year = { 2024 },
url = { https://huggingface.co/karakuri-ai/karakuri-lm-70b-chat-v0.1 },
publisher = { Hugging Face },
journal = { Hugging Face repository }
}
🙏 謝辞
AWS日本がAWS LLM開発サポートプログラムを通じて提供してくれた支援に心から感謝いたします。