메인 콘텐츠로 건너뛰기
모니터는 LLM judge를 사용해 운영 트래픽을 수동 개입 없이 평가하고, LLM 애플리케이션의 추세와 문제를 드러냅니다. 예를 들어 애플리케이션 응답의 정확성이나 유용성을 모니터링하거나, 사용자 입력을 모니터링하여 사용자가 에이전트에게 무엇을 묻고 있는지에 대한 추세를 파악할 수 있습니다. 모니터는 모든 평가 결과를 자동으로 Weave의 데이터베이스에 저장하므로, 과거 추세와 패턴을 분석할 수 있습니다. 애플리케이션의 입력과 출력에 포함된 텍스트, 이미지, 오디오를 모니터링할 수 있습니다. 모니터를 사용하기 위해 애플리케이션 코드를 수정할 필요가 없습니다. W&B Weave UI에서 설정하면 됩니다. 스코어를 기반으로 애플리케이션 동작에 능동적으로 개입해야 하는 경우에는 대신 guardrails을 사용하세요.

Weave에서 모니터를 생성하는 방법

Weave에서 모니터를 생성하려면:
  1. W&B UI를 연 다음 Weave 프로젝트를 엽니다.
  2. Weave 사이드 내비게이션에서 Monitors를 선택한 다음 + New Monitor 버튼을 선택합니다. 그러면 Create new monitor 모달 대화 상자가 열립니다.
  3. Create new monitor 메뉴에서 다음 필드를 설정합니다:
    • Name: 문자 또는 숫자로 시작해야 합니다. 문자, 숫자, 하이픈(-), 밑줄(_)만 포함할 수 있습니다.
    • Description (Optional): 이 모니터가 수행하는 작업을 설명합니다.
    • Active monitor 토글: 모니터를 켜거나 끕니다.
    • Calls to monitor:
      • Operations: 모니터링할 하나 이상의 @weave.op을 선택합니다. 사용 가능한 op 목록에 표시되려면 해당 op를 사용하는 트레이스를 최소 한 개 이상 로깅해야 합니다.
      • Filter (Optional): 어떤 호출이 대상이 될지 좁혀 지정합니다(예: max_tokens 또는 top_p 기준).
      • Sampling rate: 점수를 매길 호출의 비율입니다(0%~100%).
        각 채점 호출에는 비용이 발생하므로, 샘플링 비율을 낮추면 비용을 줄일 수 있습니다.
    • LLM-as-a-judge configuration:
      • Scorer name: 문자 또는 숫자로 시작해야 합니다. 문자, 숫자, 하이픈(-), 밑줄(_)만 포함할 수 있습니다.
      • Score Audio: 사용 가능한 LLM 모델을 오디오 지원 모델만 표시하도록 필터링하고, Media Scoring JSON Paths 필드를 엽니다.
      • Score Images: 사용 가능한 LLM 모델을 이미지 지원 모델만 표시하도록 필터링하고, Media Scoring JSON Paths 필드를 엽니다.
      • Judge model: op에 점수를 매길 모델을 선택합니다. 이 메뉴에는 W&B 계정에 구성해 둔 상용 LLM 모델과 W&B Inference models가 포함됩니다. 오디오를 지원하는 모델에는 이름 옆에 Audio Input 레이블이 표시됩니다. 선택한 모델에 대해 다음 설정을 구성합니다:
        • Configuration name: 이 모델 설정의 이름입니다.
        • System prompt: 채점용 모델의 역할과 페르소나를 정의합니다. 예: “You are an impartial AI judge.”
        • Response format: 판정 결과를 출력할 형식입니다. 예를 들어 json_object 또는 일반 text 등입니다.
        • Scoring prompt: op에 점수를 매기기 위해 사용하는 평가 작업입니다. 스코어링 프롬프트에서 op의 prompt variables를 참조할 수 있습니다. 예: “Evaluate whether {output} is accurate based on {ground_truth}.”
      • Media Scoring JSON Paths: 트레이스 데이터에서 미디어를 추출하기 위한 JSONPath 표현식(RFC 9535)을 지정합니다. 경로를 지정하지 않으면 사용자 메시지의 모든 채점 가능한 미디어가 포함됩니다. 이 필드는 Score Audio 또는 Score Images를 활성화하면 표시됩니다.
  4. 모니터의 필드를 모두 설정했으면 Create monitor를 클릭합니다. 그러면 모니터가 Weave 프로젝트에 추가됩니다. 코드가 트레이스를 생성하기 시작하면, Traces 탭에서 모니터 이름을 선택하고 결과 패널의 데이터를 검토하여 점수를 확인할 수 있습니다.
