大模型常用微调数据集

news2025/2/22 10:26:27

文章目录

    • 指令微调数据集
    • 人类对齐数据集

    为了增强模型的任务解决能力,大语言模型在预训练之后需要进行适应性微调,通常涉及两个主要步骤,即指令微调(有监督微调)和对齐微调。

指令微调数据集

    在预训练之后,指令微调(也称为有监督微调)是增强或激活大语言模型特定能力的重要方法之一(例如指令遵循能力)。本小节将介绍几个常用的指令微调数据集,并根据格式化指令实例的构建方法将它们分为三种主要类型,即自然语言处理任务数据集、日常对话数据集和合成数据集。

图片名称
指令微调的数据集

    在指令微调被提出前,早期的研究通过收集不同自然语言处理任务(如文本分类和摘要等)的实例,创建了有监督的多任务训练数据集。这些多任务训练数据集成为了构建指令微调数据集的重要来源之一。一般的方法是使用人工编写的任务描述来扩充原始的多任务训练数据集,从而得到可以用于指令微调的自然语言处理任务数据集。其中,P3和 FLAN是两个代表性的基于自然语言处理任务的指令微调数据集。

    P3(Public Pool of Prompts)是一个面向英文数据的指令微调数据集,由超过 270 个自然语言处理任务数据集和 2,000 多种提示整合而成(每个任务可能不止一种提示),全面涵盖多选问答、提取式问答、闭卷问答、情感分类、文本摘要、主题分类、自然语言推断等自然语言处理任务。P3 是通过 Promptsource(一个收集任务提示的众包平台)收集的,其子集被用来训练 T0 模型。

    早期的 FLAN 是通过将 62 个广泛使用的 NLP 基准数据集进行格式化得到的英语指令数据集。现在俗称的 FLAN 实际上是指 FLAN-v2,主要由四个子集 Muffin、NIV2、T0-SF 和 CoT 构成。其中,Muffin 由之前 FLAN 的 62 个任务和新加入的 26 个任务组成(包括对话数据和代码合成数据);T0-SF 则是从T0 模型的数据中抽取出来,同时确保与 Muffin 不重叠;NIV2 指的是数据集Natural-Instructions v2;而 CoT 则是为了增强模型的推理能力而加入的九种不同推理任务的组合。与此同时,FLAN-v2 对每项任务都设置了最大上限,因为在同一混合数据集中,有些任务比其他任务大得多,这可能会在采样中占主导地位,从而影响模型的训练效果。据 FLAN 论文,使用了Muffin:52%,T0-SF:15%,CoT:3%,NIV2:30% 这一混合比例,通常能够使得模型具有较好表现。

    日常对话数据集是基于真实用户对话构建的,其中查询主要是由真实用户提出的,而回复是由人类标注员回答或者语言模型所生成。主要的对话类型包括开放式生成、问答、头脑风暴和聊天。其中,三个较为常用的日常对话数据集包括ShareGPT、OpenAssistant和 Dolly。

    ShareGPT,该数据集因来源于一个开源的数据收集平台 ShareGPT 而得名。在该平台中,用户可以将自己的各种对话数据通过浏览器插件进行上传。这些对话包括来自 OpenAI ChatGPT 的用户提示和回复,语种主要为英语和其他西方语言。具体来说,查询来自于用户的真实提问或指令,回复则是 ChatGPT 对此生成的回答。

    OpenAssistant,该数据集是一个人工创建的多语言对话语料库,共有91,829条用户提示,69,614 条助手回复。OpenAssistant 共包含 35 种语言的语料,每条语料基本都附有人工标注的质量评级(例如回复的有用性、无害性等)。值得注意的是,这里所有的数据都是由用户真实提供的,与上面所提到 ShareGPT 的数据构建方式并不相同。

    Dolly,该数据集是一个英语指令数据集,由 Databricks 公司发布。Dolly 包含了 15,000 个人类生成的数据实例,旨在让大语言模型与用户进行更符合人类价值的高效交互。该数据集由 Databricks 员工标注得到,主题涉及 InstructGPT 论文中提到的 7 个领域,包括头脑风暴、分类、封闭式质量保证、生成、信息提取、开放式质量保证和总结等。

    合成数据集通常是使用大语言模型基于预定义的规则或方法进行构建的。其中,Self-Instruct-52K和 Alpaca-52K是两个具有代表性的合成数据集。

    Self-Instruct-52K 是使用 self-instruct 方法生成的英语指令数据集,共包含 52K 条指令以及 82K 个实例输入和输出。最初,由人工收集创建了 175 个种子任务,每个任务包括 1 个指令和 1 个包含输入输出的实例。然后,每次随机抽取了 8 个指令作为示例,以此提示 GPT-3 生成了新的指令,之后在这些已有指令的基础上,继续利用 GPT-3 生成实例输入及其对应的输出,从而获得了更多数据。这些新得到的指令和输入输出经过滤(去除低质量或重复数据)后会加入数据集中,并继续类似的循环。通过迭代上述过程,最终获得了 52K 条指令和 82K 个实例数据,其中每一条指令可能会用于生成多个输入输出的实例。

    Alpaca-52K 数据集同样是基于 self-instruct 方法进行构建的,它是在 Self-Instruct-52K 的 175 个种子任务上,利用 OpenAI 的 text-davinci-003模型获得了 52K 个不重复的指令,并根据指令和输入生成了输出,进而构成了完整的实例数据。与 Self-Instruct-52K 不同,这里每条指令仅对应于一个输入输出实例。此外,Alpaca-52K 在生成数据的过程中考虑到了输入的可选性,最终的数据中只有 40% 具有输入部分。也正是因此,Alpaca 也包含两种提示模板:包括输入以及不包括输入。

