DeepEval|LLM 评测跑在本地
【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval
场景引入
上次给客服机器人跑回归评测,同事问了一句:这些测试数据是不是都发去了云端 API?不想依赖外部模型、也不想数据出内网的话,可以用 DeepEval 做本地评测——它把用例、指标计算都放在你自己的环境里完成。
你将跑通什么
你能独立完成一整套 DeepEval 本地评测:把 Ollama 上的开源模型接进评测流程当打分 judge,定义测试用例,挂上相关性指标,再用一条命令跑完并拿到每个用例的得分和通过与否。整个流程不经过任何云端评测服务。
原理一句话
本质上就是把打分模型的调用从云端 API 换成本地推理服务:指标照常工作,只是把 prompt 发给你机器上的模型,而不是发往 HTTP 接口。
完整实操
装好依赖
DeepEval 挂在 Pytest 上跑,安装只有一条 pip 命令,随包带deepevalCLI,对应文档见 getting-started。
pip install -U deepeval准备本地模型
依赖装好后,框架需要一个能打分的模型。本地环境里最省事的起点是 Ollama,它会在本机 11434 端口暴露一个推理服务(若 Ollama 已在后台运行,跳过这一步)。
ollama pull llama3 # 拉一个本地模型 ollama serve # 默认监听 http://localhost:11434接入评测
上一步 Ollama 起好后,它暴露的推理服务会被内置的 OllamaModel 直接对接,不用自己写适配器,把它传给指标即可。
# test_eval.py from deepeval.test_case import LLMTestCase from deepeval.metrics import AnswerRelevancyMetric from deepeval.models import OllamaModel ... # from deepeval import assert_test case = LLMTestCase( input="What if these shoes don't fit?", actual_output="You can return them within 30 days.", ) metric = AnswerRelevancyMetric( model=OllamaModel(model="llama3"), # 打分模型指向本地 Ollama threshold=0.7, ) def test_relevancy(): assert_test(case, [metric])跑第一批用例
上一步写好的 test_eval.py 就是一个标准 pytest 测试文件,直接用随包 CLI 跑,终端会逐条打印指标得分和通过状态。
deepeval test run test_eval.py还能做什么
端到端打分之外,DeepEval 还覆盖了离线 LLM 评估的完整链路,做本地模型评测时按下表按需取用:
| 能力 | 一句话说明 | 对应文档/模块路径 |
|---|---|---|
| LLM 测试用例生成 | 用 ConversationSimulator 模拟多轮对话批量产出用例 | docs/content/docs/conversation-simulator/ |
| 黄金数据集生成 | 从你自己的文档自动生成参考答案 | deepeval/synthesizer/ |
| 30+ 内置指标 | RAG 忠实度、毒性、角色一致性等,均支持本地 judge 模型 | metrics 介绍 |
| 框架调用追踪 | 捕获 agent 运行的完整轨迹,便于做轨迹级评估 | deepeval/integrations/ |
| CI/CD 回归 | 指标写成 pytest 断言,模型更新时自动回归 | docs/content/docs/evaluation-unit-testing-in-ci-cd.mdx |
踩过的坑
OllamaModel 连接被拒:确认ollama serve进程活着、模型已拉取;默认连http://localhost:11434,远程部署时显式传base_url。
本地模型 JSON 输出偶尔残缺:优先走支持schema参数的结构化输出路径;模型实在压不住 JSON 格式,就换一个 JSON 能力更强的本地模型当 judge。
指标得分时高时低:固定 judge 模型版本,采样温度保持 0(OllamaModel 默认即为 0);怀疑模型被更新过,用同一组用例对比重跑。
接下来可以做的事
- 读 getting-started 快速上手文档
- 多挂几个内置指标对比得分
- 去仓库 examples 目录看完整示例
【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考