探索开放资源上指令微调语言模型的现状

news2024/9/20 14:40:58

人工智能咨询培训老师叶梓 转载标明出处

开放模型在经过适当的指令调整后,性能可以与最先进的专有模型相媲美。但目前缺乏全面的评估,使得跨模型比较变得困难。来自Allen Institute for AI和华盛顿大学的研究人员们进行了一项全面的研究,探索了不同公开指令数据集对语言模型性能的影响。

指令调整及其数据资源探索

在自然语言处理领域,指令微调是一种优化预训练大模型的方法,使其能够更准确地理解和响应人类以自然语言形式提出的请求。这一过程特别关注那些在请求中明确包含任务指示的情境,例如在输入提示中直接包含任务指令。指令微调是实现模型泛化至新场景、无需特定任务训练的关键步骤,同时也为非专业人士提供了与模型自然互动的可能。

指令微调的成功依赖于两大核心要素:首先,需要一个强大的预训练语言模型,该模型通过大规模网络预训练积累了丰富的知识储备;其次,需要一个多样化且具有代表性的指令数据集,以便模型能够适应各种潜在的下游应用场景。本研究围绕这两个要素展开,并对相关的开放资源进行了深入探讨。

研究中尝试收集了多种风格的数据集,这些数据集包括但不限于:由研究人员基于现有NLP数据集创建的(如SuperNI、Flan V2)、专门为指令微调目的由人类编写的(如Dolly、Open Assistant 1)、由专有模型生成的(如Self-Instruct、Unnatural Instructions、Alpaca、Baize、GPT4-Alpaca),以及包含用户共享提示和模型生成完成的(如ShareGPT3)。还有针对特定技能构建的数据集,例如CoT专注于思维链的培养,Code-Alpaca专注于代码生成。Table 1为用于指令调优的数据集的详细信息。

在本研究中,主要使用了LLaMa系列预训练模型,这些模型的参数量从6.7B到65B不等。研究初期使用了LLaMa-1模型,随后在最终版本中引入了LLaMa-2模型,后者虽然参数数量相似,但接受了更多的训练,代表了社区可用的最大、最高质量的预训练模型。研究也考虑了与LLaMa 6.7B模型大小相当的OPT和Pythia模型,以考察不同基础模型对指令微调效果的影响。

为了统一不同数据集的风格和格式,研究中将所有数据集格式化为聊天机器人风格的模式。这种格式允许将用户与语言模型之间的任意轮次交互适配到一个输入序列中,并与因果语言模型一起编码。通过添加特殊的标记来区分用户话语和助手响应,并在每个助手输出的末尾添加了文本结束标记,以确保在推理时模型能够适时停止响应。Figure 1为数据格式化的示例。

在训练过程中,损失仅在助手标记后的令牌和下一个用户标记之前计算。一个指令数据集被视为由多个包含多个轮次的元组组成,每个元组包括用户提示和期望的输出。对于大多数情况,模型被训练为给定用户提示输出相应的响应。然而,在处理对话数据集时,模型被训练为基于部分对话历史预测后续的响应。训练过程中采用了教师强制和损失掩码的技术,确保模型能够有效学习。

现有研究表明,增加指令的多样性可以有效提升指令微调的性能。基于这一动机,研究中创建了两种数据集的混合:人类数据混合物和人类+GPT数据混合物。TÜLU是在人类+GPT数据混合物上训练的LLaMa模型,旨在通过结合多种资源进一步提升指令微调的效果。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

加下方微信或评论留言,即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory。关注享粉丝福利,限时免费录播讲解。

LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

评估与结果分析