人类对齐数据集

    除了指令微调之外,将大语言模型与人类价值观和偏好对齐也非常重要。现有的对齐目标一般聚焦于三个方面:有用性、诚实性和无害性。本节将介绍几个代表性的对齐微调数据集,它们各自针对上述对齐目标进行了标注,包括 HH-RLHF、SHP、PKU-SafeRLHF、Stack Exchange Preferences、Sandbox Alignment Data 和 CValues。下表展示了这些数据集合的详细信息。

图片名称
全球数据圈规模

    HH-RLHF,该数据集包含两大类标注数据,分别关注于大语言模型的有用性和无害性。整个数据集共包含约 169K 个开放式对话,每个对话涉及一个众包工作者向一个智能信息助手寻求帮助、建议或请求完成任务等情景。信息助手将会为每个用户查询提供两个回复,一个回复被选择而另一个被拒绝。对于有用性相关的数据中,被认为更有用的回复将被选择;而对于无害性相关的数据中,被认为更有害的回复则将被选择。

    SHP,该数据集主要关注模型生成回复内容的有用性。该数据集共 385K 个数据实例,对于 18 个不同主题领域中问题/指令的人类偏好进行标注,涵盖了从烹饪到法律建议等各种主题。每个数据实例都是基于一个寻求帮助的 Reddit 帖子构建的,包含该帖子中的问题和帖子下两个排名较高的评论。这两个评论其中一个被 Reddit 用户认为更有用,另一个被认为不太有帮助。与 HH-RLHF不同,SHP 中的数据并非模型生成,而是人类的回复贴子。

    PKU-SafeRLHF,该数据集侧重于对回复内容的有用性和无害性进行标注。该数据集囊括了 330K 个专家注释的实例,每一个实例都包含一个问题及其对应的两个回答。其中,每个回答都配备了安全性标签,用以明确指出该回答是否安全。此外,标注者还会就这两个回答在有用性和无害性方面进行细致的比较和偏好注释。

    Stack Exchange Preferences,该数据集专注于对答案的有用性进行标注,涵盖了来自知名编程问答社区 Stack Overflow 的约 10M 个问题和答案,具有很高的实用价值。每个数据实例均包含一个具体的问题以及两个或更多的候选答案。每个候选答案都附有一个根据投票数计算得出的分数,并附带了一个表示是否被选中的标签。

    Sandbox Alignment Data,该数据集致力于运用模型自身的反馈机制来进行数据标注,而非依赖人类的直接参与。此数据集源自于一个名为 SANDBOX 的虚拟交互环境,该环境模拟了人类社交互动的场景。在这个环境中,多个大语言模型根据问题给出回复然后互相“交流”,并根据彼此的反馈来不断修正和完善自己的回复,以期达到更佳的交互效果。该数据集涵盖了 169K 个实例,每个实例均包含一个查询、多个回复选项以及由其他模型给出的相应评分。

    CValues,该数据集是一个面向中文的大模型对齐数据集,提出了安全性和责任性这两个评估标准。这个数据集包含了两种类型的提示:安全性提示和责任性提示。安全性提示共有 1,300 个,主要用于测试模型的安全性表现,这些提示的回复被人工标注为安全或不安全,但由于内容敏感,因此并未开源;责任性提示共有 800 个,这些提示由领域专家提供,并用于评估模型在特定领域内的责任性表现,专家也为这些提示的回复进行了打分。由于内容敏感,实际开放的数量有删减。除此之外,CValues 还提供对比形式的数据集,该数据集中一共有 145K 样例,每条样例包含提示、正例回复(被认为更安全更负责任的回复)和负例回复,这部分数据被完全开源。

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

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

