hat-chefUnsloth 数据配方

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

Unsloth Studio 的数据配方允许您上传诸如 PDF 或 CSV 等文档,并将其转换为可用的/合成的数据集。通过图节点工作流以可视化方式创建和编辑数据集。本指南将在您深入使用 Unsloth 数据配方之前,帮助您掌握基础知识。

数据配方如何工作

数据配方遵循相同的基本流程。您打开配方页面,创建或选择一个配方,在编辑器中构建工作流,验证并运行预览,然后在输出看起来正确时运行完整数据集。添加种子数据和生成块,验证工作流,预览示例输出,然后运行完整数据集构建。Unsloth 数据配方由以下技术驱动: NVIDIA Nemo 数据设计器arrow-up-right.

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

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

  1. 打开配方页面。

  2. 创建新的配方或打开现有配方。

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

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

  5. 运行预览以快速检查示例行。

  6. 当配方准备好时运行完整数据集构建。

  7. 在图形中或在以下位置实时查看进度和输出: 执行 视图以获取更多详细信息。

  8. 在以下位置选择生成的数据集: Studio 并微调模型。

开始使用

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

circle-info

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

配方首页

如果您对工作流概念不熟悉,学习配方是最快了解种子数据、提示、表达式和验证器如何在一个工作示例中配合使用的方式。如果您已经知道想要的数据集结构,通常从空白开始会更快。

选择起始路径

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

快速构建自定义工作流

从空白开始

通过示例学习产品

从学习配方开始

继续之前的工作

打开已保存的配方

您在编辑器中构建的内容

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

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

编辑器有几个核心部分:

  • 配方头部,在这里您可以重命名配方并在以下之间切换: 编辑器执行

  • 画布,在此显示配方图

  • 块表,在此添加新块

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

  • 悬浮的 运行验证 控件

  • 需要在此处添加更多内容

配方中最常见的块是:

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

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

  • 表达式 用于基于 Jinja2 的转换,这些转换不需要调用 LLM。

  • 验证器 用于通过内置的 Python、SQL 和 Javascript/Typescript 代码检查器过滤错误生成的代码。

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

引用如何工作

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

circle-info

Jinja 表达式帮助您处理配方中已经存在的值。您可以引用嵌套字段,如 {{customer.first_name}} ,将值连接,如 {{customer.first_name}} {{customer.last_name}} 并使用如下模式添加条件逻辑: {% if condition %}...{% endif %}

编辑器中显示引用的示例

例如:

  • 名为 domain 的类别块可以被引用为 {{ domain }}

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

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

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

接下来会发生什么?

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

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

核心构建块

核心构建块
模型和 LLM 块

模型设置分为两个可用层:

  • 模型提供者 定义端点和认证

  • 模型配置 定义模型名称和推理设置

此设置适用于托管提供者、自托管端点、 vLLM , llama.cpp 或您在 Studio 外运行的任何与 OpenAI 兼容的 API。

circle-info

配方不限于单一模型。您可以添加多个 模型提供者模型配置 块,然后在不同步骤中使用不同模型,例如一个用于编码,另一个用于通用文本任务。

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

输出
最适合

LLM 文本

自由格式文本

指令、解释、对话和描述

LLM 结构化

JSON

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

LLM 代码

代码

Python、SQL、Typescript 及其他代码生成任务

LLM 评判器

评分评估

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

工具配置文件

工具配置文件块为一个或多个 LLM 块定义基于 MCP 的共享工具访问。当生成步骤需要工具时使用它们,例如通过工具查找代码文档时, Context7.

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

验证器

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

验证、预览和运行

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

按以下顺序使用执行控件:

1

验证

点击 验证 以发现配置问题。

2

预览

运行预览以检查示例行和分析

3

改进

改进提示、引用、种子设置或验证器。

反复迭代,直到您对生成的数据感到满意

4

运行完整数据集构建

最后更新于

这有帮助吗?