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

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

所谓术业有专攻,比如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.mzph.cn/web/41980.shtml

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

相关文章

数据分析与挖掘实战案例-电商产品评论数据情感分析

数据分析与挖掘实战案例-电商产品评论数据情感分析 文章目录 数据分析与挖掘实战案例-电商产品评论数据情感分析1. 背景与挖掘目标2. 分析方法与过程2.1 评论预处理1. 评论去重2. 数据清洗 2.2 评论分词1. 分词、词性标注、去除停用词2. 提取含名词的评论3. 绘制词云查看分词效…

昇思25天学习打卡营第12天 | LLM原理和实践:MindNLP ChatGLM-6B StreamChat

1. MindNLP ChatGLM-6B StreamChat 本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。 ChatGLM-6B应该是国内第一个发布的可以在消费级显卡上进行推理部署的国产开源大模型,2023年3月就发布了。我在23年6月份的时候就在自己的笔记本电脑上部署测试过,当…

UI自动化测试框架:PO 模式+数据驱动(超详细)

1. PO 设计模式简介 什么是 PO 模式? PO(PageObject)设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个 Page 类,并以页面为单位来写测试用例,实现页面对象和测试用例的分离。 PO 模式的设计思想与…

Python学习中进行条件判断(if, else, elif)

条件判断是编程中必不可少的一部分,它让程序可以根据不同的条件执行不同的代码块。在Python中,主要使用if、elif和else语句来实现条件判断。 基本语法 在Python中,条件判断的基本语法如下: if condition:# 当condition为True时…

NCCL 中的一些辅助debug 知识点

1&#xff0c;调试nccl 启动kernel的方法 ncclLaunchKernel cuLaunchKernelEx ncclStrongStreamLaunchKernel cudaLaunchKernel ncclLaunchOneRank cudaLaunchKernel 在 nccl lib 中&#xff0c;不存在使用<<<grid, block,,>>> 这种类似方式启…

算法题型归类整理及同类题型解法思路总结(持续更新)

1、最优路线 通用思路 1、递归 #案例1-最优路测路线 题目描述 评估一个网络的信号质量&#xff0c;其中一个做法是将网络划分为栅格&#xff0c;然后对每个栅格的信号质量计算。 路测的时候&#xff0c;希望选择一条信号最好的路线&#xff08;彼此相连的栅格集合&#x…

12种增强Python代码的函数式编程技术

前言 什么是函数式编程&#xff1f; 一句话总结&#xff1a;函数式编程(functional programming)是一种编程范式&#xff0c;之外还有面向对象&#xff08;OOP&#xff09;、面向过程、逻辑式编程等。 函数式编程是一种高度抽象的编程范式&#xff0c;它倡导使用纯函数&#x…

Docker-11☆ Docker Compose部署RuoYi-Cloud

一、环境准备 1.安装Docker 附:Docker-02-01☆ Docker在线下载安装与配置(linux) 2.安装Docker Compose 附:Docker-10☆ Docker Compose 二、源码下载 若依官网:RuoYi 若依官方网站 鼠标放到"源码地址"上,点击"RuoYi-Cloud 微服务版"。 跳转至G…

深入理解计算机系统 CSAPP 家庭作业8.22

书本知识够你写出答案,但是如果你想验证你写的答案,就要一些额外的东西.这本书很多题目都是如此 /** mysystem.c*/ #include <stdio.h> #include "csapp.h"int mysystem(char* command) {pid_t pid;int status;if ((pid Fork()) 0) {/*这里是关键用子程序去…

新加坡工作和生活指北:工作篇

文章首发于公众号&#xff1a;Keegan小钢 一年多以前&#xff08;2022 年 8 月初&#xff09;&#xff0c;那时我过来新加坡才 4 个多月&#xff0c;就写了篇文章分享了当时在新加坡的生活和工作体验。文章得到的反响不错&#xff0c;但也反馈出了一些新的问题&#xff0c;比如…

