baize-chatbot
Baize 是一个开源的对话模型项目,旨在让开发者在仅拥有一块 GPU 的情况下,也能快速训练出属于自己的智能聊天机器人。它主要解决了高质量对话数据稀缺以及大模型微调门槛高、资源消耗大的痛点。
Baize 的核心创新在于其独特的数据构建方式:通过让 ChatGPT“自己与自己对话”,自动生成了约 10 万条高质量的对话数据,并结合 Alpaca 数据集进行增强。在技术实现上,Baize 基于 LLaMA 架构,采用高效的 LoRA(低秩适应)微调技术,成功发布了 7B、13B 乃至 30B 参数的多个版本,甚至包含专门的医疗领域模型。这种设计大幅降低了显存需求和训练时间,使得在消费级硬件上进行大模型定制成为可能。
该项目非常适合 AI 研究人员、大模型开发者以及希望探索垂直领域对话应用的技术团队使用。无论是需要快速验证想法的研究者,还是希望构建特定场景(如医疗问答)机器人的工程师,都能利用 Baize 提供的代码和数据集轻松上手。此外,Baize 已兼容 FastChat 框架,支持便捷的命令行交互与 API 部署。需要注意的是,目前发布的模型权重和数据仅限学术研究使用,严禁商业用途。正如其名源自中国神话中通晓万物、能说人言的神兽“白泽”,Baize 致力于成为用户身边无所不知的智能对话伙伴。
使用场景
某初创医疗科技公司希望快速构建一个面向患者的智能预问诊助手,以缓解人工客服压力并收集初步病史信息。
没有 baize-chatbot 时
- 数据获取成本极高:团队难以收集到数万条高质量的医患对话数据用于训练,手动标注或爬取不仅耗时且存在隐私合规风险。
- 算力门槛难以跨越:从头训练或全量微调一个大语言模型通常需要多张高端 GPU 甚至集群资源,远超初创公司的硬件预算。
- 开发周期漫长:从数据清洗、模型选型到反复调优,整个流程往往需要数周甚至数月,无法快速响应业务上线需求。
- 领域适应性差:通用模型缺乏医疗语境理解,容易给出不专业甚至错误的建议,直接部署存在巨大的安全隐患。
使用 baize-chatbot 后
- 利用现成高质量语料:直接复用 baize-chatbot 基于 ChatGPT 自对话生成的 10 万条对话数据及 MedQuAD 医疗数据集,瞬间解决了领域数据匮乏难题。
- 单卡即可高效训练:借助其集成的 LoRA 微调技术,仅需一张消费级 GPU 就能在几小时内完成 7B 或 13B 模型的定制化训练,大幅降低硬件投入。
- 快速落地专属模型:通过简单的脚本即可将训练好的权重合并为标准格式,配合 FastChat 迅速部署出具备医疗常识的 CLI 或 API 服务,将研发周期压缩至天级。
- 专业度显著提升:模型继承了白泽(Baize)“通晓万物”的特性,在医疗垂直场景下的回答逻辑更严密、语气更拟人,有效提升了患者信任度。
baize-chatbot 让资源有限的团队也能在极低成本下,拥有具备行业深度知识的专属大模型,真正实现了大模型应用的“平民化”。
运行环境要求
- Linux
- macOS
- Windows
- 必需 NVIDIA GPU
- 推理需求:Baize-7B 需 16GB,Baize-13B 需 28GB,Baize-30B 需 67GB(非 int8 模式)
- 若使用 int8 量化可降低显存需求
- 训练需求(int8 模式):Baize-7B 需 26GB,Baize-13B 需 25GB,Baize-30B 需 42GB
- 官方推荐训练环境为 A100-80G
未说明

