🚀 Xwin-LM:強大、穩定且可復現的大語言模型對齊方案
Xwin-LM致力於開發並開源大語言模型的對齊技術,涵蓋監督微調(SFT)、獎勵模型(RM)、拒絕採樣、基於人類反饋的強化學習(RLHF)等。我們基於Llama2基礎模型的首個版本,在AlpacaEval上排名第一,值得一提的是,它是首個在該基準測試中超越GPT - 4的模型。本項目將持續更新。
🚀 快速開始
Xwin-LM旨在為大語言模型提供先進的對齊技術。其首個版本基於Llama2基礎模型構建,在AlpacaEval基準測試中表現卓越。你可以通過以下鏈接訪問項目相關資源:
✨ 主要特性
- 先進的對齊技術:涵蓋監督微調(SFT)、獎勵模型(RM)、拒絕採樣、基於人類反饋的強化學習(RLHF)等。
- 卓越的性能表現:在AlpacaEval基準測試中排名第一,首個超越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在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 |
推理
對話模板
在使用我們的模型進行推理時,請嚴格遵循以下對話模板以獲得理想的結果。我們的模型採用了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。
📄 許可證
本項目採用Llama 2許可證。