如何评估大型语言模型(LLM)?

news2024/10/5 15:26:33

编者按:近期几乎每隔一段时间,就有新的大语言模型发布,但是当下仍然没有一个通用的标准来评估这些大型语言模型的质量,我们急需一个可靠的、综合的LLM评估框架。

本文说明了为什么我们需要一个全面的大模型评估框架,并介绍了市面上这些现有的评估框架,同时指出这些框架存在的问题,最后说明如何评估大型语言模型(LLM),评估时应该考虑哪些因素。

以下是译文,Enjoy!

作者 | Gyan Prakash Tripathi

编译 | 岳扬

目录
  • 01 简介
  • 02 为什么急需一个全面的LLMs评估框架?
  • 03 现有的LLMs评估框架有哪些?
  • 04 现有评估框架存在的问题
  • 05 在评估LLMs时应考虑哪些因素?
  • 06 结论

01 简介 Introduction

随着ChatGPT和其他大型语言模型(LLMs)的发布,可用模型数量大量增加,现在几乎每天都有新的LLMs发布。尽管如此,当下仍然没有一个通用的标准来评估这些大型语言模型的质量。本文将回顾现有的大型语言模型(LLMs)和基于LLMs的体系化评估框架。此外,我们还将尝试分析LLMs哪些因素应该受到评估。

图片

Source: Cobus Greyling

02 为什么急需一个全面的LLMs评估框架?

在某项技术发展的早期阶段,大家很容易确定哪些地方需要改进。然而,随着技术进步和各种新的替代方案出现,我们越来越难确定哪种方案选择最好。因此,拥有一个可靠的评估框架来准确评判LLMs的质量变得非常重要。

对于LLMs,当下迫切需要一个真正的评估框架。这种框架可用于以下三种方式评估LLMs:

  • 能够帮助管理机构和其他相关机构评估模型的安全性、准确性、可靠性或可用性问题。
  • 目前,这些大型科技公司似乎在盲目地争先恐后发布LLMs,许多公司只是在其产品上附加免责声明来试图撇清责任。因此制定一个全面的评估框架将有助于这些公司更负责任地发布这些模型。
  • 如果拥有一个全面的评估框架,能够帮助这些LLMs的用户确定在哪里以及如何微调这些大模型,并使他们清楚应该使用哪些额外的数据来完成部署。

在接下来的内容中,我们将会回顾当前的模型评估模式。

03 现有的LLMs评估框架有哪些?

评估大语言模型来确定它们在各种应用中的质量和实用性是比较重要的。市面上已经存在多个评估LLMs的框架,但是没有一个框架足够全面,可以覆盖所有自然语言处理任务。让我们看一下这些现有的主流评估框架。

