作为一个整天鼓捣大语言模型应用的大学生,我经常遇到一个头疼事儿:做了个 RAG 管道、搞了个聊天机器人,或者搭了个代理工作流之后,怎么才能知道它到底好不好、靠不靠谱?都说提示工程重要,模型选择也关键,但优化了半天,该用哪个模型,哪个提示词效果真棒,哪个架构更稳定?
凭感觉?靠肉眼对比几个输出?这也太不“极客”了!
过去用第三方厂商的大模型接口,总有点不放心:万一它给我的模型是个“残血版” API 呢?
我们普通开发者怎么知道厂商有没有在后台偷偷限制性能?这事儿想起来就憋屈。直到我刷到了 DeepEval,好家伙,终于有个开源的、还100%在本地跑的框架能解决这些痛点了。
简单说,DeepEval 就是专为 LLM 系统打造的评估框架。它的理念非常清晰:像测试普通代码一样去系统地测试你的 LLM 应用输出。它借鉴了大家熟悉的 Pytest 的风格,但核心功能聚焦在评估 LLM 返回的内容质量上。
它牛在哪?关键在于它直接整合了最新的学术研究成果(如 G-Eval, RAGAS 等),提供了一堆实实在在的科学指标,比如:
最爽的是,这些指标的评估过程全部在你自己的电脑上运行!DeepEval 会巧妙地在你本地运行一些开源的、轻量级的 NLP 模型(如 BERT, DeBERTa),或者调用你自己选择的本地 LLM(通过 Hugging Face 或 Ollama 之类的接口)来进行判断。这意味着:
无论你是在搞 LangChain、LlamaIndex 的 RAG,还是在调教聊天机器人,或是调试 AI 代理的工作流,DeepEval 都能无缝接入,帮你找到最优解。
DeepEval 的安装极其顺滑,跟着它文档走就行(项目地址),我这里也实测验证一遍:
创建环境(推荐但不强求):养成好习惯,避免依赖冲突。
python -m venv deepeval-env
source deepeval-env/bin/activate # Linux/macOS
# 或者 deepeval-env\Scripts\activate # Windows
安装包:核心就这一行。
pip install -U deepeval
写一个最简单的测试:比如我们测试一个简单的模型问答是否相关。创建一个 test_demo.py
文件:
from deepeval.metrics.answer_relevancy import AnswerRelevancy
from deepeval.test_case import LLMTestCase
from deepeval.run_test import assert_test
# 1. 定义测试用例:你的输入、期待的输出、模型的实际输出、以及上下文(如果有的话)
test_case = LLMTestCase(
input="DeepEval是什么?",
actual_output="DeepEval是一个开源的LLM评估框架,用于在本地测试语言模型输出的质量。",
context=["DeepEval是一个开源框架,专注于评估大语言模型(LLM)的响应质量,类似Pytest但用于LLM输出。它支持各种指标并在本地运行。"]
)
# 2. 选择一个或多个评估指标
metric = AnswerRelevancy(threshold=0.5) # 设置判定相关性的阈值(0-1)
# 3. 运行测试并断言
def test_answer_relevancy():
assert_test(test_case, [metric])
运行测试:瞬间回归到熟悉的 pytest
流程!在项目目录执行:
pytest test_demo.py
DeepEval 会自动触发评估,并将结果清晰地输出在控制台,还会生成漂亮的 HTML 报告(运行后会在你当前目录生成 deepeval_results
文件夹,点开里面的 html 就能看可视化报告)。
https://github.com/confident-ai/deepeval/raw/main/docs/assets/hallucination_report_preview.png?raw=true
(图片来自 DeepEval 官方 Github README)
整个流程和写单元测试几乎一模一样。如果你是 Pytest 用户,几分钟就能完全上手。
用了一段时间 DeepEval,我最大的感触就是:开箱即用的硬核指标+免费+本地运行的组合,真的很方便。
最重要的是,终于可以光明正大地测一测,看看你调用的 API 模型是不是真的“满血版”了! 这个能力对于开源模型的部署测试以及比较不同云厂商服务差异尤其重要。
无论你是想比较 GPT-4 和 Claude 3 在自家任务上谁更强,还是想优化 RAG 链条中的提示词和分块策略,或者只是想确保你的本地部署大模型工作正常,DeepEval 都是一个值得放进工具箱的开源利器。
如果你也在折腾 LLM 应用,真心建议去 DeepEval 的 GitHub(https://github.com/confident-ai/deepeval) 仓库看看文档和示例,文档有中文版阅读起来很方便。
往期回顾:
【开源项目】5 行代码重塑 AI 记忆:cognee 让 AI Agent 告别“金鱼脑”
【开源模型】高考数学139分!小米MiMo开源模型:7B参数突出重围
【同声传译】RealtimeSTT:超低延迟语音转文字,支持唤醒词与中译英