🚀 Xwin-LM:強大、穩定且可復現的大語言模型對齊方案
Xwin-LM致力於開發並開源大語言模型的對齊技術,涵蓋監督微調(SFT)、獎勵模型(RM)、拒絕採樣、基於人類反饋的強化學習(RLHF)等。我們基於Llama2基礎模型的首個版本,在AlpacaEval評測中排名第一,值得一提的是,這是首個在該評測中超越GPT - 4的模型。本項目將持續更新。
🚀 快速開始
本項目旨在開發和開源大語言模型的對齊技術,你可以通過以下內容瞭解模型的最新消息、性能表現、使用示例等信息。
✨ 主要特性
- 高性能表現:在AlpacaEval評測中,Xwin-LM多個版本的模型在與Text - Davinci - 003、ChatGPT和GPT - 4的對比中取得了優異的勝率,部分模型超越了GPT - 4。
- 多版本支持:提供7B、13B和70B等不同規模的模型版本,滿足不同場景的需求。
- 多輪對話支持:模型採用了Vicuna的提示格式,支持多輪對話。
📢 最新消息
📋 模型卡片
📊 評測結果
下表展示了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 |
Xwin-LM-13B-V0.2 |
93.22 |
87.14 |
70.36 |
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 |
Xwin-LM-7B-V0.2 |
89.31 |
79.60 |
59.83 |
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在NLP基礎任務上的性能表現
下表提供了Xwin-LM與其他大語言模型在Open LLM Leaderboard的NLP基礎任務上的對比。
模型 |
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 |
Xwin-LM-7B-V0.2 |
50.0 |
56.4 |
49.5 |
78.9 |
58.7 |
Xwin-LM-13B-V0.2 |
56.6 |
61.5 |
43.8 |
82.9 |
61.2 |
💻 使用示例
對話模板
為了獲得理想的結果,請在使用我們的模型進行推理時嚴格遵循對話模板。我們的模型採用了Vicuna建立的提示格式,支持多輪對話。
一個好奇的用戶和一個人工智能助手之間的對話。助手會給用戶的問題提供有用、詳細且禮貌的答案。USER: 你好!ASSISTANT: 你好。</s>USER: 你是誰?ASSISTANT: 我是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 := "一個好奇的用戶和一個人工智能助手之間的對話。助手會給用戶的問題提供有用、詳細且禮貌的答案。USER: 你好,你能幫我嗎?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 := "一個好奇的用戶和一個人工智能助手之間的對話。助手會給用戶的問題提供有用、詳細且禮貌的答案。USER: 你好,你能幫我嗎?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。
📄 許可證
本項目使用Llama 2許可證。