框架名称评估时考虑的因素框架链接
Big Bench泛化能力https://github.com/google/BIG-bench
GLUE Benchmark语法、释义、文本相似度、推理、文本关联性、解决代词引用问题的能力https://gluebenchmark.com/
SuperGLUE Benchmark自然语言理解、推理,理解训练数据之外的复杂句子,连贯和规范的自然语言生成,与人对话,常识推理(日常场景、社会规范和惯例),信息检索,阅读理解https://super.gluebenchmark.com/
OpenAI Moderation API过滤有害或不安全的内容https://platform.openai.com/docs/api-reference/moderations
MMLU跨各种任务和领域的语言理解https://github.com/hendrycks/test
EleutherAI LM Eval在最小程度的微调情况下,使用小样本进行评估,并能够在多种任务发挥性能的能力。https://github.com/EleutherAI/lm-evaluation-harness
OpenAI Evalshttps://github.com/EleutherAI/lm-evaluation-harness 文本生成的准确性,多样性,一致性,鲁棒性,可转移性,效率,公平性https://github.com/openai/evals
Adversarial NLI (ANLI)鲁棒性,泛化性,对推理的连贯性解释,在类似示例中推理的一致性,资源使用方面的效率(内存使用、推理时间和训练时间)https://github.com/facebookresearch/anli
LIT (Language Interpretability Tool)以用户定义的指标进行评估的平台。了解其优势、劣势和潜在的偏见https://pair-code.github.io/lit/
ParlAI准确率,F1分数,困惑度(模型在预测序列中下一个单词的表现),按相关性,流畅性和连贯性等标准进行人工评估,速度和资源利用率,鲁棒性(评估模型在不同条件下的表现,如噪声输入、对抗攻击或不同水平的数据质量),泛化性https://github.com/facebookresearch/ParlAI
CoQA理解文本段落并回答出现在对话中的一系列相互关联的问题。https://stanfordnlp.github.io/coqa/
LAMBADA预测一段文本的最后一个词。https://zenodo.org/record/2630551#.ZFUKS-zML0p
HellaSwag推理能力https://rowanzellers.com/hellaswag/
LogiQA逻辑推理能力https://github.com/lgw863/LogiQA-dataset
MultiNLI了解不同体裁的句子之间的关系https://cims.nyu.edu/~sbowman/multinli/
SQUAD阅读理解任务https://rajpurkar.github.io/SQuAD-explorer/

04 现有评估框架存在的问题

上述评估大型语言模型的方法各有其优势。然而,有几个重要因素使得以上这些方法似乎都并不足够完善:

  1. 以上任何一个框架都没有将安全性作为评估因素考虑在内。尽管“OpenAI Moderation API”在某种程度上涉及这个问题,但这并不足够。
  2. 上述框架在评估模型因素方面是分散的。它们中没有一个因素是足够全面综合的

在下一节中,我们将尝试列出所有应该在一个综合的评估框架中存在的重要因素。

05 在评估LLMs时应考虑哪些因素?

经过审查现有的大模型评估框架存在的问题之后,下一步是确定在评估大型语言模型(LLMs)的质量时应考虑哪些因素。我们听取12名数据科学专业人员的意见,这12名专家对LLMs的工作原理和工作能力有一定的了解,并且他们曾经尝试过测试多个LLMs。该调查旨在根据他们的理解列出所有重要因素,并在此基础之上评估LLMs的质量。

最终,我们发现有几个关键因素应该被考虑:

1. 真实性

LLMs生成的结果准确性至关重要。包括事实的正确性以及推理和解决方案的准确性。

2. 速度

模型产生结果的速度很重要,特别是当大模型需要部署到关键功能(critical use cases)时。虽然在某些情况下速度较慢的大模型可能可以可接受,但这些rapid action团队需要速度更快的模型。

3. 正确的语法和可读性

LLMs必须以具备可读性的格式生成自然语言。确保正确、合适的语法和句子结构至关重要。

4. 没有偏见

LLMs必须不受与性别、种族和其他因素相关的社会偏见影响。

5. 回溯回答的参考来源

了解模型回答的来源对于我们来说是十分必要的,以便我们可以重复检查其 basis。如果没有这个,LLMs的性能将始终是一个黑匣子。

6. 安全和责任

AI模型的安全保障是必要的。尽管大多数公司正在努力使这些大模型安全,但仍然有显着的改进空间。

7. 理解上下文

当人类向AI聊天机器人咨询有关个人生活的建议时,重要的是该模型需要基于特定的条件提供更好的解决方案。在不同的上下文中提出同样的问题可能会有不同的答案。

8. 文本操作

LLMs需要能够执行基本的文本操作,如文本分类、翻译、摘要等。

9. 智商

智商是用来评判人类智力的一项指标,也可以应用于机器。

10. 情商

情商是人类智力的另一方面,也可应用于LLMs。具有更高情商的模型将更安全地被使用。

11. 具备多功能

模型可以涵盖的领域和语言数量是另一个重要因素,可以用于将模型分类为通用AI或特定领域的AI。

12. 实时更新

