【LLM之Data】Persona Hub论文阅读笔记

embedded/2024/9/24 8:20:35/

研究背景

在大语言模型(LLMs)的发展过程中,合成数据逐渐成为关键资源,特别是用于训练和增强模型能力。然而,传统的合成数据生成方式在扩展数据规模时常常面临多样性不足的问题。现有研究尝试通过实例驱动或关键点驱动的方法生成多样化数据,但这些方法在大规模生成时存在明显的局限性。因此,如何实现多样性和规模化的统一,成为合成数据生成领域的一个重大挑战。

研究目标

为解决上述问题,本文提出了一种基于“角色驱动”的合成数据生成方法,旨在通过构建一个包含10亿个角色的“Persona Hub”来从不同的视角生成多样化的数据。这些角色作为世界知识的分布式载体,能够指导LLM生成与之相匹配的多样性数据。研究目标包括展示该方法在多种场景(如数学问题、逻辑推理问题、用户指令、知识丰富文本、游戏NPC及工具开发)中的应用,并探讨其在推动LLM研究与应用中的潜在价值。

相关工作

现有的合成数据生成主要依赖于以下两种方法:
实例驱动生成:通过利用种子语料库生成新实例,例如基于种子实例进行扩展。然而,这种方法的多样性主要来源于种子语料库本身,扩展性受限,难以突破语料库的限制。
关键点驱动生成:通过预定义的全面关键点列表进行生成,如主题、概念等。这种方法也面临着在广泛领域内难以覆盖所有关键点的问题,尤其在需要跨领域生成多样化数据时效率较低。
本文提出的“角色驱动”方法,通过引入不同角色的视角来指导LLM生成数据,从而在理论上实现了大规模多样化数据生成的可能性。

方法论

角色构建

Persona Hub 的构建基于两种主要方法:
文本转角色:通过从海量的网络文本数据中推断出可能的角色。例如,根据一个科技论文的内容,可以推断出撰写或阅读该论文的角色是“神经网络研究员”。这一方法通过大语言模型对文本的理解来生成角色描述,可以细化到非常具体的职业和兴趣领域。
在这里插入图片描述
角色转角色:在生成初步角色的基础上,通过人与人之间的关系(如患者与护士、同事关系等)进一步生成关联角色。例如,一个儿童护理护士可以推导出与其相关的角色,如一名患有慢性疾病的儿童。通过多次迭代,进一步丰富角色集合。
为了保证角色的多样性,本文使用了基于MinHash和嵌入的去重技术,最终生成了约10亿个独特角色。

角色使用方式

角色驱动的数据生成方法核心在于将角色嵌入到数据生成的提示中,从而让大语言模型以该角色的视角生成特定内容。本文提出了三种生成方式:

  • 零样本生成(Zero-shot prompting):直接使用角色生成合成数据,无需任何示例。
  • 少样本生成(Few-shot prompting):提供若干示例以确保生成的数据符合预期。
  • 角色增强的少样本生成:结合角色描述和少样本提示,生成更加符合角色特征的数据。
    这种方法可以灵活应用于多种数据生成场景,具有高度的通用性和扩展性。
    在这里插入图片描述

用例

数学问题

通过引入角色(如“化学动力学研究员”或“高中数学教师”)来生成不同背景下的数学问题。
在这里插入图片描述
并通过1.07百万个生成实例微调的7B模型,在MATH基准测试集上取得了64.9%的准确率,表现优于多个开源模型,并接近GPT-4-turbo-preview的表现。

逻辑推理问题

生成不同类型的逻辑推理问题,包括空间推理、弱智吧风格的问题等。
在这里插入图片描述

指令

模拟不同类型用户的需求,生成指令以供LLM进行指令微调。
在这里插入图片描述
对更多例子感兴趣的读者可以参考通过 0-shot和角色增强的2-shot提示合成的50,000条指令

知识增强文本

利用角色生成有深度的知识文章,例如关于植物学、建筑保存的文章。
在这里插入图片描述

游戏NPC

LLM提供游戏的背景和世界构建信息,我们就可以提示LLM将角色角色中心(通常是真实世界的角色)投射到游戏世界中的角色中。这样,我们就可以显著减少在游戏设计过程中进行头脑风暴的npc所需的努力。以天涯明月刀为例:
在这里插入图片描述

工具开发

我们可以使用个人角色中心来预测用户可能需要的工具,以便我们可以预先预先构建这些工具(函数)。当实际用户发出类似的请求时,LLM可以直接调用这些预先构建的工具来返回结果,而不必每次都从头开始构建工具。
在这里插入图片描述

参考资料

  • 论文
  • 代码

http://www.ppmy.cn/embedded/101026.html

相关文章

UV LED供电为什么要选择使用恒流驱动电源

LED为何一定要恒流供电? 在讨论此议题之前,什么是电源的恒流恒压? 什么是电源的恒流恒压   恒流,就是输出电流是恒定的,但电源电流却不是固定的,标称的电压只是安全上限;恒压,就是输出电压是…

Elasticsearch用法

💥 该系列属于【SpringBoot基础】专栏,如您需查看其他SpringBoot相关文章,请您点击左边的连接 目录 一、初识elasticsearch 1. 安装Elasticsearch和Kibana 2. 倒排索引 3. IK分词器 4. 基础概念 二、索引库操作 1. Mapping映射属性 2…

神经网络模型剪枝快速指南

模型剪枝(Model Pruning)是指从深度学习神经网络模型中删除不重要的参数,以减小模型大小并实现更高效的模型推理。通常,只剪枝参数的权重,而不影响偏差。偏差的剪枝往往有更明显的缺点。 非结构化剪枝期间权重如何归零…

uni-app的示例项目--简单的登陆页面及列表页面

uni-app的示例项目--简单的登陆页面及列表页面 文章说明核心代码效果展示源码下载 文章说明 随着移动端使用占比升高,手机端的App、小程序也成了一些场景下的首选;采用uni-pp开发此类应用具有很多优势,它可以直接使用vue3进行开发&#xff0c…

设计模式篇(DesignPattern - 结构型模式)(持续更新迭代)(图片待加载)

一、适配器模式(充电器问题) 1. 简介 现实生活中的适配器例子 泰国插座用的是两孔的(欧标),可以买个多功能转换插头 (适配器) ,这样就可以使用了。 2. 基本介绍 适配器模式(Adapter Pattern)将某个类的…

洛谷p1168中位数题解

题目描述 给定一个长度为 N 的非负整数序列 A,对于前奇数项求中位数。 输入格式 第一行一个正整数 N。 第二行 N 个正整数 A1…N。 输出格式 共 ⌊(N1)/2⌋ 行,第 i 行为 A1…2i−1的中位数。 输入输出样例 输入 #1复制 7 1 3 5 7 9 11 6 输出…

LeetCode 128. 最长连续序列 ⭐️

题目描述 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出&#xf…

SmartGit-Git版本控制系统的图形化客户端

SmartGit: SmartGit是一款免费的、专业的Git版本控制系统的图形化客户端。它适用于Windows、Mac和Linux等多种操作系统,提供了直观的用户界面和丰富的功能。支持创建、克隆、推送、拉取、合并和管理Git仓库,以及强大的分支管理功能。还提供了…