인간 피드백으로 LLM-as-judge 평가기 개선하기
인간 피드백으로 LLM-as-judge 평가기 개선하기
확인: 이 페이지를 작업하기 전에 다음을 읽는 것이 도움이 될 수 있어요:
신뢰할 수 있는 LLM-as-a-judge 평가기는 AI 애플리케이션(예: 프롬프트, 모델, 아키텍처 변경)에 대한 정보에 입각한 결정을 내리는 데 중요해요. 평가기 프롬프트를 올바르게 정의하는 것은 어려울 수 있지만, 평가의 신뢰성에 직접적인 영향을 미쳐요.
이 가이드는 인간 피드백을 사용해 LLM-as-a-judge 평가기를 정렬(align)해 평가기 품질을 개선하고 신뢰할 수 있는 AI 애플리케이션을 구축하는 방법을 설명해요.
출처: 문서
본문
작동 방식
LangSmith의 Align Evaluator 기능은 인간 전문가 피드백으로 LLM-as-a-judge 평가기를 정렬하는 데 도움이 되는 일련의 단계를 갖고 있어요. 이 기능을 사용해 오프라인 평가용 데이터셋에서 실행되는 평가기나 온라인 평가용 평가기를 정렬할 수 있어요. 어느 경우든 단계는 비슷해요:
- 애플리케이션의 출력이 포함된 실험 또는 런을 선택해요.
- 선택한 실험 또는 런을 인간 전문가가 데이터에 라벨을 붙일 수 있는 어노테이션 큐에 추가해요.
- 라벨링된 예제에 대해 LLM-as-a-judge 평가기 프롬프트를 테스트해요. 평가기 결과가 라벨링된 데이터와 정렬되지 않은 경우를 확인해요. 이는 평가기 프롬프트를 개선해야 할 영역을 나타내요.
- 다듬고 반복해 평가기 정렬을 개선해요. LLM-as-a-judge 평가기 프롬프트를 업데이트하고 다시 테스트해요.
사전 요구사항
오프라인 평가 또는 온라인 평가에 대해 이 가이드를 시작하기 전에 다음이 필요해요:
오프라인 평가
온라인 평가
- 이미 트레이스를 LangSmith로 보내고 있는 애플리케이션.
- 시작하려면 트레이싱 통합 중 하나로 구성해요.
시작하기
데이터셋과 트레이싱 프로젝트에서 새 평가기와 기존 평가기 모두 정렬 흐름에 들어갈 수 있어요.
| 데이터셋 평가기 | 트레이싱 프로젝트 평가기 | |
|---|---|---|
| 처음부터 정렬된 평가기 만들기 | 1. Datasets & Experiments 및 데이터셋 선택 2. + Evaluator > Create from labeled data 클릭 3. 설명적인 피드백 키 이름 입력 (예: correctness, hallucination) |
1. Projects 및 프로젝트 선택 2. + New > Evaluator > Create from labeled data 클릭 3. 설명적인 피드백 키 이름 입력 (예: correctness, hallucination) |
| 기존 평가기 정렬 | 1. Datasets & Experiments > 데이터셋 선택 > Evaluators 탭 2. Align Evaluator with experiment data 상자에서 Select Experiments 클릭 |
1. Projects > 프로젝트 선택 > Evaluators 탭 2. Align Evaluator with experiment data 상자에서 Select Experiments 클릭 |
1. 실험 또는 런 선택
인간 라벨링을 위해 보낼 하나 이상의 실험(또는 런)을 선택해요. 이렇게 하면 런이 어노테이션 큐에 추가돼요.
새 실험/런을 기존 어노테이션 큐에 추가하려면 Evaluators 탭으로 이동해 정렬 중인 평가기를 선택하고 Add to Queue를 클릭해요.
확인: 데이터셋은 프로덕션에서 볼 것으로 예상되는 입력과 출력을 대표해야 해요.
모든 가능한 시나리오를 다룰 필요는 없지만, 예상 사용 사례의 전체 범위에 걸친 예제를 포함하는 것이 중요해요. 예를 들어 야구, 농구, 미식축구에 대한 질문에 답하는 스포츠 봇을 구축한다면, 각 스포츠에서 최소 하나의 라벨링된 예제를 데이터셋에 포함해야 해요.
2. 예제 라벨링
어노테이션 큐에서 피드백 점수를 추가해 예제에 라벨을 붙여요. 예제에 라벨을 붙인 후 Add to Reference Dataset을 클릭해요.
확인: 실험에 많은 수의 예제가 있어도 모든 예제에 라벨을 붙일 필요는 없어요. 최소 20개의 예제로 시작할 것을 권장하며, 나중에 더 추가할 수 있어요. 라벨링하는 예제가 다양하고(0과 1 라벨 모두 균형 잡혀 있는) 잘 균형 잡힌 평가기 프롬프트를 구축하도록 하는 것을 권장해요.
3. 라벨링된 예제에 대해 평가기 프롬프트 테스트
라벨링된 예제가 준비되면 다음 단계는 라벨링된 데이터를 최대한 모방하도록 평가기 프롬프트를 반복하는 것이에요. 이 반복은 Evaluator Playground에서 수행돼요.
평가기 플레이그라운드로 이동하려면: 평가기 큐의 오른쪽 상단에 있는 View evaluator 버튼을 클릭해요. 그러면 정렬 중인 평가기의 상세 페이지로 이동해요. Evaluator Playground 버튼을 클릭해 플레이그라운드에 접근해요.
평가기 플레이그라운드에서 평가기 프롬프트를 만들거나 편집하고 Start Alignment를 클릭해 2단계에서 만든 라벨링된 예제 집합에 대해 실행할 수 있어요. 평가기를 실행하면 생성된 점수가 인간 라벨과 어떻게 비교되는지 알 수 있어요. 정렬 점수(alignment score)는 평가기의 판단이 인간 전문가의 판단과 일치하는 예제의 백분율이에요.
4. 반복해 평가기 정렬 개선
프롬프트를 업데이트하고 다시 테스트해 반복함으로써 평가기 정렬을 개선해요.
확인: 평가기 프롬프트에 대한 업데이트는 기본적으로 저장되지 않아요. 평가기 프롬프트를 정기적으로, 특히 정렬 점수가 개선된 것을 확인한 후에는 저장할 것을 권장해요.
평가기 플레이그라운드는 반복할 때 비교를 위해 가장 최근에 저장된 평가기 프롬프트 버전의 정렬 점수를 표시할 거예요.
평가기의 정렬 점수를 개선하는 것은 정확한 과학이 아니지만, 정렬 점수를 높이는 데 도움이 되는 몇 가지 전략이 있어요.
평가기 정렬 개선을 위한 팁
1. 정렬되지 않은 예제 조사하기
정렬되지 않은 예제를 깊이 파고들어 공통 실패 모드로 그룹화하려는 시도는 평가기 정렬을 개선하는 좋은 첫 단계예요.
공통 실패 모드를 식별한 후 평가기 프롬프트에 지침을 추가해 LLM이 이를 알도록 해요. 예를 들어 특정 약어를 이해하지 못하는 것을 발견했다면 "MFA는 'multi-factor authentication'을 뜻한다"고 설명할 수 있어요. 또는 평가기의 맥락에서 좋음/나쁨이 무엇을 의미하는지 혼란스러워한다면 "좋은 응답에는 항상 예약할 수 있는 호텔이 최소 3개 포함되어야 한다"고 알려줄 수 있어요.
2. LLM 점수 뒤의 추론 검사하기
LLM이 예제를 왜 그렇게 점수 매겼는지 이해하려면 LLM-as-a-judge 평가기에서 추론(reasoning)을 활성화할 수 있어요. 추론은 LLM의 사고 과정을 이해하는 데 도움이 되며, 평가기 프롬프트에 포함할 공통 실패 모드를 식별하는 데 도움이 될 수 있어요.
평가기 플레이그라운드에서 추론을 보려면 LLM 점수 위에 마우스를 올려놓아요.
이렇게 하면 평가기 플레이그라운드에서 LLM 점수 뒤의 추론이 표시돼요.
3. 라벨링된 예제를 더 추가하고 성능 검증
라벨링된 예제에 과적합되는 것을 피하려면, 특히 적은 수의 예제로 시작했다면 라벨링된 예제를 더 추가하고 성능을 테스트하는 것이 중요해요.