思路打开!腾讯造了10亿个角色,驱动数据合成!7B模型效果打爆了

news2024/9/23 1:31:29

世界由形形色色的角色构成,每个角色都拥有独特的知识、经验、兴趣、个性和职业,他们共同制造了丰富多元的知识与文化。

所谓术业有专攻,比如AI科学家专注于构建LLMs,医务工作者们共建庞大的医学知识库,数学家们则偏爱数学公式与定理推导。

LLMs中也是如此,不同的知识是由不同的人类角色创建或者使用。因此在提示中加入角色描述如“你是一个xxx的计算机科学家”会极大提高模型响应准确度。

这一思路也可以用于构建合成数据。腾讯AI lab提出了一种新颖的(基于角色驱动的数据合成方法。即只需在数据合成提示中添加角色描述,就能引导LLM朝着相应的视角生成独特的合成数据。

由于几乎任何LLM的应用场景都可以关联到特定的人格,只要构建一个全面的角色集合,就能实现大规模的全方位合成数据生成。为此作者构建了10亿个角色,创建了Persona Hub(角色仓库),里面包含“搬家公司的司机”、“化学动力学研究员”、“对音频处理感兴趣的音乐家”等多样化的角色。并在大规模数学和逻辑推理问题生成、指令生成、知识丰富的文本生成、游戏NPC以及工具(功能)开发等场景中创建丰富且多样化的合成数据:

通过对合成数据的微调,7B的模型在某些任务上甚至与gpt-4-turbo-preview的性能相当!

论文标题:
Scaling Synthetic Data Creation with 1,000,000,000 Personas

论文链接
https://arxiv.org/pdf/2406.20094

github链接
https://github.com/tencent-ailab/persona-hub

构建Persona Hub

作者提出两种可扩展的方法来从海量网络数据中生成多样化的Persona Hub:Text-to-Persona(文本到角色)和Persona-to-Persona(角色到角色)。

文本到角色

具有特定专业经验和文化背景的人在阅读和写作时往往展现出独特的兴趣。

通过分析特定文本,能够推断出可能对某段文本感兴趣或创作该文本的特定人物。鉴于网络上的文本数据极为丰富且多样,因此只需简单地提示LLM,即可从海量的网络文本中提炼出广泛的人物集合。如下图所示:

对于"attention函数描述为将查询和一组键-值对映射到输出,其中查询、键、值和输出都是向量…"这样一段文本,“一位计算机科学家”对其感兴趣的可能性较大,而更细粒度人物则可以是“专注于神经网络架构和注意力机制的机器学习研究者”。

除了通过提示指定人物描述的粒度外,输入文本的内容也会直接影响人物描述的详尽程度。如下图所示,当输入文本包含丰富的细节元素,如数学教科书的内容或关于超导的深入学术论文时,生成的人物描述往往会更加具体和细致。

角色到角色

Text-to-Persona是一种高度可扩展的方法,能够生成几乎涵盖各个领域的角色。但是,对于网络上曝光较少或不易被文本分析捕获的角色,如儿童、乞丐以及电影幕后工作人员,它可能存在局限性。为了弥补这一不足,作者提出从Text-to-Persona生成的角色中衍生出更多元化的新角色。

通过提示““谁与给定的角色关系密切?””,如下图所示,“儿科护士”可能与“患病儿童”、“医药公司代表”等有联系。

根据六度分隔理论:“你和世界上任何一个陌生人之间,最多只需要通过六个人就能建立联系”。作者对通过Text-to-Persona获取的每个角色进行六轮关系扩展,从而进一步丰富了角色库。

通过以上方式获得在获得数十亿个角色后,通过MinHash(根据角色描述的n-gram特征进行去重)与使用文本嵌入模型计算相似性两种方式去重,过滤低质量的角色描述,最后得1,015,863,523个角色。

角色驱动的数据合成

角色仓库构建完毕够,作者将人物角色融入到数据合成提示的适当位置,轻松地生成规模达亿级的多样化合成数据。为此,提出了三种角色驱动的数据合成提示方法:0-shot, few-shot and 角色增强的 few-shot提示,如下图所示:

合成数据创建示例

数学问题

数据创建

当提示LLM创建数学问题时,加入角色会让模型生成与该角色相关的问题。如下图所示:当提供语言学家的人格时,模型会生成与计算语言学相关的数学问题。

此外,添加角色并不影响提示的灵活性,仍然可以轻松地在提示中指定我们所需数学问题的焦点或难度。

数学能力评估

整个评估过程首先从Persona Hub中选取了31,090,000个角色,并借助GPT-4的0-shot提示方法,根据这些角色生成了1,090,000道全新的数学问题,全程未参考MATH等基准数据集中的实例,仅使用GPT-4为这些问题生成了答案。

测试集分为域内和域外,其中域内为从合成数据中随机抽取20,000道,域外测试集选用经典的评测集MATH。

使用剩下的1,070,000道数学问题微调Qwen2-7B,并在上述两个测试集上评估其贪心解码输出。

下表展示了域内评估结果。可以看到,借助107万个合成数学问题,微调模型Qwen2-7B实现了近80%的准确率,超越了所有开源大语言模型

另外再MATH基准上进行评测发现,合成数据微调的7B模型也取得了64.9的好成绩!并超过了超越gpt-4-turbo-preview(1106/0125)的性能! 而且文本在数据合成或训练过程中并未使用MATH数据集的任何实例,显示出该方法的优越性.

下图还展示了模型在训练不同规模合成数学问题后在MATH数据集上的性能。其性能趋势大体上与规模法则相符。

逻辑推理问题

同样基于角色驱动方法合成的典型逻辑推理问题,如下图所示:

此外,作者还展示了几个以“弱智吧”风格创建的逻辑推理问题。

所有示例都表明,只要能够清晰描述要创建的逻辑推理问题的要求,就可以使用多种角色来引导LLM生成不仅满足要求,而且与角色高度相关的多样化逻辑推理问题,连“弱智吧”风格的问题也能轻松应对。

指令生成任务

还可以利用Persona Hub模拟各种用户,理解他们对LLM的请求,从而生成多样化的指令。如下图所示。这对于提升LLM的指令遵循和对话能力非常有价值。此外甚至可以采用类似的方法,从Persona Hub中选择两个角色,让LLM扮演两个角色,模拟两个真实人之间的对话。

知识丰富文本生成

除了能够生成增强LLMs指令调优的合成指令外,也可以轻松地创建有益于预训练和后训练的丰富知识的纯文本。如下图,提示LLM使用从Persona Hub中采样的角色,撰写Quora文章。

创建游戏NPC

Persona Hub还能大量创建游戏中的NPC。将游戏的背景和世界观信息提供给LLM,LLM就能将Persona Hub中的人物(通常是现实世界中的人物)投影到游戏世界中的角色上。

比如为游戏《魔兽世界》创建游戏NPC:

《天涯明月刀》的NPC:

工具开发

使用Persona Hub来预测用户可能需要的工具,以提前构建这些工具(功能)。当真实用户提出类似请求时,LLM可以直接调用这些预构建的工具来返回结果,而无需每次都从头开始构建工具。

如下图所示,为不同角色需要的工具定义接口,然后轻松转换为代码,(例如,出租车司机需要查看交通状况),从而极大地扩展了LLM提供的服务范围。

Persona Hub的影响与挑战

Persona Hub带来的优势

范式转变:

传统上,LLM主要用于处理数据,而数据创建主要由人类完成。引入Persona Hub后,LLM不仅可以处理数据,还可以从多种角度创建新数据。虽然LLM目前尚不能完全替代人类的数据创建任务,但其能力不断进步,未来可能完全承担数据创建任务。

现实模拟:

Persona Hub可以通过10亿个角色模拟大量现实世界个体的需求和行为。这可以帮助公司预测用户反应、政府预见公众反应,并缓解在线服务中的冷启动问题。角色中心还可以用于虚拟社会的测试,为新政策和社会动态提供无风险的实验场。

全面记忆访问:

  • Persona Hub有助于全面访问LLM的知识,通过多样化的查询生成合成数据。

  • 虽然目前Persona Hub和LLM的能力有限,但随着改进,未来可能实现几乎无损地提取LLM的全面记忆。

伦理问题

训练数据的安全性:

  • Persona Hub可能会带来训练数据安全性问题,因为通过LLM合成的数据本质上是其训练数据的一种形式。

  • 大规模提取LLM的记忆可能会导致其他LLM的知识、智能和能力被复制,威胁最强大LLM的主导地位。

误导信息和假新闻:

  • 合成数据可能会加剧误导信息和假新闻的问题,多样化角色的写作风格增加了检测难度。

  • 数据污染问题可能会扭曲研究结果和公众信息。

结论

本文提出了一种新颖的角色驱动数据合成方法,并推出了Persona Hub,一个包含10亿个角色的集合,展示了其在多种场景下促进合成数据创建的潜力,可能为发掘LLM的超级智能提供一种新途径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1907708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

p11函数和递归

递归与迭代 求n的阶乘。&#xff08;不考虑溢出&#xff09; int Fac1(int n) {int i0;int ret1;for(i1;i<n;i){ret*i;}return ret; } int main(){//求n的阶乘int n0;int ret0;scanf("%d",&n);retFac1(n);printf("%d\n",ret);return 0; } int Fac…

一.2.(5)共射、共集、共基三种基本放大电路的静态及动态分析;

共什么的问题&#xff1a;共什么取决于输入输出&#xff0c;共剩下的那一极 1.基本共射放大电路 见前面章节&#xff0c;不做累述 2.基本共集放大电路 列KVL方程&#xff0c;求解 AU1&#xff0c;所以又叫射极跟随器 Ib是流入基极的电流&#xff0c;Ii是从输入交流信号源流出的…

昇思25天学习打卡营第11天|文本解码原理-以MindNLP为例

文本解码原理-以MindNLP为例 这篇主要讲讲文本生成的几个方法&#xff0c;首先介绍一下什么是自回归语言模型。 自回归语言模型 autoregressive language model&#xff0c;根据前面的词或上下文&#xff0c;生成后续的词或句子的语言模型。 有几种典型的自回归语言模型&…

python爬虫入门(三)之HTML网页结构

一、什么是HTML 1、网页的三大技术要素&#xff1a; HTML定义网页的结构和信息&#xff08;骨架血肉&#xff09;CSS定义网页的样式&#xff08;衣服&#xff09;JavaScript定义用户和网页的交互逻辑&#xff08;动作&#xff09; 2、一个最简单的HTML&#xff1a;用<>…

动态数据库设计

动态数据库设计是一种灵活的方法&#xff0c;用于构建能够适应不断变化的数据需求的数据库结构。它强调在不频繁修改数据库表结构的前提下&#xff0c;有效管理和存储多样化的数据。以下是实现动态数据库设计的一些关键技术点和策略&#xff1a; 实体-属性-值&#xff08;EAV&a…

意得辑ABSJU202优惠15%啦,新用户注册直减哦

不得不说&#xff0c;还得是意得辑&#xff0c;钱不白花&#xff0c;润色的挺好~ 第一篇SCI终于成功见刊&#xff01;&#xff01;&#xff01; 都来接accept&#xff01;&#xff01;&#xff01;谢谢accept小狗&#xff0c;接accept 求求accept小狗&#xff0c;真的想要双证毕…

OpenLayers对要素进行新增绘制、选择、修改等交互操作

1、绘制-Draw 新建一个用来绘制要素的图层&#xff1a; const vector new VectorLayer({source: new VectorSource(),style: {"fill-color": "rgba(255, 255, 255, 0.2)","stroke-color": "#ffcc33","stroke-width": 2,&q…

如何提升美国Facebook直播的整体体验?

Facebook作为全球最大的社交媒体平台之一&#xff0c;提供了直播功能&#xff0c;用户可以实时分享生活、见解和创意。许多商家通过美国Facebook直播来获取更多客户&#xff0c;但直播时可能会遇到网络卡顿的问题&#xff0c;导致观看体验不佳。本文将探讨如何解决这个问题&…

Ubuntu开源软件LibreOffice将Excel多表转PDF多目录示例

一、实现的起因&#xff1a; Windows平台下&#xff0c;常见的WPS办公自动化套件中电子表格软件&#xff0c;其中具备将Excel工作表中数据转为PDF文档表格的功能。现在进一步的需求是&#xff1a;像PDF标准的电子书那样&#xff0c;具备一本书的目录结构或章节结构&#xff0c…

[C++]入门基础(1)

Hello大家好&#xff0c;今天通过本篇文章&#xff0c;我们来初步学习C&#xff0c;C可以说是对C语言的一个升级&#xff0c;我们会一步一步的由浅入深的学习C。 目录 1.第一个C程序 2.命名空间 2.1 命名空间出现的意义 2.2 namespace的定义 2.3 命名空间的使用 3.C输入…

Spring Cloud - 代码生成器

1、代码生成器概述 Spring Cloud 并没有提供类似于 Spring Data 中的“代码生成器”&#xff0c;因为它主要提供的是分布式系统中服务发现和配置管理的一套解决方案。如果你想要为你的微服务应用生成样板代码&#xff0c;你可能需要考虑使用其他工具或者方案&#xff0c;例如 S…

基于SSM的志愿者服务平台

基于SSM的志愿者服务平台系统主要其系统包括不同的端组成&#xff0c;前端主要包括系统用户管理、新闻数据管理、变幻图管理、志愿者管理、培训视频管理、志愿者项目管理、服务时长管理、交流分享管理、志愿者表彰管理。前台主要包括网站首页、培训视频、志愿者项目、交流分享、…

【python中级】图像从笛卡尔坐标系转换为极坐标系

【python中级】图像从笛卡尔坐标系转换为极坐标系 1.背景2.生成二维图3.极坐标转换1.背景 笛卡尔坐标系就是我们常说的直角坐标系。 笛卡尔坐标系,也称为直角坐标系,是由法国数学家和哲学家勒内笛卡尔(Ren Descartes)发明的一种二维或三维坐标系统。它使用两个或三个相互垂…

李彦宏: 开源模型是智商税|马斯克: OpenAI 闭源不如叫 CloseAI

在 2024 年世界人工智能大会&#xff08;WAIC 2024&#xff09;上&#xff0c;百度创始人、董事长兼首席执行官李彦宏发表对开源模型的评价。 李彦宏认为&#xff1a;开源模型实际上是一种智商税&#xff0c;而闭源模型才是人工智能&#xff08;AI&#xff09;行业的未来。 马…

基于LangChain的RAG开发教程(二)

v1.0官方文档&#xff1a;https://python.langchain.com/v0.1/docs/get_started/introduction/ 最新文档&#xff1a;https://python.langchain.com/v0.2/docs/introduction/ LangChain是一个能够利用大语言模型&#xff08;LLM&#xff0c;Large Language Model&#xff09;能…

git恢复到之前提交的记录

项目搞崩了&#xff0c;还提交上去了怎么办&#xff1f; 那当然是恢复到之前的提交记录了&#xff0c;那怎么操作呢&#xff1f; 首先&#xff0c;到代码托管平台找到你想恢复的提交记录(在此以github为例) 获取 commit id 首先&#xff0c;通过如下图操作获取到commit id {% a…

Spring Cloud: OpenFeign 超时重试机制

超时重试是一种用于网络通信的常用策略&#xff0c;目的是在请求未能在规定时间内获得响应或响应超时的情况下&#xff0c;重新发送请求。具体来说&#xff0c;当发起请求后&#xff0c;如果在设定的时间内未能收到预期的响应&#xff0c;就会启动超时重试机制&#xff0c;重新…

徒手绘制 Android 通用进度条

拖动条&#xff08;FlexSeekBar&#xff09;&#xff0c;在Android的各个地方都非常常用&#xff0c;本文旨在自研一套通用的进度条&#xff0c;非常适合车载App使用 样式如下&#xff1a; 使用示例 <!--默认用法--> <com.max.android.ui.seekbar.FlexSeekBarandroi…

python获取文件列表按照文件修改时间进行排序,默认按照文件名时间戳排序

python获取文件列表按照文件修改时间进行排序,默认按照文件名时间戳排序 1、流程 1、获取文件绝对路径下的所有文件 2、通过os.path.getmtime获取每个文件的修改时间,并与文件组成元组,方便后续排序 3、默认按照时间戳降序,否则按照按修改时间排序文件列表(从最晚到最早)…

Linux忘记密码重置root密码、重置普通用户密码

重启看到选项按e reboot 或 init 62、移动到Linux开头的行在末尾添加 rw init/bin/bash3、按下Ctrlx引导启动 mount -o remount,rw /输入命令回车更改密码,输入新密码&#xff0c;别用小键盘&#xff0c;容易出错 passwd输入两次校验&#xff0c;出现updated successfully就…