hat-chefUnsloth 数据配方

了解如何使用 Unsloth Studio 的数据配方创建、构建和编辑数据集。

Unsloth Studio 的 Data Recipes 允许您上传 PDF 或 CSV 等文档,并将它们转换为可用的/合成的数据集。通过图节点工作流以可视化方式创建和编辑数据集。本指南将在您深入使用 Unsloth Data Recipes 之前,带您了解基础内容。

Data Recipes 的工作原理

Data Recipes 遵循相同的基本流程。您打开 recipes 页面,创建或选择一个 recipe,在编辑器中构建工作流,验证并运行预览,然后在输出看起来正确时运行完整数据集。添加种子数据和生成模块,验证工作流,预览样本输出,然后运行完整的数据集构建。Unsloth Data Recipes 的底层支持来自 NVIDIA DataDesignerarrow-up-right.

生成数据集并微调模型的示例

概览:通常的工作流应如下所示:

  1. 打开 recipes 页面。

  2. 创建一个新的 recipe 或打开一个已有的 recipe。

  3. 添加模块以定义您的数据集工作流。

  4. 点击 验证 以便及早发现配置问题。

  5. 运行预览以快速检查样本行。

  6. 当 recipe 准备好后运行完整的数据集构建。

  7. 在图形中或在 执行 视图中实时查看进度和输出以获取更多细节。

  8. Studio 中选择生成的数据集并微调模型。

入门

recipes 页面是主要入口点。Recipes 存储在浏览器本地,因此您可以稍后返回已保存的工作。从这里,您可以创建一个空白 recipe 或打开一个学习引导的 recipe。

circle-info

Recipes 可以导出和导入,因此与其他 Unsloth 用户共享工作流很方便 🎉。如果您正在尝试构建特定的数据集模式,可以在 Unsloth Discord 中询问。可能有人已经有可共享的 recipe。

Recipes 登陆页面

如果您对工作流概念不熟悉,学习 recipes 是最快的方式来查看种子数据、提示、表达式和验证器如何在一个完整示例中协同工作。如果您已经知道想要的数据集形式,从空白开始通常更快。

选择起始路径

如果您想要:
从以下选项开始:

快速构建自定义工作流

从空白开始

通过示例学习产品

从学习 Recipe 开始

继续之前的工作

打开已保存的 recipe

您在编辑器中构建的内容

编辑器是 recipe 成型的地方。您从模块面板添加模块,在对话框中进行配置,在画布上连接它们,然后验证或运行工作流。

构建产品描述工作流的示例

编辑器有几个核心部分:

  • recipe 头部,在这里您可以重命名 recipe 并在 编辑器执行

  • 画布,在此显示 recipe 图形

  • 模块面板,在此添加新模块

  • 配置对话框,在此定义提示、引用、模型别名、验证器和种子设置。

  • 浮动的 运行验证 控件

  • 需要在此添加更多内容

reciper 中最常见的模块是:

  • 种子(Seed) 用于来自 Hugging Face、本地结构化文件(或被分块为行的非结构化文档)的输入数据。

  • LLM + 模型 用于提供者、模型配置、LLM 生成模块和共享工具配置文件。

  • 表达式(Expression) 用于基于 jinja2 的变换,不需要调用 LLM。

  • 验证器(Validators) 用于使用内置的 Python、SQL 和 JavaScript/TypeScript 代码检查器过滤不良生成的代码。

  • 采样器(Samplers) 用于确定性列,例如类别和子类别。

引用的工作方式

大多数会产生数据的模块(有些例外)会成为后续模块的引用。这是 Data Recipes 的主要思想之一。您只需创建一次值,然后在提示、表达式、结构化输出和验证步骤中重复使用它。

circle-info

Jinja 表达式帮助您处理已在 recipe 中存在的值。您可以引用嵌套字段,例如 {{customer.first_name}} ,将值连接在一起,例如 {{customer.first_name}} {{customer.last_name}} 并使用诸如 {% if condition %}...{% endif %}

之类的模式添加条件逻辑。

编辑器中显示引用的示例

  • 例如: 名为 domain 的类别模块可以被引用为

  • {{ domain }}

  • 种子列可以直接用于 LLM 提示,种子数据中的列(例如 HF 数据集列、csv)

  • 结构化 LLM 输出可以为后续提示暴露字段

表达式模块可以在不再次调用模型的情况下组合早期值

接下来会发生什么?

预览运行用于快速迭代。它们在编辑器中返回样本行和分析,以便您在提交完整运行之前检查生成的数据。

完整运行会创建一个持久化的本地数据集工件。该输出随后会出现在 Studio 的本地数据集选择器中,您可以在其中再次检查并用于微调。您也可以选择将数据集发布到您的 Hugging Face 仓库。

完整运行会创建一个持久化的本地数据集工件。该输出随后会出现在 Studio 的本地数据集选择器中,您可以在其中再次检查并用于微调。您也可以选择将数据集发布到您的 Hugging Face 仓库。
核心构建模块

模型与 LLM 模块

  • 模型设置分为两个可用层: 模型提供者

  • 定义端点和认证 模型配置

定义模型名称和推理设置 该设置适用于托管提供者、自托管端点、 , llama.cpp vLLM

circle-info

或任何您在 Studio 之外运行的兼容 OpenAI 的 API。 Recipes 不局限于单一模型。您可以添加多个模型提供者 模型配置

模块,然后在不同步骤中使用不同模型,例如一个用于编码,另一个用于通用文本任务。

在模型设置之后,您可以使用四种 LLM 模块类型:
模块
输出

最适合

LLM 文本

自由格式文本

指令、解释、对话和描述

LLM 结构化

JSON

需要固定字段和可预测结构的输出

LLM 代码

代码

用于 Python、SQL、Typescript 和其他代码生成任务

LLM 评判(Judge)

评分评估

使用一个或多个用户定义的分数对输出进行评分

工具配置文件(Tool Profiles) 工具配置文件模块为一个或多个 LLM 模块定义基于 MCP 的共享工具访问。当生成步骤需要工具时使用它们,例如通过.

Context7

验证器(Validators)

左侧图片显示在工具配置文件模块对话框中添加并配置的 Context7 MCP:

验证器模块主要针对 LLM 代码模块,将生成的代码输出通过代码检查器和语法验证运行,这有助于通过过滤将错误或无效的代码行排除在最终数据集之外。内置选项覆盖 Python、SQL 和 JavaScript/TypeScript 的验证。

验证、预览和运行

一旦 recipe 工作流就绪,下一步是执行。推荐的模式是:先验证,运行预览以获取快速反馈并在执行视图中检查生成的数据,然后在您认为输出符合计划时运行完整的数据集。

1

验证

点击 验证 按第三顺序使用执行控件:

2

以便发现配置问题。

预览

3

运行预览以检查样本行和分析

微调

微调提示、引用、种子设置或验证器。

4

反复迭代,直到您对生成的数据感到满意并运行完整的数据集构建

最后更新于

这有帮助吗?