以小搏大:Salesforce 十亿参数模型表现超过ChatGPT

图片

小模型的强势崛:轻量化AI如何以高效表现撼动大型模型的统治!

©作者|DWT

来源|神州问学

导读

近年来,人工智能领域的迅猛发展使得大型语言模型(LLM)成为了焦点。这些模型,如OpenAI的GPT-4和Google的Bard,凭借着数千亿到的参数,在众多自然语言处理任务中表现出色。规模越来越大的法学硕士和日益庞大的训练数据集使得聊天机器人能够通过大学考试,甚至医学院的入学考试。总而言之,规模越大的人工智能往往能力越强。

然而,这种增长也存在弊端:随着模型规模越来越大,它们也变得越来越笨重、耗能越来越大,运行和构建也越来越困难。规模较小的模型和数据集可以帮助解决这个问题。这就是为什么人工智能开发人员,甚至是一些最大的科技公司的开发人员,都开始重新审视和重新评估小型人工智能模型。这引发了对“规模是否等同于性能”的广泛讨论。

越来越多的研究开始探索如何在减少模型参数的同时,依然保持甚至超越大型模型的性能表现。如Salesforce开发的xLAM-1B模型,尽管仅有10亿参数,却在功能调用任务中表现超越了如OpenAI的GPT-3.5 Turbo和Anthropic的Claude-3 Haiku等更大规模的模型,成为这一探索的成功范例。

图片

xLAM在伯克利函数调用排行榜的优异表现

2.  以小博大:小模型的高效表现

xLAM-1B模型的成功挑战了当前对大模型的崇拜,尤其是在功能调用任务中的卓越表现,吸引了业界的广泛关注。在功能调用这一具体任务中,xLAM-1B不仅展现出极高的准确性和响应速度,还能够在资源消耗上大幅度降低,与那些拥有数百亿甚至数千亿参数的模型相媲美甚至超越。这表明,模型的大小并非决定其性能的唯一因素,通过创新的架构设计和数据处理方法,小规模模型也能够实现与大模型同样甚至更好的效果。

具体来说,基于一系列严格的基准测试,xLAM-1B在多个功能调用任务中均表现优异。例如,在处理复杂函数调用的场景中,xLAM-1B能够准确地理解用户指令,生成合适的函数调用,而不会因为参数数量的限制而影响其对复杂任务的处理能力。此外,xLAM-1B在响应速度和计算资源的利用上也展现出明显的优势,这使得它非常适合部署在资源受限的环境中,如移动设备或边缘计算场景。

3.数据驱动的高效训练方法

图片

xLAM-1B的训练依赖于高质量的“教科书级”数据集,这些数据集是通过APIGen自动化流水线生成的。APIGen是Salesforce开发的一套先进的数据生成工具,它能够根据模型的需求自动生成多样化且高质量的数据集。具体来说,APIGen使用了21个不同类别的3673个API,生成了大量与函数调用相关的数据。这些数据集不仅涵盖了广泛的功能调用场景,还经过了严格的三阶段验证,包括格式检查、实际函数执行、语义验证,以确保数据的准确性和相关性。

通过APIGen生成的数据集,xLAM-1B模型得以在训练过程中接触到大量的高质量样本,这对于模型在功能调用任务中的表现至关重要。与传统的大模型训练方法不同,xLAM-1B更加强调数据的质量而非数量,这种数据驱动的训练方法使得模型能够在较少参数的情况下,依然具备强大的推理和处理能力。此外,APIGen的数据生成机制还支持多任务学习,即通过在多个任务上联合训练,xLAM-1B能够更好地掌握各类任务的共性,并通过任务间的相互增强提高整体性能。

更多详细内容可参考上周的:《人工数据的没落:APIGen的崛起》

4.  精细化的微调策略:优化小模型的关键

图片

