科技魔方

LLM评估测试框架DeepEval 可离线评估大模型性能

大模型

2023年09月27日

  DeepEval是一个用于对语言模型(LLM)应用进行评估和单元测试的框架。它提供了各种指标,可以测试语言模型应用生成的回复在相关性、一致性、无偏见性和无毒性等方面的表现。DeepEval使得机器学习工程师可以通过持续集成/持续交付(CI/CD)流程快速评估语言模型应用的性能。

image.png

  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友好,编写测试用例像写单元测试

+1

来源:站长之家

延展资讯