尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何 10 分钟跑通 DeepEval 本地 LLM 评测:一份完整的新手指南

如何 10 分钟跑通 DeepEval 本地 LLM 评测:一份完整的新手指南 如何 10 分钟跑通 DeepEval 本地 LLM 评测一份完整的新手指南【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval如果你已经搭好了 RAG 问答或 AI Agent 应用但每次改 prompt、换模型后只能靠人工抽查来判断质量这篇指南就是为你写的。DeepEval 是一个专用于 LLM 评测的开源框架它像 pytest 一样收集测试用例用内置指标在本机自动打分。读完本文你会完成三件事——跑通第一条评测、用指标批量给 RAG 应用打分、把评测接进 CI 做自动回归。三步从零跑通 DeepEval 本地评测环境步骤 1安装 DeepEvalDeepEval 要求 Python 3.9在你的虚拟环境中执行pip install -U deepeval它会自动接入 pytest后续deepeval test run会以 pytest 的方式收集并执行你的评测文件。步骤 2写第一个测试用例新建test_chatbot.pyfrom deepeval import assert_test from deepeval.test_case import LLMTestCase, SingleTurnParams from deepeval.metrics import GEval metric GEval( nameCorrectness, criteriaDetermine if the actual output is correct based on the expected output., evaluation_params[SingleTurnParams.ACTUAL_OUTPUT, SingleTurnParams.EXPECTED_OUTPUT], threshold0.5, ) case LLMTestCase( inputIf these shoes dont fit, what can I do?, actual_outputYou can get a full refund within 30 days for free., expected_outputWe provide a full refund within 30 days for free., ) assert_test(case, [metric])这段代码把用户问题 应用真实输出 期望答案打包成一个测试用例交给 GEval 这个 LLM-as-a-judge让另一个大模型当裁判指标按 0~1 分打分低于 threshold 就判定失败。actual_output在真实项目里应替换成你应用的真实输出。步骤 3执行评测deepeval test run test_chatbot.py终端会输出每条指标的得分和整体结论首次跑通 ✅ 之后你就有了一套可以反复执行的 LLM 回归测试。更多入门细节可参考官方文档 docs/content/docs/getting-started.mdx。用 DeepEval 内置指标给 RAG 应用打分逐个手写评测逻辑很慢DeepEval 内置了 30 开箱即用的指标实现在 deepeval/metrics/覆盖相关性、事实性、安全性等维度。最常用的几个指标作用AnswerRelevancyMetric衡量回答与问题的相关性FaithfulnessMetric衡量回答是否忠实于检索上下文检测幻觉ContextualRecallMetric检查检索上下文是否覆盖期望答案所需信息HallucinationMetric检查输出与给定上下文是否冲突ToxicityMetric / BiasMetric检查输出是否有害、是否含偏见当你手头有一批 Golden 数据每条含 input、actual_output、retrieval_context时用evaluate()一次批量打分from deepeval import evaluate from deepeval.metrics import AnswerRelevancyMetric, FaithfulnessMetric evaluate( test_casesdataset, metrics[ AnswerRelevancyMetric(threshold0.7), FaithfulnessMetric(threshold0.7), ], )evaluate()会跑完所有用例并输出包含各指标得分与通过率的汇总方便你对比不同 prompt 或不同模型的版本差异。指标全貌与选型建议见 docs/content/docs/metrics-introduction.mdx。测试用例不够批量合成 Golden 数据真实业务的测试数据往往很少DeepEval 的 Synthesizer 可以基于你描述的场景 任务 输入格式批量生成 Golden 数据集省去手工标注。from deepeval.synthesizer import Synthesizer from deepeval.synthesizer.config import StylingConfig styling StylingConfig( scenarioA customer support chatbot for a shoe store, taskAnswer questions about returns and refunds, input_formatA short user question in plain language, ) goldens Synthesizer(styling_configstyling).generate_goldens_from_scratch(num_goldens20)运行后你会得到 20 条带标准答案的测试数据可以直接喂给前面的evaluate()。如果手头已有业务文档也可以改用generate_goldens_from_docs从文档中提取问答对让评测更贴近实际场景。把 DeepEval 接进 CI/CD模型一改就自动回归人工跑评测很容易漏把评测放进流水线才能保证每次改动都有评测兜底。DeepEval 的测试文件就是标准 pytest 用例接入 CI 很简单jobs: eval: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - name: Set up Python uses: actions/setup-pythonv5 with: python-version: 3.11 - run: pip install -U deepeval - run: deepeval test run tests/这样每当代码合并或模型更新时自动触发一轮评测 指标不达标流水线即失败prompt 漂移、模型降级这类问题能在上线前被拦住。DeepEval 评测常见问题排查问题 1用例总是失败得分忽高忽低。LLM-as-a-judge 类指标本身带有一定随机性。先确认裁判模型可用需配置对应模型的环境变量或换成你指定的模型再把 threshold 调到合理及格线对关键用例连续跑几次观察得分是否稳定。问题 2RAG 指标报错或结果无效。Faithfulness、Contextual 系列指标都依赖retrieval_context字段。检查你的测试用例或 Golden 里是否填入了实际检索到的上下文而不是只填了问题和答案。问题 3评测跑得慢、裁判调用费用高。裁判模型调用次数约等于用例数 × 指标数。可以先用 ExactMatchMetric、JsonCorrectnessMetric 这类纯规则指标做初筛再对可疑用例跑 LLM 裁判指标也能明显降低调用量。问题 4评测数据不想出内网。把裁判模型换成本地部署的开源模型即可继承 DeepEval 提供的DeepEvalBaseLLM基类、实现自己的调用接口评测流程就完全在本机执行数据不出环境。总结下一步可以直接做的 3 件事DeepEval 的价值不在于单个指标多精确而在于把LLM 质量从主观感受变成可量化、可回归的测试让每次改 prompt、换模型都有据可依。建议按顺序推进克隆仓库git clone https://gitcode.com/GitHub_Trending/de/deepeval对照 examples/ 目录的示例给你的应用写下第一条assert_test。用 Synthesizer 生成 20 条 Golden 数据跑一次 AnswerRelevancy Faithfulness记下基线分数。把deepeval test run加进 CI让改一版 prompt 就回归一次成为团队的默认流程。【免费下载链接】deepevalThe LLM Evaluation Framework项目地址: https://gitcode.com/GitHub_Trending/de/deepeval创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表