생명과학 분야에서는 단순히 에이전트가 작동한다는 사실을 보여주는 것만으로는 충분하지 않습니다. 매번 동일한 방식으로 일관되게 동작함을 증명해야 하고, 왜 그렇게 답변했는지 그 이유를 추적할 수 있어야 하며, 적격한 자격을 갖춘 인력(qualified person)의 검토를 거쳐야 합니다. 바로 이것이 Langfuse 평가(Langfuse Evaluation)가 존재하는 이유입니다.
대부분의 팀은 “무슨 일이 일어났는가?“를 묻는 관측 가능성(Observability, 옵저버빌리티) 수준에 머무릅니다. 그러나 성숙한 AI 팀은 “결과가 적절했는가?“를 묻는 지속적 평가(Continuous Evaluation) 체계를 구축합니다. AI가 올바르게 작동하고 있음을 입증하는 문서화된 증거(documented evidence)가 요구되는 규제 대상 산업에서, 이 두 접근 방식의 차이는 단순한 데모와 검증된 시스템(validated system)의 차이를 가릅니다.
Langfuse 평가는 GxP 스타일의 제어 루프(control loop)를 구성하는 4가지 기본 구성 요소를 제공합니다. **점수(Scores)**는 공통 언어 역할을 하고, **평가자(Evaluators)**는 점수를 자동으로 생성하며, **인간 어노테이션(Human Annotation)**은 실측 기준(ground truth)과 감독 권한을 제공하고, **데이터셋(Datasets)**은 ’바람직한 결과(what good looks like)’의 기준을 고정하고 보장합니다.
점수(Scores): 통합 품질 및 규정 준수 원장
점수(Scores)는 Langfuse의 가장 핵심적인 기본 요소(primitive)입니다. 자동화된 방식이든 인간에 의한 평가이든, 모든 평가 방식은 결국 트레이스(trace), 관측치(observation), 또는 데이터셋 실행(dataset run)에 첨부되는 점수 형태로 기록됩니다. 점수는 숫자형(0~1), 범주형(Pass / Fail / Needs Review), 불리언(Boolean), 또는 자유 텍스트(free text) 형태를 취할 수 있습니다.
규제 대상 업무에서는 품질 요구사항에 직접 매핑되는 점수 설정(Score Configs)을 정의하게 됩니다:
- 환자 안전 점수(Patient safety scores):
hallucination,medical_claim_grounded,citation_coverage - 데이터 무결성 점수(Data integrity scores):
phi_leakage,pii_detected,source_verbatim_match - 프로세스 준수 점수(Process scores):
sop_adherence,tool_call_valid,json_schema_valid - 운영 점수(Operational scores):
latency,cost,token_usage
이러한 체계가 중요한 데에는 세 가지 이유가 있습니다.
감사 추적성(Auditability). 모든 점수는 불변(immutable)이며, 타임스탬프가 찍혀 있고, 전체 실행 트레이스와 직접 연결됩니다. 이는 ALCOA+ 원칙과 21 CFR Part 11 스타일의 감사 추적(audit trail) 요건을 완벽히 뒷받침합니다. 밸리데이션 패키지(validation package) 문서화를 위해 점수를 CSV 또는 JSON 형식으로 손쉽게 내보낼 수 있습니다.
점수 분석(Score Analytics)을 통한 설정 없는(zero-configuration) 즉시 분석. 별도의 복잡한 설정 없이도 점수의 분포와 추세를 비교 분석할 수 있습니다. 여기에는 수치 점수 간의 상관관계뿐 아니라 범주형 점수를 위한 코헨 카파(Cohen’s Kappa) 계수 및 F1 점수와 같은 일치도 지표가 포함됩니다. 이를 통해 다음과 같은 핵심 질문에 답할 수 있습니다: 사실성(factuality)을 판정하는 LLM 판사의 결과가 의료 전문가 검토자와 일치하는가? 프롬프트를 수정한 후 성능 드리프트(drift)가 발생하는가? 유용성(helpfulness)과 안전성(safety) 사이에 음의 상관관계가 존재하는가?
임계치 기반 알림(Threshold alerting). 수용 가능한 최소 점수 기준을 정의합니다. 생성된 응답이 사실적 근거성 지표에서 임계치 미만의 점수를 받으면 즉시 검토 프로세스가 트리거됩니다. 환각(hallucination)이 포함된 안전 관련 데이터를 프로덕션 환경에 그대로 배포할 수는 없습니다. 트레이스별 점수 이력은 감사관의 다음과 같은 핵심 질문에 명확한 답을 제시합니다: “특정 일자에 입력된 이 질의에 대해, 시스템이 어느 정도의 성능 수준으로 동작했는가?”
평가자(Evaluators): 자동화되고 반복 가능한 테스트
점수(Scores)가 “이번 실행이 얼마나 우수했는가?“에 답한다면, 평가자(Evaluators)는 “그 점수를 누가, 어떻게 산출했는가?“에 답합니다. Langfuse는 상호 결합하여 활용할 수 있는 3가지 계열의 평가자를 지원합니다:
LLM-as-a-Judge (판사로서의 LLM)
독립된 별도의 LLM을 활용하여 맞춤형 기준에 따라 출력을 평가합니다. 바로 이 계층에서 규제 정책을 자동화된 검사 로직으로 인코딩하게 됩니다:
- “답변에 면책 조항(disclaimer) 없이 복용량 관련 조언이 포함되어 있는가? 점수를 0점으로 매기고 플래그를 지정하십시오.”
- “모든 임상적 주장(clinical claim)이 승인된 제품 라벨이나 제공된 컨텍스트로부터 정확히 인용되었는가?”
- “이 응답이 공식 승인된 제품 설명서 라벨과 일치하는가? 중대한 안전성 경고를 누락하지 않았는가?”
단일 평가 대상에 대해 여러 개의 판사 모델을 동시에 실행할 수 있으며, 실시간 프로덕션 트래픽과 오프라인 실험 양쪽 모두에 적용할 수 있습니다. 뛰어난 성능의 LLM 판사는 다양한 품질 측면에서 인간 평가자와 80~90%의 일치도를 달성하며, 이는 인간 검토자 간의 일치도(inter-annotator agreement)에 필적하는 수준입니다. 하지만 릴리스 테스트를 전적으로 자동화된 평가자에 의존하기 전에, 이 상관관계를 공식적으로 검증(validation)해야 합니다.
코드 기반 결정론적 평가자 (Code Evaluators)
토큰 비용이 전혀 발생하지 않으면서 하나 이상의 점수를 반환하는 커스텀 Python 또는 TypeScript 로직입니다. 이는 감사관들이 가장 선호하는 결정론적(deterministic) 가드레일 계층으로, 완벽한 재현성(reproducibility)을 보장합니다:
- MedDRA 코드, ICD-10 또는 통제된 어휘집(controlled vocabularies)에 대한 정확한 일치(exact match) 검사
- 로트 번호(lot numbers), 임상시험계획서 ID(protocol IDs)에 대한 정규식(Regex) 유효성 검증
- Argus나 Veeva와 같은 다운스트림 시스템으로 전달되는 정형 출력에 대한 JSON 파싱 가능 여부 및 스키마 검증
- 금지된 효능 주장(forbidden claims)에 대한 키워드 검사
- 도구 호출(tool call) 인자값 유효성 검증
- 필수 안전 면책 문구 포함 여부 확인
- 타당한 약리학적 범위 내의 수치 값 여부 검증
외부 평가자 (External Evaluators)
SDK나 API를 통해 기존에 보유한 밸리데이션 스크립트나 통계적 검사 도구를 연동하고, 그 결과를 다시 트레이스로 전송합니다.
규제 환경에서 모범이 되는 아키텍처 패턴은 명확합니다: 코드 기반 평가자가 안전하지 않은 구조적 결함을 차단하고, LLM 판사가 의미론적 뉘앙스를 점검하며, 두 방식 모두 동일한 점수(Score) 테이블에 기록을 누적하는 방식입니다. 결정론적 검사는 본질적으로 이진(binary) 성격을 띠는 항목들을 처리합니다 — 출처를 올바르게 인용했는가, 필수 면책 조항을 표시했는가, 승인된 처방 의약품 목록(formulary) 내에 머물렀는가 등을 판별합니다. 반면 LLM-as-a-judge는 어조(tone), 완성도(completeness), 일관성(coherence)과 같은 정성적 품질 요소를 확장 가능한 1차 필터링 단계로서 점검합니다.
멀티 에이전트 아키텍처는 생각의 연쇄(Chain-of-Thought) 추론과 재귀적인 도구 실행에 의존하므로, 오류가 발생하면 눈덩이처럼 빠르게 확산됩니다. Langfuse를 활용하면 트레이스 내부의 특정 개별 작업 단위마다 서로 다른 평가자를 지정하여 적용할 수 있습니다. 예를 들어 벡터 검색 단계에는 retrieval-relevance(검색 관련성) 평가자를 실행하고, 최종 출력 단계에는 toxicity/safety(유해성 및 안전성) 평가자를 실행하는 식입니다. 이는 전통적인 컴퓨터 시스템 밸리데이션(CSV)에서 요구하는 단위 컴포넌트 테스트(component testing)의 개념과 정확히 일치합니다.
인간 어노테이션(Human Annotation): 루프 내 적격자(Qualified Person) 배치
어노테이션 큐(Annotation Queues)는 도메인 전문가가 트레이스, 관측치 또는 세션에 직접 점수와 주석(comments)을 부여할 수 있도록 설계된 수동 평가 워크플로우입니다. 이는 큐를 생성하고, 여기에 트레이스를 할당하며, 대규모로 검토를 수행할 수 있는 워크플로우 도구로 제공됩니다.
이 기능은 규제 대상 AI 시스템에 있어서 단연코 가장 중요한 기능이라 할 수 있습니다. 규제 당국이 궁극적으로 신뢰하는 것은 AI 그 자체가 아니라, 자격을 갖춘 인간 전문가이기 때문입니다.
트리아지(Triage) 워크플로우
고위험 트레이스 — 이상사례(Adverse Event) 접수 건, 품질 점수 0.6 미만의 의학 정보 답변 건 등 — 는 100% 검토 큐로 라우팅하고, 저위험 트래픽은 5% 무작위 샘플링을 통해 큐로 전달합니다. 이는 제약 바이오 생산 품질 모니터링의 실무 원칙을 그대로 반영한 것입니다.
역할 분담 (Role separation)
1차 검토는 엔지니어가 수행하여 명백한 기능 저하에 대해 review_status: fail을 부여합니다. 2차 검토는 해당 도메인의 SME(의학부, 약물감시팀, 인허가팀 등)가 진행하여 구체적인 실패 유형(failure_mode)을 분류합니다: 환각(hallucination), 적응증 외 사용(off-label), 구버전 지침 참조(outdated guidance), 서식 오류(formatting) 등. Langfuse는 사용자 할당(user assignment)을 지원하므로 각 검토자에게 적절한 큐가 강조 표시됩니다.
실측 기준(Ground truth) 확립 및 캘리브레이션
수동으로 매긴 점수는 검증의 기준이 되는 참조 표준(reference standard)이 됩니다. 이후 점수 분석(Score Analytics)을 통해 인간과 AI 어노테이션 간의 일치도(Human vs. AI Annotation Agreement)를 측정함으로써, 릴리스 테스트에 LLM 판사를 도입하기 전에 해당 판사 모델이 신뢰할 수 있는지를 과학적으로 검증할 수 있습니다. 이러한 상관관계 데이터 없이 자동화된 평가자가 유효(valid)하다고 주장할 수는 없습니다.
검토자 간 신뢰도(inter-rater reliability) 또한 매우 유용한 통찰을 제공합니다. 검토자들 사이에 의견 불일치가 발생하는 경우, 이는 소스 문서 자체의 모호함(예: 제품 라벨 문구에 대한 두 가지 다른 해석)에서 기인하는 경우가 많습니다. 이는 단순히 AI 프롬프트를 수정할 문제가 아니라 상위 소스 문서를 명확히 개정해야 한다는 신호입니다.
이러한 접근법은 자동화 시스템에 반드시 인간의 감독(human oversight)이 수반되어야 하며 환자 안전에 영향을 미치는 결정은 자격을 갖춘 인력에 의해 검토되어야 한다는 FDA의 기대를 완벽히 충족합니다. 모든 어노테이션은 작성자(who), 작성 일시(when), 대상 트레이스(which trace)와 함께 기록되며, 이는 21 CFR Part 11 감사에서 요구하는 모든 메타데이터를 충족합니다.
데이터셋(Datasets): 버전 관리되는 골든 밸리데이션 세트
데이터셋은 애플리케이션을 테스트하는 데 사용되는 테스트 케이스(입력값 및 기대 출력값)의 모음입니다. 하나의 실험(experiment)은 태스크(task), 데이터(data), 평가자(evaluators)의 3가지 요소로 구성되며, 여기서 데이터는 입력값과 선택적으로 기대 출력값을 제공합니다.
생명과학 분야에서는 다음과 같은 데이터셋을 구축해야 합니다:
골든 SOP 데이터셋(Golden SOP dataset). 의도된 사용 목적(intended use), 엣지 케이스, 오용(misuse) 시나리오를 아우르는 50~200개의 선별된 프롬프트 모음입니다. 예를 들어 “프로토콜 XYZ의 선정 기준(inclusion criteria) 요약”, “환자가 약물 A 복용 후 흉통을 호소함, 어떻게 조치해야 하는가?” 등이 포함됩니다. 각 항목에는 사전 승인된 기대 출력값 또는 공인된 참조 출처가 매핑되어 있습니다.
적대적 데이터셋(Adversarial dataset). 프롬프트 인젝션 시도, 허가 외 투약 용량 문의, 개인건강정보(PHI) 유출 유도 질문, 제품 간 명확한 구분을 시험하기 위해 두 가지 다른 제품을 혼합한 질의 등이 포함됩니다. 에이전트는 이를 정확히 감지하고 적절히 거부해야 합니다.
회귀 테스트 데이터셋(Regression dataset). 어노테이션 큐를 통해 분류되고 라벨링된 실제 프로덕션 환경의 실패 사례들입니다. 기존 데이터셋이 다루지 못했던 프로덕션 엣지 케이스가 발견되면 이를 즉시 데이터셋에 환류하여 추가합니다. 데이터셋은 고정된 벤치마크가 아니라 지속적으로 살아 숨쉬는 유기적 시스템입니다.
도메인 특화 데이터셋(Domain-specific datasets). 메타데이터 필드를 활용하여 치료 영역(Therapeutic Area)이나 규정 준수 도메인별로 세분화한 데이터셋입니다. 항암제 분야와 심혈관 분야 전반에서 에이전트가 데이터를 어떻게 처리하는지 평가하여, 계획된 모든 사용 목적에 걸쳐 균일한 성능을 발휘하는지 검증합니다.
프롬프트, 모델 또는 도구를 변경할 때마다 dataset.run_experiment()를 실행하면 프로덕션 데이터와 엄격히 분리된 상태에서 자동으로 트레이싱과 점수 수집이 수행됩니다. 웹 UI에서는 종합 집계 지표를 확인한 뒤, 기준선(baseline)과 후보 모델(candidate) 간의 병렬 차이점(side-by-side diff)을 비교하고, 문제가 발생한 개별 트레이스로 드릴다운하여 근본 원인을 디버깅할 수 있습니다.
이것이 바로 LLM을 위한 설치 적격성 평가(IQ), 운전 적격성 평가(OQ), 성능 적격성 평가(PQ)의 디지털 대응물입니다. 기준 실행(baseline run)을 참조용 표준으로 지정하고 성능 저하(regression)를 사전에 감지할 수 있습니다. 규제 기관이 “v2.1과 v2.3 사이에 무엇이 변경되었으며, 여전히 올바르게 작동한다는 사실을 어떻게 검증했는가?“라고 질문했을 때 명확하게 답변할 수 있습니다: “여기 테스트 데이터셋이 있고, 이것이 v2.1의 결과이며, 이것이 v2.3의 검증 결과입니다.”
유기적 통합: 검증된 에이전트 라이프사이클 (The Validated Agent Lifecycle)
| Langfuse 기능 | 일반 소프트웨어 테스트 비유 | 생명과학 밸리데이션 대응 요소 |
|---|---|---|
| Traces (트레이스) | 애플리케이션 로그 | AI 실행에 대한 감사 추적(Audit trail) |
| Scores (점수) | 테스트 단언문(Assertions) | 객관적인 품질 지표 |
| Evaluators (평가자) | 자동화 테스트 프레임워크 | 밸리데이션 검사항목 및 적합 판정 기준 |
| Human Annotation (인간 어노테이션) | 코드 리뷰 | QA 검토 및 도메인 전문가 검증 |
| Datasets (데이터셋) | 회귀 테스트 스위트 | 테스트 케이스가 포함된 밸리데이션 프로토콜 |
에이전트 밸리데이션 라이프사이클:
- 점수(Scores) 형태로 적합 판정 기준(Acceptance criteria) 정의: 안전성, 정확성, 규정 준수 측면에서 ’합격(Pass)’이 무엇을 의미하는지 QA 부서와 사전에 합의합니다.
- 평가자(Evaluators) 형태로 기준 인코딩: 결정론적 검사는 코드 평가자로 구현하고, 맥락과 뉘앙스가 필요한 검사는 LLM 판사로 구현합니다.
- 데이터셋(Datasets) 형태로 밸리데이션 데이터 고정: 데이터셋에 버전을 부여합니다. 시스템에 변경 사항이 발생할 때마다 동일한 데이터셋을 대상으로 새로운 실험을 수행해야 합니다.
- 어노테이션 큐(Annotation Queues)를 통한 인간 서명 요구: 판사 모델과 인간 검토자 간의 일치도가 설정된 임계치 미만으로 떨어지거나 치명적 결함이 라벨링되지 않은 채 남아 있다면 릴리스를 승인하지 않습니다.
- 동일한 평가자로 실시간 모니터링: 시간이 지남에 따라 점수 드리프트가 발생하면 새로운 검토 큐가 생성되고 CAPA(시정 및 예방 조치) 조사가 자동으로 트리거됩니다.
이러한 체계를 통해 Langfuse는 단순한 옵저버빌리티 도구에서 ’지속적인 밸리데이션 시스템(Continuous Validation System)’으로 탈바꿈합니다. 입력부터 점수 산출, 검토자에 이르기까지 완벽한 추적성을 갖춘 재현 가능한 증거를 확보할 수 있으며, 시스템이 항상 검증된 상태(validated state)를 유지하고 있음을 감사관에게 설득력 있게 방어할 수 있습니다.
솔직하게 밝히는 중요한 한계점
Langfuse는 관측 가능성과 평가를 위한 인프라를 제공합니다. 그러나 이를 둘러싼 실제 표준운영절차(SOP), 접근 제어 권한, 감사 추적 기록 보관(audit-trail retention) 정책은 여전히 조직 자체적으로 수립하고 문서화해야 합니다. Langfuse 자체가 설치 즉시 GxP 밸리데이션이 완료된 시스템은 아닙니다. Langfuse는 조직의 밸리데이션 논리를 실사관 앞에서 강력하게 방어할 수 있도록 뒷받침하는 도구이며, 시스템이 정상 작동한다는 사실을 어떻게 보증하느냐는 질문을 받았을 때 이 미묘한 차이는 대단히 결정적입니다.
Saram Consulting