ShareGPT平替!利用苏格拉底提问模拟器更好地蒸馏ChatGPT对话能力

5fb9ff07908b4df0ba7cdc42831d5c2c.gif

©PaperWeekly 原创 · 作者 | 孔楚伊

单位 | 深圳市大数据研究院

研究方向 | 自然语言处理

b9f3ef1bd40ee84576c251f10753d78c.png

引言

基于真实用户与 ChatGPT 的互动,通过反转学习目标(从学习回复到学习提问),训练更贴近真实用户的模拟器,更好的提问质量可以激发 ChatGPT 的更大潜力。在流行的 Alpaca Eval benchmark 超过 GPT 3.5,在 MT-bench 上得分 6.33,强于 Vicuna 新版。在这两个 benchmark 都是是基于 LLaMA 2 7B 底座的 SOTA。

ChatGPT 的多轮对话能力和指令理解能力让公众更广泛地接受来这一产品,但是因其闭源,社区在努力做民主化 ChatGPT 的尝试。例如,Vicuna 通过利用真实用户和 ChatGPT 对话的 ShareGPT 数据集来快速开源大模型的对话能力,效果显著。然而,由于近期 ShareGPT 官方不再允许用户从其上爬取数据,最近的工作则(如 Baize 和 UltraLM 等)通过提示的方式让 ChatGPT 进行角色扮演,以模拟用户和助手模型,自动生成对话数据。

粗略地讲,影响训练助手模型性能的因素有两方面。一方面,用户问题的质量是可以影响模型的效果,例如 Wizard 中用户的复杂指令可以比 Alpace 指令可以更好地训练助手模型。ChatGPT 用户模拟器并不能保证可以足够激发 ChatGPT 助手模型的足够的潜力。

即使可以设计一些精细的 prompt 来让 ChatGPT 所扮演的用户模拟器提供某种类型的问题,其在提问过程中也是即兴的,难以保证 ChatGPT 所扮演的用户模拟器的提问能够达到满意的程度。并且,用户模拟器用来激发大模型能力的提问方式一定程度上是抽象,难以通过文本 prompt 来具象化。

另一方面,用于训练数据的分布是否贴近真实的使用场景同样影响训练后的助手模型能性。通过角色扮演,ChatGPT 作为用户模拟器可能不能贴切地模拟真实用户的信息需求,特别是在和 ChatGPT 这种助手模型提问时的思路。

这使得训练出的助手模型并不能和与真实用户交互时 ChatGPT 的表现一致。因此,需要构建一个用户模拟器通过建模用户的真实意图和提问思路,以此充分激发助手模型的回复能力。

777e61a52425bdfdcdda1412288bc820.png

考虑到以上两个方面,我们联想到利用苏格拉底式提问来命名我们的方法,苏格拉底式提问是老师教学生的一个经典方法,通过连续提问来充分激发学生的能力,促进学生的思考。在大模型训练的场景是,学习一个用户模拟器专门去给 ChatGPT/GPT4 助手模型连续提问,通过学习助手模型的输出来高效蒸馏一个开源模型。在苏格拉底式提问中,苏格拉底的下一轮问题可以比上一轮更复杂,更具体或者联想到更高层次,以此充分帮助学生思考并做出更好的回复。

受此启发,我们尝试将此方法迁移到用户模拟器激发 ChatGPT 更好回复的场景中。同时,为了保证拟合真实的用户信息需求和相应的分布,我们通过构建 Vicuna 的对称模型 Anuciv 作为苏格拉底模拟器。Vicuna 是学习 ShareGPT 中的助手模型,而 Anuciv 则是学习 ShareGPT 中的用户模型。通过 Anuciv,我们就可以构建任意规模的贴近真实用户-ChatGPT 对话的数据集。

香港中文大学(深圳)和深圳市大数据研究院所在的王本友教授团队,通过在高质量的人机对话数据集 ShareGPT 上,仅计算人类提问的损失来反转学习目标,基于 LLaMA 基座,全微调训练出一个名为 “Socratic(苏格拉底的信徒)”的用户模拟器(也就是上文中的 Anuciv)。随后,通过迭代调用 Socratic 与 ChatGPT 获得了高度类人的人机对话数据集 SocraticChat,并在该数据集上训练出表现优越的助手模型 PlatoLM。

abc8a0d0b4ab1d56b0be2aaf8d68fa6c.png

论文地址:

https://arxiv.org/abs/2308.11534v4

代码地址:

https://github.com/FreedomIntelligence/PlatoLM

huggingface数据集地址:

https://huggingface.co/datasets/FreedomIntelligence/SocraticChat

huggingface模型地址:

https://huggingface.co/FreedomIntelligence/PlatoLM-7B

该论文提出的模拟器训练方法,可以使用户模拟器在基于上下文背景下持续追问,与在无上下文背景下自主提问之间灵活切换,这使其不仅具有良好的迁移领域的能力,将任何单轮对话扩展成多轮形式,还能够扩展 ShareGPT 数据集的规模和多样性。

