编者按:近期几乎每隔一段时间,就有新的大语言模型发布,但是当下仍然没有一个通用的标准来评估这些大型语言模型的质量,我们急需一个可靠的、综合的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 Evals | https://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 现有评估框架存在的问题
上述评估大型语言模型的方法各有其优势。然而,有几个重要因素使得以上这些方法似乎都并不足够完善:
- 以上任何一个框架都没有将安全性作为评估因素考虑在内。尽管“OpenAI Moderation API”在某种程度上涉及这个问题,但这并不足够。
- 上述框架在评估模型因素方面是分散的。它们中没有一个因素是足够全面综合的。
在下一节中,我们将尝试列出所有应该在一个综合的评估框架中存在的重要因素。
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-...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。