字符串评估器
字符串评估器是LangChain中的一个组件,用于通过比较生成的输出(预测)与参考字符串或输入来评估语言模型的性能。这个比较是评估语言模型的关键步骤,提供了生成文本的准确性或质量的度量。
在实践中,字符串评估器通常用于评估预测的字符串与给定的输入(如问题或提示)的匹配程度。通常,会提供一个参考标签或上下文字符串来定义正确或理想的响应。这些评估器可以根据您的应用程序的特定要求进行定制。
要创建一个自定义的字符串评估器,可以继承StringEvaluator
类并实现_evaluate_strings
方法。如果需要异步支持,还需实现_aevaluate_strings
方法。
以下是与字符串评估器相关的关键属性和方法的摘要:
evaluation_name
:指定评估的名称。requires_input
:布尔属性,指示评估器是否需要输入字符串。如果为True,则在未提供输入时,评估器将引发错误。如果为False,则如果提供了输入,将记录警告,指示它不会在评估中考虑。requires_reference
:布尔属性,指定评估器是否需要参考标签。如果为True,则在未提供参考时,评估器将引发错误。如果为False,则如果提供了参考,将记录警告,指示它不会在评估中考虑。
字符串评估器还实现了以下方法:
aevaluate_strings
:异步评估Chain或语言模型的输出,支持可选的输入和标签。evaluate_strings
:同步评估Chain或语言模型的输出,支持可选的输入和标签。
以下部分提供了有关可用字符串评估器实现的详细信息,以及如何创建自定义字符串评估器的说明。
📄️ 标准评估 criteria Evaluation
在希望使用特定的评分标准或标准集来评估模型输出的场景中,criteria 评估器是一个方便的工具。它允许您验证 LLM 或 Chain 的输出是否符合定义的一组标准。
📄️ 自定义字符串评估器
您可以通过继承StringEvaluator类并实现evaluatestrings(以及aevaluatestrings用于异步支持)方法来创建自己的自定义字符串评估器。
📄️ Embedding距离评估
为了衡量预测和参考标签字符串之间的语义相似性(或不相似性),您可以使用向量距离度量两个嵌入表示之间的embedding_distance评估器。[1]
📄️ 字符串距离
比较LLM或链的字符串输出与参考标签之间的最简单方法之一是使用字符串距离测量,例如Levenshtein或后缀距离。这可以与近似/模糊匹配标准一起用于非常基本的单元测试。