Fine-Tune OpenChat with Ertas

    基于 Mistral 7B 使用条件强化学习微调(C-RLFT)训练的 70 亿参数模型,通过创新的混合质量数据训练方法达到了 GPT-3.5 级别的性能。

    7BOpenChat

    Overview

    OpenChat 3.5 是由 OpenChat 团队开发的开源语言模型,基于 Mistral 7B 使用一种名为条件强化学习微调(C-RLFT)的创新训练方法进行微调。OpenChat 3.5 于 2023 年 11 月发布,是首批在标准化基准测试上达到与 ChatGPT(GPT-3.5 Turbo)相当性能的 7B 模型之一,这对开源语言模型来说是一个重要里程碑。

    OpenChat 背后的关键创新在于其处理混合质量训练数据的方法。C-RLFT 不要求所有训练数据都是高质量的(策划成本高昂),也不是平等对待所有数据(这会降低质量),而是为不同数据源分配质量条件,并训练模型在条件为期望质量水平时生成响应。在推理期间,模型被设定为产生最高质量输出,有效地学会区分和生成优质回复。

    OpenChat 3.5 在包括 ShareGPT 对话、开源指令数据集和代码数据集在内的多种数据源上训练。C-RLFT 方法使模型能够从所有这些数据中受益——即使是较低质量的示例——同时在使用适当的质量条件提示时仍然生成高质量输出。

    该模型使用 Mistral 7B 的架构,继承了滑动窗口注意力、分组查询注意力和 32K token 的上下文窗口。在 Apache 2.0 许可下发布,可自由用于商业用途。

    Key Features

    条件强化学习微调(C-RLFT)是 OpenChat 的核心方法论贡献。该技术根据训练示例的估计质量水平在其前面添加质量条件标记。高质量示例(例如 GPT-4 生成的回复)获得正面质量条件,而较低质量的示例获得不同的条件。在训练过程中,模型学习质量条件与回复质量之间的关联。在推理时,始终使用正面质量条件可促使模型生成其最佳回复。

    这种方法解决了一个实际问题:高质量训练数据稀缺且昂贵,但大量混合质量的数据随手可得。C-RLFT 允许模型从所有可用数据中学习而不被较低质量的示例污染,有效地在不牺牲输出质量的情况下增加了可用训练数据量。

    OpenChat 3.5 在对话和推理基准测试上表现特别强劲。在 MT-Bench(多轮对话基准测试)上,它的得分与 GPT-3.5 相当,显著高于其他 7B 模型。模型在编码任务和数学推理方面也表现出色,得益于训练混合中包含的代码和数学数据。

    Fine-Tuning with Ertas

    OpenChat 3.5 是 Ertas Studio 中微调的优秀基础模型。基于 Mistral 7B 构建,需要同样适度的资源:QLoRA 微调需要 8-10GB VRAM,可在 RTX 3080、RTX 4070 Ti 或配备 16GB 统一内存的 Apple Silicon 等消费级 GPU 上实现。模型已有的高质量对齐意味着需要更少的微调数据即可达到好的效果。

    由于 OpenChat 已经训练为产生高质量回复,在 Ertas Studio 中进行特定领域微调是用于专业化而非对齐模型。上传领域数据集,选择 OpenChat 3.5 作为基础模型,配置 LoRA 参数。推荐设置包括 LoRA rank 16-32、学习率 2e-4 和 2-3 个训练轮次。2,000-10,000 个示例的小型数据集通常可产生很好的效果。

    训练完成后,导出为 GGUF 格式通过 Ollama 或 llama.cpp 部署。OpenChat 的 7B 大小意味着生成的模型紧凑且快速——Q4_K_M 下约 4.4GB——适合部署在边缘设备、笔记本电脑和成本敏感的云实例上。GPT-3.5 级别质量与 7B 级别资源需求的结合使微调后的 OpenChat 模型极具性价比。

    Use Cases

    OpenChat 在注重成本效率的通用对话助手场景中表现卓越。其 GPT-3.5 级别的质量配合 7B 级别的资源需求,使其非常适合此前需要 API 访问专有模型的应用:面向客户的聊天机器人、内容生成工具、邮件和写作助手以及交互式帮助系统。

    该模型特别适合希望在无持续 API 费用的情况下部署对话式 AI 的初创企业和小型企业。通过 Ollama 本地运行的微调 OpenChat 模型以零边际成本提供无限推理,质量足以满足大多数对话应用。

    OpenChat 还可作为比较训练方法的强基准。C-RLFT 方法可应用于其他基础模型,研究人员在开发新的微调技术时使用 OpenChat 作为参考实现。模型可复现的训练管道和清晰的文档使其对对齐和微调策略的学术研究很有价值。

    Hardware Requirements

    OpenChat 3.5 的硬件需求与 Mistral 7B 完全相同。在 Q4_K_M 量化下约需 4.4GB 内存——可在任何配备 8GB 内存的机器、任何配备 6GB 以上 VRAM 的 GPU 和配备 8GB 统一内存的 Apple Silicon 上舒适运行。在 Q8_0 下约需 7.7GB。全精度 FP16 约需 14.5GB VRAM。

    推理性能出色:RTX 4090 上每秒 50-70 个 token,RTX 4070 上每秒 20-35 个 token,M2 Pro 上每秒 15-25 个 token。现代硬件上的 CPU 推理每秒可达 5-12 个 token,使 OpenChat 即使在没有专用 GPU 的情况下也能用于较轻工作负载。

    在 Ertas Studio 中使用 QLoRA 微调需要 8-10GB VRAM。完整 LoRA 需要 16-18GB。模型的小巧尺寸支持快速训练迭代——在单块消费级 GPU 上处理 5,000-10,000 个示例的完整微调运行预计需要 30-90 分钟。这种快速周转支持迭代开发工作流,可以多次优化数据集并重新训练。

    Supported Quantizations

    Q4_0Q4_K_MQ5_K_MQ6_KQ8_0F16

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.