【导读】 适逢Llama 3.1模型刚刚发布,英伟达就发表了一篇技术博客,手把手教你如何好好利用这个强大的开源模型,为领域模型或RAG系统的微调生成合成数据。
Epoch AI上个月刚刚发文[预言数据墙」迫近,结果英伟达转头就甩出了340B开源巨兽Nemotron。
真实数据稀缺可能不再是问题了,Nemotron 9T token的预训练预料中,98%都是合成数据。
也许你还对合成数据存在顾虑,或者不知道如何应用LLM驱动数据生成。或许,英伟达的这篇博客可以提供答案。
原文地址:https://developer.nvidia.com/blog/creating-synthetic-data-using-llama-3-1-405b/?linkId=100000275486093
首先我们需要理解,用LLM合成数据的本质究竟是什么?
合成数据并不是「从无到有」地创造新信息,而是对现有信息进行转换,生成不同的变体。
实际上,合成数据在AI领域的应用已经有十多年的历程,比如物体检测或分类系统中曾经的数据增强技术。
那么,LLM带来了什么新变化呢?
从「需求端」来看,由于模型需要大量训练语料,合成数据的动机被大大增强。
而在「供给端」,生成式语言模型也为合成数据技术带来了质的改变。
用合成数据微调基座模型,可以更好地应用于实际场景。例如,在金融领域改进风险评估、在零售领域优化供应链、在电信领域提升客户服务,以及在医疗领域改善患者护理等等。
尤其是405B开源巨兽Llama 3.1最近正式上线,既可用于批处理和在线推理,也可以作为基座模型,进行特定领域的专门预训练或微调。
尤其是考虑到Llama 3.1有如此大的参数规模,加上丰富的15.6T token训练数据,非常适合用于数据生成。
这篇博客文章将介绍几个合成数据的生成与应用案例,并就其中一个进行深入探讨。
合成数据的生成是推动GenAI在特定领域应用的关键工作流程 将最新的Llama 3.1与英伟达Nemotron-4 340B奖励模型配合使用,非常适用于生成合成数据 要让LLM生成基于最新信息的有根据的响应,构建RAG流程十分重要,而且模型响应的准确性取决于流程的质量。LLM合成数据如何应用于GenAI
改进语言模型
要通过合成数据来微调模型,大致有两种方法——知识蒸馏(knowledge distillation)和自我改进(self-improvement)。
知识蒸馏是将大模型的能力转移到较小模型的过程,但不是简单地在同一个数据集上训练两个模型,因为较小模型很难学习到底层数据的准确表征。
在这种情况下,我们可以先让大模型完成任务,再使用这些数据指导小模型进行。
自我改进则是让同一个模型评判自己的推理过程,常被用于进一步磨练模型的能力。
让我们来看看如何实现这一目标。训练语言模型通常包括三个步骤:预训练、微调和对齐(alignment)。
预训练
预训练通常需要极其庞大的语料库,使模型了解语言的一般结构。
Llama 3.1、GPT-4这种通用LLM,一般需要互联网规模的数据。而特定领域的LLM(如几何学、放射学、电信行业等)则需要注入相关的领域信息,这个过程被称为领域自适应预训练(Domain Adaptive Pretraining,DAPT)。
除了要贴近相关领域,另一种在预训练阶段使用合成数据的例子当属Phi-1.5模型,目的是注入逻辑推理能力。
微调
掌握了语言的一般结构后,下一步就是微调,让模型更好地遵循指令、完成特定任务。
比如,要让模型提高逻辑推理能力、实现更好的代码生成和函数调用,或者提升阅读理解类任务的表现,都可以通过微调来实现。
Self-Instruct、WizardCoder、Alpaca等模型都通过创建特定领域的数据并进行微调,来定向提升模型能力。
对齐
最后,我们希望确保模型响应的风格和语气与用户期望一致,例如听起来像对话、具有适当的详细程度、复杂性、一致性等。
可以创建一个包含指令模型(instruct model)和奖励模型(reward model)的流水线来实现这个需求。
先让模型对同一问题创建多个响应,然后让奖励模型对这些相应的质量进行反馈。这种方法属于从AI反馈中进行强化学习(Reinforcement Learning from AI Feedback, RLAIF)。
改进其他模型和系统
除了改善语言模型本身,合成数据还可以应用于LLM邻接模型(LLM-adjacent model)以及LLM驱动的流水线。
最经典的例子就是检索增强生成(Retrieval Augmented Generation,RAG),先用嵌入模型来检索相关信息,再让语言模型生成最终答案。
在这个过程中,我们可以使用LLM来解析底层文档和合成数据,从而评估并微调嵌入模型。
类似于RAG,任何智能体(Agentic)流水线都可以被评估,其组件模型也可以被微调,实现方式就是用LLM驱动的智能体来构建模拟。
这些模拟还可以用于研究行为模式,此外,也可以在LLM中设定特定角色,以针对特定任务进行大规模数据生成。
使用合成数据评估RAG
为了更好地理解上述讨论,我们来思考一个基本的流程,应用于一个具体的用例——为检索过程生成评估数据。
下述流程的实现代码已经上传至GitHub。
项目地址:https://github.com/NVIDIA/NeMo-Curator/tree/main/tutorials/synthetic-retrieval-evaluation
要创建用于评估检索流程的数据,主要面临以下2个挑战:
多样性:问题不应只关注信息的单一方面或仅包含提取性问题 复杂性:生成的问题应需要一些推理或多个证据来回答我们将重点关注多样性,但为了探索复杂性角度——关键是找到具有重叠信息点的内容块。找到重叠信息的几种方法包括计算句子级语义的Jaccard相似度,并利用长上下文模型找到同一文档的不同块之间的关联。
多样性源自不同的视角,比如考虑如下文本:
对于同一篇文档,金融分析师可能对两家公司合并前后的财务状况感兴趣,法律专家可能关注公司面临的来自FTC、欧盟和其他方的法律审查,记者则希望了解事实要点。
所有这些都是有效的视角和用户角色。由于他们以不同的视角看待相同的信息,因此评估流程也需要适应这些视角。
因此,让我们设计一个评估流程,该流程以文档和用户角色作为输入,并以符合角色的语气输出问题。
图1. 三步流程的概述:生成用于评估检索过程的合成数据
如图1所示,这个评估流程有三个主要步骤。
步骤1:生成所有可能的问题
这些问题都是用户角色可能感兴趣的。
步骤2:筛选出相关的问题
从生成的问题中筛选出最相关和有价值的问题。
步骤3:引入用户角色的写作风格
将筛选出的问题转换为符合用户角色写作风格的形式。
通过这三个步骤,可以确保不同用户角色获得他们所需的信息,并以他们熟悉的方式呈现。
步骤1:生成问题
在生成问题之前,我们需要先读取文档并将其分成若干块(chunk)。
然后,让LLM从给定的文本块中,为每个用户角色提取感兴趣的点。
所谓的「用户角色」(persona),实际上就是对潜在用户的描述,比如:
由于多个用户角色可能有相似的兴趣点,因此需要使用嵌入模型来进行语义去重,从而为每个角色映射出段落中不同的相关信息。
多样性的另一个方面是问题类型。
我们需要提出各种类型的问题,如提取性、抽象性、比较性的问题,而不仅仅是简单的「如何/什么」问题。因此,下一步是根据段落中的信息,确定每个兴趣点适用的问题类型。
最后,利用文本块-兴趣点-问题类型的三元组,生成所有可能的问题。通过用户角色和问题类型,开发人员可以将生成的问题引导到用户会问的类型上。
步骤2:过滤问题
生成问题之后,下一步就是过滤并提取最有用的子集。首先,我们需要对所有生成的问题进行去重,因为不同的兴趣点可能会利用相邻的信息点,导致问题重叠。
接下来,我们使用LLM来判断问题与段落的相关性,确保这些问题能够完全通过段落中的信息回答。然后,我们将所有相关问题重写为对话语气。最后,我们会进行另一次过滤,分类并剔除那些可能过于笼统的问题。
步骤3:注入用户角色风格
在前两步中,我们创建并筛选了多样化的问题。最后一步是将用户角色的写作风格融入到问题中。
使用LLM,我们首先根据给定的用户角色描述来制定写作风格。然后,基于这些写作风格重新改写问题。
比如,可以这样描述用户角色的写作风格:
在这个三步流程结束后,我们得到了如下问题:
鉴于现行的监管框架,拟议的合并还需要遵守哪些额外的政策指令,才能获得相关部门的批准? SolarPower和GreenTech合并的哪些具体方面目前正在接受相关监管部门的审查? 如果在大笔买断之后,GreenTech的研发中心保持单飞状态,那些天才会被炒鱿鱼吗?可以看出,前两个问题很像Padma的语气,而第三个问题似乎是Aaron会问的。
这些问题各自包含了真实标签,对应特定的文本块,因此不仅限于这一个用例,可以用于评估各种检索流程。
如何学习AI大模型?
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。
总结
### 文章总结文章主要讨论了如何利用英伟达新发布的Llama 3.1模型以及Nemotron 340B奖励模型生成并应用合成数据,特别是在改进语言模型和其他AI系统中的应用。文章通过英伟达的一篇技术博客展开,强调了合成数据在解决数据稀缺问题中的重要性,并详细介绍了LLM(大型语言模型)在数据合成方面的新改变和具体应用案例。
**主要内容**:
1. **Llama 3.1与合成数据的关系**:
- Llama 3.1作为一个405B参数的强大开源模型,因其庞大的数据集(包括大量合成数据)和应用灵活性(可作为基座模型进行微调),成为数据生成的重要工具。
- 英伟达发布的博客详细介绍了如何结合Llama 3.1和Nemotron-4 340B生成合成数据,以及这些数据的潜在应用场景。
2. **合成数据的本质**:
- 合成数据并不是创造全新信息,而是通过转换现有信息生成不同的变体。这一技术在AI领域已有多年的历史,经常在物体检测、分类等系统中应用。
- 生成式语言模型(LLM)的出现大大增强了合成数据的动机和质量,特别是在需要大量训练语料的场景下。
3. **LLM在合成数据中的应用**:
- **改进语言模型**:通过知识蒸馏和自我改进两种方法微调模型,其中预训练、微调和对齐是关键步骤。
- **预训练**:使用巨型语料库,如Llama 3.1在领域适应性预训练(DAPT)中注入领域信息。
- **微调**:针对特定任务(如逻辑推理、代码生成)生成专门数据,进行模型优化。
- **对齐**:通过RLAIF(AI反馈的强化学习)调整模型响应风格。
- **改进其他模型和系统**:包括LLM邻接模型和RAG(检索增强生成)系统,通过LLM生成的合成数据评估并微调这些模型。
4. **具体案例分析:合成数据评估RAG**:
- 英伟达提供了一个用于评估检索过程的三步流程,包括生成多样化问题、过滤问题、注入用户角色风格。
- 这一过程产生的问题不仅可用于评估RAG系统,还可用于提升模型对不同用户角色的适应性,实现更准确的信息检索。
5. **学习资源分享**:
- 文章末尾还提供了一系列AI大模型学习资源,包括学习路线、报告合集、经典PDF书籍和商业化落地方案,帮助读者更深入地了解并实践AI大模型技术。
### 关键点提炼
- **Llama 3.1与合成数据**:强大基础,灵活微调,合成数据重要工具。
- **合成数据本质**:转换现有信息,优化变体。
- **LLM应用**:知识蒸馏、自我改进、预训练、微调和对齐,多方式提升语言模型。
- **其他AI系统**:应用于RAG、智能体流水线等,提升系统性能。
- **具体案例**:三步评估流程生成多元化、高质量评估数据。
- **学习资源**:包括学习路线、报告、书籍和实战案例在内的全套资源免费分享。