此外,他们发现,Socratic 提出的问题的复杂性可以随着多轮对话的进行循序渐进地提高,并由此激发 ChatGPT 自动 ICL 的能力,这与苏格拉底式质疑——通过提问者由浅入深地提问来启发回答者思考的过程——不谋而合:

他们认为经过人类高超的 prompting 技术微调知识丰富的 llama backbone 后的高度类人的模拟器 Socratic 可以类比为苏格拉底,模拟器与 ChatGPT 之间的对话所形成的数据集 SocraticChat 可以类比为对话录(柏拉图所记载的苏格拉底启发人类思考的对话体文集),学习 ChatGPT 的回答的助手模型 PlatoLM 可以类比为柏拉图,整个 pipeline 可以类比为苏格拉底式教学。

1ed41e7351e60c32893126eae62e77ae.png

9d605d1875e0c7ef46fe2174415c462f.png

教学方法论

基于苏格拉底式质疑的用户模拟器的教学方法论分为三步,如方法论对比图所示,他们的第一步与第三步是对称的。

9776f9e10f3d3ea22868732b32bb5d7b.png

1. 训练用户模拟器

与训练助手模型相反,他们遮蔽了用户的提问,计算其损失,修改学习目标为人类的提问,并基于 llama 基座,使用与训练助手模型对偶的提示模板,微调模型 Socratic。在切割 ShareGPT 数据集中超过 2048 最大上下文长度的多轮对话样本时,使切割后的 segments 以 gpt 开头。最终 human 和 gpt 开头的多轮对话样本的分布大致平衡,这使模拟器可以在基于上下文背景下持续追问,与在无上下文信息下自主提问之间灵活切换。

2. 合成对话SocraticChat

在推理时,他们引入了两种教学方法,分别为自由模式和种子模式的教学。对于前者,苏格拉底可以无需任何上下文作为引导,自由提出质疑;而种子模式则是指,以其他数据集的单轮对话作为种子,继续追问。

此外,他们指出,当迭代调用用户模拟器和 ChatGPT API 时,会不可避免地出现何时终止对话的问题。由于 ShareGPT 数据集的特殊性 —— 即无从判断一个对话的结束是否为一个话题的结束 —— 他们采用了硬控制的方法,换句话说,当上下文长度超过最大长度 2048 后,结束对话。

3. 训练助手模型PlatoLM

与大多数训练助手模型的方法一致,他们遮蔽了助手的回答,计算损失,并基于 llama 基座微调模型。

866aadb37a730344feb9abd5d39ff5d3.png

实验结果

为了评估该范式的优越性,他们分别根据模拟器的教学方式,对基线和消融的结果模型和各模拟器合成的数据集进行了评估。

aa3cd3605fd1393a6c08d9ddf540e75b.png

对于基线模型,首先保证使用同等数量的样本(10K)、同样的训练方式(SFT)、同样的基座模型(llama1)进行评估,结果证明:自由模式的PlatoLM在单轮 benchmark(Vicuna-Bench、Alpaca-Eval)上超越了基线模型(Vicuna、Baize、UltraLM),在多轮 benchmark——MT-Bench 的双评中超越了所有基线模型,在单评中仅次于 Vicuna(由于 MT-bench 对于分差较大的 domain 采用了惩罚机制)。人评与双评有较高的一致性。

之后,他们使用 ScoraticChat 的全部数据集,基于 llama2 进行训练,在 MT-bench 和 Alpaca-Eval benchmark 上,以更少的样本量(50K)、更短的上下文长度(2048)超越了同等规模的基线模型,最终在两个榜单的 7B 规模模型中排名第一(现在第二),在 Alpaca-Eval 榜单中,甚至打败了 GPT3.5 和一些 13B 模型(LLaMA2 Chat 13B 等)。

对于消融模型,他们以对话两端分别为人机、人人、机机的数据集的单轮对话 ShareGPT、Dolly、Evol-instruct 作为种子,引导模拟器,发现经过引导的模拟器的后续提问具有对应数据集域的特性,这证明了模拟器 Socratic 具有可迁移性。

此外,他们也发现,尽管 Evol-instruct 的种子问题为人类所提出,但经过 WizardLM 多轮的改写后,提问的类人性大大降低,因此以 Evol-instruct 引导的 PlatoLM 表现不如经过 Dolly 和 ShareGPT 引导的 PlatoLM。最后,他们指出,尽管种子模式的模拟器 Scoratic 容易受限于种子的规模,自由模式的模拟器不受该限制,但种子的规模问题可以通过 ensemble 来解决。

f08797ad7ed1599c188dfb94f07f8c21.png

对于蒸馏出来的 ScoraticChat 数据集,他们以同等规模的样本对其进行了统计,发现:ScoraticChat 相较于 Baize、UltraChat、Vicuna 在语料库层面的统计量(词库大小、平均轮数、平均 session 长度、平均 utterance 长度)上表现最好,在提问层面的统计量上,提问的复杂性、相关性(使用 ChatGPT 评估)第一,提问的类人性(使用 ChatGPT 检测器评估)与话题多样性(使用降维后的余弦相似度评估)仅低于 ShareGPT。

