Hugging Face 发布 Synthetic Data Generator,用自然语言无代码生成数据集
Introducing the Synthetic Data Generator - Build Datasets with Natural Language
Hugging Face 团队发布 Synthetic Data Generator,这是一款无代码应用,通过三步流程用自然语言描述生成自定义合成数据集,后台由 distilabel 和免费的 Hugging Face 文本生成 API 驱动。
原文给出从提示词到数据集再到训练模型的完整流程和速率、部署选项,读者可按需复用这套无代码生成方法。
推出合成数据生成器 - 用自然语言构建数据集
发布于 2024年12月16日
David Berenstein davidberenstein1957 关注
推出 合成数据生成器,这是一个用户友好的应用程序,采用无代码方法,利用大型语言模型(LLMs)创建自定义数据集。最棒的是:简单的分步流程,让数据集创建变得非技术性且轻松,任何人都可以在几分钟内创建数据集和模型,无需任何代码。
一个简短的演示视频
什么是合成数据,为什么它有用? 合成数据是人工生成的信息,模仿真实世界的数据。它通过扩展或增强数据集来克服数据限制。
从提示到数据集再到模型
合成数据生成器接收您想要的数据描述(您的自定义提示),并使用合成数据流水线为您的用例返回数据集。在后台,这由 distilabel 和 免费的 Hugging Face 文本生成 API 提供支持,但我们无需担心这些复杂性,可以专注于使用 UI。
支持的任务
该工具目前支持文本分类和聊天数据集。这些任务将决定您生成的数据集类型,分类需要类别,而聊天数据需要对话。根据需求,我们将随着时间的推移添加评估和 RAG 等任务。
文本分类
文本分类常用于对客户评论、社交媒体帖子或新闻文章等文本进行分类。生成分类数据集依赖于我们使用 LLMs 处理的两个不同步骤。我们首先生成多样化的文本,然后为它们添加标签。一个合成文本分类数据集的好例子是 argilla/synthetic-text-classification-news,它将合成新闻文章分类为 8 个不同的类别。
聊天数据集
这类数据集可用于监督微调(SFT),这是一种让 LLM 能够处理对话数据的技术,使用户可以通过聊天界面与 LLM 交互。合成聊天数据集的一个很好的例子是 argilla/synthetic-sft-customer-support-single-turn,它展示了一个专为处理客户支持而设计的 LLM 示例。在这个例子中,客户支持主题就是合成数据生成器本身。
通常,我们每分钟可以分别生成 50 个和 20 个用于文本分类和聊天的样本。所有这些都由免费的 Hugging Face API 提供支持,但你可以通过使用自己的账户并选择自定义模型、API 提供商或生成配置来扩大规模。我们稍后会回到这一点,但让我们先深入了解基础知识。
让我们生成第一个数据集
我们将创建一个基本的聊天数据集。当你访问生成器时,你需要登录以允许该工具访问你想要为其生成数据集的组织。这将允许该工具上传生成的数据集。如果身份验证失败,你可以随时重置连接。
登录后,UI 会引导你完成一个简单的三步流程:
1. 描述你的数据集
首先提供你想要创建的数据集的描述,包括示例用例,以帮助生成器理解你的需求。确保尽可能详细地描述助手的目标和类型。当你点击“Create”按钮时,将创建一个示例数据集,你可以继续第 2 步。

2. 配置和优化
通过调整system prompt(它是根据你的描述生成的)以及调整特定于任务的设置,来优化你生成的示例数据集。这将帮助你获得你想要的具体结果。你可以通过点击“Save”按钮并重新生成示例数据集来迭代这些配置。当你对配置满意时,继续第 3 步。

3. 生成并推送
填写有关数据集名称和组织的一般信息。此外,你可以定义要生成的样本数量以及用于生成的温度。这个温度代表生成的创造力。让我们点击“Generate”按钮开始完整生成。输出将直接保存到 Argilla 和 Hugging Face Hub。
我们现在可以点击“Open in Argilla”按钮,直接深入了解我们生成的数据集。
审查数据集
即使处理合成数据,理解和查看你的数据也很重要,这就是为什么我们创建了与 Argilla 的直接集成,这是一个供 AI 工程师和领域专家构建高质量数据集的协作工具。这使你能够通过语义搜索和可组合过滤器等强大功能有效地探索和评估合成数据集。你可以在本指南中了解更多相关信息。之后,我们可以将整理好的数据集导出到 Hugging Face Hub,并继续用它微调模型。

训练模型
别担心;如今甚至无需代码也可以创建强大的 AI 模型,使用 AutoTrain 即可。要了解 AutoTrain,你可以查看其文档。在这里,我们将创建我们自己的 AutoTrain 部署,并像之前为合成数据生成器所做的那样登录。
还记得开头提到的 argilla/synthetic-text-classification-news 数据集吗?让我们训练一个能正确分类这些示例的模型。我们需要选择“文本分类”任务,并提供正确的“数据集来源”。然后,选择一个好听的项目名称并按下播放!关于费用的警告弹窗可以忽略,因为我们仍在使用免费的 Hugging Face CPU 硬件,对于这个文本分类示例来说,这已经绰绰有余了。
瞧,几分钟后,我们就有了自己的模型!剩下的就是将其部署为在线服务,或者用最少的 Python 代码将其用作文本分类流水线。
高级功能
即使你完全不懂编程也能从提示词直接得到专用模型,但有些人可能希望用更高级的技术功能来自定义和扩展他们的部署。
提升速度和准确率
你可以通过自行部署该工具并配置不同的参数或模型来提升速度和准确率。首先,你必须复制合成数据生成器。确保将其创建为私有 Space,以保证其他人无法访问。接下来,你可以更改一些环境变量的默认值。让我们来看几个场景:
- 使用不同的免费 Hugging Face 模型。你可以将
MODEL从默认值meta-llama/Llama-3.1-8B-Instruct改为其他模型,例如meta-llama/Llama-3.1-70B-Instruct。 - 使用 OpenAI 模型。你可以将
BASE_URL设置为https://api.openai.com/v1/,并将MODEL设置为gpt-4o。 - 增大批处理大小,这将每分钟生成更多样本。你可以将
BATCH_SIZE从默认值5改为更高的值,例如10。请注意,你的 API 提供商可能对每分钟请求数有限制。 - 私有 Argilla 实例。你可以将
ARGILLA_URL和ARGILLA_API_KEY设置为你的免费 Argilla 实例的 URL 和 API 密钥。
本地部署
除了在 Hugging Face Spaces 上托管该工具外,我们还以 Apache 2 许可证将其作为开源工具提供,这意味着你可以前往 GitHub,根据需要随意使用、修改和调整它。你可以通过简单的 pip install synthetic-dataset-generator 将其安装为 Python 包。创建时请确保配置正确的环境变量
自定义流水线
每个合成数据流水线都基于 distilabel,这是用于合成数据和 AI 反馈的框架。distilabel 是开源的;流水线代码的妙处在于它可共享且可复现。例如,你可以在 Hub 上的仓库中找到 argilla/synthetic-text-classification-news 数据集的流水线。此外,你还可以找到许多其他 distilabel 数据集及其流水线。
下一步是什么?
合成数据生成器已经提供了许多很酷的功能,使其对任何数据或模型爱好者都很有用。不过,我们在 GitHub 上还有一些有趣的改进方向,我们邀请你贡献代码、点个 star,也可以提 issue!我们正在做的一些事情包括:
- 检索增强生成(RAG)
- 以 LLM 作为评判者的自定义评估
本文提到的模型 1
#### argilla/synthetic-text-classification-news-autotrain-model 文本分类 • 0.1B•更新于 2024年12月11日• 10• 2
本文提到的数据集 2
argilla/synthetic-sft-customer-support-single-turn Viewer •更新于 2024年12月11日•100• 28• 8#### argilla/synthetic-text-classification-news Viewer •更新于 2024年12月11日•100• 90• 16
本文提到的 Spaces 1
运行中 136 #### AutoTrain Advanced 🚀 136 无需代码即可创建强大的 AI 模型
来自我们博客的更多文章
文本到图像数据集 argilla ## 由 🤗 社区构建的文本到图像生成开放偏好数据集 *
*
*
*
* +3 72 2024年12月9日 davidberenstein1957 等
hub spaces datasets ## Argilla 2.4:在 Hub 上轻松构建微调和评估数据集——无需代码 *
*
*
46 2024年11月4日 nataliaElv 等
社区
•
这看起来非常有趣,但当我尝试使用 UI 时,很多时候在“2. 配置你的任务”中,给定系统提示后,它会生成毫无意义的内容(见截图)。有时只需再次点击“2. 配置你的任务”的保存按钮就能解决,但即使生成的上下文和问题看起来合理,响应似乎也总是 null。
另外,每次我点击“Push to Hub”时,都会收到一个关于 Arguilla SDK 的错误(见截图)。我尝试撤销已连接应用的访问权限并重新登录,但它一直失败 :(
👍
1
1
回复
![]()
这个 Spaces 应用现在出现 404 错误了。
👍
5
5
回复
![]()
•
非常有帮助也很有趣 :) 所以基本上就是通过提示工程来生成。
回复
![]()
现在出现 404 错误了。
回复
![]()
文章作者 2025年9月19日
我们构建了这个项目的后继者。功能更强大、更具交互性:
https://github.com/huggingface/aisheets
·
![]()
每当我使用它、输入内容并按下发送时,都会弹出一个非常快速的错误屏幕,快到你甚至读不了或看不清
编辑预览
通过将图片、音频和视频拖入文本输入框、粘贴或点击此处来上传。
点击或粘贴此处以上传图片
本文提到的模型 1
#### argilla/synthetic-text-classification-news-autotrain-model 文本分类 • 0.1B•更新于 2024年12月11日• 10• 2
本文提到的数据集 2
argilla/synthetic-sft-customer-support-single-turn Viewer •更新于 2024年12月11日•100• 28• 8#### argilla/synthetic-text-classification-news Viewer •更新于 2024年12月11日•100• 90• 16
本文提到的 Spaces 1
运行中 136 #### AutoTrain Advanced 🚀 136 无需代码即可创建强大的 AI 模型
系统主题
公司
网站
来源:Hugging Face:Blog · huggingface.co


