低资源低成本评估大型语言模型(LLMs)

news2024/9/8 7:11:36

        随着新的大型语言模型(LLMs)的持续发展,从业者发现自己面临着众多选择,需要从数百个可用选项中选择出最适合其特定需求的模型、提示[40]或超参数。例如,Chatbot Arena基准测试平台积极维护着近100个模型,以对用户指定的开放式查询进行基准测试。同样,AlpacaEval排行榜对805个问题上的200多个模型进行了基准测试。

     Chatbot Arena基准测试平台:https://arena.lmsys.org/

     AlpacaEval排行榜:https://github.com/tatsu-lab/alpaca_eval。

     对大型语言模型(LLMs)进行广泛的评估需要在时间、计算和财务资源上进行重大投资。截至2024年5月20日,完全评估(表示为完整评估)AlpacaEval[官方包含的153个模型的估计成本接近800美元使用Mistral-7B[评估205个零样本提示在784个GSM8K问题上需要78.2个Nvidia A6000 GPU小时。

     尽管对测试集中的所有数据点进行全面评估是惯例,但从业者通常只关心整体性能排名。通常,目标是识别出表现最佳的方法或简单地说是最好的方法,而忽略排名较低的替代方案。因此,尽管对每个方法在数据集中的每个数据点进行全面评估是彻底的,但当目标仅仅是识别出更优的方法时,这可能不是成本效益的。

     本文关注有限预算下的评估问题,即在给定预算内找到最佳方法。本文提出两种主动选择算法UCB-E和UCB-E-LRF第一个算法是经典UCB-E [2]的扩展,用于解决多臂老虎机问题第二个算法UCB-E-LRF,利用了评分矩阵内在的低秩性质

1 相关背景

1.1 大型语言模型(LLM)应用评估工作流程

一个典型的大型语言模型(LLM)应用评估工作流程包括三个步骤:推理、评分和性能聚合,其中前两个步骤LLM可以扮演重要角色。

  • 推理:给定一个数据集和一个基于LLM的方法,这个方法的输出是通过LLM生成的。每种方法可以是不同的LLM,用于基准测试不同的LLM性能,相同的LLM与不同的提示用于提示工程,或者不同的配置,如温度、解码策略等,用于超参数调整。
  • 评分:不同方法的输出通过一个评分函数,即度量标准来评分。评分函数可以是规则基础的(如精确字符串匹配、BLEU 、ROUGE ),基于LLM的(如BERTScore 、LLM法官),或基于人类的,即用户研究。根据任务和数据集格式,研究人员采用了不同类型的评分函数。
  • 性能聚合:每个方法的性能通过数据集中的所有示例进行聚合,通常通过对数据集中所有示例的简单平均值来实现。

1.2 符号和问题公式化 (Notations and Problem Formulation)

1.2.1 符号

  • F = {f1, …, fn}:方法集合,包含 n 个不同的方法。
  • X = {x1, …, xm}:例子集合,包含 m 个不同的例子。
  • e : F × X → [0, 1]:评分函数,输入一个方法和一个例子,输出一个介于 0 到 1 之间的分数,表示该方法在该例子上的表现。
  • E ∈ [0, 1]n×m:评分矩阵,其中 Ei,j = e(fi, xj) 表示方法 fi 在例子 xj 上的分数。
  • µi = 1/m * Σ(Ei,j):方法 fi 的平均分数,通过对其在所有例子上的分数求平均得到。
  • i∗ = arg max µi:最佳方法,即在所有方法中平均分数最高的方法。

1.2.2 问题公式化

给定一个固定的评估预算 T,一个方法集合 F 和一个例子集合 X,我们需要设计一个评估算法 A,该算法可以在 T 次评估预算内,最大化找到最佳方法 i∗ 的概率 PA(A(T, F, X) = i∗)。

2 UCB-E 算法及UCB-E-LRF 算法

2.1 UCB-E 算法

基于 UCB-E 算法,估计每个方法的置信上限,并选择置信上限最高的方法进行评估。

2.1.1 步骤

  • 初始化每个方法的置信上限 Bi 和已评估示例集合 Si。
  • 在每个步骤 t,选择置信上限 Bi 最大的方法 fit。
  • 从未评估的示例集合中均匀随机选择一个示例 xjt。
  • 对方法示例对 (fit, xjt) 进行推理,获取评分 e(fit, xjt) 并更新评分矩阵 Eobs。
  • 更新置信上限 Bi 和已评估示例集合 Si。
  • 重复步骤 2-5,直到达到预算 T。

优点: 理论上保证找到最佳方法的概率随着评估次数的增加而指数衰减。

缺点: 忽略了评分矩阵的低秩特性,可能导致效率不如 UCB-E-LRF。

2.2 UCB-E-LRF 算法

基于 UCB-E 算法,并结合低秩分解 (LRF) 来估计未评估方法示例对的评分。

2.2.1 步骤

  • 随机选择 T0 个方法示例对进行评估,构建初始评分矩阵 Eobs 和观察矩阵 O。
  • 使用 LRF 算法估计评分矩阵 ˆE 和不确定性矩阵 R。
  • 在每个步骤 t,选择置信上限 Bi 最大的方法 fit。
  • 从未评估的示例集合中,选择与 fit 相关的不确定性 Rit,jt 最大的 b 个示例 xjt。
  • 对 b 个方法示例对进行推理,获取评分 e(fit, xjt) 并更新评分矩阵 Eobs 和观察矩阵 O。
  • 使用 LRF 算法重新估计评分矩阵 ˆE 和不确定性矩阵 R。
  • 更新置信上限 Bi。
  • 重复步骤 3-7,直到达到预算 T。

优点: 利用 LRF 估计未评估方法示例对的评分,可以更有效地分配预算,提高找到最佳方法的概率。

缺点: 需要设置 LRF 的超参数,例如秩 r、集成大小 K、预热预算 T0 和批处理大小 b。

2.3 两种算法的比较

  • 在较简单的数据集(例如 AlpacaEval)上,UCB-E 表现更好,因为方法之间的差距较大,不需要 LRF 估计未评估示例对的评分。
  • 在较难的数据集(例如 GSM8K Prompts 和 PIQA Prompts)上,UCB-E-LRF 表现更好,因为方法之间的差距较小,LRF 可以更有效地估计未评估示例对的评分。

3 实验

3.1 数据集

3.1.1 AlpacaEval

  • 数据集规模: 154 x 805 (方法 x 示例)
  • 方法 (F): 包含 154 个不同的 LLM 模型,用于评估不同的 LLM 性能。
  • 评分函数 (e): 使用 GPT-4-turbo 作为 LLM 判官,将每个模型的响应与基线模型 GPT-4-turbo 的响应进行比较,并给出分数。
  • H1 值: 966
  • 数据来源: 从 AlpacaEval 官方仓库收集,截至 2024 年 5 月 20 日。

3.1.2 AlpacaEval (Drop Annotator)

  • 数据集规模: 153 x 805 (方法 x 示例)
  • 方法 (F): 与 AlpacaEval 相同,但排除了 GPT-4-turbo 作为 annotator 模型。
  • 评分函数 (e): 与 AlpacaEval 相同。
  • H1 值: 4462
  • 数据来源: 从 AlpacaEval 官方仓库收集,截至 2024 年 5 月 20 日。
  • 设计目的: 去除 annotator 模型的偏见,使学习更具挑战性,并更有趣。

3.1.3  Grade School Math 8K (GSM8K)

  • 数据集规模: 205 x 784 (方法 x 示例)
  • 方法 (F): 包含 205 个不同的 prompt,用于模拟 prompt engineering 场景。
  • 评分函数 (e): 使用正则表达式匹配 LLM 生成的最终答案与真实答案 (GSM8K) 或真实选择 (PIQA)。
  • H1 值: 107445
  • 数据来源: 使用 GPT-4 生成 prompt,并使用 Mistral-7B 模型进行推理和评分。

3.1.4 GSM8K Models 和 PIQA Models

  • 数据集规模: 122 x 1000 (GSM8K Models) 和 103 x 1000 (PIQA Models)
  • 方法 (F): 包含不同的 LLM 模型及其采样配置,用于模拟模型选择和超参数调整场景。
  • 评分函数 (e): 与 GSM8K Prompts 和 PIQA Prompts 相同。
  • H1 值: 20562 (GSM8K Models) 和 10273 (PIQA Models)
  • 数据来源: 使用 11 个公开可用的 LLM 模型及其不同的采样配置,并使用随机选择的 1000 个问题进行评分。

3.1.5 PIQA Prompts 和 PIQA Models

  • 数据集规模: 177 x 1546 (PIQA Prompts) 和 103 x 1000 (PIQA Models)
  • 方法 (F): 与 GSM8K Prompts 和 GSM8K Models 相同。
  • 评分函数 (e): 与 GSM8K Prompts 和 GSM8K Models 相同。
  • H1 值: 66284 (PIQA Prompts) 和 10273 (PIQA Models)
  • 数据来源: 使用 GPT-4 生成 prompt,并使用 Tulu-7B 模型进行推理和评分。

3.2 评估指标

  • Top 1 精确度 (Top 1 Precision): 评估算法预测最佳方法的能力,考虑性能差距和统计显著性两种情况。
  • NDCG (Normalized Discounted Cumulative Gain): 评估算法对前 10 个高绩效方法的排序能力。

3.3 基线算法

  • Row Mean Imputation: 均匀随机选择方法示例对进行评估,并计算每个方法的平均评分。
  • Filled Subset: 对每个示例随机选择所有方法进行评估,并计算每个方法的平均评分。
  • LRF: 使用 LRF 估计未评估方法示例对的评分,并计算每个方法的平均评分。

3.4 实验结果

  • 算法比较: UCB-E 和 UCB-E-LRF 在所有数据集上都显著优于基线算法,可以更快地达到相同的性能水平。
  • UCB-E vs. UCB-E-LRF: 在较简单的数据集上,UCB-E 表现更好;在较难的数据集上,UCB-E-LRF 表现更好。

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

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

相关文章

PID控制与模糊PID控制的比较

一、PID控制器的设计 1.PID控制原理图: PID控制其结构框图如下图所示: 图1:PID控制器结构框图 2.PID控制器传递函数的一般表达式 PID控制器传递函数的一般表达形式为: 其中kp为比例增益;ki为积分增益;k…

ESLint: Delete `␍`(prettier/prettier)解决问题补充

如果你是克隆的,参考这位大佬的文章 vue.js - Delete ␍eslint(prettier/prettier) 错误的解决方案 - 个人文章 - SegmentFault 思否 如果你是个人在本地实现,且改为 仍旧报错,我解决的方案: 改为,同时勾选和我配置一…

020-GeoGebra中级篇-几何对象之点与向量

本文概述了在GeoGebra中如何使用笛卡尔或极坐标系输入点和向量。用户可以通过指令栏输入数字和角度,使用工具或指令创建点和向量。在笛卡尔坐标系中,示例如“P(1,0)”;在极坐标系中,示例如“P(1;0)”或“v(5;90)”。文章还介绍了点…

倒计时1天!飞思实验室暑期公益培训,7月10日不见不散

01培训背景 很荣幸地向大家宣布:卓翼飞思实验室将于7月10日正式开启为期两个月的暑期公益培训!本次培训为线上直播,由中南大学计算机学院特聘副教授,RflySim平台总研发负责人戴训华副教授主讲。 培训将基于“RflySim—智能无人集…

74HC14使用陶瓷晶振产生振荡成功

之前实验这个ic陶瓷振子,结果是不起振,之前用的是并联模式。可能参数不适合。一直没有起振。 今天又翻阅了很多陶瓷谐振器的电路,看到有串联模式的电路,就来实验了一下。结果成功了。电路如下: 测试结果:陶…

【高校科研前沿】中国农业大学姚晓闯老师等人在农林科学Top期刊发表长篇综述:深度学习在农田识别中的应用

文章简介 论文名称:Deep learning in cropland field identification: A review(深度学习在农田识别中的应用:综述) 第一作者及单位:Fan Xu(中国农业大学土地科学与技术学院) 通讯作者及单位&…

退出的微信群怎么恢复?这3个小技巧了解下

在日常使用微信的过程中,我们可能会因为各种原因退出某个微信群。然而,退出后才发现群里有重要的信息或文件需要查看,这时该怎么办呢?许多人都会问:退出的微信群怎么恢复?事实上,微信提供了一些…

生成随机密码

生成8位无重复的密码(可以包含数字、大小写字母) import random import string character string.digits string.ascii_letters password .join(random.sample(character, 8)) print(f"生成的随机密码为:{password}")

我们公司落地大模型的路径、方法和坑

我们公司落地大模型的路径、方法和坑 李木子 AI大模型实验室 2024年07月02日 18:35 北京 最近一年,LLM(大型语言模型)已经成熟到可以投入实际应用中了。预计到 2025 年,AI 领域的投资会飙升到 2000 亿美元。现在,不只…

C++:多态(继承)

hello,各位小伙伴,本篇文章跟大家一起学习《C:多态》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 文章目录 :maple_leaf:多态的概念:maple_leaf:继承中的多态1.:leaves:虚函数表 :…

BKP备份寄存器和实时时钟笔记

BKP(Backup Registers)备份寄存器 BKP可用于存储用户应用程序数据。当VDD(2.0~3.6V)电源被切断,他们仍然由VBAT(1.8~3.6V)维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位…

Linux 网络--TCP协议收包流程(NAPI机制)

Linux 网络--TCP协议收包流程(NAPI机制) 平台环境简介:宿主机: ubuntu18.04Linux内核源码版本: Linux-4.15网卡驱动: Intel e1000 (ubuntu 虚拟机默认网卡驱动)协议:TCP协议,本文分析收包过程 本…

Django 更新数据 save()方法

1,添加模型 Test/app11/models.py from django.db import modelsclass Post(models.Model):title models.CharField(max_length200)content models.TextField()pub_date models.DateTimeField(date published)class Book(models.Model):title models.CharFie…

9.pwn 栈溢出

栈溢出简介 函数中的存储在栈中的局部变量数组边界检查不严格发生越界写,造成用户输入覆盖到缓冲区外的数据内容, 由于栈中同时存在着与函数调用参数的相关信息,栈溢出可以导致控制流劫持 基础栈溢出(hello world in pwn) 多数情况下我们需…

【 正己化人】 把自己做好,能解决所有问题

阳明先生说:与朋友一起辩论学问,纵然有人言辞观点浅近粗疏,或者是炫耀才华、显扬自己,也都不过是毛病发作。只要去对症下药就好,千万不能怀有轻视别人的心理,因为那不是君子与人为善的心。 人会爱发脾气、…

UE5.3-基础蓝图类整理一

常用蓝图类整理: 1、获取当前关卡名:Get Current LevelName 2、通过关卡名打开关卡:Open Level(by name) 3、碰撞检测事件:Event ActorBeginOverlap 4、获取当前player:Get Player Pawn 5、判断是否相等&#xff1…

阿里云人工智能平台PAI部署开源大模型chatglm3之失败记录--update:最后成功了!

想学习怎么部署大模型,跟着网上的帖子部署了一个星期,然而没有成功。失败的经历也是经历,记在这里。 我一共创建了3个实例来部署chatglm3,每个实例都是基于V100创建的(当时没有A10可选了),其显…

自动化测试之unittest框架详解

1、什么是Unittest框架? python自带一种单元测试框架 2、为什么使用UnitTest框架? >批量执行用例 >提供丰富的断言知识 >可以生成报告 3、核心要素 1).TestCase(测试用例) 2).TestSuite(测试套件) 3).Test…

比赛获奖的武林秘籍:05 电子计算机类比赛国奖队伍技术如何分工和学习内容

比赛获奖的武林秘籍:05 电子计算机类比赛国奖队伍技术如何分工和学习内容 摘要 本文主要介绍了在电子计算机类比赛中技术层面上的团队分工和需要学习的内容,分为了嵌入式硬件、嵌入式软件、视觉图像处理、机械、上位机软件开发和数据分析等六个方向&am…

ORA-12537: TNS:连接关闭/Io 异常: Got minus one from a read call

在另外一个数据库建立dblink的时候,发现执行命令报错: 被连接的数据库我也上去过,用工具尝试登陆也报错: IO Error: Got minus one from a read call, connect lapse 1 ms., Authentication lapse 0 ms. Got minus one from a …