LangChain 开箱即用评估器
LangChain 的评估模块提供了开箱即用的评估器,可用于常见的评估场景。要了解如何使用这些评估器,请参阅以下指南。
注意
目前,LangChain 仅支持 Python 的开箱即用评估器。
注意
这些评估器大多有用,但并不完美!我们建议不要盲目相信任何单一的自动化指标,而应始终将其作为整体测试和评估策略的一部分。许多基于 LLM 的评估器为给定数据点返回一个二元分数,因此在更大的数据集上汇总衡量提示或模型性能差异最为可靠。
下表列举了 LangSmith 中可用的开箱即用评估器,以及它们的输出键和简单的代码示例。
评估器名称 | 输出键 | 简单代码示例 |
---|---|---|
问答 | 正确性 | LangChainStringEvaluator("qa") |
上下文问答 | 上下文准确性 | LangChainStringEvaluator("context_qa") |
思维链问答 | 思维链上下文准确性 | LangChainStringEvaluator("cot_qa") |
标准 | 取决于标准键 | LangChainStringEvaluator("criteria", config={ "criteria": <criterion> }) criterion 可以是以下默认实现的标准之一:conciseness (简洁性)、relevance (相关性)、correctness (正确性)、coherence (连贯性)、harmfulness (有害性)、maliciousness (恶意性)、helpfulness (有用性)、controversiality (争议性)、misogyny (厌女症)和 criminality (犯罪性)。或者,您可以在自定义字典中定义自己的标准,如下所示 { "criterion_key": "criterion description" } |
标注标准 | 取决于标准键 | LangChainStringEvaluator("labeled_criteria", config={ "criteria": <criterion> }) criterion 可以是以下默认实现的标准之一:conciseness (简洁性)、relevance (相关性)、correctness (正确性)、coherence (连贯性)、harmfulness (有害性)、maliciousness (恶意性)、helpfulness (有用性)、controversiality (争议性)、misogyny (厌女症)和 criminality (犯罪性)。或者,您可以在自定义字典中定义自己的标准,如下所示 { "criterion_key": "criterion description" } |
分数 | 取决于标准键 | LangChainStringEvaluator("score_string", config={ "criteria": <criterion>, "normalize_by": 10 }) criterion 可以是以下默认实现的标准之一:conciseness (简洁性)、relevance (相关性)、correctness (正确性)、coherence (连贯性)、harmfulness (有害性)、maliciousness (恶意性)、helpfulness (有用性)、controversiality (争议性)、misogyny (厌女症)和 criminality (犯罪性)。或者,您可以在自定义字典中定义自己的标准,如下所示 { "criterion_key": "criterion description" } 。分数满分为 10 分,因此 normalize_by 会将其转换为 0 到 1 之间的分数。 |
标注分数 | 取决于标准键 | LangChainStringEvaluator("labeled_score_string", config={ "criteria": <criterion>, "normalize_by": 10 }) criterion 可以是以下默认实现的标准之一:conciseness (简洁性)、relevance (相关性)、correctness (正确性)、coherence (连贯性)、harmfulness (有害性)、maliciousness (恶意性)、helpfulness (有用性)、controversiality (争议性)、misogyny (厌女症)和 criminality (犯罪性)。或者,您可以在自定义字典中定义自己的标准,如下所示 { "criterion_key": "criterion description" } 。分数满分为 10 分,因此 normalize_by 会将其转换为 0 到 1 之间的分数。 |
嵌入距离 | 嵌入余弦距离 | LangChainStringEvaluator("embedding_distance") |
字符串距离 | 字符串距离 | LangChainStringEvaluator("string_distance", config={"distance": "damerau_levenshtein" }) distance 定义了要应用的字符串差异度量,例如 levenshtein 或 jaro_winkler 。 |
精确匹配 | 精确匹配 | LangChainStringEvaluator("exact_match") |
正则表达式匹配 | 正则表达式匹配 | LangChainStringEvaluator("regex_match") |
JSON 有效性 | json_validity | LangChainStringEvaluator("json_validity") |
JSON 等价性 | json_equality | LangChainStringEvaluator("json_equality") |
JSON 编辑距离 | json_edit_distance | LangChainStringEvaluator("json_edit_distance") |
JSON 架构 | json_schema | LangChainStringEvaluator("json_schema") |