점수

점수 (Scores)

Scores는 Langfuse에서 평가 결과를 저장하는 범용 데이터 객체예요. LLM 출력에 품질 판단을 부여하고 싶을 때마다 — 사람 주석(annotation), LLM-as-a-Judge, 프로그램 검사, 또는 사용자 피드백을 통해서든 — 그 결과는 score로 저장돼요.

출처: 문서

본문

Scores는 Langfuse의 평가 결과 저장용 범용 데이터 객체예요. LLM 출력에 품질 판단을 부여하고 싶을 때마다 그 결과는 score로 저장돼요. 사람이 직접 주석을 달든, LLM-as-a-Judge가 판정하든, 프로그램으로 검사하든, 사용자 피드백이든 모두 score가 되어 저장된답니다.

모든 score는 이름(예: "correctness", "helpfulness")과 값(value), 그리고 데이터 타입(data type)을 가지고 있어요. 추가 맥락을 담는 선택적인 comment 필드도 지원해요.

Scores는 trace, observation, session, 또는 dataset run에 붙일 수 있어요. 보통은 단일 end-to-end 상호작용을 평가하기 위해 trace에 가장 많이 붙이게 돼요.

score를 만든 뒤에는 score analytics에서 확인할 수 있고, custom dashboards에서 시각화하며, API로 조회할 수 있어요.

점수를 언제 사용하나요 (When to Use Scores)

Scores는 애플리케이션이 무엇을 하는지 관찰하는 것을 넘어, 얼마나 잘하는지 측정하고 싶을 때 유용해져요. 대표적인 사용 사례는 다음과 같아요:

  • 사용자 피드백 수집: 사용자로부터 thumbs up/down이나 star rating을 받아 trace에 붙여요. user feedback 가이드를 참고하세요.
  • 프로덕션 품질 모니터링: LLM-as-a-Judge같은 자동 평가기를 설정해 실시간 trace에 환각(hallucination), 관련성, 톤 등을 지속적으로 점수화해요.
  • 가드레일(guardrails) 실행: PII 탐지, 형식 검증, 콘텐츠 정책 준수 같은 안전 검사를 통과했는지 점수화해요.
  • Experiments로 변경사항 비교: 프롬프트, 모델, 파이프라인을 바꿀 때 experiment를 실행해 dataset을 기준으로 새 버전을 점수화해요.

점수 유형 (Score Types)

Langfuse는 네 가지 score 데이터 타입을 지원해요:

Type Value Use when
NUMERIC Float (예: 0.9) 정확도, 관련성, 유사도 같은 연속적 판단
CATEGORICAL 미리 정의된 카테고리의 문자열 (예: "correct", "partially correct") 가능한 값 집합이 사전에 알려진 이산 분류
BOOLEAN 0 또는 1 환각 탐지, 형식 검증 같은 통과/실패 검사
TEXT 자유 형식 문자열 (1-500자) 검토자 메모나 정성적 피드백 같은 개방형 주석. 정량적 score로 공식화하기 전에 open coding 단계에서 자주 사용해요.

Text score는 정성적이고 개방형인 점수를 위해 설계됐어요. 자유 형식 텍스트는 의미 있게 집계하거나 비교할 수 없기 때문에, text score는 experiments, LLM-as-a-Judge, score analytics에서는 지원되지 않아요.

점수 만드는 방법 (How to Create Scores)

점수를 추가하는 방법은 다섯 가지가 있어요:

  • LLM-as-a-Judge: 맞춤 기준(예: 환각, 톤, 관련성)으로 trace를 점수화하는 자동 평가기를 설정해요. 숫자형이나 범주형 점수와 추론 근거를 반환할 수 있고, 실시간 프로덕션 trace나 experiment 결과에 실행할 수 있어요.
  • Code evaluators: Langfuse에서 맞춤 Python 또는 TypeScript 평가기를 실행해 정확 일치, JSON 검증, 맞춤 비즈니스 규칙 같은 결정적 검사를 수행해요.
  • Scores via UI: 팀원들이 Langfuse UI에서 trace, observation, session에 직접 점수를 매겨요. 먼저 score config를 설정해야 해요.
  • Annotation Queues: 검토자들이 trace 배치를 순서대로 처리하는 구조화된 리뷰 워크플로를 설정해요.
  • Scores via API/SDK: 애플리케이션 코드에서 점수를 프로그래밍 방식으로 추가해요. 사용자 피드백(thumbs up/down, star rating), 가드레일 결과, 맞춤 평가 파이프라인에 적합한 방법이에요.

점수와 태그, 무엇을 써야 하나요 (Should I Use Scores or Tags?)

Scores Tags
어떤 것을 얼마나 잘하는지 측정 어떤 것인지 설명
숫자형, 범주형, 불리언, 텍스트 값 단순 문자열 라벨
trace 생성 후 한참 뒤에도 언제든 추가 가능 트레이싱 시점에 설정되며 이후 변경 불가
품질 측정, 분석, experiments에 사용 필터링, 세분화, 정리에 사용

경험상 간단한 규칙이 있어요. 트레이싱 시점에 이미 카테고리를 안다면(예: 어떤 기능이나 API 엔드포인트가 trace를 트리거했는지) tag를 쓰고, 나중에 trace를 분류하거나 평가해야 한다면 score를 쓰면 돼요.

점수 주석 (Score Comments)

모든 score는 선택적인 comment 필드를 지원해요. LLM judge가 특정 점수를 부여한 이유나 검토자 메모처럼 다른 사람이 score 값을 이해하는 데 도움이 되는 맥락을 담아두면 좋아요. Comment는 Langfuse UI에서 score 옆에 함께 표시돼요.

독립적인 정성적 피드백을 담고 싶다면 comment 대신 TEXT score를 쓰는 편이 좋아요. comment는 기존 score에 대한 부가적인 근거 설명에 가장 적합하거든요.

더 알아보기 (Learn more)