模型简介
模型特点
模型能力
使用案例
🚀 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]



