🚀 Xwin-LM: 強力で安定した再現可能な大規模言語モデルのアライメント技術
Xwin-LMは、大規模言語モデルのアライメント技術(教師付き微調整(SFT)、報酬モデル(RM)、棄却サンプリング、人間のフィードバックによる強化学習(RLHF)など)を開発し、オープンソース化することを目指しています。初回リリースはLlama2ベースモデルに基づいて構築され、AlpacaEvalで1位にランクインしました。特筆すべきは、このベンチマークで初めてGPT-4を上回ったことです。本プロジェクトは継続的に更新されます。

🚀 クイックスタート
Xwin-LMを使って、大規模言語モデルのアライメントを強化しましょう!
✨ 主な機能
- 大規模言語モデルのアライメント技術を開発・オープンソース化
- Llama2ベースモデルに基づく初回リリースがAlpacaEvalで1位
- 初めてGPT-4を上回ったモデル
📚 ドキュメント
ニュース
モデルカード
ベンチマーク
以下の表は、AlpacaEvalでのXwin-LMのパフォーマンスを示しています。ここでは、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」と言います。 |
NLP基礎タスクでのXwin-LMのパフォーマンス
以下の表は、Open LLM LeaderboardのNLP基礎タスクにおいて、Xwin-LMsと他の大規模言語モデルを比較したものです。
モデル |
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 := "A chat between a curious user and an artificial intelligence assistant. "
"The assistant gives helpful, detailed, and polite answers to the user's questions. "
"USER: Hello, can you help me? "
"ASSISTANT:"
)
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 := "A chat between a curious user and an artificial intelligence assistant. "
"The assistant gives helpful, detailed, and polite answers to the user's questions. "
"USER: Hello, can you help me? "
"ASSISTANT:"
)
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ライセンスの下で提供されています。