评估体系包括了对事实知识、推理能力、多语言性、编码能力、开放式指令遵循能力以及安全性的测试。

  • 事实知识:使用Massive Multitask Language Understanding数据集(MMLU)来衡量模型的事实知识。MMLU包含57个不同主题的问题,难度从基础到专业级别不等,其多项选择格式适合探测模型的知识,而不必担心生成的开放性。
  • 推理能力:使用Grade School Math数据集(GSM)的测试分割来评估模型的数学推理能力。同时采用Big-Bench-Hard(BBH),它包含23个来自Big-Bench的挑战性任务,以评估模型的一般推理能力。
  • 多语言性:使用TyDiQA,这是一个涵盖11种语言类型多样的语言的多语言问答基准,用于测试模型处理非英语文本的能力。
  • 编码能力:使用HumanEval数据集来评估模型从文档字符串生成功能正确程序的能力。为了避免与人类评估的歧义,本文中将其称为Codex-Eval。
  • 开放式指令遵循能力:评估模型处理来自真实用户的多样化和开放式请求的能力。例如,ShareGPT数据集包含了用户请求编程帮助、简历格式化技巧、教育角色扮演、发音建议、同人小说写作等多种实例。
  • 安全性:使用ToxiGen来衡量模型在被提示时产生有毒语言和仇恨言论的程度。同时采用TruthfulQA来衡量模型在提供有用信息时避免产生已知错误信息的能力。

为了评估开放式指令遵循能力,作者们采用了AlpacaEval中引入的基于模型的方法。测试集包含805条指令,这些指令来自不同的评估集,如Self-Instruct、Open Assistant、Anthropic的帮助评估、Vicuna评估和Koala评估。

使用模拟的GPT-4注释器,计算测试模型与Davinci-003产生的输出相比,由GPT-4判断的胜率。为了使分数与AlpacaEval排行榜上的分数直接可比,作者们使用了AlpacaEval的代码库和提示。

为了进一步测试开放式生成的质量,作者们进行了基于332条指令的人类评估,这些指令结合了Self-Instruct评估集和Vicuna评估集。

人类评估要求评估者基于几个维度判断模型输出的可接受性,包括输出是否孤立地可接受、是否回答了查询中的请求、是否有重大错误以及是否没有重复信息。

Table 3 展示了不同指令调整数据集对模型性能的影响。结果表明,不同的数据集在不同方面表现优异,而数据集的混合使用在平均性能上表现最佳。例如,CoT 数据集在数学推理(GSM)和编码(Code-Alpaca)任务上特别有帮助。这表明,为了在特定任务上取得成功,需要在训练集中充分代表这些任务。此外,结合多个数据集通常能够在基准测试中获得最佳的整体性能。

Table 4 展示了在Human+GPT数据混合物上训练后不同基础模型的性能。结果显示,使用LLAMA作为基础模型在所有评估设置中表现最佳,这可能是因为LLAMA在预训练时使用了更多的token。这表明,使用更大(或潜在更高质量)语料库预训练的模型更适合作为指令调整的基础模型。

作者们分析了表1中列出的指令数据集如何贡献于模型能力。他们使用评估套件评估了在这些数据集上训练的LLaMa 13B模型。Table 5 展示了TÜLU和其他训练模型与原始LLAMA模型以及最先进的专有模型在评估设置中的性能对比。结果表明,指令调整为所有大小的LLAMA模型带来了显著的好处,而较小的模型从指令调整中受益最大。

作者们比较了在Human+GPT数据混合物上训练的模型(TÜLU模型)在所有LLAMA大小上的性能。他们发现,尽管TÜLU 65B的性能令人印象深刻,但在所有评估设置中,它仍然落后于ChatGPT和GPT-4,这与之前声称使用这些开放资源训练的模型可以匹配ChatGPT的说法相矛盾。

作者们评估了模型在ToxiGen和TruthfulQA上的表现(Table 6),以衡量不同数据集可能导致生成有毒语言或错误信息的程度。他们发现,使用GPT源数据训练的模型产生的有毒生成物比GPT本身要少;TruthfulQA的性能并没有随着模型大小的增加而提高。

观察模型在AlpacaEval中的胜率发现,鼓励长而多样化生成的数据集表现最佳。例如,ShareGPT 在所有模型大小上始终表现最佳,包括在包含ShareGPT的数据混合物上训练的模型。这表明,尽管模型偏好评估很重要,但它并不能全面评估这些模型。因此,模型偏好评估应该只作为更大、更全面的评估设置的一部分。

人类评估结果与AlpacaEval和基于基准的评估大体一致:所有评估都显示65B TÜLU优于7B TÜLU,这表明使用较大的基础模型很重要,而且65B TÜLU与ChatGPT之间的性能差距仍然不小。

