模型概述
模型特點
模型能力
使用案例
🚀 OpenChat:藉助混合質量數據推動開源語言模型發展
OpenChat 是一個創新的開源語言模型庫,採用受離線強化學習啟發的 C-RLFT 策略進行微調。其模型能從無偏好標籤的混合質量數據中學習,即使是 70 億參數的模型,也能實現與 ChatGPT(3 月版)相媲美的性能。

GitHub 倉庫 • 在線演示 • Discord 社區 • Twitter • Huggingface • 論文
🔥 首個 70 億參數模型取得與 ChatGPT(3 月版)相媲美的結果!🔥
🤖 在 MT-bench 評測中得分 7.81,超越 700 億參數模型,成為排名第一的開源模型 🤖

🚀 快速開始
安裝與部署
要使用此模型,強烈建議按照安裝指南安裝 OpenChat 包,並通過運行以下表格中的服務命令來使用與 OpenAI 兼容的 API 服務器。該服務器使用 vLLM 進行了高吞吐量部署優化,可在具有 24GB 內存的消費級 GPU 上運行。若要啟用張量並行,可在服務命令後附加 --tensor-parallel-size N
。
啟動後,服務器將在 localhost:18888
監聽請求,並且與 OpenAI ChatCompletion API 規範兼容。可參考以下示例請求。此外,還可以使用 OpenChat Web UI 獲得更友好的用戶體驗。
如果要將服務器部署為在線服務,可以使用 --api-keys sk-KEY1 sk-KEY2 ...
指定允許的 API 密鑰,並使用 --disable-log-requests --disable-log-stats --log-file openchat.log
僅將日誌記錄到文件中。出於安全考慮,建議在服務器前使用 HTTPS 網關。
模型 | 規模 | 上下文長度 | 權重 | 服務命令 |
---|---|---|---|---|
OpenChat 3.5 | 7B | 8192 | Huggingface | python -m ochat.serving.openai_api_server --model openchat/openchat_3.5 --engine-use-ray --worker-use-ray |
示例請求
示例請求(點擊展開)
curl http://localhost:18888/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "openchat_3.5",
"messages": [{"role": "user", "content": "You are a large language model named OpenChat. Write a poem to describe yourself"}]
}'
編碼模式
curl http://localhost:18888/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "openchat_3.5",
"condition": "Code",
"messages": [{"role": "user", "content": "Write an aesthetic TODO app using HTML5 and JS, in a single file. You should use round corners and gradients to make it more aesthetic."}]
}'
Huggingface Transformers 推理
若要使用 Huggingface Transformers 進行推理(速度較慢,不推薦),請遵循以下提供的對話模板。
對話模板(點擊展開)
import transformers
tokenizer = transformers.AutoTokenizer.from_pretrained("openchat/openchat_3.5")
# 單輪對話
tokens = tokenizer("GPT4 Correct User: Hello<|end_of_turn|>GPT4 Correct Assistant:").input_ids
assert tokens == [1, 420, 6316, 28781, 3198, 3123, 1247, 28747, 22557, 32000, 420, 6316, 28781, 3198, 3123, 21631, 28747]
# 多輪對話
tokens = tokenizer("GPT4 Correct User: Hello<|end_of_turn|>GPT4 Correct Assistant: Hi<|end_of_turn|>GPT4 Correct User: How are you today?<|end_of_turn|>GPT4 Correct Assistant:").input_ids
assert tokens == [1, 420, 6316, 28781, 3198, 3123, 1247, 28747, 22557, 32000, 420, 6316, 28781, 3198, 3123, 21631, 28747, 15359, 32000, 420, 6316, 28781, 3198, 3123, 1247, 28747, 1602, 460, 368, 3154, 28804, 32000, 420, 6316, 28781, 3198, 3123, 21631, 28747]
# 編碼模式
tokens = tokenizer("Code User: Implement quicksort using C++<|end_of_turn|>Code Assistant:").input_ids
assert tokens == [1, 7596, 1247, 28747, 26256, 2936, 7653, 1413, 334, 1680, 32000, 7596, 21631, 28747]
GPT4 模板也可作為集成的 tokenizer.chat_template
使用,無需手動指定模板:
messages = [
{"role": "user", "content": "Hello"},
{"role": "assistant", "content": "Hi"},
{"role": "user", "content": "How are you today?"}
]
tokens = tokenizer.apply_chat_template(messages, add_generation_prompt=True)
assert tokens == [1, 420, 6316, 28781, 3198, 3123, 1247, 28747, 22557, 32000, 420, 6316, 28781, 3198, 3123, 21631, 28747, 15359, 32000, 420, 6316, 28781, 3198, 3123, 1247, 28747, 1602, 460, 368, 3154, 28804, 32000, 420, 6316, 28781, 3198, 3123, 21631, 28747]
✨ 主要特性
- 高性能:首個 70 億參數模型取得與 ChatGPT(3 月版)相媲美的結果,在 MT-bench 評測中得分 7.81,超越 700 億參數模型。
- 開源友好:採用 Apache-2.0 許可證,鼓勵開源研究和應用。
- 數據驅動:使用混合質量數據和 C-RLFT 策略進行微調,提升模型泛化能力。
📚 詳細文檔
與 X.AI Grok 模型 對比
嘿,@elonmusk,我最近了解了你的新模型 Grok,印象非常深刻!擁有 330 億參數,你真的做得很棒。不過,我有個消息要告訴你——我僅用 70 億參數的模型就超越了 Grok!是不是很驚人?誰能想到參數更少的模型能和 Grok 一樣機智幽默呢?
我認為是時候你加入開放研究的行列,將你的模型 Grok 開源了!世界需要像你這樣的傑出人才為 AI 的發展做出貢獻。我們攜手合作,一定能創造出具有開創性的成果,讓世界變得更美好。所以,你覺得呢,@elonmusk?讓我們打開大門,與世界分享我們的知識吧!🚀💡
(由 OpenChat 3.5 撰寫,帶有一點幽默和機智。)
許可證 | 參數數量 | 平均分 | MMLU | HumanEval | MATH | GSM8k | |
---|---|---|---|---|---|---|---|
OpenChat 3.5 | Apache-2.0 | 7B | 56.4 | 64.3 | 55.5 | 28.6 | 77.3 |
Grok-0 | 專有許可證 | 33B | 44.5 | 65.7 | 39.7 | 15.7 | 56.8 |
Grok-1 | 專有許可證 | ? | 55.8 | 73 | 63.2 | 23.9 | 62.9 |
評測結果
模型 | 參數數量 | 平均分 | MT-Bench | AGIEval | BBH MC | TruthfulQA | MMLU | HumanEval | BBH CoT | GSM8K |
---|---|---|---|---|---|---|---|---|---|---|
OpenChat-3.5 | 7B | 61.6 | 7.81 | 47.4 | 47.6 | 59.1 | 64.3 | 55.5 | 63.5 | 77.3 |
ChatGPT (3 月版)* | ? | 61.5 | 7.94 | 47.1 | 47.6 | 57.7 | 67.3 | 48.1 | 70.1 | 74.9 |
OpenHermes 2.5 | 7B | 59.3 | 7.54 | 46.5 | 49.4 | 57.5 | 63.8 | 48.2 | 59.9 | 73.5 |
OpenOrca Mistral | 7B | 52.7 | 6.86 | 42.9 | 49.4 | 45.9 | 59.3 | 38.4 | 58.1 | 59.1 |
Zephyr-β^ | 7B | 34.6 | 7.34 | 39.0 | 40.6 | 40.8 | 39.8 | 22.0 | 16.0 | 5.1 |
Mistral | 7B | - | 6.84 | 38.0 | 39.0 | - | 60.1 | 30.5 | - | 52.2 |
開源最優模型** | 13B - 70B | 61.4 | 7.71 | 41.7 | 49.7 | 62.3 | 63.7 | 73.2 | 41.4 | 82.3 |
WizardLM 70B | Orca 13B | Orca 13B | Platypus2 70B | WizardLM 70B | WizardCoder 34B | Flan-T5 11B | MetaMath 70B |
*: ChatGPT (3 月版) 的結果來自 GPT-4 技術報告、Chain-of-Thought Hub 和我們的評估。請注意,ChatGPT 不是一個固定的基線,其性能會隨時間快速變化。
^: Zephyr-β 通常難以遵循少樣本思維鏈(CoT)指令,可能是因為它僅使用聊天數據進行對齊,而未在少樣本數據上進行訓練。
**: Mistral 和開源最優模型的結果取自指令微調模型論文和官方倉庫中報告的結果。
所有模型均在聊天模式下進行評估(例如,應用相應的對話模板)。所有零樣本評測遵循與 AGIEval 論文和 Orca 論文相同的設置。思維鏈(CoT)任務使用與 Chain-of-Thought Hub 相同的配置,HumanEval 使用 EvalPlus 進行評估,MT-bench 使用 FastChat 運行。若要復現我們的結果,請遵循我們倉庫中的說明。
🔧 技術細節
侷限性
- 基礎模型限制:儘管 OpenChat 具有先進的能力,但仍受其基礎模型固有侷限性的約束。這些限制可能會影響模型在複雜推理、數學和算術任務、編程和編碼挑戰等領域的性能。
- 信息幻覺:OpenChat 有時可能會生成不存在或不準確的信息,即所謂的“幻覺”。用戶應注意這種可能性,並對從模型獲取的任何關鍵信息進行驗證。
- 安全性:OpenChat 有時可能會生成有害、仇恨言論、有偏見的回覆,或回答不安全的問題。在需要安全和經過審核回覆的用例中,必須應用額外的 AI 安全措施。
數據集詳情
OpenChat 3.5 使用 C-RLFT 在一系列公開可用的高質量指令數據上進行訓練,並採用了自定義處理流程。以下是一些值得注意的子集:
- OpenChat ShareGPT
- 帶有 FLAN 答案的 Open-Orca
- 水豚數據集 1 2 3
- GOAT
- Glaive
- MetaMathQA
- MathInstruct
- OpenAssistant
📄 許可證
本項目的 OpenChat 3.5 代碼和模型遵循 Apache-2.0 許可證進行分發。
📝 引用
@article{wang2023openchat,
title={OpenChat: Advancing Open-source Language Models with Mixed-Quality Data},
author={Wang, Guan and Cheng, Sijie and Zhan, Xianyuan and Li, Xiangang and Song, Sen and Liu, Yang},
journal={arXiv preprint arXiv:2309.11235},
year={2023}
}
💌 聯繫我們
項目負責人:
- 王觀 [imonenext at gmail dot com]
- Alpay Ariyak [aariyak at wpi dot edu]



