
Homebrew 的功能
Homebrew 是一个用于微调语言模型和图像模型的引导式智能代理。它无需你手动组装训练脚本和配置,而是让你与一位酿酒师聊天:这是一种能够引导项目从最初想法,经过数据准备、训练、测试、导出,直至发布的 AI 模型。
酿酒师可以是 Claude、OpenAI 模型、通过 OpenRouter 访问的模型、本地 Ollama 或 LM Studio 模型,或其他兼容 OpenAI 的服务器。引导方式会根据你选择的经验级别进行调整:初学者、业余爱好者、构建者或专家。
Homebrew 旨在协助完成整个工作流程:
- 将宽泛的模型想法转化为具体的训练目标。
- 检测本地硬件,或通过 SSH 准备远程 GPU 服务器。
- 选择兼容的基础模型和训练方法。
- 查找、导入、清理、预览或生成训练数据。
- 根据模型特定的指南提出超参数建议。
- 运行脱离终端的训练任务,并报告损失、进度和预计剩余时间。
- 将结果与原始基础模型进行测试比较。
- 导出适配器或合并后的模型。
- 生成模型卡片并将结果上传到 Hugging Face。
在花费资金、安装软件、向外部提供商发送数据或发布模型之前,Homebrew 会要求确认。密码、API 密钥和令牌不会经过聊天传输。
支持的训练工作流程
文本模型
Homebrew 支持列出的模型系列,包括 Qwen3、Qwen3.5 及兼容的 Qwen 架构、Qwen3.5 MoE、Llama 3.1 至 3.3、Gemma 3 和 Gemma 4。根据模型和可用硬件,训练可以使用 LoRA、QLoRA 或全量微调。
每个文本训练任务都有以下三种目标之一:
- SFT:监督微调,用于教会指令模型某种行为、风格、响应格式或工具使用模式。
- CPT:基于原始文本的持续预训练,通常用于让基础模型学习某个领域或语言。
- DPO:使用选定响应和拒绝响应进行偏好调优。
这些目标可以串联使用。常见流程包括纯 SFT、CPT 后接 SFT,以及 SFT 后接 DPO。当 LoRA 阶段串联时,Homebrew 会先将每个阶段合并到其起始权重中,再开始下一阶段。
图像模型
对于图像训练,Homebrew 支持 Qwen-Image 2.1 的 LoRA 适配器。这些适配器可用于训练风格、角色或物体。训练期间,Homebrew 可以在第零步及后续检查点使用固定种子渲染预览图像,让视觉比较更加容易。
安装 Homebrew
控制平面安装
如果训练将在租用的或远程 GPU 服务器上运行,本地计算机只需安装轻量版 Homebrew:
pip install "homebrew-ai @ git+https://github.com/empero-org/homebrew-ai"
使用以下命令启动引导式界面:
homebrew
本地 GPU 安装
如果计算机配备 NVIDIA GPU 并将在本地执行训练,请安装训练扩展:
pip install "homebrew-ai[train] @ git+https://github.com/empero-org/homebrew-ai"
你可以使用以下命令验证安装、提供商配置、Hugging Face 登录状态和硬件:
homebrew doctor
homebrew hardware
若要检查远程训练服务器,请传入其 SSH 命令:
homebrew hardware --ssh "ssh user@example-server"
配置引导 AI
首次运行时,Homebrew 会询问应由哪个 AI 充当酿酒师。随后,它会请求所需的 API 密钥,以受限权限将其存储在本地,询问你的经验级别,并创建一个项目。
可用的引导类型包括:
- Claude:README 推荐此选项,以获得最强的引导能力。
- OpenAI:使用支持工具调用的聊天模型。
- OpenRouter:通过一个 API 密钥访问多个模型。
- Ollama 或 LM Studio:在本地运行;项目建议使用至少拥有 14B 参数并支持工具调用的模型,以获得良好效果。
- 自定义:连接到兼容 OpenAI 的端点,例如 vLLM 或 llama.cpp。
稍后可通过运行以下命令更换引导模型:
homebrew setup
Homebrew 会根据引导模型调整其行为。强大的模型会获得完整工具集,而较小的本地模型会获得按阶段划分的工具和更结构化的引导。不支持原生工具调用的模型可以自动使用 Homebrew 的文本协议。
创建你的第一个微调项目
你可以在当前目录运行 homebrew 开始,也可以直接创建一个命名项目:
homebrew new my-pirate-chemist
cd my-pirate-chemist
homebrew
用普通语言描述期望的结果。例如:
a chatbot that explains chemistry like a friendly pirate
酿酒师会持续提问,直到目标足够具体。随后,它会评估硬件、推荐基础模型、讨论许可需求,并判断本地计算还是租用计算资源更合适。
按照酿造工作流程操作
1. 定义目标
说明模型预期的行为、受众、主题领域、输出风格或图像概念。具体的目标有助于酿酒师选择合适的数据和训练目标。
2. 选择计算资源
Homebrew 会检测本地硬件。如果没有可用的合适 NVIDIA GPU,它可以推荐兼容的 GPU,并提供 Runpod 和 Vast.ai 的大致价格。它不会代表你创建账户或花费资金。
租用机器后,将提供商的 SSH 命令粘贴到引导会话中。Homebrew 随后可以检查硬件、准备环境、上传数据、开始训练并获取结果。
已停止的云实例可能仍会产生存储费用。项目完成后请销毁租用的资源。
3. 选择基础模型
brewmaster 会根据目标、可用内存、计划采用的训练方法和许可要求推荐模型。它还会检查是否可以访问受限模型。
如需自行查看支持的模型,请使用:
homebrew models
homebrew models --modality text --all
homebrew models --modality image --all
4. 准备数据
训练数据可以来自 Hugging Face、本地文件、使用 brewmaster 编写的示例,或可选的合成数据生成。Homebrew 可以搜索并预览 Hugging Face 数据集,而无需先下载。
合成数据生成需要主动选择启用。它可以根据简要说明创建对话,将现有数据集改写为指定风格,或生成用于 DPO 的偏好对。工作会在每个批次完成时保存,因此取消生成任务不会丢弃已完成的批次。
clean_dataset 操作会移除空记录、重复记录或损坏记录,并创建备份。请仔细预览处理后的记录,确认它们确实能教会模型预期的行为。
5. 构建训练方案
Homebrew 的 propose_training_config 操作会根据支持的模型指南选择超参数,并根据可用 GPU 设定任务规模。训练开始前,Homebrew 会估算内存使用量、时长和成本。
6. 运行并监控训练
训练会在包含 GPU 的机器上作为脱离终端的进程运行。关闭本地终端不会停止任务。返回项目文件夹并运行 homebrew,即可继续对话。
常用的监控命令包括:
homebrew status
homebrew status JOB_ID
在交互式会话中,使用:
/status
/jobs
/watch
Homebrew 会跟踪进度、报告损失曲线和预计完成时间,并在发生故障时提供通俗易懂的说明。
7. 试用模型
训练完成后,使用提示词测试微调模型,并将其回答与基础模型的回答进行比较。这样可以发现新模型是否学会了要求的风格或行为,同时没有损害总体回答质量。
8. 导出并分享
Homebrew 可以将结果打包为适配器或合并模型。它还会生成模型卡片,涵盖训练方案、数据、许可、致谢和相关示例。上传到 Hugging Face 的内容默认设为私有。
许可检查包括 Llama 命名要求、Gemma 条款,以及非商业数据集或模型声明等注意事项。
高级文本训练:CPT、SFT 和 DPO
先使用 CPT,再使用 SFT
当模型首先需要接触原始领域数据或语言数据时,请选择 CPT。随后使用 SFT 教授模型对话行为。每个后续任务都通过 init_from 引用前一阶段。
基础模型 -> 使用原始文本进行 CPT -> 使用对话进行 SFT
使用 DPO 优化偏好
SFT 之后,DPO 可以进一步优化语气、结构或回答风格等特征。偏好对可以来自 Hugging Face、合成数据生成,或新训练的模型本身。
Homebrew 可以使用 generate_candidates 为每个提示词生成两个候选回答。你可以在终端中使用 review_candidates 选择更好的回答,也可以让引导 AI 根据评分标准评判候选回答,然后抽查其决定。
基础模型 -> SFT -> 生成候选回答对 -> 审核偏好 -> DPO
DPO 的参考对数概率只会根据该阶段的起始模型计算一次,因此无需让第二个模型持续占用 GPU 内存。这同时适用于 LoRA 和完整微调。
以可视化方式监控图像 LoRA
Qwen-Image 2.1 LoRA 任务可以在第零步生成基础模型预览,并在每个已配置的检查点生成一组新预览。提示词和随机种子保持固定,从而可以有意义地比较各个检查点。
下载的预览存储在:
runs/<job>/samples/step_NNNNNN/
请在预览提示词中包含适配器的触发词。如果较早的检查点看起来比最终检查点更好,可以让 brewmaster 打包该检查点。
如需使用并排显示的浏览器界面,请输入:
/gallery
图库在本地通过带令牌的 127.0.0.1 地址提供服务,无法从计算机外部访问。每一行代表一个检查点,每一列代表一个预览提示词。训练期间图库会刷新,支持放大图像,可以使用方向键浏览检查点,并使用 C 将结果与基础模型进行比较。
了解 ETF 数据
Homebrew 使用 Empero Trace Format(简称 ETF)作为统一的 JSON Lines 格式。ETF 可以表示聊天、系统提示词、工具架构和调用、推理、检索文档、偏好对、原始文本、补全内容和图像。
使用 ETF 命令组检查和管理文件:
homebrew etf validate dataset.jsonl
homebrew etf stats dataset.jsonl
homebrew etf convert
homebrew etf schema
完整结构请参阅项目的 ETF 文档。
实用命令和会话控制
homebrew:启动或继续当前项目。homebrew new NAME:创建项目。homebrew setup:选择或更换引导 AI。homebrew doctor:检查安装状态、AI 提供商、Hugging Face 登录状态和硬件。homebrew hardware:显示本地或远程硬件报告。homebrew models:列出支持的基础模型。homebrew status JOB:查看训练任务。
在会话中,/level 可更改解释级别,/usage 可显示使用信息,/thinking full 可展开显示 brewmaster 的可见推理过程,/thinking off 可隐藏该显示,/quit 可退出会话。
高级设置技巧
让 Homebrew 适应受限终端
Homebrew 提供了用于简化终端界面的环境变量:
HOMEBREW_AI_PLAIN_INPUT=1 homebrew
HOMEBREW_AI_SIMPLE_PROMPTS=1 homebrew
HOMEBREW_AI_THINKING=off homebrew
HOMEBREW_AI_PLAIN_INPUT 会将带边框的输入栏替换为普通提示符。HOMEBREW_AI_SIMPLE_PROMPTS 使用编号选项代替方向键菜单。HOMEBREW_AI_THINKING 接受 on、full 或 off。
控制合成数据并发数
合成数据生成支持一到十六个并行工作线程。例如:
HOMEBREW_AI_SYNTH_WORKERS=4 homebrew
请选择符合提供商速率限制和账户约束的数值。
查看项目文件
典型项目包含:
my-project/
homebrew.yaml
data/
data/_sets/<name>/
runs/<job_id>/
.homebrew/
homebrew.yaml存储决策和状态,包括目标、模型、计算资源、数据集、任务和导出结果。data/包含 ETF 数据集,以及描述来源、许可证和映射关系的清单。data/_sets/<name>/包含构建的训练集和评估集。runs/<job_id>/存储任务配置、复制的数据、状态、指标、日志和最终产物。.homebrew/包含用于继续会话的对话历史。
用户设置存储在 ~/.config/homebrew-ai/ 下。凭据保存在权限模式为 600 的 credentials.yaml 中。其他模型配置文件可以放置在 ~/.config/homebrew-ai/profiles/ 中,并使用与随附配置文件相同的架构。
实用建议
- 从明确的小目标开始。 与通用目标相比,精确的行为或视觉概念更容易评估。
- 预览最终训练记录。 清理和风格重写可能会改变模型看到的内容,因此请在训练前检查具有代表性的示例。
- 行为变化优先从 SFT 开始。 只有当项目确实需要领域预训练或偏好优化时,才使用更复杂的流程链。
- 与基础模型进行比较。 并排测试有助于判断训练是否带来了有价值的改进。
- 发布前检查许可证。 您的输出归您所有,但须遵守所使用基础模型和数据集的许可证。
- 保留有用的检查点。 尤其是在图像 LoRA 训练中,视觉效果最强的检查点可能不是最终检查点。
- 终止租用的基础设施。 下载并验证结果后,请停止并销毁云资源。
结语
Homebrew 将模型微调转变为引导式、对话式工作流,同时保留对数据、成本、安装和发布的控制。它既支持简单的 SFT 项目,也支持串联的 CPT、SFT 和 DPO 流程,以及基于检查点的 Qwen-Image LoRA 训练。首先安装命令行工具,选择能力足够的引导 AI,描述一个明确的目标,然后让 brewmaster 引导您完成每个经过确认的步骤。
如需源代码和最新文档,请访问 Homebrew GitHub 代码仓库。Homebrew 使用自己的许可证:对于个人和组织,在代码仓库所述的收入门槛以内适用 MIT 风格条款;规模更大的组织则需要商业许可证。