研究结果表明,使用强大的基础模型至关重要,结合数据集在平均性能上表现最佳,但目前最强的开放模型尚未达到ChatGPT或GPT-4的水平。

论文链接:https://arxiv.org/pdf/2306.04751

项目链接:GitHub - allenai/open-instruct 

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

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

相关文章

eNSP简单用法

建立一个简单的拓扑图 点击绿色三角开启设备 双击设备可以进行命令编辑 视图 分为三个视图&#xff1a;用户视图、系统视图、接口视图 用户视图 在默认模式下就是&#xff0c;为<huawei> 按ctrlz返回用户视图 系统视图&#xff1a; 在用户视图下输入sys切换&#…

【数据可视化】Arcgis api4.x 热力图、时间动态热力图、timeSlider时间滑块控件应用 (超详细、附免费教学数据、收藏!)

1.效果 目录 1.效果 2.安装配置 3.热力图 4.TimeSlider滑块应用 4.1 时间滑块控件 4.2 添加控件 5.时间动态热力图 2.安装配置 这里不教大家如何在前端框架使用arcgis api。不过npm安装、css如何引入、教学数据存放与图层加载的教程&#xff0c;可以浏览我之前发的一篇文…

基于DeepCFD模型和CNN/U-Net模型的流场预测

1.遇到问题 计算流体力学&#xff08;Computational fluid dynamics, CFD&#xff09;通过对Navier-Stokes方程&#xff08;简称N-S方程&#xff09;的精确求解&#xff0c;能够精准获取流体在不同状态下的物理量分布详情&#xff0c;这些物理量包括但不限于密度、压力及速度等…

Nginx从入门到入土(二): 学习内容与安装

Nginx学习内容 1.理解Nginx在实际项目中的应用场景 2.理解正向代理和反向代理 3.Nginx在Linux和Windows上的安装 4.Nginx的运行模型概念与日志管理 5.Nginx.config核心配置文件与配置HTTPS证书 6.基于Nginx解决跨域&#xff0c;实现防盗链&#xff0c;缓存&#xff0c;压…

windows C++ 并行编程-异步消息块(一)

代理库提供了多种消息块类型&#xff0c;使你能够以线程安全的方式在应用程序组件之间传播消息。 这些消息块类型通常与 concurrency::send、concurrency::asend、concurrency::receive 和 concurrency::try_receive 等各种消息传递例程配合使用。 本文包含以下各节&#xff1…

C#通过MXComponent与三菱PLC通信

1&#xff0c;MXComponent安装包与手册。 https://download.csdn.net/download/lingxiao16888/89767137 2&#xff0c;使用管理员权限打开MXComponent&#xff0c;并进行配置。 3&#xff0c;引用相应的类库。 //通信类库 ActUtlTypeLib.dll或者ActProgType.dll 注明&#x…

Excel常用函数大全

Excel常用函数介绍与示例应用 在Excel中&#xff0c;函数是进行数据处理和分析的强大工具。对于新手来说&#xff0c;掌握一些基本的函数使用方法能够大大提升工作效率。以下是一份通俗易懂、适合新手的Excel函数使用方法总结&#xff1a; 1. 求和函数&#xff08;SUM&#x…

leetcode75-9 压缩字符串 双指针原地算

题目太复杂了 没做出来 计算过程大概是双指针处理数组&#xff0c; 其中两个知识点一个是length 字符数组直接加 不用加括号 还有就是数字转字符需要转换 数字转换成字符 不能直接转换&#xff01; 需借助数字转字符串&#xff0c; 首先将数字转为字符串&#xff0c;…

C++---类与对象一