d88d0feeb2e6c312b3ef29ede3fa051f.png

样例参考

从例子中,用户第二个问题是第一个问题的进一步的问题,以及第三个问题也是基于前面问题的更深入的问题,类似于苏格拉底提问的风格。以第三个问题为例,它要求答题者不只是简单地列举服务,而是深入思考和评估这些服务的重要性。这样的问题鼓励答题者深入反思、评估和对比不同的服务,从而得出结论。这正是苏格拉底提问法追求的目标:通过提问促使人们深入思考和自我探索。

5b3fdc0fc496b766a755facbcda04f34.png

更多阅读

87a18d87b377e064719d1bb0ebeb417f.png

c2b977c89e26d4dfb5647377bf14569c.png

ff55faeef42f54c59f2ec585ef69a627.png

4f86a819b49266270f28ee0b7210ee18.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

b470d2cb116f60f2fa6ea5fddf6cff4c.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

d8de2f2bced7c7db24a7cb8b0aea6d91.jpeg

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

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

相关文章

【Mysql系列】从零开始学MySQL:Docker部署快速上手

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Nacos

简介 NacosEureka(注册中心)Config(配置中心) Bus(服务总线) Nacos是一个MavenSpring Boot项目。 官网:https://nacos.io/zh-cn/docs/what-is-nacos.html https://nacos.io/zh-cn/docs/quick-start.html 源码:https://github.com/alibaba/nacos/ 文档&…

【vscode】Window11环境下vscode使用Fira Code字体【教程】

【vscode】Window11环境下vscode使用Fira Code字体【教程】 文章目录 【vscode】Window11环境下vscode使用Fira Code字体【教程】1. 下载Fira Code字体2. 安装Fira Code字体3. 配置vscode4. 效果如下Reference 如果想要在Ubuntu环境下使用Fira Code字体,可以参考我的…

基于SpringBoot+Vue的旅游系统、前后端分离

博主24h在线,想要源码文档部署视频直接私聊,低价有偿! 基于SpringBootVue的旅游系统、前后端分离 开发语言:Java 数据库:MySQL 技术:SpringBoot、Vue、Mybaits Plus、ELementUI 工具:IDEA/Eci…

AI:52-基于深度学习的垃圾分类

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌本专栏包含以下学习方向: 机器学习、深度学…

DI93a HESG440355R3 通过其Achilles级认证提供网络安全

DI93a HESG440355R3 通过其Achilles级认证提供网络安全 施耐德电气宣布推出Modicon M580以太网PAC (ePAC)自动化控制器,该控制器采用开放式以太网标准,通过其Achilles级认证提供网络安全。M580 ePAC使工厂操作员能够设计、实施和运行一个积极利用开放网…

基本微信小程序的拼车自助服务小程序-网约车拼车系统

项目介绍 拼车自助服务小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与拼车自助服务小程序的设计与开发的实际需求相结合,讨论了拼车自助服务小程序的设计与开发的使用。 开发环境 开发说明:前…

hadoop进程启停管理(看这一篇就足够了!)

一、一键启停脚本 Hadoop HDFS组件内置了HDFS集群的一键启停脚本 $HADOP_HOME/sbin/start-all.sh,一键启动HDFS集群 执行原理: 在执行此脚本的机器上,启动SecondaryNameNode 读取core-site.xml内容(fs.defaultFS项),确认NameNode所在机器&…

又一大语言模型上线!一次可读35万汉字!

国内大模型创业公司,正在技术前沿创造新的记录。10 月 30 日,百川智能正式发布 Baichuan2-192K 长窗口大模型,将大语言模型(LLM)上下文窗口的长度一举提升到了 192K token。 这相当于让大模型一次处理约 35 万个汉字&…

前端埋点方式

前言: 想要了解用户在系统中所做的操作,从而得出用户在本系统中最常用的模块、在系统中停留的时间。对于了解用户的行为、分析用户的需求有很大的帮助,想实现这种需求可以通过前端埋点的方式。 埋点方式: 1.什么是埋点&#xff1f…

【移远QuecPython】EC800M物联网开发板的内置GNSS定位的恶性BUG(目前没有完全的解决方案)

【移远QuecPython】EC800M物联网开发板的内置GNSS定位的恶性BUG(目前没有完全的解决方案) GNSS配置如下: 【移远QuecPython】EC800M物联网开发板的内置GNSS定位获取(北斗、GPS和GNSS) 测试视频(包括BUG复…

如何利用AppScan扫描H5页面,进行安全测试?

前期项目组接触的都是Web安全测试,今天做安全测试的时候,有一个项目刚好有H5页面,用以前那种AppScan内置浏览器的探索方式是不行的,研究了下,可以使用外部设备进行探索。 AppScan有两种手动探索方式,一种是…