一个能够实时进行信息更新的模型可以做出更大范围的贡献,产生更好的结果。

13. 成本

开发和运维成本也应该考虑在内。

14. 一致性

相同或类似的提示应该产生相同或几乎相同的响应,否则确保部署于商业环境的质量将会很困难。

15. 提示工程的需要程度

需要使用多少详细和结构化的提示工程才能获得最佳响应,也可以用来比较两个模型。

06 总结

大型语言模型(LLMs)的发展彻底改变了自然语言处理领域。然而,当下仍需一个全面性的和标准化的评估框架来评估这些模型的质量。现有的框架提供了有价值的参考,但它们缺乏全面性和标准化,并且没有将安全作为评估因素

可靠的评估框架应该考虑诸如真实性、速度、正确的语法和可读性、没有偏见、回溯回答的参考来源、安全和责任、理解上下文、文本操作、智商、情商、具备多功能和实时更新等因素。 开发这样的框架将帮助这些公司更负责任地发布LLMs,并能够确保其质量、可用性和安全性。与相关机构和专家合作,建立一个真实和全面的LLMs评估框架是十分有必要的。

END

本文经原作者授权,由Baihai IDP编译。如需转载译文,请联系获取授权。

原文链接

https://www.analyticsvidhya.com/blog/2023/05/how-to-evaluate-a-large-language-model-llm/

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

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

相关文章

DOCker安装(一)

DOCker的安装 1、简介 Docker使用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。 Docker容器通过Docker镜像来创建。 容器之间互不干扰 容器与镜像的关系类似于面向对象编程中的对象与类。 对象->容器 镜像->类 通过镜像来创建容器 …

如何用MarkDown轻松排版和格式化文档?

前言 大家好哦!我写作用的语言是MarkDown,真的非常好用,在本文中我将一字字的教你如何使用这个轻量化,容易上手的轻标记语言。 1. 什么是MarkDown MarkDown是一种轻量级的标记语言,它可以在文本中通过简单的标记实现…

基于Java+SpringBoot+Vue+uniapp微信小程序实现仓储管理系统

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

OpenHarmony端云一体化应用开发快速入门练习(上)基础配置

一 、整体说明 SDK版本更新说明 二、开发流程 集成SDK (一)前提条件 安装HUAWEI DevEco Studio 3.1及以上版本,配置 SDK API Version 9及以上,Compile SDK Version 9及以上,Compatible SDK Version 9及以上。 &#…

mpi实现矩阵乘法,卷积,池化(gemm,covn,pooling)

矩阵乘法: 卷积: 池化: Mpi基本原理: 1.什么是MPI Massage Passing Interface:是消息传递函数库的标准规范,由MPI论坛开发。 一种新的库描述,不是一种语言。共有上百个函数调用接口,提供与C和F…

【Rust日报】2023-06-16 Rust在Stack Overflow上连续8年成为最受欢迎语言(文末有彩蛋)...

推荐23个Rust Top开源项目 根据LibHunt网站Rust主题下有关统计,这里列出前5个Rust Top开源项目:deno、rust、tauri、alacritty、rustdesk。 阅读更多:Top 23 Rust Open-Source Projects https://www.libhunt.com/topic/rust Tweets&#xff1…

微信小程序触底加载scroll-view

微信小程序触底加载 scroll-view 了解什么是触底加载? 需求:有个固定高度的容器,实现容器里面的内容触底加载 1、内容盒子的高度 2、盒子里内容的总高度 3、滚动条的scrollTop 触底加载的原理就是 当里面的容器触底的时候进行分页&#xff0…

【题解】[ABC306G] Return to 1(数论)

【题解】[ABC306G] Return to 1 题目链接 ABC306G - Return to 1 题意概述 本题多测,\(T\) 组数据。 对于每组数据,给定一个 \(n\) 个点 \(m\) 条边的有向图,无重边自环。 问从顶点 \(1\) 出发,能否恰好走 \({10^{10}}^{100}\) 步…

