category
一旦你进入这个阶段,你就生成了搜索索引,并确定了你想要执行的搜索。这个阶段从评估预期的用户提示的角度来处理评估你的检索增强生成(RAG)解决方案的过程,该提示包含了针对大型语言模型检索的基础数据。在你进入这个阶段之前,你应该已经完成了准备阶段,在这个阶段,你收集了测试文档和查询,对测试文档进行了分块,丰富了块,嵌入了块,创建了搜索索引,并实施了搜索策略。您应该已经评估了这些阶段中的每一个,并对结果感到满意。在这一点上,您应该对您的解决方案为用户查询返回相关的基础数据感到满意。
这些基础数据形成了发送到大型语言模型以处理用户查询的提示的上下文。及时的工程策略【Prompt engineering strategies】超出了本文的范围。本文从基础数据的角度讨论了对大型语言模型的工程调用的评估。本文涵盖了一些常见的大型语言模型评估指标,以及一些特定的相似性和评估指标,这些指标可用于大型语言模型的评估计算或作为独立指标。
本文并不试图提供大型语言模型度量或相似性和评估度量的详尽列表。这些指标的数量每天都在增长。对您来说,从本文中了解到的重要一点是,有各种度量标准,每个度量标准都有自己独特的用例。你是唯一一个全面了解自己工作量的人。你和你的数据科学家必须确定你想要测量的是什么,以及哪些指标可以帮助你完成这项任务。
本文是系列文章的一部分。阅读简介。
大型语言模型评估指标
有几个指标可以用来评估大型语言模型的响应,包括基础性、完整性、利用率和相关性。
重要的
大型语言模型的响应是不确定的,这意味着对大型语言模型相同的提示可以并且经常会返回不同的结果。在评估过程中使用大型语言模型时,理解这一点非常重要。在使用大型语言模型进行评估时,请考虑在单个目标上使用目标范围。
Groundedness 接地性
根据性,有时被称为忠诚,衡量反应是否完全基于上下文。它验证响应没有使用上下文中存在的信息以外的信息。一个低基础性指标表明,大型语言模型可能正在漂移到被称为幻觉的想象或荒谬的领域。
计算(Calculating)
- Azure AI Content Safety Service (AACS) based groundedness 是一个自定义模型,它使用自然语言推理(NLI)来确定源文档是否包含声明(在本例中为块)。
- 【Large language model based groundedness】使用大型语言模型来确定响应的基础性水平。。
- Ragas忠实库 【Ragas faithfulness library】
- MLflow忠实度计算【MLflow faithfulness calculation】
评价
如果基础性较低,则表明大型语言模型不认为块是相关的。你应该评估是否需要向语料库中添加数据,调整分块策略或分块大小,或者微调提示。
完整性
完整性衡量响应是否回答了查询的所有部分。这有助于您了解上下文中的块是否与查询相关且直接相关,并提供完整的答案。
Calculating
- AI辅助:检索分数提示【AI-assisted: Retrieval Score prompting】
- 大型语言模型可以帮助您衡量大型语言模型响应的质量。要做到这一点,您需要问题、上下文和生成的答案。以下概述了高级别流程:
- 使用大型语言模型重新表述、总结或简化问题。这表明了意图。
- 要求模型检查是否找到意图或意图的答案,或者是否可以从检索到的文档中得出,其中每个文档的答案可以是“否”或“是”。以“是”开头的回答表示检索到的文档与意图相关或对意图的回答。
- 计算答案以“是”开头的意图的比例。
- 将分数平方以突出显示错误。
评价
如果完整性较低,请从评估嵌入模型开始。将内容中的词汇与所选嵌入模型中的词汇进行比较。确定是需要特定于领域的嵌入模型,还是需要对现有模型进行微调。下一步,评估你的分块策略。如果使用固定长度,请考虑增加块大小。您还可以评估测试数据是否有足够的数据来完全解决问题。
利用【Utilization】
利用率衡量响应在多大程度上由上下文中的块中的信息组成。目标是确定每个块在多大程度上是响应的一部分。如果利用率较低,这表明我们的结果可能与查询无关。应根据侧面完整性来评估利用率。
Calculating
您可以使用大型语言模型来计算利用率。您可以将响应和包含块的上下文传递给大型语言模型。您可以要求大型语言模型来确定包含答案的块的数量。
评价
下表提供了指导,同时考虑了完整性和利用率。
High utilization |
Low utilization |
---|---|
High completeness | No action needed |
Low completeness |
In this case, the chunks you are providing are being used, but are not fully addressing the question. Consider the following:
|
关联【Relevance】
衡量大型语言模型的响应与查询相关的程度。
Calculating
- 人工智能辅助:Azure AI Studio中的相关性-您可以使用Azure AI Studio进行计算,也可以使用本文中的指导为自己计算相关性。
- Ragas答案关联库
- MLflow相关性计算
评价
相关性较低时,评估以下内容:
- 确保提供给大型语言模型的块是相关的。
- 确定是否存在未返回的相关的可行块。如果有,请评估嵌入模型。
- 如果没有可行的区块,请查看是否存在相关数据。如果是,请评估你的分块策略。
- 如果返回了相关的块,请评估您的提示。
应计算其他评估方法,如完整性,并得出与相关性测量中观察到的分数相似的分数。
相似性和评估指标
如引言所述,数据科学中使用了数百种相似性和评估指标。一些算法是特定于某个领域的,例如语音到文本或语言到语言的翻译。每种算法都有一个独特的策略来计算其度量。
数据科学家确定你想要测量的是什么,以及你可以使用什么度量或度量组合来测量它。例如,在语言翻译领域,Bleu度量检查机器翻译和人工翻译中出现的n-gram数量,以测量基于使用相同单词的相似性。余弦相似性使用机器和人工翻译之间的嵌入来测量语义相似性。如果你的目标是具有高语义相似性,并使用与人类翻译相似的单词,那么你的目标将是具有高余弦相似性的高Bleu分数。如果你只关心语义相似性,你会关注余弦相似性。
以下列表包含常见相似性和评估指标的小样本。请注意,列出的相似性度量被描述为基于标记、基于序列或基于编辑,说明了它们如何使用截然不同的方法来计算相似性。还要注意,该列表包含三种算法,用于评估从一种语言到另一种语言的文本翻译质量。
- Longest common substring 最长公共子字符串-基于序列的算法,用于查找两个字符串之间最长的公共子字符串。最长公共子字符串百分比取最长公共个子字符串,并将其除以较小或较大输入字符串的字符数。
- Longest common subsequence (LCS)最长公共子序列(LCS)-基于序列的算法,用于查找两个字符串之间最长的子序列。LCS不要求子序列按连续顺序排列。
- Cosine similarity余弦相似性-基于令牌的算法,计算两个矢量之间的角度的余弦。
- Jaro WinkleJaroWinkler-基于编辑的算法,计算将一个字符串转换为另一个字符串的最小步骤数。
- Hamming基于Hamming-Edit的算法,测量将一个字符串转换为另一个字符串所需的最小替换数。
- JaccardJaccard-基于令牌的算法,通过将两个字符串的交集除以这些字符串的并集来计算相似性。
- LevenshteinLevenstein-基于编辑的算法,通过确定将一个字符串转换为另一个字符串所需的最小单个字符编辑次数来计算相似性。
- BLEUBLEU-评估从一种语言到另一种语言的机器翻译所产生的文本质量。Bleu计算机器翻译和人工翻译之间的n-gram重叠来进行评估。
- ROUGEROUGE-将一种语言与另一种语言的机器翻译与人工翻译进行比较。有几种ROUGE变体使用n-gram、跳过bigram或最长公共子序列的重叠。
- METEORMETEOR-通过查看精确匹配、词干后匹配、同义词、转述和对齐来评估机器翻译的文本质量。
有关常见的相似性和评估指标,请参阅以下资源:
文档、报告和汇总
您应该记录您为实验选择的超参数和由此产生的评估指标,以便了解超参数对结果的影响。您应该在细粒度级别(如嵌入或搜索评估)和宏观级别(如端到端测试整个系统)记录超参数和结果。
在设计和开发过程中,您可能能够手动跟踪超参数和结果。然而,在对整个测试文档和测试查询语料库执行多个评估时,可能会涉及数百次评估运行和数千个结果。您应该自动化评估的参数和结果的持久性。
一旦你的超参数和结果被持久化,你应该考虑构建图表,让你更容易地可视化超参数选择对指标的影响。这将帮助您确定哪些选择会导致性能下降或飙升。
重要的是你要明白,设计和评估你的RAG解决方案不是一次操作。你的文档库会随着时间的推移而变化。客户提出的问题会随着时间的推移而变化,您对问题类型的理解也会随着您从生产中学习而变化。您应该一次又一次地重新审视这个过程。保持以往评价的文件对未来的设计和评价工作至关重要。
RAG实验加速器
这些文章将带您了解设计和评估RAG解决方案所涉及的所有阶段和设计选择。这些文章关注的是你应该做什么,而不是如何做。一个与微软顶级客户合作的工程团队开发了一种名为RAG实验加速器的工具【RAG Experiment Accelerator】。RAG实验加速器是一个最先进的实验框架,旨在优化和增强检索增强生成(RAG)解决方案的开发。RAG实验加速器使研究人员和开发人员能够有效地探索和微调驱动RAG性能的关键组件,最终实现更准确、更连贯的文本生成。
凭借其基于CLI的界面,您可以毫不费力地尝试各种嵌入模型,完善分块策略,并评估不同的搜索方法,以释放RAG系统的全部潜力。它允许您专注于RAG开发的核心方面,同时使用简单的配置来抽象超参数调整的复杂性。
此外,该框架为大型语言模型配置提供了全面的支持,使您能够在模型复杂性和生成质量之间取得完美的平衡。该工具使您能够简化实验过程,节省宝贵的时间,并显著提高RAG模型的性能。
无论你是一位经验丰富的研究人员,还是一位寻求增强文本生成能力的行业专业人士,这个实验框架都是加速你的RAG开发之旅的最终解决方案。使用这一尖端工具,拥抱RAG实验的未来,释放您的模型的真正潜力。
Next steps
Related resources
- 登录 发表评论
- 18 次浏览
最新内容
- 2 days 12 hours ago
- 2 days 12 hours ago
- 2 days 12 hours ago
- 2 days 12 hours ago
- 3 days 17 hours ago
- 1 week 4 days ago
- 1 week 4 days ago
- 1 week 4 days ago
- 2 weeks ago
- 2 weeks ago