在大规模语言模型(LLMs)进入生产环境时,评估(evals)是一个至关重要但常常被忽略的步骤。尽管设置评估可能有些复杂,但如果你打算在公司内部或产品中大规模使用LLMs,这是一个完全必要的步骤。所以今天,我将为大家介绍一个当前最受欢迎的评估框架之一:Deep Eval。Deep Eval是一个开源的评估框架,专为大规模语言模型设计,它自带了许多不同的评估方法,当然你也可以编写自己的评估指标。在这个教程中,我们将探索Deep Eval的基本概念、如何设置开发环境以运行这些评估,并创建我们的第一个评估测试。让我们开始吧!
创建工作目录和虚拟环境
首先,我们需要在终端中创建一个文件夹来保存所有的工作内容,并在这个文件夹中创建一个虚拟环境。
mkdir dp_eval_test
cd dp_eval_test
python -m venv
source env/bin/activate
这样我们就创建了一个名为dp_eval_test
的文件夹,并在其中激活了一个Python虚拟环境。
安装Deep Eval
接下来,我们需要在虚拟环境中安装Deep Eval。
pip install deep-eval
在安装完成之后,我们还有一个可选步骤,可以登录到Deep Eval的Web UI。这个UI是由Confident AI团队创建的,它提供了一个更友好的界面来查看评估结果,而不是仅仅在终端中查看。
deep-eval login
这个命令会要求你进行身份验证,然后你就可以使用这个UI来查看评估结果。
创建第一个评估测试
现在我们来创建第一个评估测试文件。首先,我们创建一个名为text_example.py
的文件。
touch text_example.py
然后我们将以下代码粘贴到这个文件中:
from deep_eval import Evaluator
# 设置评估指标
metric = "answer_relevancy"
# 定义测试案例
test_case = {
"input": "What if these shoes don't fit?",
"expected_output": "We offer a 30-day full refund at no extra cost."
}
# 初始化评估器
evaluator = Evaluator(metric)
# 运行评估
result = evaluator.evaluate(test_case["input"], test_case["expected_output"])
# 打印结果
print(f"Relevancy score: {result['score']}")
这个代码片段中,我们使用了一个名为answer_relevancy
的评估指标,它会检查模型的回答是否与用户的输入相关。例如,用户问“如果这些鞋子不合脚怎么办?”,模型回答“我们提供30天全额退款,不收取任何费用。”这个回答显然是相关的。
设置OpenAI API密钥
在运行评估之前,我们需要设置OpenAI的API密钥作为环境变量,以便Deep Eval可以调用GPT-4来运行评估。
export OPENAI_API_KEY="your_api_key_here"
你可以在OpenAI的官网上生成这个API密钥。
运行评估测试
一切设置妥当之后,我们可以运行评估测试:
deep-eval test run text_example.py
运行这个命令后,你应该会看到评估结果,包括使用的tokens数量、得分等信息。如果你已登录到Deep Eval的Web UI,这个命令还会提供一个URL,让你可以在UI中查看结果。
使用Web UI查看结果
登录到的confident ai的Web UI后,你会看到一个仪表板,展示了所有的评估测试。点击某个测试,你可以深入查看具体的统计数据,例如评估的输入、输出、是否通过、运行时间等。
总结
通过以上步骤,我们已经成功设置并运行了第一个Deep Eval评估测试。Deep Eval不仅提供了丰富的评估方法,还通过Web UI提供了更好的数据分析工具,特别是在大规模数据测试时非常有用。如果你希望改进你的提示词或生产环境中的LLM应用,强烈推荐使用Deep Eval框架。希望这个教程能帮助你快速上手并开始构建自己的评估测试。
Deep Eval是一个非常强大的工具,它不仅可以帮助你评估模型的性能,还可以提供深入的分析和见解,让你更好地理解和优化你的模型。在未来的文章中,我会继续探讨更多关于Deep Eval的高级功能和使用技巧,敬请期待!
关注我,每天带你开发一个AI应用,每周二四六直播,欢迎多多交流。