跳到主要内容
AI教程

使用 Homebrew 的引导式 AI 工作流微调文本和图像模型

了解如何安装 Homebrew、选择引导式 AI、准备数据、配置安全的微调任务、监控训练、比较结果,并将模型发布到 Hugging Face。本教程涵盖本地和租用 GPU、文本与图像 LoRA 工作流、串联的 CPT/SFT/DPO 训练阶段,以及实用的命令行技巧。

使用 Homebrew 的引导式 AI 工作流微调文本和图像模型

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/ 中,并使用与随附配置文件相同的架构。

实用建议

  1. 从明确的小目标开始。 与通用目标相比,精确的行为或视觉概念更容易评估。
  2. 预览最终训练记录。 清理和风格重写可能会改变模型看到的内容,因此请在训练前检查具有代表性的示例。
  3. 行为变化优先从 SFT 开始。 只有当项目确实需要领域预训练或偏好优化时,才使用更复杂的流程链。
  4. 与基础模型进行比较。 并排测试有助于判断训练是否带来了有价值的改进。
  5. 发布前检查许可证。 您的输出归您所有,但须遵守所使用基础模型和数据集的许可证。
  6. 保留有用的检查点。 尤其是在图像 LoRA 训练中,视觉效果最强的检查点可能不是最终检查点。
  7. 终止租用的基础设施。 下载并验证结果后,请停止并销毁云资源。

结语

Homebrew 将模型微调转变为引导式、对话式工作流,同时保留对数据、成本、安装和发布的控制。它既支持简单的 SFT 项目,也支持串联的 CPT、SFT 和 DPO 流程,以及基于检查点的 Qwen-Image LoRA 训练。首先安装命令行工具,选择能力足够的引导 AI,描述一个明确的目标,然后让 brewmaster 引导您完成每个经过确认的步骤。

如需源代码和最新文档,请访问 Homebrew GitHub 代码仓库。Homebrew 使用自己的许可证:对于个人和组织,在代码仓库所述的收入门槛以内适用 MIT 风格条款;规模更大的组织则需要商业许可证。