预训练对齐:数学理论到工程实践的桥梁

在人工智能和机器学习领域&#xff0c;预训练模型的对齐是一个至关重要的概念。本篇博客源自听了一场黄民烈老师关于大模型对齐的分享&#xff0c;整理内容如下&#xff0c;供大家参考。 数学理论中的预训练对齐 数学理论上&#xff0c;预训练对齐是什么&#xff1f; 序列…

Keepalived+HAProxy 集群及虚IP切换实践

1、软件介绍 ①Keepalived keepalive是一个用c语言编写的路由软件&#xff0c;这个项目的主要目标是为Linux系统和基于Linux的基础设施提供简单而健壮的负载平衡和高可用性设施。负载均衡框架依赖于众所周知且广泛使用的Linux Virtual Server (IPVS)内核模块提供第4层负载均衡…

srs直播内网拉流带宽飙升问题记录

问题背景 srs部署在云服务器上&#xff0c;32核cpu&#xff0c;64G内存&#xff0c;带宽300M. 客户端从srs拉流&#xff0c;发现外网客户端拉流&#xff0c;cpu和带宽都正常。然而内网客户端拉流&#xff0c;拉流人数超过5人以上&#xff0c;带宽就会迅速飙升。 排查 用srs…

数学建模论文写作文档word

目录 1. 摘要写法1.1 确定题目与方法1.2 编写开头段落1.3 填写问题一1.4 重复步骤3填写其他问题1.5 编写结尾段落1.6 编写关键词 2. 问题重述2.1 问题背景2.2 问题提出 3. 问题分析4. 问题X模型的建立与求解5. 模型的分析5.1 灵敏度分析5.2 误差分析&#xff08;主要用于预测类…

Milvus lite start 及存储策略

背景 今天开始写下Milvus&#xff0c;为了方便&#xff0c;我直接使用的是 milvus-lite 版本&#xff0c;default 情况下&#xff0c;你可能不知道他到底将 db 存储到什么位置了。启动 default-server&#xff0c;看下Milvus 的start及存储逻辑 主逻辑 def start(self):sel…

【绿色版】Mysql下载、安装、配置与使用(保姆级教程)

大家都知道&#xff0c;Mysql安装版的卸载过程非常繁琐&#xff0c;而且卸载不干净会出现许多问题&#xff0c;很容易让大家陷入重装系统的窘境。基于此&#xff0c;博主今天给大家分享绿色版Mysql的安装、配置与使用。 目录 一、Mysql安装、配置与使用 1、下载解压 2、创建…

vue对axios进行请求响应封装

一、原因 像是在一些业务逻辑上&#xff0c;比如需要在请求之前展示loading效果&#xff0c;或者在登录的时候判断身份信息&#xff08;token&#xff09;等信息有没有过期&#xff0c;再者根据服务器响应回来的code码进行相应的提示信息。等等在请求之前&#xff0c;之后做的一…

ABAP注释快捷键修改(留着备用)

ABAP注释快捷键修改(留着备用) 在使用ABAP编辑器的时候&#xff0c;原有的添加代码注释和取消代码注释的快捷键未生效&#xff0c;这时我们可以考虑对注释快捷键进行修改 在事务码SE38(ABAP编辑器)屏幕右下角&#xff0c;点击【Options选项】图标 在【键盘】|【命令】输入栏中…

DWM 相关实现代码 [自用]

1. DWM 缩略图和模糊隐藏实现半透明 #include <windows.h> #include <dwmapi.h> #include <string> #pragma comment(lib, "dwmapi.lib")// 检查 UWP 窗口是否可见 bool IsUWPWindowVisible(HWND hwnd) {DWORD cloaked 0;DwmGetWindowAttribute(…

【c语言】玩转文件操作

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;C语言 目录 引言 一、文件的打开和关闭 1.流 2.标准流 3.文本文件和二进制文件 4.控制文件打开与关闭的函数 二、文件的顺序读写 三、文件的随机读写 1…