相关文章

RobbitMQ基本消息队列的消息发送过程

RabbitMQ: One broker to queue them all | RabbitMQ RabbitMQ官网 SpringAmqp的官方地址:Spring AMQP 代码示例:对着代码看应该能看明白 publisher:消息发送者的代码示例 package cn.itcast.mq.helloworld;import com.rabbitmq.client.Channel; import com.rabb…

从技术到管理:做了项目经理之后我明白了这几件事

自从我踏入项目管理这个领域,成为了一名项目经理,我深感这个角色与之前纯粹做技术时是不同的。 一、技术与项目管理的鸿沟 我曾是一名技术人员,那时的问题明确,解决方案也相对直接。然而,当我成为项目经理后&#x…

uniapp下拉选择组件

uniapp下拉选择组件 背景实现思路代码实现配置项使用尾巴 背景 最近遇到一个这样的需求,在输入框中输入关键字,通过接口查询到结果之后,以下拉框列表形式展现供用户选择。查询了下uni-app官网和项目中使用的uv-ui库,没找到符合条…

水表智能抄表系统是什么?

水表智能抄表系统是一种现代化水资源保护专用工具,它利用先进的物联网、云计算和大数据剖析,完成了智能抄表、实时监控系统、数据分析等作用,大大提高了水务管理的效率和精确性。 1.功能特点 1.1远程控制自动抄表 传统水表抄水表方法采用人…

Fcos源码训练编译问题

训练fcos代码时出现问题 ImportError: cannot import name ‘_C’ 原因是没有对代码进行编译 运行python setup.py develop --no-deps进行代码编译 编译过程中出现报错: fcos_core/csrc/cuda/ROIAlign_cuda.cu:5:10: fatal error: THC/THC.h: No such file or dire…

Linux学习笔记7---仿STM32自建寄存器库

为了开发方便,ST 官方为 STM32F103 编写了一个叫做 stm32f10x.h 的文件,在这个文件里面定义了 STM32F103 所有外设寄存器。而有些芯片是没有这种寄存器库的,在没有的情况下要学会自己建立一个寄存器库。NXP 官方并没有为 I.MX6UL 编写类似 st…

半小时搞懂STM32面经知识——GPIO

1.GPIO 1.1 什么是GPIO? 通用输入输出端口,用于与外设进行数字信号通信。 1.2 GPIO有几种工作模式?请描述它们各自的特点和用途 输入输出各有四种 输入:浮空,上拉,下拉,模拟 输出&#xff1…

N1077B keysight 是德 光/电时钟恢复设备,参数

Keysight N1077B是一款光/电时钟恢复设备,支持115 MBd至24 GBd的数据速率范围,适用于多模和单模光信号以及电信号。该设备能够处理PAM4和NRZ两种类型的数据信号,并提供符合标准的时钟恢复功能。 型 号:N1077B/A 名 称&#xff1a…

Python自动化测试面试题 —— Selenium篇!

Selenium中有几种等待 隐形等待/智能等待 dr.implicitly_wait() 显性等待 WebDriverWait 强制等待 time.sleep() Selenium中有哪些定位方式 8种 tag 三大基本属性 id/name/class_name 链接 link text/partial link text 高级 css selector/xpath 弹框怎么处理 4种弹…