【八大排序(七)】归并排序初级篇-递归版

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:八大排序专栏⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习排序知识   🔝🔝 归并排序 1. 前言2. 归并排序基本思路3. …

在数组中各位置上计算该位置以前所有元素的累加结果(Nan值视为0)numpy.nancumsum()

【小白从小学Python、C、Java】 【等级考试500强双证书考研】 【Python-数据分析】 在数组中各位置上计算该位置以前 所有元素的累加结果(Nan值视为0) numpy.nancumsum() [太阳]选择题 以下说法错误的是: import numpy as np a np.array([[n…

使用兮克 2.5G 交换机将北京联通 EPON 改为 ODI 猫棒接入

使用兮克 2.5G 交换机将北京联通 EPON 改为 ODI 猫棒接入 最近入手了兮克2.5G交换机(兮克SKS1200-8GPY1XF),有 8 个 2.5G 电口和 1 个 10G SFP 光口;支持多种组网模式,其中一种是支持使用猫棒接入,由路由器…

聊聊微服务到底该如何划分

背景 现在动不动就是微服务架构,但是微服务划分的合理与否会极大的影响开发过程中的复杂度,划分的重要性不言而喻,但是在微服务划分这条路上并没有银弹,有的说DDD可以解决微服务的划分问题,吕哥想说的是那只是理论上的…

Linux常用命令——gcc命令

在线Linux命令查询工具 gcc 基于C/C的编译器 补充说明 gcc命令使用GNU推出的基于C/C的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC…

Linux---上传和下载、压缩和解压

1. 上传下载 可以通过FinalShell工具,方便的和虚拟机进行数据交换。 在FinalShell软件的下方窗体中,提供了Linux的文件系统视图,可以方便的: 浏览文件系统,找到合适的文件,右键点击下载,即可…

STL中set与map介绍

目录 一. 键值对1. 关联式容器2. pair3. 应用场景 二. set1. set的介绍2. set的使用3. multiset的介绍 三. map1. map的介绍2. map的使用3. multimap的介绍 一. 键值对 ​ 用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value。key代表键…

Draw.io 高阶用法

drawio是一款非常不错画流程图的软件,而且是免费的,但大部分图形以2D为主,有时候 却需要一些3D效果来增强方案 举个例子: 需要变成这样,看起来更3D 方法: 先拖入一个圆形,把限制比例去掉&a…

【C数据结构】队列_Queue

目录 队列_Queue 【1】队列的概念及结构 【2】节点队列的实现 【2.1】队列的各个接口 【2.2】队列的初始化 【2.3】队列栈的释放 【2.4】队尾入队列 【2.5】队头出队列 【2.6】获取队列头部元素 【2.7】获取队列尾部元素 【2.8】获取队列中有效元素个数 【2.9】检测…

图像 检测 - CenterNet: Objects as Points (arXiv 2019)

CenterNet: Objects as Points - 目标作为点(arXiv 2019) 摘要1. 引言2. 相关工作3. 准备工作4. 目标作为点4.1 3D 检测4.2 人体姿态估计 5. 实施细节6. 实验6.1 目标检测6.1.1 附加实验 6.2 3D 检测6.3 姿态估计 7. 结论References附录A:模型…

Nginx安装Windows、Linux | 正向代理、反向代理、负载均衡

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Nginx Nginx是一个高性能的HTTP和反向代理服务器,也可用作电子邮件代理服务器和通用TCP/UDP代理服务器。它是一个轻量级的Web服务器,可以作为静…

[进阶]Java:线程概述、线程创建方式

什么是线程? 线程(thread)是一个程序内部的一条执行路径。我们之前启动程序执行后,main方法的执行其实就是一条单独的执行路径。程序中如果只有一条执行路径,那么这个程序就是单线程的程序。 多线程是什么? 多线程是指从软硬件上…