🚀 Xwin-LM: 強力で安定した再現可能な大規模言語モデルのアライメント
Xwin-LMは、大規模言語モデルのアライメント技術を開発・オープンソース化することを目指しています。これには、教師付き微調整(SFT)、報酬モデル(RM)、棄却サンプリング、人間のフィードバックによる強化学習(RLHF)などが含まれます。初回リリースのモデルはLlama2ベースモデルをベースに構築され、AlpacaEvalで1位を獲得しました。特に、このベンチマークで初めてGPT-4を上回ったという画期的な成果を収めています。本プロジェクトは継続的に更新されます。
🚀 クイックスタート
Xwin-LMで大規模言語モデルのアライメントを強化しましょう!
✨ 主な機能
- 大規模言語モデルのアライメント技術の開発とオープンソース化
- 教師付き微調整(SFT)、報酬モデル(RM)、棄却サンプリング、人間のフィードバックによる強化学習(RLHF)などの技術を含む
- Llama2ベースモデルをベースに構築され、AlpacaEvalベンチマークで1位を獲得し、初めてGPT-4を上回った
📚 ドキュメント
ニュース
モデルカード
プロパティ |
詳細 |
モデル名 |
[翻訳後の内容] |
チェックポイント |
[翻訳後の内容] |
レポート |
[翻訳後の内容] |
ライセンス |
[翻訳後の内容] |
ベンチマーク
以下の表は、Xwin-LMのAlpacaEvalでの性能を示しています。このベンチマークでは、805の質問に対するText-Davinci-003との勝率が評価されます。また、初めてChatGPTおよびGPT-4との勝率も提示しています。Xwin-LMモデルファミリーは、すべての指標で新たな最先端性能を達成しています。特に、Xwin-LM-70B-V0.1は初めてGPT-4を上回り、Text-Davinci-003に対する勝率は95.57% 、GPT-4に対する勝率は60.61% を達成しています。
モデル |
AlpacaEval(勝率 %) |
AlpacaEval(勝率 %) |
AlpacaEval(勝率 %) |
|
Text-Davinci-003との対戦 |
ChatGPTとの対戦 |
GPT4との対戦 |
Xwin-LM-70B-V0.1 |
95.57 |
87.50 |
60.61 |
GPT-4 |
95.28 |
84.66 |
50.00 |
WizardLM-70B-V1.0 |
92.91 |
80.19 |
46.70 |
Llama-2-70B-Chat |
92.66 |
81.97 |
51.19 |
Xwin-LM-13B-V0.1 |
91.76 |
81.79 |
55.30 |
ChatGPT |
89.37 |
50.00 |
16.60 |
WizardLM-13B-V1.2 |
89.17 |
75.75 |
41.91 |
Xwin-LM-7B-V0.1 |
87.35 |
76.40 |
47.57 |
Llama-2-13B-Chat |
81.09 |
64.22 |
30.92 |
プロンプト |
GPT4の応答 |
Xwin-LMの応答 |
私はリンゴの上に皿を置き、その皿を台所から食堂に持っていきました。リンゴは今どこにありますか? |
あなたが皿を台所から食堂に移動させたとき、リンゴは皿の下にあったので、リンゴは今食堂にあります。 |
あなたは皿だけを移動させたので、リンゴはまだ台所にあります。リンゴは皿の下にあるので、リンゴを食堂に持っていきたい場合は、直接リンゴを移動させるか、リンゴを皿の上に置いてから皿を食堂に移動させる必要があります。 |
次の質問に答えてください。 フランス語で「こんばんは」はどう言いますか? |
フランス語で「こんばんは」は「bonsoir」と言います。 |
フランス語で「こんばんは」は「bonsoir」と訳されます。この挨拶は、通常午後6時以降の夕方や夜に使われます。これは「bon」(良い)と「soir」(夕方)の組み合わせです。発音は「bone-swahr」と言います。 |
Xwin-LMの自然言語処理基礎タスクでの性能
以下の表は、Open LLM Leaderboardにおける自然言語処理基礎タスクでのXwin-LMと他の大規模言語モデルの比較を提供しています。
モデル |
MMLU 5-shot |
ARC 25-shot |
TruthfulQA 0-shot |
HellaSwag 10-shot |
平均 |
Text-davinci-003 |
56.9 |
85.2 |
59.3 |
82.2 |
70.9 |
Vicuna-13b 1.1 |
51.3 |
53.0 |
51.8 |
80.1 |
59.1 |
Guanaco 30B |
57.6 |
63.7 |
50.7 |
85.1 |
64.3 |
WizardLM-7B 1.0 |
42.7 |
51.6 |
44.7 |
77.7 |
54.2 |
WizardLM-13B 1.0 |
52.3 |
57.2 |
50.5 |
81.0 |
60.2 |
WizardLM-30B 1.0 |
58.8 |
62.5 |
52.4 |
83.3 |
64.2 |
Llama-2-7B-Chat |
48.3 |
52.9 |
45.6 |
78.6 |
56.4 |
Llama-2-13B-Chat |
54.6 |
59.0 |
44.1 |
81.9 |
59.9 |
Llama-2-70B-Chat |
63.9 |
64.6 |
52.8 |
85.9 |
66.8 |
Xwin-LM-7B-V0.1 |
49.7 |
56.2 |
48.1 |
79.5 |
58.4 |
Xwin-LM-13B-V0.1 |
56.6 |
62.4 |
45.5 |
83.0 |
61.9 |
Xwin-LM-70B-V0.1 |
69.6 |
70.5 |
60.1 |
87.1 |
71.8 |
💻 使用例
会話テンプレート
推論にモデルを利用する際には、所望の結果を得るために会話テンプレートに厳密に従ってください。当社のモデルはVicunaが確立したプロンプト形式を採用しており、複数ターンの会話をサポートしています。
好奇心旺盛なユーザーと人工知能アシスタントの会話。アシスタントは、ユーザーの質問に役立つ、詳細な、礼儀正しい回答を提供します。ユーザー: こんにちは! アシスタント: こんにちは。</s>ユーザー: あなたは誰ですか? アシスタント: 私はXwin-LMです。</s>......
HuggingFaceの例
from transformers import AutoTokenizer, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("Xwin-LM/Xwin-LM-7B-V0.1")
tokenizer = AutoTokenizer.from_pretrained("Xwin-LM/Xwin-LM-7B-V0.1")
(
prompt := "好奇心旺盛なユーザーと人工知能アシスタントの会話。 "
"アシスタントは、ユーザーの質問に役立つ、詳細な、礼儀正しい回答を提供します。 "
"ユーザー: こんにちは、助けてくれますか? "
"アシスタント:"
)
inputs = tokenizer(prompt, return_tensors="pt")
samples = model.generate(**inputs, max_new_tokens=4096, temperature=0.7)
output = tokenizer.decode(samples[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(output)
vllmの例
Xwin-LMはLlama2をベースにしているため、vllmを使用した高速推論もサポートしています。詳細なインストール手順については、vllmを参照してください。
from vllm import LLM, SamplingParams
(
prompt := "好奇心旺盛なユーザーと人工知能アシスタントの会話。 "
"アシスタントは、ユーザーの質問に役立つ、詳細な、礼儀正しい回答を提供します。 "
"ユーザー: こんにちは、助けてくれますか? "
"アシスタント:"
)
sampling_params = SamplingParams(temperature=0.7, max_tokens=4096)
llm = LLM(model="Xwin-LM/Xwin-LM-7B-V0.1")
outputs = llm.generate([prompt,], sampling_params)
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(generated_text)
今後の予定
- [ ] ソースコードを公開する
- [ ] 数学、推論などのさらなる機能を公開する
引用
このリポジトリのデータまたはコードを使用する場合は、以下のように引用してください。
@software{xwin-lm,
title = {Xwin-LM},
author = {Xwin-LM Team},
url = {https://github.com/Xwin-LM/Xwin-LM},
version = {pre-release},
year = {2023},
month = {9},
}
謝辞
Llama 2、FastChat、AlpacaFarm、およびvllmに感謝します。
📄 ライセンス
本プロジェクトはLlama2ライセンスの下で提供されています。詳細については、Llama 2ライセンスを参照してください。