DeepEval是一个用于对语言模型(LLM)应用进行评估和单元测试的框架。它提供了各种指标,可以测试语言模型应用生成的回复在相关性、一致性、无偏见性和无毒性等方面的表现。DeepEval使得机器学习工程师可以通过持续集成/持续交付(CI/CD)流程快速评估语言模型应用的性能。
DeepEval提供了Python友好的离线评估方法,确保你的流水线准备上线。它就像是流水线的“Pytest”,使得流水线的生产化和评估过程变得简单明了,就像通过所有的测试一样。
DeepEval的Web UI允许工程师分析和查看他们的评估结果。
DeepEval的特色功能包括:
- 测试回复的相关性、事实一致性、有毒性、偏见性等
- Web UI查看测试、实现、比较结果
- 通过合成问题-回答自动评估
安装使用DeepEval非常简单,只需要通过pip安装:
```
pip install deepeval
```
然后按照快速入门文档,你可以在1分钟内上手使用。
对个别测试用例,定义只需要几行代码。例如:
```python
from deepeval.metrics.factual_consistency import FactualConsistencyMetric
from deepeval.test_case import LLMTestCase
from deepeval.run_test import assert_test
# 定义测试用例
test_case = LLMTestCase(
query="What is the capital of France?",
expected_output="The capital of France is Paris."
)
# 定义使用的指标
metric = FactualConsistencyMetric()
# 执行测试
assert_test(test_case, metrics=[metric])
```
这样就可以构建一个简单的测试,测试语言模型对问题"What is the capital of France?"的回复是否符合事实。
DeepEval内置了各种指标,也支持自定义指标。它可以非常方便地集成到现有的流水线和框架中,比如Langchain、LLAMA等。同时,DeepEval也提供了合成问题生成功能,可以快速针对特定领域评估语言模型。
总之,DeepEval目的是让编写、运行、自动化语言模型的测试变得如同编写Python中的单元测试一样简单直观。它很好地满足了机器学习工程中对结构化反馈的需求,可以显著提高工程师的迭代速度。
如果你在开发聊天机器人、语言模型应用,DeepEval绝对是一个提高工程效率的好帮手。
核心功能:
- 测试回复的相关性、一致性、无偏见性、无毒性
- 多个内置评估指标
- 支持自定义评估指标
- 一键集成到现有机器学习流水线
- 合成问题自动评估
- 提供Web UI分析和展示结果
- Python友好,编写测试用例像写单元测试