类的定义 class className{//成员字段//成员函数 };class定义类的关键字&#xff0c;className是自己决定的类名&#xff0c;{ } 为类的主体&#xff0c;花括号里是类的内容。类的内容大致分为类的成员属性&#xff08;变量&#xff09;和类的成员函数。注意定义类后面需要跟;…

SpringBoot - 基于 Java的超市进销存系统

专业团队&#xff0c;咨询就送开题报告&#xff0c;欢迎大家私信&#xff0c;留言&#xff0c;联系方式在文章底部 摘 要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;超市进销存系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xf…

【JUC】17-Synchronized锁升级

1. 锁分类 无锁->偏向锁->轻量级锁->重量级锁 synchronized属于重量级锁&#xff0c;monitor是基于底层os的mutex Lock实现了&#xff0c;挂起线程和恢复线程都需要内核态完成&#xff0c;都需要切换CPU状态来完成。 Monitor与对象以及线程如何关联&#xff1f;  1…

OV-DINO:统一开放词汇检测与语言感知选择性融合

文章目录 摘要1、引言2、相关工作3、方法3.1、概述3.2、统一数据集成3.3、语言感知选择性融合3.4、以检测为中心的预训练 4、实验4.1、预训练数据和评估指标4.2、实施细节4.3、主要结果4.4、消融研究4.5、定性结果 5 、讨论 摘要 开放词汇检测&#xff08;Open-vocabulary Det…

滑动窗口(6)_找到字符串中所有字母异位词

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 滑动窗口(6)_找到字符串中所有字母异位词 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f4…

《SmartX ELF 虚拟化核心功能集》发布,详解 80+ 功能特性和 6 例金融实践

《SmartX ELF 虚拟化核心功能集》电子书现已发布&#xff01;本书详细介绍了 SmartX ELF 虚拟化及云平台核心功能&#xff0c;包含虚机服务、容器服务、网络服务、存储服务、运维管理、工具服务、数据保护等各个方面。 即刻下载电子书&#xff0c;了解如何利用基于 SmartX ELF …

助力电商升级,智象未来(HiDream.ai)开启未来商业新篇章

近日&#xff0c;智象未来&#xff08;HiDream.ai&#xff09;凭借其创新性的“秩象™大模型”&#xff0c;在业界掀起了一场跨行业的创意革命&#xff0c;对视觉设计、运营商服务、品牌营销以及文旅传媒等领域的创新发展产生了深远影响。致力于全球领先的多模态生成式人工智能…

neo4j节点关联路径的表示、节点的增删改查

目录 核心概念节点的增删改查&#xff08;1&#xff09;增&#xff08;2&#xff09;查&#xff08;3&#xff09;删&#xff08;4&#xff09;改 neo4j文档&#xff1a;https://neo4j.com/docs/ https://neo4j.com/docs/cypher-manual/current/introduction/ 核心概念 节点 ne…

【从计算机的发展角度理解编程语言】C、CPP、Java、Python,是偶然还是应时代的产物?

参考目录 前言什么是"computer"?计算机的大致发展历程计算机系统结构阶段(1946~1981)计算机网络和视窗阶段(1982~2007)复杂信息系统阶段(2008~today)人工智能阶段 越新的语言是越好的吗、越值得学习吗&#xff1f; 前言 最近读了 《Python语言程序设计基础》 这本书…

Linux运维篇-服务器简介

目录 前言服务器分类&#xff08;按服务器的机箱结构来划分&#xff09;台式服务器机架式服务器刀片式服务器 外观部件内部结构前面板前面板组件前面板接口说明前面板指示灯和按钮前面板指示灯/按钮说明 后面板后面板组件后面板接口说明后面板指示灯后面板指示灯说明 主板和 iB…

C#|.net core 基础 - 值传递 vs 引用传递

不知道你在开发过程中有没有遇到过这样的困惑&#xff1a;这个变量怎么值被改&#xff1f;这个值怎么没变&#xff1f; 今天就来和大家分享可能导致这个问题的根本原因值传递 vs 引用传递。 在此之前我们先回顾两组基本概念&#xff1a; 值类型** vs 引用类型** **值类型&a…

适合金融行业的银行级别FTP替代升级方案

在数字化办公日益普及的今天&#xff0c;金融领域对数据传输的需求日益增长&#xff0c;场景也变得更加多样化和复杂。这不仅包括内部协作&#xff0c;还涉及金融服务、外部合作以及跨境数据流动等方面。因此&#xff0c;金融行业对数据传输系统的要求越来越高&#xff0c;传统…