LangChain 开箱即用评估器
LangChain 的评估模块提供了您可以直接使用的评估器,用于常见的评估场景。要了解如何使用这些评估器,请参阅以下指南。
注意
我们目前仅在 LangChain 的 Python 版本中支持开箱即用评估器。
注意
这些评估器大多数都很有用,但并非完美!我们建议不要盲目信任任何单一的自动化指标,而应始终将它们作为整体测试和评估策略的一部分。许多基于 LLM 的评估器会为给定的数据点返回一个二元分数,因此,衡量 prompt 或模型性能的差异在更大的数据集上总体而言最可靠。
下表列出了 LangSmith 中提供的开箱即用评估器,以及它们的输出键和一个简单的代码示例。
评估器名称 | 输出键 | 简单代码示例 |
---|---|---|
问答 | 正确性 | LangChainStringEvaluator("qa") |
上下文问答 | 上下文准确性 | LangChainStringEvaluator("context_qa") |
思维链问答 | cot 上下文准确性 | LangChainStringEvaluator("cot_qa") |
标准 | 取决于标准键 | LangChainStringEvaluator("criteria", config={ "criteria": <criterion> }) criterion 可以是默认实现的 criteria 之一:conciseness 、relevance 、correctness 、coherence 、harmfulness 、maliciousness 、helpfulness 、controversiality 、misogyny 和 criminality 。或者,您可以按如下所示在自定义 dict 中定义自己的 criteria { "criterion_key": "criterion description" } |
标记标准 | 取决于标准键 | LangChainStringEvaluator("labeled_criteria", config={ "criteria": <criterion> }) criterion 可以是默认实现的 criteria 之一:conciseness 、relevance 、correctness 、coherence 、harmfulness 、maliciousness 、helpfulness 、controversiality 、misogyny 和 criminality 。或者,您可以按如下所示在自定义 dict 中定义自己的 criteria { "criterion_key": "criterion description" } |
评分 | 取决于标准键 | LangChainStringEvaluator("score_string", config={ "criteria": <criterion>, "normalize_by": 10 }) criterion 可以是默认实现的 criteria 之一:conciseness 、relevance 、correctness 、coherence 、harmfulness 、maliciousness 、helpfulness 、controversiality 、misogyny 和 criminality 。或者,您可以按如下所示在自定义 dict 中定义自己的 criteria { "criterion_key": "criterion description" } 。分数是 10 分制,因此 normalize_by 会将其转换为 0 到 1 的分数。 |
标记评分 | 取决于标准键 | LangChainStringEvaluator("labeled_score_string", config={ "criteria": <criterion>, "normalize_by": 10 }) criterion 可以是默认实现的 criteria 之一:conciseness 、relevance 、correctness 、coherence 、harmfulness 、maliciousness 、helpfulness 、controversiality 、misogyny 和 criminality 。或者,您可以按如下所示在自定义 dict 中定义自己的 criteria { "criterion_key": "criterion description" } 。分数是 10 分制,因此 normalize_by 会将其转换为 0 到 1 的分数。 |
Embedding 距离 | embedding_cosine_distance | LangChainStringEvaluator("embedding_distance") |
字符串距离 | string_distance | LangChainStringEvaluator("string_distance", config={"distance": "damerau_levenshtein" }) distance 定义了要应用的字符串差异度量标准,例如 levenshtein 或 jaro_winkler 。 |
精确匹配 | exact_match | LangChainStringEvaluator("exact_match") |
Regex 匹配 | regex_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 Schema | json_schema | LangChainStringEvaluator("json_schema") |