今天小编分享的科学经验:鹅厂造10亿虚拟人格专搞数据合成:让7B模型数学成绩打平GPT4,还能给弱智吧出题,欢迎阅读。
10 亿名 " 员工 " 生产数据合成,数量占到了世界人口的 13%。
不过这些 " 员工 " 并不是真人,而是腾讯利用网络数据制造出的虚拟人格。
用这些虚拟人格产生的合成数据,能让7B 模型的数学成绩暴增 15 分,打平了 GPT-4 Turbo。
作者观察到,只要在数据合成 prompt 中简单地加入角色信息,就可以让生成该角色视角下独特的合成数据。
于是经过研究之后,这个包含 10 亿个(准确说是 1,015,863,523 个)不同人格信息的Persona Hub应运而生。
除了前面提到的训练数据,这些人格还能设计出弱智吧风格的逻辑推理问题,也可以拿来做工具开发,甚至打造出游戏 NPC、进行社会模拟。
有网友看了表示这实在是泰裤辣,自己以前也做过这样的实验,不过只制作了一万种人格,现在这个项目真的很有趣。
还有人说,人物角色或将成为合成数据的未来。
效果如何,接下来就一起来感受下。
数学成绩暴增,还能给弱智吧提问
Persona Hub 中的这 10 亿种不同的人格,可以用来生成多种类型的文本信息。
其中也包括生成训练数据,比如用它们生成的数学文本训练大模型,可以让 7B 模型拥有和 GPT-4 Turbo 相当的数学能力。
具体来说,作者用 Persona Hub 中的不同人格生成了 107 万条数据,并用其训练了 Qwen2-7B 模型,然后在 MATH 数据集上进行了测试。
结果模型获得了 64.9% 的准确率,比原始版本提高了 15 个百分点,并与 1106、0125 两个版本的 GPT4-Turbo 打成了平手。
在生成训练数据之外,Persona Hub 也能通过模拟用户提示、创建知识文本等方式来提高模型的能力。
比如让模型猜测特定的人格,可能给的一段什么样的 prompt。
或者根据知识、技能、经历等人格设定,设计一段 Quora(美版知乎)风格的知识性文章。
这些生成的内容都能直接或间接用于模型训练和调整,从而提高模型的知识水平和任务表现。
当然除了帮助模型提高能力,也可以让 Persona Hub 当中的角色来设计问题,比如不同风格的逻辑推理题目。
△机翻,仅供参考
甚至也能用中文设计问题,还学会了弱智吧风格,能够写出腦洞大开的提问。
被赋予了人格的大模型,本质上仍然是大模型,所以大模型有的编程能力,带人设的模型也同样具有。
当然,这里的人格设定,变成了程式针对的目标,即模型设计出的程式,需要满足不同人群的需求。
更高阶地,Persona Hub 中的人格与大模型结合后,可以进行游戏 NPC 的生成。
根据 prompt 中的游戏背景设定,再结合目标人物的风格,模型合成了三个迥异的人物和他们相应的介绍。
连人物的名字都与目标人设进行了匹配,而且介绍也紧扣游戏设定。
进一步地,作者还认为,通过利用这些人格来模拟和推断真实用户的潜在需求和行为,还为用语言模型模拟现实世界创造了许多新的机会。
Persona Hub 中的 10 亿个人格,可以利用强大的语言模型在虚拟世界中维持一个组织良好的虚拟社会,构建出一个超大号的 " 斯坦福小镇 "。
那么,我们不禁要问,Persona Hub 里的这 10 亿种人格,都是怎样获得的呢?
从网络数据中挖掘人格
作者合成人格的方式主要有两种——由文本生成人格(Text-Persona)和由人格生成人格(Persona-Persona)。
用文本生成人格信息的理论基础,是作者发现具有特定专业背景和文化背景的人,在阅读和写作时会表现出独特的兴趣偏好。
操作上,作者将海量网络文本数据输入预训练语言模型,通过 prompt(如 " 谁可能会阅读 / 撰写 / 喜欢这段文本?")引导模型从每段文本中提取一个对应的人格,这里的 prompt 可以控制输出人格描述的格式,如纯文本或结构化文本。
比如作者给出的实例当中,大模型根据不同类型的文本信息,提取出了三种不同人格:
当输入的文本包含大量细节时(如教科书、学术论文等),提取出的人格描述也会更加细致和专业化。
总之,通过在海量网络文本上应用文生人格方法,可以获得数十亿乃至更多的人格,覆盖各个领網域、不同粒度的角色。
但仍然可能会遗漏一些在网络上可见度较低的角色,如儿童、乞丐、幕后工作人员等,为了补充这些角色,作者还提出了人格生人格方法。
这种方法建立在文生人格的基础之上,从其获得的人格出发,利用人际关系链,根据六度分隔理论,对每个种子角色进行最多 6 轮的关系扩展,推断并扩展出其他相关联的角色。
(六度分隔理论由哈佛大学心理学教授 Stanley Milgram 于 1967 年提出,内容是说人和任何一个陌生人之间所间隔的人不会超六个,即最多通过六个人就能认识任何一个陌生人。)
实际操作过程当中,作者会首先选择要探索的人际关系类型,将种子人格和目标关系类型输入到模型中,通过 prompt 引导模型生成对应的相关人格。
比如前面文生人格环节获得的 " 儿科护士 " 人格,就可以衍生出病人、药商、同事等相关联的人格。
这里生成的相关人格可以作为新的种子,进一步扩展人格网络,经过 6 轮迭代扩展,可以覆盖绝大多数相关角色。
不过,由于在生成新的 personas 的过程中可能会产生一些不合理、不合逻辑,或者与种子关联性不强的角色描述,所以作者还需要对这些生成的人格进行过滤。
过滤的标准包括但不限于以下几个方面:
相关性:生成结果是否与种子和目标关系类型相关?反例:儿科护士 - 宇航员
合理性:生成结果是否合理、合乎逻辑?反例:一个 5 岁的儿童患者,独自经营一家跨国公司
特异性 : 生成结果是否具有特异性,而不是过于笼统?反例:" 一个人 "
可读性:生成的描述是否清晰、易于理解?是否包含语法或拼写等错误?
过滤解决了人格描述质量的问题,但生成的人格中仍然可能存在大量相似甚至重复的描述,所以还需要对生成的人格进行去重。
在本项目中,作者使用了两种去重方法。
一是基于 MinHash 的去重,作者将每个描述转化为一组 n-grams,使用 MinHash 算法计算每段描述的 signature 并比较相似度,超过某个阈值时则认为出现了重复。
另一种是基于嵌入的去重,作者使用大模型将每个描述转化为一个嵌入向量,并计算嵌入向量之间的相似度,同样是超过某个阈值时认为出现了重复。
有了这些人格之后,还需要通过一定方式将其与 prompt 整合,才能实现提高数学能力等效果。
比如在这个场景中,作者尝试了零样本、少样本和人格增强的少样本三种方式,发现零样本创造力强但相关性差,少样本相关性提高了但创造力下降了,人格增强的少样本则在两者之间实现了较好的平衡。
目前,腾讯从这 10 亿虚拟人格中选择了 20 万个,并与它们所生成的数据一起进行了公开。
作者表示,在解决安全风险等问题之后,还会公开更多的人格和数据信息。
论文地址:
https://arxiv.org/abs/2406.20094
GitHub:
https://github.com/tencent-ailab/persona-hub