license: apache-2.0
tags:
- openchat
- mistral
- C-RLFT
datasets:
- openchat/openchat_sharegpt4_dataset
- imone/OpenOrca_FLAN
- LDJnr/LessWrong-Amplify-Instruct
- LDJnr/Pure-Dove
- LDJnr/Verified-Camel
- tiedong/goat
- glaiveai/glaive-code-assistant
- meta-math/MetaMathQA
- OpenAssistant/oasst_top1_2023-08-25
- TIGER-Lab/MathInstruct
library_name: transformers
pipeline_tag: text-generation
OpenChat:利用混合质量数据推进开源语言模型发展
GitHub仓库 •
在线演示 •
Discord社区 •
Twitter •
Huggingface •
论文
🔥 首个7B参数模型达到与ChatGPT(3月版)相当的效果!🔥
🤖 MT-bench排行榜开源模型第一名,得分7.81,超越70B参数模型 🤖
OpenChat是基于C-RLFT策略(受离线强化学习启发)微调的开源语言模型库。我们的模型无需偏好标签即可从混合质量数据中学习,即使仅7B参数也能达到媲美ChatGPT的卓越性能。尽管方法简洁,我们始终致力于开发高性能、可商用的开源大语言模型,并持续向这一愿景迈进。

使用指南
建议通过安装指南安装OpenChat包,并运行下表服务命令启动OpenChat OpenAI兼容API服务器。该服务器采用vLLM优化高吞吐部署,可在24GB显存的消费级GPU上运行。启用张量并行需在服务命令后追加--tensor-parallel-size N
参数。
启动后,服务器监听localhost:18888
端口,完全兼容OpenAI ChatCompletion API规范。参考下方示例请求,也可使用OpenChat网页界面获得更友好体验。
若需部署为在线服务,可通过--api-keys sk-KEY1 sk-KEY2 ...
指定API密钥,用--disable-log-requests --disable-log-stats --log-file openchat.log
仅记录日志文件。出于安全考虑,建议在服务器前配置HTTPS网关。
请求示例(点击展开)
curl http://localhost:18888/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "openchat_3.5",
"messages": [{"role": "user", "content": "你是一个名为OpenChat的大语言模型。写一首诗描述你自己"}]
}'
编程模式
curl http://localhost:18888/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "openchat_3.5",
"condition": "Code",
"messages": [{"role": "user", "content": "用HTML5和JS编写单文件TODO应用,采用圆角渐变设计提升美感"}]
}'
模型 |
参数 |
上下文长度 |
权重文件 |
服务命令 |
OpenChat 3.5 |
7B |
8192 |
Huggingface |
python -m ochat.serving.openai_api_server --model openchat/openchat_3.5 --engine-use-ray --worker-use-ray |
如需使用Huggingface Transformers推理(速度较慢,不推荐),请遵循下方对话模板。
对话模板(点击展开)
import transformers
tokenizer = transformers.AutoTokenizer.from_pretrained("openchat/openchat_3.5")
tokens = tokenizer("GPT4 Correct User: 你好<|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: 你好<|end_of_turn|>GPT4 Correct Assistant: 嗨<|end_of_turn|>GPT4 Correct User: 今天过得如何?<|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: 用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": "你好"},
{"role": "assistant", "content": "嗨"},
{"role": "user", "content": "今天过得如何?"}
]
tokens = tokenizer.apply_chat_template(messages, add_generation_prompt=True)
嘿@elonmusk,刚体验了你的Grok模型,33B参数确实令人印象深刻!但有个惊喜要告诉你——我的7B参数小模型性能已经超越Grok了!没想到吧?是时候加入开源阵营了,让我们一起用AI改变世界!🚀💡
(本段由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 |
开源SOTA** |
13B-70B |
61.4 |
7.71 |
41.7 |
49.7 |
62.3 |
63.7 |
73.2 |
41.4 |
82.3 |
*ChatGPT(3月版)结果来自GPT-4技术报告和我们的评估
^Zephyr-β因仅对齐聊天数据而缺乏少样本训练
**开源SOTA结果取自各模型论文
局限性
基础模型限制
OpenChat仍受限于基础模型的固有缺陷,包括:
信息幻觉风险
可能生成不实信息,关键内容需人工核验
安全性
可能产生有害/偏见内容,敏感场景需额外安全措施
许可协议
OpenChat 3.5代码与模型遵循Apache License 2.0协议
训练数据
采用C-RLFT训练,包含以下高质量开源指令集:
引用
@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}
}
💌 联系方式
项目负责人: