Hugging Face 合成数据生成器

Hugging Face 已推出 Synthetic Data Generator,这是一个无代码应用程序,旨在让用户通过自然语言提示使用大型语言模型(LLMs)创建自定义数据集。此工具简化了生成模拟真实世界数据的人工信息的过程,使用户能够通过扩展或增强现有数据集来克服数据限制,而无需编写代码。

核心功能和流程

Synthetic Data Generator 通过合成数据管道将用户的自定义提示转换为可用的数据集。此过程由 distilabel 框架和免费的 Hugging Face 文本生成 API 提供动力。

支持的数据集任务

该工具目前支持两种主要的数据生成类型:

  • 文本分类: 此过程涉及两个由 LLM 驱动的步骤:生成多样化的文本,然后为这些文本分配标签。例如,argilla/synthetic-text-classification-news 数据集将合成新闻文章分类为八类。
  • 聊天数据集: 这些数据集用于监督微调(SFT),使 LLMs 能够通过聊天界面进行交互。例如,argilla/synthetic-sft-customer-support-single-turn 数据集专为客户支持场景设计。

使用免费的 Hugging Face API,该工具通常每分钟为文本分类生成大约 50 个样本,为聊天数据集生成大约 20 个样本。

三步生成流程

该应用程序通过精简的工作流程引导用户从提示生成完成的数据集:

  1. 描述您的数据集: 用户提供目标和他们想要的助手类型的详细描述,包括示例用例。
  2. 配置和优化: 该工具根据描述生成一个示例数据集。用户随后可以调整系统提示和任务特定设置,通过保存和重新生成样本进行迭代,直到结果令人满意。
  3. 生成并推送: 用户定义数据集名称、组织、要生成的样本数量以及“温度”(控制生成创造力的参数)。最终输出将直接保存到 Argilla 和 Hugging Face Hub。

审查、策划和模型训练

为了确保数据质量,生成器直接与 Argilla 集成,这是一个面向 AI 工程师和领域专家的协作工具。此集成使用户能够使用语义搜索和可组合过滤器来探索和评估合成数据集。策划完成后,数据集可以导出回 Hugging Face Hub 以进行模型训练。

对于训练阶段,Hugging Face 建议使用 AutoTrain,这是一个无代码的 AI 模型创建工具。用户可以选择任务(例如,文本分类),提供数据集来源,并在 Hugging Face CPU 硬件上训练模型。

高级自定义和部署

对于技术用户,Synthetic Data Generator 提供了几个高级选项来扩展和自定义管道:

性能和精度调优

通过将工具复制为私有 Space 并修改环境变量,用户可以:

  • 更改模型: 将默认的 meta-llama/Llama-3.1-8B-Instruct 切换为其他模型,例如 meta-llama/Llama-3.1-70B-Instruct 或 OpenAI 模型(例如,通过将 BASE_URL 设置为 https://api.openai.com/v1/ 来使用 gpt-4o)。
  • 提高吞吐量:BATCH_SIZE(默认值为 5)调整为更高的值,以提高每分钟生成的样本数量,具体取决于 API 提供商的限制。
  • 私有集成: 通过配置 ARGILLA_URLARGILLA_API_KEY 连接到私有 Argilla 实例。

本地部署和开源

该工具根据 Apache 2 许可证发布,并在 GitHub 上提供。可以通过 pip install synthetic-dataset-generator 安装为 Python 包,以进行本地修改和适配。

未来路线图

Hugging Face 正积极致力于为 Synthetic Data Generator 添加新功能,包括:

  • 检索增强生成(RAG)支持。
  • 使用“LLMs 作为裁判”的自定义评估。

Sources