AgentOhana 的工作流程。设计了一种同质多轮数据格式,用于整合来自不同数据源的异构轨迹。然后,AgentRater 评估和过滤代理轨迹。最后,流式数据加载器可以集成各种数据集,并将数据随机输入到分布式训练过程中。(https://arxiv.org/pdf/2402.15506)

xLAM-1B的训练过程使用了Salesforce开发的AgentOhana框架。AgentOhana框架是一种专门用于整合多种数据源的训练框架,它通过将不同来源的数据标准化为统一的格式,确保了模型训练数据的一致性和高质量。在微调过程中,xLAM-1B利用AgentOhana框架中的多任务学习能力,在多个任务上进行了深入的训练和优化。通过这种方式,xLAM-1B不仅能够在每个任务上表现出色,还能够通过任务间的相互影响和增强,提高整个模型的泛化能力。

此外,在具体的微调过程中,xLAM-1B还采用了QLoRA技术(Quantized Low-Rank Adaptation),这种技术能够在保持高效计算的同时,进一步优化模型的性能。QLoRA技术通过对模型参数进行量化处理,大幅减少了计算资源的消耗,使得xLAM-1B在资源有限的环境中依然能够保持较高的性能。此外,QLoRA还支持多轮迭代训练,使得模型能够在反复训练中逐步优化,从而达到最佳的性能表现。

在xLAM-1B模型的微调过程中,使用了精心设计的超参数设置,以确保模型能够在有限的资源下达到最佳性能。具体的微调策略包括:

● 学习率:微调过程中使用了5 × 10^-6的学习率,这是一个相对较小的学习率设置,能够帮助模型在优化过程中逐步收敛,避免参数调整过快导致的过拟合问题。

● 训练轮次:模型进行了四个epoch的训练。这种适中的训练轮次设置能够让模型充分学习数据中的模式,同时避免过度训练导致的性能下降。

● 优化器:使用了AdamW优化器,这是一种改进的Adam优化器,能够有效处理权重衰减问题,从而提高模型的泛化能力。

● 最大截断长度2048:这一设置允许模型处理长文本输入,确保在复杂任务中保持足够的信息容量。

● 每设备批量大小为6:这一设置平衡了计算资源与模型更新频率,确保在内存限制下有效训练。

梯度累积:通过两次梯度累积步骤,模型能够有效利用小批量数据进行训练,进一步优化计算效率。

● warmup与学习率调度:使用50步warmup与余弦学习率调度器,帮助模型在初始训练阶段逐步适应,并在训练后期保持稳定的学习率。

● BF16数据类型:采用bfloat16数据类型以提高计算效率和内存利用率,特别适合在大规模训练中使用。

这些微调策略的结合,使得xLAM-1B能够在较少的训练资源下,依然实现高效的性能表现。模型在这些参数设置下,能够在训练过程中逐步优化,最终达到卓越的表现。这一微调策略不仅提升了xLAM-1B在功能调用任务中的表现,还为未来的小型模型训练提供了重要的经验参考。

5.良好的提示工程优化:提升模型表现的利器

在xLAM-1B模型的训练过程中,Salesforce团队设计了三种关键的提示(prompt)策略,每种策略在数据生成和验证的不同阶段发挥了重要作用,确保了模型在功能调用任务中的卓越表现。

(1)首先是生成器提示(Generator Prompt):

图片

图片

这一提示主要用于引导模型生成多样化的并行函数调用数据。提示要求模型生成一组具有实际应用场景的查询和对应的函数调用答案,这些查询不仅要涵盖基本的功能调用,还应包含多个平行的查询,这些查询可以使用相同的函数但具有不同的参数,或者使用不同的函数来完成不同的任务。生成器提示的设计强调了清晰、简洁的表达,同时确保所有生成的函数调用都严格符合JSON格式,并能够有效地解决用户提出的所有请求。这种提示策略的作用在于帮助模型在生成过程中涵盖广泛的应用场景,提升了数据的多样性和实际应用价值。

(2)接下来是语义检查提示(Semantic Checker Prompt):

图片

用于验证生成的数据与用户查询的语义一致性。该提示要求模型评估生成的函数调用是否准确反映了用户查询的意图,并检查函数调用和执行结果之间的匹配程度。语义检查提示的主要作用是确保生成的数据在语义上与用户的需求高度一致,避免生成错误或不相关的函数调用。在验证过程中,模型必须判断函数调用是否与查询目标一致,参数是否正确选择,以及执行结果是否有效。这种提示的引入大大提高了生成数据的质量和准确性。

(3)最后是模型训练提示(Model Training Prompt):

图片

图片

在训练过程中引导模型进行函数调用的预测。该提示为模型提供了详细的任务指令、可用工具的描述,以及严格的输出格式要求。模型在接收到用户查询和可用工具后,必须生成符合指定格式的函数调用列表。如果查询无法通过可用工具解决,模型需要明确指出这一点,并拒绝回答。模型训练提示的作用在于确保模型在训练过程中学会如何正确地调用函数,并在面对不完整或不相关信息时做出适当的响应。这种提示策略的使用,使得模型能够在训练过程中逐步优化其函数调用能力,最终在实际应用中表现卓越。

这三种提示策略分别在数据生成、数据验证和模型训练的不同阶段发挥了不可或缺的作用,确保了xLAM-1B模型在功能调用任务中的出色表现。通过这些精心设计的提示工程,模型不仅能够生成高质量的函数调用,还能够在复杂任务中准确理解和响应用户的需求。

6.并非孤例:小模型的崛起

xLAM-1B的成功并非孤例。近年来,越来越多的小型模型在各类任务中表现优异,证明了小模型在特定任务中的巨大潜力。以下是一些其他表现出色的小模型的例子:

(1)微软的phi-1.5和phi-2系列

微软开发的phi-1.5和phi-2模型系列是小型模型领域的另一个成功案例。phi-1.5模型仅有13亿参数,但其在自然语言处理和编程任务中的表现却非常出色,甚至超越了一些参数量更大的模型。根据《Textbooks Are All You Need II: phi-1.5 technical report》一文的描述,phi-1.5模型在常识推理和编程任务中的表现超越了许多数倍甚至数十倍更大规模的模型,证明了数据质量和任务专用训练对模型性能的巨大影响。

(2)苹果的智能模型

苹果公司在其全球开发者大会上发布的30亿参数智能模型同样展示了小型模型的潜力。尽管参数量仅为部分大型模型的十分之一,苹果智能模型在多个基准测试中的表现却不逊于那些更大规模的模型。这一成果进一步证明了在优化数据和训练方法后,小模型可以实现与大模型相当甚至更优的性能。

(3)微软的Phi-3系列模型

微软的Phi-3系列模型同样展示了小型模型的强大潜力。Phi-3-mini模型仅有38亿参数,但在一些基准测试中,其表现甚至超过了OpenAI的GPT-3.5。这一成功展示了小型模型在能效和性能之间找到平衡的可能性,同时也表明,通过高质量数据和优化微调训练,小模型完全有可能在特定任务中超越大模型。

7.未来展望:人工智能的新方向

xLAM-1B模型的成功展示了小模型在人工智能领域的巨大潜力。通过创新的架构设计、高效的数据生成与训练方法、精细化的微调策略以及对参数的高效利用,xLAM-1B不仅在功能调用任务中表现卓越,还以较小的资源消耗实现了与大模型相当甚至更优的性能。这一成果不仅挑战了当前对大模型的崇拜,更为未来的人工智能发展指明了新的方向。

未来,随着更多公司和研究机构开始重视小模型的开发和应用,人工智能领域或将迎来一场深刻的变革。小模型有望在更多场景中取代大模型,特别是在资源受限的环境中,如移动设备和边缘计算。它们不仅能够提供高效的计算能力,还能大幅降低能耗和成本,实现更加可持续的发展模式。

总之,xLAM-1B及类似小模型的崛起,标志着人工智能技术发展的一个新方向。通过优化数据和训练方法,未来的AI系统有望在更小规模的模型中实现更高效、更智能的性能,为各行各业带来更多的创新和变革。

图片

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

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

相关文章

讲透一个强大的算法模型,Transformer

Transformer 模型是一种基于注意力机制的深度学习模型,广泛应用于自然语言处理(NLP)任务,如机器翻译、文本生成和语义理解。 它最初由 Vaswani 等人在2017年的论文《Attention is All You Need》中提出。它突破了传统序列模型&am…

CSRF 概念及防护机制

概述 CSRF(Cross-Site Request Forgery),即跨站请求伪造,是一种网络攻击方式。在这种攻击中,恶意用户诱导受害者在不知情的情况下执行某些操作,通常是利用受害者已经登录的身份,向受害者信任的…

微纳芯:如何利用CRM实现渠道分销管理的数字化转型

MINCHIP由联想控股投资,是一家专注于快速体外诊断产品的研发、生产、销售、服务的高科技企业,拥有多项自主知识产权及技术专利。致力于用专业的微流控临床检验产品,为全球大众提供触手可及、负担得起的健康服务。其系列全自动生化分析仪持续为医师、兽医师的机构运营提供解决方…

C++对C的扩充(8.28)

1.使用C手动封装一个顺序表&#xff0c;包括成员数组1个&#xff0c;成员变量n个 代码&#xff1a; #include <iostream>using namespace std;//类型重命名 using datatype int; #define MAX 30struct seqList { private: //私有权限datatype *data; //相当于 …

Java中的java.lang.ArithmeticException: null问题详解与解决方案

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

fixed、absolute 和 relative 布局

https://andi.cn/page/621716.html

0.0 C语言被我遗忘的知识点

文章目录 位移运算(>>和<<)函数指针函数指针的应用场景 strcmp的返回值合法的c语言实数表示sizeof 数组字符串的储存 —— 字符数组与字符指针字符串可能缺少 \0 的情况 用二维数组储存字符串数组其他储存字符串数组的方法 位移运算(>>和<<) 右移(>…

什么是智能体(agent)

智能体&#xff08;Agent&#xff09;是人工智能领域中的一个核心概念。在最基本的层面上&#xff0c;智能体可以被定义为一个实体&#xff0c;它能够在其所处的环境中自主地感知信息&#xff0c;并根据这些信息做出决策&#xff0c;以实现特定的目标或任务。智能体的关键特性包…

ONNX加载和保存模型

ONNX ONNX&#xff08;Open Neural Network Exchange&#xff09;是一个开放的格式&#xff0c;用于表示机器学习模型。它使得不同框架之间的模型可以互操作&#xff0c;方便模型的迁移和部署。以下是一些关于 ONNX 的基本介绍和使用方法。 模型转换&#xff1a;ONNX 允许你将…

罐装食品检测检测系统源码分享 # [一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

罐装食品检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

【Java】—— Java面向对象基础:Java中类的构造器与属性初始化,Student类的实例

目录 定义Student类 在main方法中创建Student对象 结论 在Java中&#xff0c;类的构造器&#xff08;Constructor&#xff09;是一个特殊的方法&#xff0c;用于在创建对象时初始化对象的属性。今天&#xff0c;我们将通过一个简单的Student类实例&#xff0c;来探讨如何在J…

给自己复盘用的tjxt笔记day12第一部分

优惠券使用 优惠券规则定义 对优惠券的下列需求: 判断一个优惠券是否可用,也就是检查订单金额是否达到优惠券使用门槛 按照优惠规则计算优惠金额,能够计算才能比较并找出最优方案 生成优惠券规则描述,目的是在页面直观的展示各种方案,供用户选择 因此,任何一张优惠券都…

Linux基础1-基本指令5(more,less,head,tail, | ,find)

本章继续整理其他linux基本指令 一.本章重点 1.more和less命令查看大文本 2.head和tail命令查看小文本和日志 3.使用管道多次处理信息 4.find指令 二.more和less more命令和less命令常用来查看大文本&#xff0c;其中less可以使用上下键快速浏览文本 使用方式 more文件 …

2024年6月GSEP(python)一级认证真题讲解

注意&#xff01;做题时长为2小时&#xff0c;孩子做完题目后对照讲解视频和讲解分析&#xff0c;针对薄弱点&#xff0c;进行有效的专项提高。 &#x1f451;讲解视频 2024.6GESPpython真题讲解 &#x1f451;讲解分析 1 单选题&#xff08;每题 2 分&#xff0c;共 30 分&a…

第15届蓝桥杯青少组Scratch初级组省赛真题试卷

第十五届蓝桥杯青少组省赛Scratch初级组真题试卷 题目总数&#xff1a;10 总分数&#xff1a;360 选择题 第 1 题 单选题 Scratch运行以下程序&#xff0c;角色会说( )? A.29 B.31 C.33 D.35 第 2 题 单选题 scratch运行下列哪个程序后&#xff0c;宇航…

在国产芯片上实现YOLOv5/v8图像AI识别-【4.1】RK3588训练数据时进行图像增强更多内容见视频

本专栏主要是提供一种国产化图像识别的解决方案&#xff0c;专栏中实现了YOLOv5/v8在国产化芯片上的使用部署&#xff0c;并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。 B站配套视频&#xff1a;https://www.bilibili.com/video/BV1or421T74f 图像…

【蓝桥杯集训100题】scratch绘制扇子 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第28题

scratch绘制扇子 蓝桥杯集训100题第28题模拟练习解析 此题曾经作为第十届省赛的真题考过 一、题目要求 以坐标(0,0)点为中心绘制一把扇子;扇面和扇把都是三分之一圆,扇面的半径 为 100 左右,扇把的半径为 20 左右。 编程实现 每次点击绿旗后,舞台背景为白色,…

CUDA-BEVFusion(1): 环境安装

文章目录 1. 查看ubantu配置2. 环境安装2.1 安装包下载2.1.1 tensorRT 下载2.1.2 CUDA 下载2.1.3 cuDNN 下载2.2 安装2.2.1 cuda 安装2.2.2 cuDNN 安装2.2.3 tensorRT安装3. 安装包下载1. 查看ubantu配置 查看GPU的版本sudo apt-get install pciutilslspci | grep VGA查看linux…

探索Python中的拼音魔法:pypinyin库的奇妙之旅

文章目录 探索Python中的拼音魔法&#xff1a;pypinyin库的奇妙之旅背景&#xff1a;为何选择pypinyin&#xff1f;库简介&#xff1a;pypinyin是什么&#xff1f;安装指南&#xff1a;如何将pypinyin纳入你的项目&#xff1f;功能探索&#xff1a;pypinyin的五大核心函数实战演…

win10配置adb环境变量

初始状态&#xff1a; 最简单的配置方案&#xff0c;直接复制adb所在路径&#xff1a; 粘贴进来确定即可&#xff1a; 然后打开 cmd 查看已经配置成功了&#xff1a;