当前位置: 首页 > news >正文

以小搏大: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系统有望在更小规模的模型中实现更高效、更智能的性能,为各行各业带来更多的创新和变革。

图片

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 计算机的内存不足
  • 北峰370MHz应急窄带无线通信解决方案
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • 酒店智能触摸开关的原理与应用
  • Linux 系统调优 2
  • 【PyTorch][chapter 27][李宏毅深度学习][transformer-1]
  • Qt与Python
  • 反爬虫策略收录集
  • android交叉编译报错no input files的解决方法
  • 视觉检索(以图搜图)技术分享
  • C#从入门到精通(20)—C#目录类Directory用法总结
  • 苹果秋季发布会前瞻:iPhone 16领衔新品盛宴
  • Redis | 非关系型数据库Redis的初步认识
  • HTML粒子爱心
  • CSS 中处理文本溢出并隐藏它
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • Cookie 在前端中的实践
  • CSS实用技巧干货
  • es6
  • JS字符串转数字方法总结
  • rc-form之最单纯情况
  • Vue2.x学习三:事件处理生命周期钩子
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 多线程事务回滚
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 如何学习JavaEE,项目又该如何做?
  • 通过npm或yarn自动生成vue组件
  • 网络应用优化——时延与带宽
  • 优化 Vue 项目编译文件大小
  • 自定义函数
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • # .NET Framework中使用命名管道进行进程间通信
  • # 安徽锐锋科技IDMS系统简介
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • ###C语言程序设计-----C语言学习(3)#
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • $NOIp2018$劝退记
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (day18) leetcode 204.计数质数
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (七)c52学习之旅-中断
  • (三十五)大数据实战——Superset可视化平台搭建
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)JAVA中的堆栈
  • .htaccess配置常用技巧
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET C# 使用GDAL读取FileGDB要素类
  • .net framework 4.0中如何 输出 form 的name属性。
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .Net环境下的缓存技术介绍
  • .sys文件乱码_python vscode输出乱码
  • /etc/fstab和/etc/mtab的区别
  • @Resource和@Autowired的区别