🚀 Xwin-LM:強大、穩定且可復現的大語言模型對齊方案
Xwin-LM致力於開發並開源大語言模型的對齊技術,涵蓋監督微調(SFT)、獎勵模型(RM)、拒絕採樣、基於人類反饋的強化學習(RLHF)等。我們基於Llama2基礎模型的首個版本,在AlpacaEval上排名第一。值得一提的是,這是首個在該基準測試中超越GPT - 4的模型。本項目將持續更新。
🚀 快速開始
Xwin-LM旨在助力你的大語言模型對齊工作!它提供了一系列先進的對齊技術,讓你的模型在性能上更上一層樓。你可以通過以下鏈接訪問項目:
✨ 主要特性
- 先進的對齊技術:涵蓋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 |
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建立的提示格式,並支持多輪對話。
一個好奇的用戶與人工智能助手之間的對話。助手會為用戶的問題提供有幫助、詳細且禮貌的答案。用戶:你好!助手:你好。</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許可證。