openchat
无需偏好标注即可微调的开源LLM框架,7B模型性能比肩ChatGPT
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
无需偏好标注即可微调的开源LLM框架,7B模型性能比肩ChatGPT
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:OpenChat 项目 Logo
想象一下:你手里有一堆质量参差不齐的训练数据——有高手写的优质对话,有普通人的日常聊天,还有大量网上扒来的「差不多就行」的回复。大多数人会觉得,这堆数据得先洗干净、标注好,才能训练出好模型。
但 OpenChat 说:不用洗,直接上。
这个由独立研究者 imoneoi 创建的开源项目,在 2023 年横空出世,喊出了一句反直觉的口号:即使训练数据「良莠不齐」,也能训练出比肩 ChatGPT 的语言模型。2024 年 5 月,基于 Llama-3 的 OpenChat 3.6 发布,在多个基准测试中超越官方 Llama-3 8B,效果惊艳。
开源大语言模型(如 Llama、Mistral)近年来发展迅猛,普通人已经能在消费级 GPU 上运行 70 亿参数级别的模型。但这些「裸模型」就像一块璞玉——潜力巨大,却缺乏对话能力、指令遵循能力,需要通过「微调」(Fine-tuning)才能成为可用的助手。
传统微调依赖「高质量标注数据」——需要人工标注哪些回复是好的、哪些是不好的,这叫做 RLHF(人类反馈强化学习)或 SFT(监督微调)。问题是:高质量数据贵啊。构建一套可靠的 ChatGPT 级标注数据,成本动辄数万甚至数十万美元,普通研究团队根本玩不起。
OpenChat 的答案是 C-RLFT(Conditioned Reinforcement Learning from mixed-quality Training data),发表于 ICLR 2024。
简单来说,C-RLFT 的核心思想是:给数据贴上「出身标签」,让模型自己学会区分好坏。
传统的 SFT 把所有数据一视同仁,模型学的是「平均回复」——好回复被差回复稀释。RLHF 需要大量人工标注偏好,标注成本极高。C-RLFT 则在每个训练样本前加入一个「条件标记」——比如 [Good]、[Avg]、[Bad],告诉模型这条数据的质量等级。训练时,模型学会识别这些条件,然后在推理阶段统一用 [Good] 模式输出。这样,无需任何人工偏好标注,模型就掌握了「什么是好回复」的判断能力。
图2:OpenChat 3.6 模型性能基准测试对比
从项目结构来看,OpenChat 的核心代码位于 ochat/ 目录,包含以下几个关键模块:
ochat/models/:模型定义,封装了 Llama、Llama-2、Llama-3 等基座模型的加载逻辑ochat/training_deepspeed/:DeepSpeed 加速的分布式训练代码ochat/serving/:推理服务核心——openai_api_server 模块,兼容 OpenAI ChatCompletion API 协议ochat/evaluation/:评测管线,支持 MMLU、GSM8K、HumanEval 等标准基准推理引擎采用 vLLM(0.4.0+),支持 PagedAttention 显存管理和连续批处理。训练部分基于 DeepSpeed ZeRO 分布式优化。技术栈:Python 3.8+、PyTorch、Transformers、Flash Attention 2。
| 模型 | 参数量 | MMLU | GSM8K | HumanEval | 平均 |
|---|---|---|---|---|---|
| OpenChat-3.5-0106 | 7B | 64.5 | 71.3 | 51.5 | 61.0 |
| Grok-1 | 314B | 58.7 | 62.9 | 39.7 | 53.8 |
| ChatGPT | - | 67.1 | 80.9 | 48.1 | 65.4 |
一个 7B 参数的开源模型,在多个基准上超越 Grok-1(314B 参数),逼近 ChatGPT 水平。OpenChat-3.5 采用 Apache 2.0 许可证,免费可商用。
pip 一键安装:
conda create -y --name openchat python=3.11 && conda activate openchat
pip3 install torch && pip3 install ochat
python -m ochat.serving.openai_api_server --model openchat/openchat-3.5-0106
Docker 方式:
docker run -d -p 18888:18888 openchat:latest
服务默认监听 http://localhost:18888,完全兼容 OpenAI ChatCompletion API,现有应用只需改 base URL 就能切换。硬件方面,RTX 3090/4090 消费级显卡即可运行 7B 模型(FP16 约 16GB 显存)。
OpenChat 没有内置 Web UI,需配合独立项目 openchat-ui 或使用在线体验 openchat.team。
图3:OpenChat 在线 Demo 界面
数据质量隐患。 C-RLFT 的核心假设是「数据来源标签足够可靠」——但如果低质量数据恰好包含了罕见知识,模型可能在边界场景下表现异常。
性能天花板。 在实际对话体验中,OpenChat 与 GPT-4 仍有明显差距,尤其是复杂推理和多轮上下文管理。
License 风险。 OpenChat 3.6 基于 Llama-3 训练,License 继承自 Llama-3,Meta 可能更新条款。
更新停滞。 项目最后更新于 2024 年 5 月,距今已超过一年,技术逐渐落伍。
OpenChat 证明了:用普通数据,也能训练出强大模型。 这一思路深刻影响了后来的开源微调社区(Zephyr、Mistral-Instruct、OpenHermes 等),不再执着于昂贵的人工偏好标注,而是通过巧妙的训练策略从现有数据中榨取更多价值。更重要的是,它证明了开源社区的「草根力量」:不需要百人团队,不需要千万预算,几个认真做研究的人,加上聪明的算法,就能在开源模型竞技场中与闭源巨头掰手腕。