快速开始
[📄 论文] | [🤗 演示] | [🔧 CLI & API]
新闻
- [2023年5月23日] 我们发布了Baize v2!请查看 7B 和 13B 模型。代码即将发布!
- [2023年4月27日] Fastchat 现在支持Baize。快来试试新的 CLI和API 吧!
- [2023年4月21日] 我们现在提供了一个 脚本,可以将LoRA权重合并到标准的HF模型中,这样你就可以在所有支持HF的地方使用它了!
Baize是什么?
Baize是一个开源聊天模型,使用 LoRA 进行训练。它使用了由ChatGPT与自身对话生成的10万条对话数据。我们还利用Alpaca的数据来提升其性能。目前我们已经发布了7B、13B和30B版本的模型。更多详细信息请参阅 论文。
为什么叫Baize?
Baize(发音为By-zor;简体中文:白泽,繁体中文:白澤,日语:白沢,はくたく)是中国民间传说中的神兽,能说人话并通晓万物。这正是我们对一个聊天模型的期望。
概述
⚠️ 代码以 GPL-3.0 协议发布。所有模型权重和数据仅用于 科研用途。商业用途 严格禁止。对于任何使用我们的数据、代码或权重的行为,我们 不承担任何责任或义务。
这是Baize项目的仓库,旨在基于LLaMA构建一个聊天模型。该仓库包含:
- 来自Quora、StackOverflow和MedQuAD问题的54K/57K/47K条 对话
- 用于收集自我对话数据的代码:v1、v2
- 用于训练Baize的 代码
- 用于聊天模型演示的 代码(基于 ChuanhuChatGPT 分支)
模型发布
V1
V2
社区模型和数据
- Falcon-7B-Instruct 和 Falcon-40B-Instruct 是官方的Falcon模型,使用Baize的数据进行了微调。Falcon是由TII开发的当前最先进的开源模型。
- Fauno 是Baize的意大利版本。
- 荷兰语数据:Baize数据被翻译成荷兰语。
CLI和API
现在你可以通过 Fastchat 使用Baize,利用Fastchat提供的CLI和API功能!
首先,安装最新版本的Fastchat:
pip install git+https://github.com/huggingface/peft.git
pip install git+https://github.com/lm-sys/FastChat.git
(仅适用于v1模型):将Baize的LoRA权重合并到LLaMA中。以7B检查点为例。
# 注意,目标目录中必须包含“baize”,这样Fastchat才能识别Baize。
python3 -m fastchat.model.apply_lora --base huggyllama/llama-7b --target ./model_weights/baize-7b --lora project-baize/baize-lora-7B
现在,你可以在终端中运行CLI!更多选项和配置可以参考 这里。
# 可选:添加`--style rich`以获得更好的显示效果。
python -m fastchat.serve.cli --model-path ./model_weights/baize-7b
你也可以按照 这里的说明 使用OpenAI API或Hugging Face API来调用Baize。
演示
你可以选择在本地主机上运行,或者访问 在线演示。演示会从Hugging Face模型库中获取 LLaMA 模型和 LoRA权重,然后运行一个用户友好的Gradio界面来进行聊天。
如何在本地运行
首先,请确保你的Python版本是3.8,然后使用以下命令安装所需的软件包:
cd demo
pip install -r requirements.txt
你可以使用以下命令在本地主机上运行模型:
# 假设你已经获得了使用LLaMA的权限。以下LLaMA权重来自第三方。
base_model=huggyllama/llama-7b
lora_model=project-baize/baize-lora-7B
python app.py $base_model $lora_model
对于v2模型(已合并),只需运行:
# 假设你已经获得了使用LLaMA的权限。
base_model=project-baize/baize-v2-7b
python app.py $base_model None
GPU显存需求
| 推理(不使用int8) | |
|---|---|
| Baize-7B | 16GB |
| Baize-13B | 28GB |
| Baize-30B | 67GB |
如果你的GPU显存较小,可以通过传递8bit参数来进行推理:
python app.py $base_model $lora_model 8bit
如何复现
准备工作
- 安装依赖项
pip install -r requirements.txt
数据收集
您可以使用我们提供的已发布数据,也可以通过以下命令从 ChatGPT 收集数据:
num_process=10 # 用于收集数据的进程数
max_total_tokens=500000 # 设置要收集的最大 token 数量
api_key=xxxxxxxxxxxxxxxxx # 设置您的 OpenAI API 密钥
for ((i=0; i<$num_process; i++))
do
python collect.py $api_key $max_total_tokens $i $num_process stackoverflow &
python collect.py $api_key $max_total_tokens $i $num_process quora &
python collect.py $api_key $max_total_tokens $i $num_process medical &
done
数据收集完成后,您可以使用以下命令对数据进行预处理:
python preprocess.py stackoverflow
python preprocess.py quora
python preprocess.py medical
使用您自己的数据
如果您希望使用特定的数据集作为 ChatGPT 自我对话的种子数据,只需修改 collect.py 脚本以加载您自己的数据即可。
训练
微调代码设计为在 A100-80G GPU 上运行。finetune.py 脚本接受三个参数:基础模型大小(即 7B、13B 或 30B)、批量大小、学习率以及数据集。请注意,总批量大小固定为 64(可在此处修改),而这里的批量大小是指梯度累积之前的每台设备的批量大小。如果您使用的 GPU 显存较小,请将其设置为较小的值。
# 对于 7B 模型(大约需要 9 小时)
python finetune.py 7b 32 0.0002 alpaca,stackoverflow,quora
# 对于 13B 模型(大约需要 16 小时)
python finetune.py 13b 16 0.0001 alpaca,stackoverflow,quora
# 对于 30B 模型(大约需要 36 小时)
python finetune.py 30b 8 0.00005 alpaca,stackoverflow,quora
GPU 显存消耗
按照上述设置:
| 训练(使用 int8) | |
|---|---|
| Baize-7B | 26GB |
| Baize-13B | 25GB |
| Baize-30B | 42GB |
有问题吗?请参阅此问题。
将 LoRA 合并到 LLaMA 中
现在您可以轻松地将训练好的 LoRA 权重合并到 LLaMA 模型中,以便与所有支持标准 Hugging Face API 的工具一起使用!
以下是将 baize-lora-7B 合并到 LLaMA-7B 的示例:
python merge_lora.py \
--base huggyllama/llama-7b \
--target ~/model_weights/baize-7b \
--lora project-baize/baize-lora-7B
引用
@article{xu2023baize,
title={Baize: An Open-Source Chat Model with Parameter-Efficient Tuning on Self-Chat Data},
author={Xu, Canwen and Guo, Daya and Duan, Nan and McAuley, Julian},
journal={arXiv preprint arXiv:2304.01196},
year={2023}
}
版本历史
baize-v22023/05/23常见问题
相似工具推荐
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。