Skip to content
Go back

anthropics的prompt评测教程1:评估简介

Published:  at  09:00 AM

特别注意:本文搬运自 github 项目 anthropics/courses/prompt_evaluations ,经过中文翻译,内容可能因为转译有少数表达上的改动,但不影响主要逻辑,仅供个人阅读学习使用

Evaluations 101  评估基础

本课程(以及后续的八门课程)专注于编写 LLM 用例评估的方法,这是开发人工智能应用的关键组成部分。

在快速发展的人工智能领域,大型语言模型已成为各行各业企业的强大工具。

然而,要充分发挥这些模型的潜力,不仅需要实施,还需要仔细评估和优化。这就是提示评估,或称为“评估”发挥作用的地方。

这些是我们内部解决方案架构师团队的两位真实引言,解释了为什么评估如此重要:

团队衡量其模型性能的能力(或无法能力)是 LLMs 生产用例的最大障碍,同时也使提示变成了一种艺术而不是科学 尽管评估需要花费大量时间,但提前进行评估将长期节省开发人员的时间,并使更好的产品能更快地推出

开发人员不编写评估有两个主要原因:

  1. 不清楚如何实际实施评估

  2. 本课程旨在解释这两部分:评估是什么以及如何撰写评估。

本入门课程介绍了第一部分,阐述了评估的概念,并对各种评估方法进行了高层级的概述。

Benchmarks  基准测试

在我们深入客户评价之前,让我们花点时间讨论一种大多数人熟悉的形式的评价:模型基准测试。

模型基准测试就像 AI 世界的标准化考试。就像 SAT 分数据说是为了给大学一个关于学生学术能力的总体概念一样,模型基准测试也给我们提供了一个关于 AI 模型在一系列任务中表现如何的总体概念。

创建大型语言模型的公司会运行这些基准测试来展示他们的模型能做什么。你可能会看到在名为 ARC、MMLU 或 TruthfulQA 等奇怪名称的测试中取得令人印象深刻的分数。

这些基准涵盖了从基本的阅读理解到跨各个领域的进阶推理和知识。它们对于比较不同的模型和跟踪人工智能能力的整体进展很有用。

你可能熟悉显示基准分数的模型卡:

虽然这些基准测试对于炫耀权利和了解模型的一般能力很有用,但它们并非全部真相。

它有点像知道一个人的智商分数——它可能(或者不可能!)告诉你一些关于他们一般智力的信息,但它并不能告诉你他们是否擅长你的特定工作。

Customer evaluations  客户评价

想象一下,你刚刚买了一把崭新的瑞士军刀。它配有几十种工具和小配件,但你主要感兴趣的是用它来在露营时开罐头。
当然,它也能修剪指甲或开启葡萄酒瓶,但它实际开罐头的效果如何?这就是针对大型语言模型的即时评估的重要性所在。

LLMs 就像超级瑞士军刀一样,用于处理文本。它们可以用语言做各种各样令人惊叹的事情,从写诗到编写软件。
但是,当你使用 LLM 执行特定任务——比如回答客户服务邮件或生成产品描述——你需要知道它在特定工作上的表现如何。

这就是提示评估,或简称“评估”,发挥作用的地方。提示评估(也称为客户评估)是系统测试,旨在衡量 LLM 在你的特定用例上的表现。
它们是 LLM 的通用能力和你的业务应用独特需求之间的关键桥梁。
通过实施稳健的评估指标,您可以确保模型和提示组合不仅符合通用基准,而且在您需要它执行的特殊任务中表现出色。

评估的主要好处包括:

在编写和优化提示时,我们遵循一个迭代过程,该过程围绕评估展开:

process.png

评估都是关于为我们的提示+模型组合分配指标来量化其质量。没有定量的测量,我们如何知道对提示的更改是否带来了改进?

评估包含哪些内容?

一个设计良好的提示评估由四个主要组成部分构成:

eval_diagram.png

我们通常建议至少有 100 个测试用例/黄金答案对以获得最佳结果,但是为了降低遵循本课程的学员的 API 成本,我们的大多数评估将使用更少的对。

示例评估数据集

想象一下,如果我们想使用一个 LLM 来分类客户的投诉。一个(非常小)的评估数据集可能看起来像这样:

eval_data = [ { “complaint”: “The app crashes every time I try to upload a photo”, “golden_answer”: [“Software Bug”] }, { “complaint”: “My printer isn’t recognized by my computer”, “golden_answer”: [“Hardware Malfunction”] }, { “complaint”: “I can’t figure out how to change my password”, “golden_answer”: [“User Error”] } ]

对于每个输入的投诉,我们都包含一个相应的黄金答案分类。我们将在接下来的课程中扩展这个示例,并学习如何运行和评估。


评分方法

选择合适的评分方法是确保我们评估有效性的关键。每种方法都有其优势,适用于不同类型的任务。

人机评分

对于需要细致理解或主观判断的任务,基于人的评分仍然是黄金标准。这种方法涉及让个人——通常是领域专家——审查模型的输出,评估其质量,并为每个输出分配分数。

人工评分在评估语气、创造力、复杂推理或事实性等方面表现出色,尤其是在处理开放式任务或答案的正确性取决于微妙上下文因素时。它特别有价值。
不足之处在于它耗时且可能昂贵,尤其是在大规模评估时。它还容易受到不同评分者之间不一致性的影响。

人工评分的形式包括:

代码评分

基于代码的评分使用程序化方法来评估模型的输出。这种方法适用于具有明确、客观标准的任务。
例如,如果你使用 LLM 从文本中提取特定数据点,你可以使用代码来检查提取的信息是否与预期值匹配。

基于代码的评分的主要优势在于其速度和可扩展性。一旦设置好,它可以快速且一致地处理数千次评估。然而,它在处理细微差别或主观响应方面的能力有限。
常见的基于代码的评分技术包括精确字符串匹配、关键字存在检查和使用正则表达式进行模式匹配。

代码评分的形式包括:

基于 LLM 的评分

基于 LLM 的评分方法介于基于代码和基于人工的方法之间。这种方法使用另一个 LLM(有时是同一个)来评估输出。
通过精心设计评分提示,你可以利用 LLM 的语言理解能力来评估广泛的指标。

这种方法可以处理比基于代码的评分更复杂和主观的评估,同时比人工评分更快、更具可扩展性。
然而,它需要熟练的提示工程来确保可靠的结果,并且始终存在评分 LLM 引入自身偏见的风险。

模型评分的形式包括:


结论

实现稳健的提示评估是开发有效 LLM 应用的关键步骤。通过系统地测试和优化你的提示,你可以确保你的应用提供一致、高质量的结果,满足你的特定需求。
请记住,在创建良好的评估上投入的时间会在改进性能、简化优化和增强你对 LLM 解决方案的信心上得到回报。

接下来,让我们学习如何编写评估!


Share this post on:

Previous Post
anthropics的prompt评测教程2:工作台评估
Next Post
iTerm2冷启动加速