Confident AI: 자동화된 대규모 언어 모델 평가를 위한 프레임워크로, 다양한 대규모 모델 단서 단어의 출력 품질을 비교합니다.
일반 소개
DeepEval은 대규모 언어 모델링 시스템을 평가하고 테스트하기 위한 사용하기 쉬운 오픈 소스 LLM 평가 프레임워크입니다. Pytest와 유사하지만 LLM 출력의 단위 테스트에 중점을 두며, 최신 연구 결과와 G-Eval, 팬텀 탐지, 답변 관련성, RAGAS 등과 같은 메트릭을 결합하여 LLM 출력을 평가합니다. 애플리케이션이 RAG에 의해 구현되었든 미세 조정되었든, DeepEval은 모델 성능을 개선하기 위한 최적의 하이퍼파라미터를 결정하는 데 도움을 줄 수 있습니다. 또한, 합성 데이터 세트를 생성하고 모든 CI/CD 환경에 원활하게 통합되며 40개 이상의 보안 취약점에 대한 레드팀 테스트 기능을 제공합니다. 또한 이 프레임워크는 Confident AI와 완벽하게 통합되어 플랫폼의 전체 평가 수명 주기를 지원합니다.

기능 목록
- G-Eval, 환각 테스트, 정답 상관관계, RAGAS 등 다양한 LLM 평가 지표가 있습니다.
- 사용자 지정 평가 지표 지원 및 DeepEval 에코시스템으로의 자동 통합
- 평가를 위한 합성 데이터 세트 생성
- 모든 CI/CD 환경과의 원활한 통합
- 40개 이상의 보안 취약점을 탐지하는 레드팀 테스트 기능
- MMLU, 헬라스웨그, DROP 등 여러 벤치마크를 지원하는 벤치마킹.
- 데이터 세트 생성부터 평가 결과 디버깅까지 전체 평가 수명 주기를 지원하기 위해 Confident AI와 완전히 통합되었습니다.
도움말 사용
마운팅
DeepEval은 pip를 통해 설치할 수 있습니다:
pip install -U deepeval
공유 가능한 클라우드 기반 테스트 보고서를 생성하려면 계정을 만드는 것이 좋습니다:
deepeval login
테스트 케이스 작성
테스트 파일을 만듭니다:
touch test_chatbot.py
존재test_chatbot.py
에 첫 번째 테스트 케이스를 작성합니다.
import pytest
from deepeval import assert_test
from deepeval.metrics import AnswerRelevancyMetric
from deepeval.test_case import LLMTestCase
def test_case():
correctness_metric = GEval(
name="Correctness",
criteria="Determine if the 'actual output' is correct based on the 'expected output'.",
evaluation_params=[LLMTestCaseParams.ACTUAL_OUTPUT, LLMTestCaseParams.EXPECTED_OUTPUT],
threshold=0.5
)
test_case = LLMTestCase(
input="What if these shoes don't fit?",
actual_output="We offer a 30-day full refund at no extra costs.",
retrieval_context=["All customers are eligible for a 30 day full refund at no extra costs."]
)
assert_test(test_case, [correctness_metric])
귀하의OPENAI_API_KEY
환경 변수로 설정합니다:
export OPENAI_API_KEY="..."
CLI에서 테스트 파일을 실행합니다:
deepeval test run test_chatbot.py
독립 지표 사용
DeepEval은 매우 모듈화되어 있어 누구나 쉽게 메트릭을 사용할 수 있습니다:
from deepeval.metrics import AnswerRelevancyMetric
from deepeval.test_case import LLMTestCase
answer_relevancy_metric = AnswerRelevancyMetric(threshold=0.7)
test_case = LLMTestCase(
input="What if these shoes don't fit?",
actual_output="We offer a 30-day full refund at no extra costs.",
retrieval_context=["All customers are eligible for a 30 day full refund at no extra costs."]
)
answer_relevancy_metric.measure(test_case)
print(answer_relevancy_metric.score)
print(answer_relevancy_metric.reason)
대량 평가 데이터 세트
DeepEval에서 데이터 세트는 테스트 사례의 모음일 뿐입니다. 이러한 데이터 집합을 대량으로 평가하는 방법은 다음과 같습니다:
import pytest
from deepeval import assert_test
from deepeval.metrics import HallucinationMetric, AnswerRelevancyMetric
from deepeval.test_case import LLMTestCase
from deepeval.dataset import EvaluationDataset
first_test_case = LLMTestCase(input="...", actual_output="...", context=["..."])
second_test_case = LLMTestCase(input="...", actual_output="...", context=["..."])
dataset = EvaluationDataset(test_cases=[first_test_case, second_test_case])
@pytest.mark.parametrize("test_case", dataset)
def test_customer_chatbot(test_case: LLMTestCase):
hallucination_metric = HallucinationMetric(threshold=0.3)
answer_relevancy_metric = AnswerRelevancyMetric(threshold=0.5)
assert_test(test_case, [hallucination_metric, answer_relevancy_metric])
CLI에서 테스트 파일을 실행합니다:
deepeval test run test_<filename>.py -n 4
확신에 찬 AI를 통한 LLM 평가
DeepEval 플랫폼에 로그인합니다:
deepeval login
테스트 파일을 실행합니다:
deepeval test run test_chatbot.py
테스트가 완료되면 CLI에 링크를 브라우저에 붙여넣어 결과를 볼 수 있는 링크가 표시됩니다.
© 저작권 정책
이 글은 저작권이 있으며 무단으로 복제해서는 안 됩니다.
관련 문서
댓글 없음...