什么是合成数据?
合成数据是通过算法生成的人工数据,通常用于模拟真实世界的数据。与从真实来源收集的数据不同,合成数据是通过模型或模拟算法创建的。在机器学习领域,合成数据已经被使用了很长时间。随着大型语言模型(LLMs)的出现,越来越多地使用LLMs来生成合成数据,并使用合成数据来训练LLMs。
awesome-synthetic-datasets 项目简介
awesome-synthetic-datasets是一个GitHub开源项目,旨在整理和组织与构建合成数据集相关的资源。该项目的目标是帮助人们(包括项目创建者自己)开始构建合成数据集。因此,它主要关注实用和实践性的资源。
重要技术
Self-Instruct
Self-Instruct是一种用于生成合成指令数据的技术。它通过让语言模型自己生成指令和相应的回答来创建训练数据,从而提高模型遵循指令的能力。
生成自定义句子相似度数据集
这种技术用于创建sentence similarity任务的数据集。它可以生成具有不同相似度程度的句子对,用于训练和评估文本相似度模型。
重要数据集
TinyStories
TinyStories是一个由GPT-3.5和GPT-4生成的合成短篇故事数据集。这些故事只包含3-4岁儿童通常能理解的词汇。尽管模型规模小(总参数少于1000万)或架构简单(只有一个transformer块),但使用TinyStories训练的语言模型仍能产生流畅连贯、语法几乎完美的多段落故事,并展示推理能力。
OpenHermes-2.5
OpenHermes 2.5数据集是OpenHermes 1的延续和扩展版本。它包含100万个主要由合成生成的指令和对话样本,规模更大,多样性更强,质量更高。
Cosmopedia
Cosmopedia是由Mixtral-8x7B-Instruct-v0.1模型生成的合成教科书、博客文章、故事、帖子和WikiHow文章的数据集。它包含超过3000万个文件和250亿个token,是目前最大的开放合成数据集。
WebSight
WebSight是一个大型合成数据集,包含代表英语网站的HTML/CSS代码,每个代码都配有相应的截图。这个数据集对于训练网页设计和开发相关的AI模型非常有用。
库、代码和工具
distilabel
distilabel是一个用于合成数据和AI反馈的框架,面向需要高质量输出、完全数据所有权和整体效率的AI工程师。它支持多种LLM提供商,并包含许多常见的合成数据生成技术。
llm-swarm
llm-swarm是一个用于管理Slurm集群中可扩展开放LLM推理端点的库。它主要用于使用Slurm集群扩展合成文本生成。这个库被用来生成Cosmopedia数据集。
Domain Specific Dataset Project
这是一个用于引导创建特定领域数据集以训练模型的项目。其目标是创建一套工具,帮助用户与领域专家合作。它包括一个UI工具,用于创建专注于特定领域的合成数据集生成管道。
AutoPrompt
AutoPrompt是一个使用基于意图的提示校准进行提示调优的框架。它旨在帮助自动生成高质量、详细的提示。该框架使用迭代优化过程,构建具有挑战性的边缘案例数据集并相应地优化提示,从而减少手动提示工程的工作量并降低提示敏感性。
重要论文
在合成数据生成领域,有许多重要的研究论文。以下是一些具有重大影响的论文:
- Textbooks Are All You Need
- TinyStories: How Small Can Language Models Be and Still Speak Coherent English?
- Self-Instruct: Aligning Language Model with Self Generated Instructions
- WizardLM: Empowering Large Language Models to Follow Complex Instructions
- Improving Text Embeddings with Large Language Models
- Extensive Self-Contrast Enables Feedback-Free Language Model Alignment
- Magpie: Alignment Data Synthesis from Scratch by Prompting Aligned LLMs with Nothing
- Instruction Pre-Training: Language Models are Supervised Multitask Learners
这些论文涵盖了从小型语言模型的能力探索到大型语言模型的指令跟随能力提升,从自我指导学习到无反馈的模型对齐,以及从头开始的对齐数据合成等多个方面,为合成数据集的研究和应用提供了重要的理论基础和技术指导。
结语
合成数据集在人工智能和机器学习领域正扮演着越来越重要的角色。它们不仅可以帮助解决数据稀缺和隐私问题,还能为模型训练和评估提供更加多样和可控的数据源。awesome-synthetic-datasets项目为研究者和开发者提供了一个宝贵的资源库,汇集了该领域的最新技术、工具和研究成果。随着技术的不断进步,我们可以期待看到更多创新的合成数据生成方法和应用场景的出现,进一步推动人工智能技术的发展。