调用多个ChatGPT API相互对话,清华开源的多轮对话数据UltraChat来了

简介: 调用多个ChatGPT API相互对话,清华开源的多轮对话数据UltraChat来了


机器之心编辑部

UltraChat 解决了数据荒的一大难题。

自 ChatGPT 发布以来,这段时间对话模型的热度只增不减。当我们赞叹这些模型表现惊艳的同时,也应该猜到其背后巨大的算力和海量数据的支持。


单就数据而言,高质量的数据至关重要,为此 OpenAI 对数据和标注工作下了很大力气。有多项研究表明,ChatGPT 是比人类更加可靠的数据标注者,如果开源社区可以获得 ChatGPT 等强大语言模型的大量对话数据,就可以训练出性能更好的对话模型。这一点羊驼系列模型 ——Alpaca、Vicuna、Koala—— 已经证明过。例如,Vicuna 使用从 ShareGPT 收集的用户共享数据对 LLaMA 模型进行指令微调,就复刻了 ChatGPT 九成功力。越来越多的证据表明,数据是训练强大语言模型的第一生产力。


ShareGPT 是一个 ChatGPT 数据共享网站,用户会上传自己觉得有趣的 ChatGPT 回答。ShareGPT 上的数据是开放但琐碎的,需要研究人员自己收集整理。如果能够有一个高质量的,覆盖范围广泛的数据集,开源社区在对话模型研发方面将会事半功倍。


基于此,最近一个名为 UltraChat 的项目就系统构建了一个超高质量的对话数据集。项目作者尝试用两个独立的 ChatGPT Turbo API 进行对话,从而生成多轮对话数据。




具体而言,该项目旨在构建一个开源、大规模、多轮的基于 Turbo APIs 的对话数据,方便研究者开发具有通用对话能力的强大语言模型。此外,考虑到隐私保护等因素,该项目不会直接使用互联网上的数据作为提示。为了确保生成数据质量,研究者在生成过程中采用了两个独立的 ChatGPT Turbo API,其中一个模型扮演用户角色来生成问题或指令,另一个模型生成反馈。



如果直接使用 ChatGPT 基于一些种子对话和问题让其自由生成,容易出现话题单一、内容重复等问题,从而难以保证数据本身的多样性。为此,UltraChat 对对话数据覆盖的主题和任务类型进行了系统的分类和设计,还对用户模型和回复模型进行了细致的提示工程,它包含三个部分:


  • 关于世界的问题(Questions about the World):这部分对话来自于对现实世界中的概念、实体和对象相关的广泛询问。所涉及的主题涵盖科技、艺术、金融等多个领域。
  • 写作与创作(Writing and Creation):这部分对话数据着重于指示 AI 从头进行创作一个完整的文本材料,并在此基础上进行后续的提问或进一步指导以完善写作,撰写的材料内容类型包括文章、博客、诗歌、故事、戏剧,电子邮件等等。
  • 对于现有资料的辅助改写(Writing and Creation):该对话数据是基于现有资料生成的,指令包括但不限于改写、续写、翻译、归纳、推理等,涵盖主题同样非常多样。


这三部分数据覆盖了大部分用户对于 AI 模型的要求。同时,这三类数据也会面临着不同的挑战,为此需要不同的构造方法。


例如,第一部分的数据主要挑战在于如何在总量为几十万组对话中尽量广泛地涵盖人类社会中的常见知识,为此研究者从自动生成的主题和来源于 Wikidata 的实体两个方面进行了筛选和构造。


第二、三部分的挑战主要来自于如何模拟用户指令,并在后续对话中让用户模型的生成尽量多样化的同时又不偏离对话的最终目标(按照要求生成材料或改写材料),为此研究者对用户模型的输入提示进行了充分的设计和实验。在构造完成之后,作者还对数据进行了后处理以削弱幻觉问题。


目前,该项目已经发布了前两部分的数据,数据量为 124 万条,应该是目前开源社区内规模最大的相关数据集。内容包含在现实世界中丰富多彩的对话,最后一部分数据将在未来发布。


世界问题数据来源于 30 个具有代表性和多样性的元主题,如下图所示:



  • 基于以上元主题,该项目生成了 1100 + 子主题用于数据构建;
  • 对于每个子主题,最多生成 10 个具体问题;
  • 然后使用 Turbo API 为 10 个问题中的每一个生成新的相关问题;
  • 对于每个问题,如上所述迭代地使用两个模型生成 3~7 轮对话。