또한 Weave UI에서 모니터의 트레이스 데이터를 비교하고 시각화하거나, Traces 탭의 다운로드 버튼()을 사용해 CSV, JSON 등의 다양한 형식으로 다운로드할 수 있습니다. Weave는 모든 스코어러 결과를 Call 객체의 feedback 필드에 자동으로 저장합니다.

예시: 진실성 모니터 생성하기

다음 예시는 생성된 문장의 진실성을 평가하는 모니터를 생성하는 방법을 보여줍니다.
  1. 문장을 생성하는 함수를 정의합니다. 일부 문장은 사실이고, 일부는 사실이 아닙니다:
import weave
import random
import openai

weave.init("my-team/my-weave-project")

client = openai.OpenAI()

@weave.op()
def generate_statement(ground_truth: str) -> str:
    if random.random() < 0.5:
        response = client.chat.completions.create(
            model="gpt-4.1",
            messages=[
                {
                    "role": "user",
                    "content": f"Generate a statement that is incorrect based on this fact: {ground_truth}"
                }
            ]
        )
        return response.choices[0].message.content
    else:
        return ground_truth

generate_statement("The Earth revolves around the Sun.")
  1. 함수를 최소 한 번 실행해 프로젝트에 트레이스를 기록합니다. 이렇게 하면 해당 op를 W&B UI에서 모니터링에 사용할 수 있습니다.
  2. W&B UI에서 Weave 프로젝트를 열고 사이드 내비게이션에서 Monitors를 선택합니다. 그런 다음 New Monitor를 선택합니다.
  3. Create new monitor 메뉴에서 다음 값을 사용하여 필드를 구성합니다:
    • Name: truthfulness-monitor
    • Description: Evaluates the truthfulness of generated statements.
    • Active monitor: on으로 토글합니다.
    • Operations: generate_statement를 선택합니다.
    • Sampling rate: 모든 호출에 점수를 매기도록 100%로 설정합니다.
    • Scorer name: truthfulness-scorer
    • Judge model: o3-mini-2025-01-31
    • System prompt: You are an impartial AI judge. Your task is to evaluate the truthfulness of statements.
    • Response format: json_object
    • Scoring prompt:
      출력 문장이 입력 문장을 기준으로 정확한지 평가하세요.
      
      다음은 입력 문장입니다: {ground_truth}
      
      다음은 출력 문장입니다: {output}
      
      응답은 다음 필드를 포함하는 JSON 객체여야 합니다:
      - is_true: 출력 문장이 입력 문장을 기준으로 참인지 거짓인지를 나타내는 불리언 값.
      - reasoning: 해당 문장이 참 또는 거짓이라고 판단한 이유.
      
  4. Create Monitor를 클릭합니다. 그러면 Weave 프로젝트에 모니터가 추가됩니다.
  5. 스크립트에서, 진실성 정도가 다양한 문장을 사용해 함수를 호출하여 스코어링 함수를 테스트합니다:
generate_statement("The Earth revolves around the Sun.")
generate_statement("Water freezes at 0 degrees Celsius.")
generate_statement("The Great Wall of China was built over several centuries.")
  1. 여러 다른 문장으로 스크립트를 실행한 후, W&B UI를 열고 Traces 탭으로 이동합니다. 결과를 확인하려면 아무 LLMAsAJudgeScorer.score 트레이스를 선택합니다.
Monitor trace