你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

LLM 端到端评估

Azure AI 服务
Azure AI 搜索
Azure OpenAI 服务
Azure 机器学习

当你到达此阶段时,你已经生成了搜索索引并确定了要执行的搜索。 此阶段将从根据大型语言模型评估包含检索到的基础数据的预期用户提示的角度,对检索增强生成 (RAG) 解决方案进行评估。 在进入这一阶段之前,应该已经完成了准备阶段,即收集测试文档和查询、对测试文档进行分块、扩充区块、嵌入区块、创建搜索索引并实施搜索策略。 应该已经对每个阶段进行了评估,并得到了满意的结果。 至此应该可以确信,解决方案可以为用户查询返回相关的基础数据。

这些基础数据构成了向大型语言模型发送提示的上下文,以处理用户的查询。 提示工程策略不在本文讨论范围之内。 本文从基础数据的角度对工程调用大型语言模型进行了评估。 本文介绍一些常见的大型语言模型评估指标,以及一些可用于大型语言模型评估计算或作为独立指标的特定相似性和评估指标。

本文并未尝试详尽列举大型语言模型指标或相似性和评估指标。 这些指标的数量与日俱增。 需要从本文中了解的是,指标有很多种,而每种指标都有自己独特的用例。 只有你才能全面了解自己的工作量。 你和数据科学家必须确定要衡量的是什么,以及哪些指标有助于完成这项任务。

本文是一系列文章的其中一篇。 阅读简介

大型语言模型评估指标

可以使用多个指标来评估大型语言模型的响应,包括基础性、完整性、利用率和相关性。

重要

大型语言模型的响应并不具有确定性,这意味着向大型语言模型发出相同的提示,通常都会返回不同的结果。 作为评估过程的一部分,在使用大型语言模型时了解这一点非常重要。 在使用大型语言模型进行评估时,考虑使用目标范围而不是单个目标。

真实性

基础性(有时也称为忠实性)可衡量响应是否完全基于上下文。 它会验证响应未使用上下文中存在的信息之外的其他信息。 如果基础性指标较低,则表明大语言模型可能会偏离想象或无意义的领域,即出现误报。

正在计算

正在评估

如果基础性较低,则表明大型语言模型认为这些区块并不相关。 应该评估是否需要在语料库中添加数据、调整分块策略或区块大小,或者对提示进行微调。

完整性

完整性衡量的是响应是否回答了查询的所有部分。 完整性有助于了解上下文中的区块是否依赖于查询并直接与查询相关,同时提供完整的答案。

正在计算

  • AI 辅助:检索分数提示
  • 大型语言模型有助于衡量大型语言模型的响应质量。 你需要问题、上下文和生成的答案来执行此测量。 下面概述了高级别流程:
    1. 使用大型语言模型来重新表述、总结或简化问题。 此步骤将确定意图。
    2. 要求模型检查是否能从检索到的文档中找到或导出意图或意图的答案,每个文档的答案可以是“否”或“是”。 以“是”开头的答案表示检索到的文档与意图或意图的答案相关。
    3. 计算答案以“是”开头的意图的比例。
    4. 将分数平方以突出显示错误。

正在评估

如果完整性较低,则首先要评估嵌入模型。 将内容中的词汇与所选嵌入模型中的词汇进行比较。 确定是需要特定领域的嵌入模型,还是需要对现有模型进行微调。 下一步是对分块策略进行评估。 如果使用固定长度,请考虑增加区块的大小。 还可以评估测试数据是否有足以彻底解决问题。

利用率

利用率衡量的是响应在多大程度上是由上下文中的信息区块组成的。 目标是确定每个区块在多大程度上属于响应的一部分。 如果利用率低,则表明结果可能与查询不相关。 应在评估完整性的同时评估利用率。

正在计算

可以使用大型语言模型来计算利用率。 可以将响应和包含区块的上下文传递给大型语言模型。 可以要求大型语言模型确定包含答案的区块数量。

正在评估

下表从完整性和利用率两方面提供了指导。

高利用率 低利用率
高完整性 无需操作 在这种情况下,返回的数据能够解决问题,但返回了不相关的区块。 考虑降低 top-k 参数值,以获得更可能/更确定的结果。
低完整性 在这种情况下,所提供的区块已被使用,但并未完全解决该问题。 考虑以下情况:
  • 查看分块策略以增加区块内的上下文
  • 通过提高 top-k 参数值来增加区块数量
  • 评估是否有未返回的区块可以提高完整性。 如果有,请调查没有返回的原因。
  • 按照完整性部分中的指南操作
在这种情况下,问题未得到完整回答,提供的区块也未得到很好的利用。 为解决这些问题,请考虑以下几点:
  • 查看分块策略以增加区块内的上下文。 如果使用固定大小的分块,请考虑增加区块大小。
  • 微调提示以改进响应

相关性

衡量大型语言模型的响应与查询的相关度。

正在计算

正在评估

如果相关性较低,应评估以下内容:

  • 确保提供给大型语言模型的情况是相关的。
    • 确定是否有未返回的相关可行区块。 如果有,请评估嵌入模型。
    • 如果没有可行的区块,则查看是否存在相关数据。 如果是这样,请评估分块策略。
  • 如果返回了相关区块,请评估提示。

应计算其他评估方法(如完整性),并得出与相关性衡量中观察到的分数相似的分数。

相似性和评估指标

如导言所述,数据科学中使用的相似性和评估指标多达数百种。 有些算法针对特定领域,如语音到文本或语言到语言的翻译。 每种算法都有独特的指标计算策略。

