목록으로

Programming Notes

AI 에이전트 평가: LLM 평가자의 분산을 줄이고 정렬을 강화하는 기법

이상적인 세상에서, LLM 평가자는 숙련된 주제 전문가(SME)처럼 행동할 것입니다. 이를 달성하기 위해 우리는 평가자를 SME의 선호도에 맞춰 정렬하고 평가자가 보이는 모든 체계적인 편향을 최소화해야 합니다. (LLM 평가자에서 흔히 발생하는 편향 유형에 대한 자세한 내용은...

이상적인 세상에서, LLM 평가자는 숙련된 주제 전문가(SME)처럼 행동할 것입니다. 이를 달성하기 위해 우리는 평가자를 SME의 선호도에 맞춰 정렬하고 평가자가 보이는 모든 체계적인 편향을 최소화해야 합니다. (LLM 평가자에서 흔히 발생하는 편향 유형에 대한 자세한 내용은 [이전 문서](https://techcommunity.microsoft.com/blog/azure-ai-foundry-blog/evaluating-ai-agents-can-llm%E2%80%91as%E2%80%91a%E2%80%91judge-evaluators-be-trusted/4480110)를 참조하십시오.) 먼저 정렬을 개선하는 기법부터 살펴보겠습니다.

LLM 평가자를 사람의 선호도에 맞춰 사전 보정하기

보정할 올바른 모델 선택하기

LLM 평가자의 기반 드라이버로 사용할 모델, 여러 모델 또는 모델 제품군을 선택할 때, 이는 사실상 비용과 성능 사이의 균형 문제가 됩니다. 더 큰 모델은 작은 모델보다 더 효과적인 경향이 있으며 [1]; 더 비싸고 느립니다. 평가자 제품군을 배포할 때 (대부분의 프로젝트에서 필요하듯이) 시스템의 어떤 영역이 근본적으로 더 정렬되어야 하는지 신중하게 결정하고, 덜 중요한 영역에서는 더 작고 저렴한 모델을 사용하는 동시에 이러한 영역에는 더 비싼 모델을 배포하는 것을 고려하십시오. 데이터 포인트를 무작위로 샘플링하여 더 큰 평가자에게 간헐적으로 노출하는 것도 활용할 수 있는 전략입니다. 근본적으로 모델 선택은 디자인 선택이기도 하며, 어떤 영역에 어떤 모델을 사용할지 결정하는 데 도움이 되는 체계적인 테스트가 필요합니다.

인간의 선호도에 맞춰 모델 보정하기

LLM 평가자는 섬세하며 시스템 프롬프트에 매우 민감하게 반응합니다. LLM 평가자를 사용할 때 가장 중요한 것은 일관성입니다. 이는 인간의 선호도와 정렬되는 것으로 입증된 시스템 프롬프트를 선택했다면, 평가 기간 동안 그 시스템 프롬프트를 고수해야 함을 의미합니다. 시스템 프롬프트를 변경하는 것은 평가 전에, 그리고 오직 평가 전에만 이루어져야 합니다. 그렇지 않으면 목표를 달성하기 위해 기준을 계속 바꾸는 상황에 처할 수 있습니다.

따라서 보정의 목표는 SME가 제공할 응답과 가장 잘 정렬되도록 모델의 시스템 프롬프트를 조정하는 것입니다. 불행히도 이는 정렬을 평가할 수 있도록 SME 응답을 수집하고 라벨링해야 함을 의미합니다.

1점부터 5점까지 응답을 평가하도록 LLM 평가자를 훈련시키려는 아래 예시를 고려해 보십시오. 이 평가자는 수많은 AI 애플리케이션을 평가하는 데 사용될 수 있습니다. 다음은 평가자를 성공적으로 정렬하는 방법입니다.

  1. 다양한 응답을 계층화하여 샘플링합니다.
    • 잠재적인 값의 전체 범위가 포함되도록 합니다 (예: 1~5점 또는 1~10점).
    • 엣지 케이스와 모호한 샘플을 포함하도록 합니다.
    • 내용 길이, 품질, 어조 등에서 다양성을 확보합니다.
    • 검증 세트와 테스트 세트를 표준으로 유지합니다.

예시:

응답 어조 길이
‘이것은 응답 A입니다…’ 명확하고 간결함 300
‘이것은 응답 Z입니다…’ 불분명하고 방향성 없음 150

 

2. 사람이 각 응답에 주석을 달거나 점수를 매기도록 합니다.

    • 이상적으로는 그룹 내에서 명확하고 일관된 채점 기준을 결정합니다.
    • SME가 응답에 독립적으로 점수를 매기도록 합니다.
    • 두 명의 주석자가 있는 경우 코헨의 카파 [2]를 사용하거나 세 명 이상의 주석자가 있는 경우 플라이스의 카파 [3]를 사용하여 주석자 간 일치도를 계산합니다. 필요한 경우 가중 카파 계산을 사용하십시오; 큰 불일치에 더 엄격하게 페널티를 부여할 수 있습니다.
    • κ > 0.6을 목표로 합니다 — 이 값에 가깝지 않다면 질문이나 채점 기준에 심각한 모호성이 있을 수 있으므로 공동 논의 또는 심판이 필요할 수 있습니다.
    • SME는 어조나 길이와 같은 부수적인 정보에 대해 알지 못한 채 응답에 점수를 매겨야 합니다.

확장된 예시:

응답 어조 길이 SME 1 점수 SME 2 점수 SME 3 점수
‘이것은 응답 A입니다…’ 명확하고 간결함 100 3 2 4
‘이것은 응답 Z입니다…’ 불분명하고 방향성 없음 200 4 3 4

 

3. 기준 시스템 프롬프트를 생성하고 사람의 점수와 비교합니다.

    • 평가자를 위한 초기 시스템 프롬프트를 생성하고 검증 세트를 전달합니다.
    • 동일한 응답을 평가 LLM에 전달하고 점수를 검색합니다.
    • 스피어만 또는 피어슨 계수와 같은 상관관계 지표를 사용하여 LLM 평가자의 점수와 사람이 주석을 단 응답의 점수를 비교합니다.
    • SME 평가자(반올림된 평균, 중앙값 또는 최빈값)의 점수와 LLM 평가자의 순위 간 일치율을 올바른 카파 측정법을 사용하여 다시 비교합니다.
    • 인간 평가자와 LLM 평가자 간의 불일치에 대해 줄별 오류 분석을 수행합니다. 체계적인 편향이 존재하는지 분석하고 탐색합니다.

4. 반복하고 개선합니다.

    • 오류 분석 및 지표 관찰에서 도출된 내용을 바탕으로 시스템 프롬프트를 조정하여 과정을 반복합니다.

5. 최종 검증.

    • 상당한 개선과 개선의 정체기가 나타난 후, 처음에 보류했던 최종 테스트 세트를 테스트하여 일관성을 확보할 수 있습니다.

6. 설정하고 잊기.

    • LLM 평가자를 위한 최종 시스템 프롬프트가 설정되면, 평가 파이프라인의 편향을 피하기 위해 실험 전반에 걸쳐 이를 일정하게 유지하십시오.

편향 완화를 위한 사후 보정

정렬에 대한 추가 분석

정렬 스트레스 테스트

스트레스 테스트는 LLM 평가자와 인간 평가자 간의 정렬이 다양한 조건과 다른 하위 집단에 걸쳐 견고하게 유지되는지 엄격하게 평가하는 데 사용됩니다. 예를 들어, LLM 평가자가 짧은 응답에 대해서는 사람의 점수와 밀접하게 일치할 수 있지만, 더 긴 응답에 대해서는 지속적으로 잘못 판단할 수 있습니다. 데이터셋이 짧은 응답으로 지배된다면, 이는 전체 상관관계 지표를 인위적으로 부풀리고 평가자의 치명적인 약점을 가릴 수 있습니다.

  • 계층화된 일치도 분석: 짧은 응답 대 긴 응답, 단순한 쿼리 대 복잡한 쿼리, 다양한 어조 또는 글쓰기 스타일, 다양한 콘텐츠 도메인과 같은 개별 범주에 대해 인간-LLM 일치도를 별도로 평가합니다. 이는 정렬이 약화될 수 있는 지점을 정확히 찾아내는 데 도움이 됩니다.
  • 반사실적 교란: 입력에 사소한 수정(예: 후보 순서 섞기, 답변 줄이기, 동의어 대체)을 가하여 LLM 평가자의 점수가 의미 있는 방식으로 변경되는지 관찰합니다. 이러한 테스트는 평가 과정에서의 민감도와 잠재적 편향을 밝혀냅니다.
  • 순열 테스트: 답변 레이블 또는 채점 할당을 무작위로 순열하여 관찰된 정렬 패턴이 데이터셋 구조나 우연의 결과가 아님을 확인합니다.

스트레스 테스트에서 현재 평가자의 결함이 드러나면, 다음 단계는 인간의 판단과 더 강력하고 일관된 정렬을 달성하기 위해 LLM 평가자를 반복적으로 개선하는 것입니다.

개선 사항에 대한 통계적 검증

관찰된 개선 사항이 실질적이며 단순한 통계적 인공물이 아님을 확인하는 것이 중요합니다. 여기서 강력한 통계적 검증이 중요합니다:

  • 짝지어진 유의성 테스트: 짝지어진 t-테스트 또는 윌콕슨 부호 순위 테스트와 같은 방법을 사용하여 보정 전후의 인간-LLM 편차를 비교하고, 개선 사항이 통계적으로 뒷받침되는지 확인합니다.
  • 다중 테스트 보정: 수많은 지표나 하위 그룹을 평가할 때 벤자미니-호흐베르그 보정과 같은 절차를 적용하여 오탐 위험을 줄입니다.
  • 신뢰 구간: 불확실성을 정량화하고 미미한 차이를 과도하게 해석하는 것을 피하기 위해 일치도 추정치에 대한 신뢰 구간을 보고합니다.

이러한 관행을 체계적으로 적용함으로써 이해관계자들은 LLM 평가자의 신뢰성과 측정된 개선 사항의 지속성에 대해 더 명확하고 데이터 기반의 확신을 얻을 수 있습니다. 이러한 접근 방식은 정렬이 통계적으로 건전할 뿐만 아니라 모든 관련 시나리오에서 의미 있고 안정적임을 보장합니다.

편향 테스트를 위한 회귀 분석

LLM 평가자가 인간의 선호도에 맞춰 보정되고 그 성능이 우리의 평가 기준을 충족하면, 마지막 단계는 남아 있을 수 있는 잔여 편향의 존재와 크기를 정량화하는 것입니다.

인간과 마찬가지로 LLM 평가자도 체계적인 편향을 보일 수 있습니다. 이전 연구에 따르면 LLM 평가자는 많은 예시를 평가할 때 일관된 선호 패턴을 자주 나타냅니다. 잘 문서화된 세 가지 편향 유형은 다음과 같습니다:

  • 위치 편향 – 품질과 상관없이 비교에서 첫 번째 또는 두 번째 옵션을 선호하는 경향.
  • 장황함 편향 – 짧고 간결한 답변보다 더 긴 답변을 선호하는 경향.
  • 자기 편향 – 평가자와 동일한 모델 제품군에서 생성된 응답에 더 높은 점수를 부여하는 경향.

이러한 체계적인 효과를 이해하면 평가자의 한계를 진단하고 추가 튜닝 과정에서 편향을 반복적으로 줄일 수 있습니다. LLM 평가자를 인간의 선호도에 맞춰 정렬하는 것이 필수적이지만, 편향을 낮추면 평가자가 훨씬 더 신뢰할 수 있게 됩니다.

편향을 측정하는 간단하면서도 강력한 방법은 회귀 모델링입니다. 장황함 편향을 예로 들어보겠습니다.

에이전트를 구축하는 예를 들어 봅시다. 이 에이전트가 특정 질문에 얼마나 잘 답변하는지 평가하고 싶습니다. 이 에이전트를 표준 상용 LLM과 비교하고 싶습니다. 우리 에이전트가 더 실질적인 답변을 생성하는지 알고 싶습니다. 그러나 LLM 평가자는 더 긴 답변을 선호하는 경향이 있다는 것을 미리 알고 있습니다. 그렇다면 LLM 평가자가 단순히 더 긴 답변을 제공한다는 이유만으로 우리 에이전트에 편향되지 않도록 어떻게 해야 할까요? 선형 회귀를 사용하여 그러한 교란 영향을 통제할 수 있습니다.

점수=β₀+β₁ (에이전트)+β₂ (정규화된 길이)+ε

이 공식은 답변을 누가 생성했는지와 답변 길이가 얼마인지에 대한 개별적인 효과를, 다른 모든 요소를 고정한 채로, 분리할 수 있게 해줍니다. 선형 회귀의 표준 가정이 적용된다면, 다른 모든 편향 유형도 유사한 방식으로 모델링할 수 있습니다.

회귀 계수의 부호, 크기 및 통계적 유의성은 각 편향의 정도를 정량화합니다. 예를 들어, 이 사양에서 크고 양수이며 통계적으로 유의미한 β₂는 강력한 장황함 편향을 나타낼 것입니다.

Microsoft Foundry로 통계적 엄격함을 실무에 적용하기

이러한 작업의 상당 부분은 Microsoft Foundry와 오픈 소스 패키지 [judgesync](https://pypi.org/project/judgesync/)를 사용하여 쉽게 반복할 수 있습니다.

실제로 통계적 검증은 평가 워크플로우에 긴밀하게 통합될 때 가장 가치 있습니다. [Microsoft Foundry](https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/evaluate-results?view=foundry)는 짝지어진 통계 테스트를 기본적으로 지원하여 개발자들이 사전 및 사후 보정 개선 사항을 직접 정량화할 수 있도록 합니다.

더욱 멋지고 특히 유용한 기능은 [Microsoft Foundry의 평가 클러스터 분석 기능](https://learn.microsoft.com/en-us/azure/ai-foundry/observability/how-to/cluster-analysis?view=foundry) (현재 공개 미리 보기)입니다. 이것은 유사한 패턴을 가진 샘플들을 그룹화하여 평가 결과를 이해하고 비교하는 데 도움을 주며, 응답 길이, 복잡성 및 콘텐츠 스타일 전반에 걸쳐 LLM 평가자가 인간 평가자와 다른 정렬 격차를 쉽게 파악할 수 있도록 합니다—이는 집계된 지표에 의해 종종 가려지는 문제입니다.

---

참고 자료

[1] Zheng, L., Chiang, W.-L., Sheng, Y., Zhuang, S., Wu, Z., Zhuang, Y., Lin, Z., Li, Z., Li, D., Xing, E. P., Zhang, H., Gonzalez, J. E., & Stoica, I. (2023). Judging LLM-as-a-judge with MT-Bench and Chatbot Arena [arXiv preprint]. arXiv. [https://doi.org/10.48550/arXiv.2306.05685](https://doi.org/10.48550/arXiv.2306.05685)

[2] Cohen, J. (1960). A coefficient of agreement for nominal scales. Educational and Psychological Measurement, 20(1), 37–46. [https://doi.org/10.1177/001316446002000104](https://doi.org/10.1177/001316446002000104)

[3] Fleiss, J. L., & Cohen, J. (1973). The equivalence of weighted kappa and the intraclass correlation coefficient as measures of reliability. Educational and Psychological Measurement, 33(3), 613–619. [https://doi.org/10.1177/001316447303300309](https://doi.org/10.1177/001316447303300309)