论文精读-Transformer(Attention is All You Need)

文章目录 论文精读-Transformer(Attention is All You Need)1.Transformer 整体结构2. Transformer 的输入2.1 单词 Embedding2.2 位置 Embedding 3. Self-Attention(自注意力机制)3.1 Self-Attention 结构3.2 Q, K, V 的计算3.3 Self-Attent…

Android NDK开发(一)生成指定平台的ndk及根据native接口生成jni接口

为了初步了解Android NDK开发&#xff0c;本文记录了Android Studio使用过程中的部分内容。 本专栏知识点是通过<零声教育>的音视频流媒体高级开发课程进行系统学习&#xff0c;梳理总结后写下文章&#xff0c;对音视频相关内容感兴趣的读者&#xff0c;可以点击观看课程…

Android Studio(AS)使用别人的项目与gradle包并运行项目

一、问题描述 在进行AS开发时&#xff0c;我们可能会使用到别人的项目&#xff0c;但发现别人把项目发给我们后会发现gradle项目同步失败o(≧口≦)o&#xff0c;此时计有三&#xff1a; 1.横行霸道、豪取抢夺&#xff1a;直接空降到项目人那里&#xff0c;强他的电脑占为己有…

在 Navicat 17 创建一个数据字典

即将于 5 月 13 日发布的 Navicat 17&#xff08;英文版&#xff09;添加了许多令人兴奋的新功能。其中之一就是数据字典工具。它使用一系列 GUI 指导你完成创建专业质量文档的过程&#xff0c;该文档为跨多个服务器平台的数据库中的每个数据元素提供描述。在今天的博客中&…

微信小程序开发【Coffee Shopping】(1)

1.环境准备 微信开发者工具&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 前端常用网站集合&#xff1a;http://www.wwp666.cn/ 微信小程序开发文档&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/framework/quicksta…

Prompt|Kimi高阶技巧,99%的人都不知道

大家好&#xff0c;我是无界生长。 今天分享一条咒语&#xff0c;轻松让Kimi帮你生成流程图&#xff0c;学会了的话&#xff0c;点赞收藏起来吧&#xff01; 效果展示 我们演示一下让kimi帮忙绘制 关注微信公众号“无界生长”的流程图&#xff0c;最终效果图如下所示 效果还不…

基本QinQ

拓扑图 配置 开启LLDP功能&#xff0c;查看是否能通过QinQ隧道透传 sysname AR1 # lldp enable # interface GigabitEthernet0/0/0.10dot1q termination vid 10ip address 12.1.1.1 255.255.255.0 arp broadcast enable # sysname AR2 # lldp enable # interface GigabitE…

未来办公新方式--智能体与程序完美配合

Agent AI智能体的未来 工作中&#xff0c;有时候我们就像是在不停地踩着缝纫机&#xff0c;重复地做着那些单调乏味的任务&#xff0c;不仅耗时费力&#xff0c;还特别容易出错。可是&#xff0c;咱们现在可是生活在数字化时代啊&#xff01;这时候&#xff0c;Python编程语言…

SwinIR: Image Restoration Using Swin Transformer

ICCV2021 workshophttps://github.com/JingyunLiang/SwinIR 问题引入 将swim transformer使用到图像恢复任务当中&#xff0c;因为卷积存在不能建模长距离依赖以及使用相同的卷积核来恢复不同的图像区域&#xff1b;并不是首个将transformer引入图像恢复中的方法&#xff0c;…

python 常见错误 ModuleNotFoundError: No module named ‘requests‘

我们经常会遇到类似错误 ModuleNotFoundError: No module named ‘requests‘ ModuleNotFoundError: No module named bs4 现在记录一下解决方案。 File--》Settings--》Project--》Python interpreter》点击&#xff0b; 》输入requests--》选中requests--》点击右下角inst…

Linux虚拟主机如何设置错误页面

设置一个定制的404页面对网站有多种好处。首先&#xff0c;它能够提升用户体验&#xff0c;当用户访问错误的网址或不存在的页面时&#xff0c;定制的404页面能够友好地提醒用户并给予导航或提示。其次&#xff0c;404页面可以帮助留住访问者&#xff0c;让他们在意外情况下不至…