数据科学家可确定要衡量的内容,以及可以用来衡量它的指标或指标组合。 例如,在语言翻译领域,Bleu 指标可以检查机器翻译和人工翻译中出现的 n-grams 数量,以衡量基于使用相同单词的相似性。 而余弦相似性可使用机器翻译和人工翻译之间的嵌入来衡量语义相似性。 如果目标是获得较高的语义相似性,并使用与人工翻译相似的词语,那么目标就是获得高 Bleu 分数和高余弦相似性。 如果只关心语义相似性,那就会关注余弦相似性。

下面列出了一些常见的相似性和评估指标。 请注意,列出的相似性指标被描述为基于标记、基于序列或基于编辑,这说明了它们是如何使用截然不同的方法来计算相似性的。 另请注意,列表中包含三种用于评估从一种语言翻译成另一种语言的文本质量的算法。

  • 最长常见子字符串 - 基于序列的算法,用于查找两个字符串之间最长的常见子字符串。 最长的常见子字符串百分比用最长的常见子字符串除以较小或较大输入字符串的字符数。
  • 最长的常见子序列 (LCS) - 基于序列的算法,用于查找两个字符串之间的最长子序列。 LCS 并不要求子序列按连续顺序排列。
  • 余弦相似性 - 基于标记的算法,用于计算两个矢量之间的夹角余弦值。
  • Jaro Winkler - 基于编辑的算法,用于计算将一个字符串转换成另一个字符串的最少步骤数。
  • Hamming - 基于编辑的算法,用于衡量将一个字符串转换为另一个字符串所需的最少替换次数。
  • Jaccard - 基于标记的算法,通过将两个字符串的交集除以这两个字符串的并集来计算相似性。
  • Levenshtein - 基于编辑的算法,通过确定将一个字符串转换为另一个字符串所需的最小单字符编辑数来计算相似性。
  • BLEU - 评估从一种语言到另一种语言的机器翻译文本的质量。 Bleu 通过计算机器翻译和人工翻译之间的 n-grams 重叠来进行评估。
  • ROUGE - 将一种语言的机器翻译与另一种语言的人工翻译进行比较。 有几种 ROUGE 变体使用 n-grams、skip-bigrams 或最长常见子序列的重叠。
  • METEOR - 通过查看完全匹配、词干、同义词、意译和对齐情况来评估机器翻译结果的文本质量。

有关常见的相似性和评估指标,请参阅以下资源:

文档、报告和聚合

应该记录下实验所选择的超参数以及由此产生的评估指标,以便了解超参数对实验结果的影响。 应记录嵌入或搜索评估等精细级别的超参数和结果,以及端到端测试整个系统等宏观级别的超参数和结果。

在设计和开发过程中,可以手动跟踪超参数和结果。 然而,对整个测试文档和测试查询语料库进行多次评估可能会涉及数百次评估运行和数千次评估结果。 应自动执行评估的参数和结果的持久化。

一旦超参数和结果被持久化,就应考虑构建图表和图形,以便更轻松地直观显示超参数选择对指标的影响。 可视化效果有助于确定哪些选择会导致性能下降或峰值。

必须明白设计和评估 RAG 解决方案并非一劳永逸的工作。 文档语料库会随着时间的推移而变化。 客户提出的问题会随着时间的推移而变化,而对问题类型的理解也会随着从生产中学习而不断发展。 因此应该反复重温这一过程。 维护过去的评估文档对未来的设计和评估工作至关重要。

RAG 试验加速器

这些文章将引导完成设计和评估 RAG 解决方案所涉及的所有阶段和设计选择。 这些文章的重点是应该做什么,而不是如何做。 一个与 Microsoft 顶级客户合作的工程团队开发了一个名为 RAG 试验加速器的工具。 作为一种先进的实验框架,RAG 试验加速器旨在优化和加强检索增强生成 (RAG) 解决方案的开发。 RAG 试验加速器使研究人员和开发人员能够高效地探索和微调驱动 RAG 性能的关键组件,最终实现更准确、更连贯的文本生成。

利用其基于 CLI 的界面,可以毫不费力地尝试各种嵌入模型、完善分块策略并评估不同的搜索方法,从而充分发挥 RAG 系统的潜力。 它允许专注于 RAG 开发的核心方面,同时通过简单的配置将超参数调整的复杂性抽象化。

此外,该框架还为大型语言模型配置提供全面支持,能够在模型复杂性和生成质量之间取得完美平衡。 通过该工具可以简化实验过程,节省宝贵的时间,并显著提高 RAG 模型的性能。

无论是不断探索自然语言理解极限的资深研究人员,还是寻求提高文本生成能力的行业专业人士,该试验框架都是加速 RAG 开发之旅的终极解决方案。 拥抱 RAG 试验的未来,利用这一尖端工具发掘模型的真正潜力。

具有视觉应用程序框架的 RAG

本文中有关在 RAG 解决方案中使用媒体的大部分指导来自与 Microsoft 顶级客户合作的另一个工程团队。 此团队编写了一个名为具有视觉应用程序框架的 RAG的框架。 该框架提供了基于 Python 的检索增强生成 (RAG) 管道,用于处理来自 MHTML 文档的文本和图像内容。

该框架从 MHTML 文件中加载、分块并扩充文本和图像,并将这些块引入 Azure 搜索。 该框架实现了缓存,以扩充图像,从而提高处理效率和成本效益。 该框架还将评估作为管道的一部分。

供稿人

后续步骤