此外,该项目从维基数据中收集了最常用的 10000 个命名实体;使用 ChatGPT API 为每个实体生成 5 个元问题;对于每个元问题,生成 10 个更具体的问题和 20 个相关但一般的问题;采样 20w 个特定问题和 25w 个一般问题以及 5w 个元问题,并为每个问题生成了 3~7 轮对话。


接下来我们看一个具体的例子:



我们在 UltraChat 平台上测试了数据搜索效果。例如,输入「音乐(music)」,系统会自动搜索出 10000 组与音乐相关的 ChatGPT 对话数据,并且每组都是多轮对话



输入关键词「数学(math)」的搜索结果,有 3346 组多轮对话:


目前,UltraChat 涵盖的信息领域已经非常多,包括医疗、教育、运动、环保等多个话题。同时,笔者尝试使用开源的 LLaMa-7B 模型在 UltraChat 上进行监督的指令微调,发现仅仅训练 10000 步后就有非常可观的效果,一些例子如下:


世界知识:分别列出 10 个很好的中国和美国大学


想象问题:当时空旅行成为可能后,有什么可能的后果?


三段论:鲸鱼是鱼吗?


假设问题:证明成龙比李小龙更出色



总体来说,UltraChat 是一个高质量、范围广的 ChatGPT 对话数据集,可以和其它数据集结合,显著地提升开源对话模型的质量。目前 UltraChat 还只放出了英文版,但也会在未来放出中文版的数据。感兴趣的读者快去探索一下吧。


相关文章
|
2月前
|
JSON 安全 API
亚马逊商品列表API秘籍!轻松获取商品列表数据
亚马逊商品列表API(SP-API)提供标准化接口,支持通过关键词、分类、价格等条件搜索商品,获取ASIN、价格、销量等信息。采用OAuth 2.0认证与AWS签名,保障安全。数据以JSON格式传输,便于开发者批量获取与分析。
|
2月前
|
JSON 缓存 算法
如何通过API获取1688商品类目数据:技术实现指南
1688开放平台提供alibaba.category.get接口,支持获取全量商品类目树。RESTful架构,返回JSON数据,含类目ID、名称、层级等信息。需注册账号、创建应用并授权。请求需签名认证,QPS限10次,建议缓存更新周期≥24小时。
276 2
|
2月前
|
JSON 监控 API
小红书笔记评论API:一键获取分层评论与用户互动数据
小红书笔记评论API可获取指定笔记的评论详情,包括内容、点赞数、评论者信息等,支持分页与身份认证,返回JSON格式数据,适用于舆情监控、用户行为分析等场景。
|
2月前
|
数据采集 JSON API
微店API使用指南:高效获取商品列表数据
本文介绍如何使用Python爬虫调用微店item_search接口,根据关键词搜索商品并获取商品列表数据,涵盖请求方式、JSON数据解析、分页参数设置及筛选排序功能,适用于电商数据分析与竞品研究。
|
3月前
|
供应链 监控 安全
1688商品详情API接口实战指南:合规获取数据,驱动B2B业务增长
1688商品详情API(alibaba.product.get)是合规获取B2B商品数据的核心工具,支持全维度信息调用,助力企业实现智能选品、供应链优化与市场洞察,推动数字化转型。
|
2月前
|
JSON API 数据格式
淘宝拍立淘按图搜索API系列,json数据返回
淘宝拍立淘按图搜索API系列通过图像识别技术实现商品搜索功能,调用后返回的JSON数据包含商品标题、图片链接、价格、销量、相似度评分等核心字段,支持分页和详细商品信息展示。以下是该API接口返回的JSON数据示例及详细解析:
|
2月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
2月前
|
自然语言处理 算法 数据可视化
看球总刷比分?好奇数据哪来的?你该认识一下「体育API」了
体育API是赛事数据的“幕后搬运工”,实时同步比分、赛程、球员统计等信息,支撑各类应用提供精准推送、深度分析与互动体验,让观赛更智能高效。
406 150
|
2月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
3月前
|
JSON 前端开发 API
如何调用体育数据足篮接口API
本文介绍如何调用体育数据API:首先选择可靠服务商并注册获取密钥,接着阅读文档了解基础URL、端点、参数及请求头,然后使用Python等语言发送请求、解析JSON数据,最后将数据应用于Web、App或分析场景,同时注意密钥安全、速率限制与错误处理。
453 152