Skip to main content
이 튜토리얼에서는 Weave로 엔드투엔드 평가 파이프라인을 구축하는 과정을 단계별로 안내합니다. 이 파이프라인을 활용하면 LLM 애플리케이션을 반복적으로 개선하면서 품질을 측정하고 추적할 수 있습니다. 평가를 사용하면 일관된 예시 세트를 기준으로 변경 사항을 비교하고, 회귀가 사용자에게 도달하기 전에 미리 발견할 수 있습니다. 이 튜토리얼은 LLM 기반 애플리케이션을 구축하면서 이를 반복 가능한 방식으로 테스트하려는 개발자를 위한 것입니다. Weave는 Model 및 Evaluation 클래스를 통해 평가 추적 기능을 기본으로 지원합니다. 이 API는 최소한의 가정만 전제하므로 다양한 사용 사례에 맞게 활용할 수 있습니다. Evals 히어로 이미지

학습 내용

이 가이드에서는 다음 방법을 알아봅니다.
  • Model을 설정합니다.
  • LLM의 응답을 테스트하는 데 기준이 될 데이터셋을 생성합니다.
  • 모델 출력을 기대 출력과 비교하는 점수화 함수를 정의합니다.
  • 점수화 함수와 기본 제공 Scorer를 함께 사용해 데이터셋으로 모델을 테스트하는 평가를 실행합니다.
  • Weights & Biases UI에서 평가 결과를 확인합니다.
이 가이드를 마치면 데이터셋을 기준으로 예시 모델을 점수화하고 그 결과를 Weave에 로깅하는 평가 파이프라인을 직접 구축하게 됩니다.

사전 요구 사항

  • CoreWeave Forge 계정
  • Python 3.10 이상 또는 Node.js 18 이상
  • 필수 패키지 설치:
    • Python: pip install weave openai
    • TypeScript: npm install weave openai
  • 환경 변수로 설정된 OpenAI API 키

필요한 라이브러리 및 함수 임포트하기

다음 라이브러리를 스크립트에 임포트하세요.

Model 구축하기

라이브러리가 준비되었다면 이제 평가할 모델을 정의할 차례입니다. Weave에서 Models는 객체로, 모델 또는 에이전트의 동작(로직, 프롬프트, 매개변수)과 버전이 관리되는 메타데이터(매개변수, 코드, 세부 설정)를 함께 캡처합니다. 덕분에 모델을 안정적으로 추적, 비교, 평가하고 반복 개선할 수 있습니다. Model을 인스턴스화하면 Weave가 해당 설정과 동작을 자동으로 캡처하고, 변경 사항이 생기면 버전을 업데이트합니다. 따라서 모델을 반복 개선하면서 시간에 따른 성능 변화를 추적할 수 있습니다. Model을 선언하려면 Model의 서브클래스를 만들고, 예시 하나를 입력받아 응답을 반환하는 predict 함수를 구현하세요. 다음 예시 모델은 OpenAI를 사용하여 입력 문장에서 외계 과일의 이름, 색상, 맛을 추출합니다.
ExtractFruitsModel 클래스는 weave.Model을 상속(서브클래싱)하므로 Weave가 인스턴스화된 객체를 추적할 수 있습니다. @weave.op는 predict 함수를 데코레이트하여 입력과 출력을 추적합니다. Model 객체는 다음과 같이 인스턴스화할 수 있습니다.

데이터셋 생성

Model을 정의했다면 이제 모델을 평가할 데이터셋이 필요합니다. Dataset은 Weave 객체로 저장되는 예시 컬렉션입니다. 데이터셋을 Weave에 게시하면 버전이 관리되며, 여러 평가 run에서 재사용할 수 있습니다. 다음 예제 데이터셋은 입력 문장 예시 세 개와 각각의 정답(labels)을 정의한 뒤, 점수화 함수가 읽을 수 있는 JSON table 형식으로 구성합니다. 이 예제에서는 코드에서 예시 목록을 직접 구축하지만, 실행 중인 애플리케이션에서 예시를 하나씩 로깅할 수도 있습니다.
그런 다음 weave.Dataset() 클래스로 데이터셋을 생성하고 게시하세요.

맞춤형 점수화 함수 정의하기

모델과 데이터셋이 준비되었다면, 이제 각 예시에서 모델의 성능을 측정할 방법이 필요합니다. 점수화 함수는 모델의 출력을 기대하는 target과 비교하여 평가 결과로 보고되는 메트릭을 생성합니다. Weave 평가를 사용하려면 output과 비교할 target이 있어야 합니다. 다음 점수화 함수는 두 개의 딕셔너리(target, output)를 받아 출력이 target과 일치하는지를 나타내는 불리언 값의 딕셔너리를 반환합니다. @weave.op() 데코레이터를 사용하면 Weave가 점수화 함수의 실행을 추적합니다.
점수화 함수를 직접 만드는 방법에 대한 자세한 내용은 Scorer 가이드를 참조하세요. 애플리케이션에 따라 맞춤형 Scorer 클래스를 만들어야 할 수도 있습니다. 예를 들어 특정 매개변수(예: 채팅 모델, 프롬프트), 행별 점수화 방식, 집계 점수 계산 로직을 갖춘 표준화된 LLMJudge 클래스를 만들 수 있습니다. 자세한 내용은 RAG 애플리케이션의 모델 기반 평가 튜토리얼에서 Scorer 클래스 정의 부분을 참조하세요.

기본 제공 Scorer를 사용하여 평가 실행하기

모델, 데이터셋, 맞춤형 Scorer가 모두 준비되었으니 이제 이들을 하나로 연결하여 평가 run을 실행할 수 있습니다. 맞춤형 점수화 함수뿐 아니라 Weave의 기본 제공 Scorer도 사용할 수 있습니다. 다음 평가에서 weave.Evaluation()은 이전 섹션에서 정의한 fruit_name_score 함수와, F1 점수를 계산하는 기본 제공 MultiTaskBinaryClassificationF1 Scorer를 사용합니다. 다음 예시는 두 점수화 함수를 사용해 fruits 데이터셋으로 ExtractFruitsModel을 평가하고, 그 결과를 Weave에 로깅합니다.
Python 스크립트에서 실행하는 경우 asyncio.run을 사용해야 합니다. Jupyter 노트북에서 실행하는 경우에는 await를 바로 사용할 수 있습니다.

전체 예제

평가 결과 보기

평가가 완료되면 Weights & Biases UI에서 각 예측과 Scorer 결과를 살펴볼 수 있습니다. Weave는 각 예측과 점수의 트레이스를 자동으로 캡처합니다. 결과를 확인하려면 평가 실행 시 출력되는 링크를 클릭하세요. 평가 결과

Weave 평가 자세히 알아보기

이제 전체 평가 파이프라인이 완성되었습니다. Weave의 평가 기능을 더 깊이 알아보려면 다음 자료를 참조하세요.

다음 단계

검색 증강 생성(RAG)을 평가하는 방법은 RAG 애플리케이션 구축하기에서 알아보세요.
마지막 수정일 2026년 9월 30일