이득:
- 보유 및 생성 품질을 별도로 측정하는 지표 정의
- LLM을 판사로 사용하여 골드 질문 세트를 설정하고 자동 평가를 실행합니다.
- 생산 과정에서 피드백, 모니터링, 회귀 테스트를 통해 품질 유지
"어시스턴트를 설치했는데 제대로 작동하는 것 같습니다."라는 문장은 엔지니어링 설명이 아닙니다. RAG 시스템은 조용히 작동하지 않습니다. 새로운 문서 유형으로 인해 검색이 실패하고, 신속한 변경으로 인해 정확성이 떨어지며, 인덱스가 오래되었습니다. 이를 실현하는 유일한 방법은 측정하는 것입니다. 이 단원에서는 RAG 품질 측정(검색 및 생성 별도), 자동 평가(LLM-판단) 및 생산 품질 유지(모니터링, 회귀) 방법을 다룹니다. "측정하지 않으면 개선할 수 없다"가 이 유닛의 모토입니다.
두 가지 개별 항목 측정
RAG에는 두 개의 다리가 있으며 문제가 둘 중 하나에 있을 수 있으므로 별도로 측정해야 합니다.
- 검색 품질: 올바른 부품이 도착했습니까?
- 생성 품질: 들어오는 조각에서 정답이 생성되었습니까?
대답이 나쁘다면 먼저 어느 다리가 나쁜지 알아야 합니다. 올바른 부분이 도착하지 않으면 최상의 프롬프트라도 저장할 수 없습니다(검색 문제). 올바른 부품이 도착했지만 모델이 이를 잘못 읽은 경우 검색 개선은 소용이 없습니다(생성 문제).
검색 지표
검색은 정렬/접근 문제입니다. 고전적인 정보 검색 지표로 측정됩니다. 이를 위해서는 각 질문에 대해 어느 부분이 "올바른"지에 대한 지식인 황금 클러스터가 있어야 합니다.
미터법
어떤 조치를 취합니까?
간단한 정의
리콜@k
맨 위 k에 있는 조각이 맞나요?
올바른 부품 캡처 속도
정밀도@k
반환된 k개 조각 중 관련이 있는 조각은 몇 개입니까?
가져온 것의 청소
MRR(평균 상호 순위)
올바른 조각은 어떤 순서입니까?
보상이 상위 순위에 있음
적중률
적어도 하나의 올바른 제품이 도착했습니까?
성공의 가장 기본적인 척도
실용적인 의견: Recall@k가 낮으면 청크 또는 검색 전략(하이브리드, k, 순위 재지정)을 재작업해야 합니다. 정밀도는 낮지만 재현율은 높은 경우 순위를 다시 매기는 것이 좋습니다.
세대 측정항목
올바른 부품이 도착하면 모델이 생성한 응답의 품질을 측정합니다. 세 가지 기본 차원:
- 충실성: 답변의 각 주장이 맥락에 따라 뒷받침됩니까? 피팅이 있나요? 이는 환각을 직접적으로 측정하는 것입니다.
- 답변 관련성: 답변이 실제로 질문에 대한 답변입니까, 아니면 주제에서 벗어난 것입니까?
- 완전성: 맥락에서 관련된 모든 정보가 사용되었습니까, 아니면 누락되었습니까?
이는 '참/거짓'과 같은 이분법이 아닌 등급 기준(예: 1~5)으로 점수가 매겨지는 경우가 많습니다.
팁: 충실도를 별도의 측정항목으로 추적하세요. 정확성이 감소함에 따라 충실도도 감소한다면 문제는 생성입니다. 충실도는 높으나 답변이 틀리면 문제는 잘못된 조각(검색)입니다. 이 두 가지 지표는 결함의 위치를 보여주는 나침반입니다.
골든 질문 세트 구축
각 측정에는 골든 세트/평가 데이터 세트가 필요합니다. 즉, 현실적인 질문 + 예상 정답 + 올바른 소스 조각이 필요합니다. 잘 선택된 30~50개의 질문으로 시작하는 것이 500개의 무작위 질문보다 낫습니다. 세트에 다음을 포함시키십시오: 자주 묻는 실제 질문, 알려진 어려운 질문, 답변이 없는 트랩 질문("모르겠어요"라고 말해야 함), 모순된 출처가 있는 질문.
# 골든 클러스터 예시(개념)[ {"question": "연차 휴가는 며칠입니까?", "expected_answer": "1~5년 연차에 14일", "corright_part_id": "two-part-3", "category": "leave"}, {"question": "회사의 화성 사무실이 어디입니까?", "expected_answer": "NO_INFORMATION", # 트랩: I "corright_part_id"를 모릅니다: null, "category": "trap"}]
LLM-판사: 자동 평가
수백 개의 답변을 손으로 채점하는 것은 피곤한 일입니다. 판사로서의 LLM 모델은 한 모델이 특정 기준에 따라 다른 모델의 답변을 점수화하고 정당화하는 경우입니다. 훌륭한 판사 프롬프트는 기준을 명확하게 정의하고 예시를 제시하며 정당성을 요구합니다.
# LLM-판사 프롬프트(개념) 귀하는 공정한 평가자입니다. 주어진 상황과 예상 답변에 따라 아래 답변을 평가하세요. 점수(1-5) 및 정당화: - 충실성: 답변의 각 주장이 맥락에서 뒷받침됩니까? - 정확성: 답변이 예상 답변과 일치합니까? - 완전성: 관련 정보가 완전한가요? 특히: 답변에 문맥에 없는 정보가 포함되어 있는 경우 충실함1을 부여하고 어떤 주장이 조작되었는지 표시하십시오.컨텍스트: {컨텍스트}예상: {예상}답변: {답}출력: {신실성, 정확성, 완전성, 정당성}
주의: LLM 판사는 완벽하지 않습니다. 그들은 자신만의 편견을 가질 수 있습니다(장문의 답변, 자신만의 스타일을 선호함). 또한 판사를 확인하십시오. 판사와 사람 모두가 채점한 몇 가지 답변을 갖고 둘 사이의 일치 여부를 측정하십시오. 판사가 인간의 점수와 일치한다면 그를 신뢰할 수 있습니다.
약함/강함 평가
약함("나에게 좋았어"):
몇 가지 질문을 했는데 답변이 좋은 것 같았습니다. 실시간으로 확인했습니다.# 문제: 측정이 불가능하고 회귀가 눈에 띄지 않으며 개선이 눈에 띄지 않습니다.
강력함(골드 클러스터 + 개별 측정항목 + 자동 판단 + 회귀):
40개 질문으로 구성된 황금 클러스터입니다. 각 변경 사항에 대해call@5, 충실도 및 정확성이 자동으로 측정됩니다. 점수가 떨어지면 변경 사항이 롤백됩니다. 제작 과정에서는 사용자 피드백이 수집되어 세트에 추가됩니다.
프로덕션 모니터링 및 회귀
평가는 한번 하고 끝나는 것이 아닙니다. 세 가지 지속적인 관행:
- 회귀 테스트: 모든 프롬프트/검색/모델 변경 시 골든 클러스터를 자동 실행합니다. 점수가 감소하면 변경 사항이 취소됩니다. 이렇게 하면 "더 좋게 만들려고 노력하면서 문제가 발생하는" 것을 방지할 수 있습니다.
- 제작 모니터링 : 실제 질문에서 '정보를 찾을 수 없습니다' 비율, 평균 지연 시간, 비용, 사용자 피드백(👍/👎)을 모니터링합니다. "모름"이 갑자기 증가하는 것은 종종 인덱스 또는 검색 오작동의 첫 번째 징후입니다.
- 피드백 루프: 사용자👎가 제공한 실제 질문을 검토하고 황금 더미에 추가합니다. 따라서 세트는 시간이 지남에 따라 더욱 풍부해지고 시스템의 사각지대가 닫힙니다.
미니 케이스 3개
사례 1 - 자동 회귀. 팀은 프롬프트를 "개선"하기 위해 수정했습니다. 일반적인 정확도는 증가했지만 트랩 질문에서는 충실도가 30% 감소했습니다(모델이 더 적합해지기 시작했습니다). 황금성단의 함정 질문이 아니었다면 눈치채지 못했을 것입니다. 회귀 테스트를 통해 변경 사항을 되돌렸습니다.
사례 2 - 잘못된 다리를 곧게 펴는 것. 한 조수의 대답은 좋지 않았습니다. 팀은 몇 주 동안 프롬프트에 맞춰 작업했습니다. 검색 지표를 측정했을 때,call@5는 48%에 불과했습니다. 문제는 생성이 아니라 검색에 있었습니다. 하이브리드 + 순위 재지정을 추가하면 재현율이 89%로 증가하고 정확도도 높아졌습니다.
사례 3 - 생산 경고. 어느 날 지원 보조원의 "정보를 찾을 수 없습니다" 비율이 6%에서 34%로 뛰어올랐습니다. 트랙패드가 경고했습니다. 그 이유는 밤에 실행되는 색인 작업이 소리 없이 실패하고 새 기사가 업로드되지 않았기 때문입니다. 모니터링이 없었다면 '모른다'는 잘못된 진술이 며칠 동안 계속됐을 것이다.
일반적인 실수
- "나에게 잘 맞았다"고 만족: 측정이 없으면 회귀는 눈에 띄지 않습니다.
- 검색과 생성을 분리하지 않음: 잘못된 다리를 수정하고 시간을 낭비하게 됩니다.
- 함정 질문을 하지 않음: 황금 클러스터에는 꾸며내는 경향이 나타나지 않습니다.
- 판사를 검증하지 않음: 편향된 배심원은 잘못된 신뢰를 제공합니다.
- 생산을 모니터링하지 않음: 지수 실패, 비용 폭발이 조용히 계속됩니다.
요약하면
- RAG에서는 검색 품질과 생성 품질이 별도로 측정됩니다. 먼저 어느 다리가 손상되었는지 확인해야 합니다.
- 회상@k, 정밀도@k, 검색용 MRR; 생성에는 충실성, 적합성, 완전성이 사용됩니다.
- 각 측정에는 금 클러스터가 필요합니다. 그 안에 실제적이고, 어렵고, 함정적이고, 모순되는 질문을 넣으세요.
- LLM 판사는 자동 점수를 크게 설정합니다. 그러나 재판관 자신이 사람에 대하여 의로움을 나타내야 합니다.
- 회귀 테스트, 생산 모니터링 및 피드백 루프는 시간이 지나도 품질을 유지합니다.
응용과제
(1) 자신의 어시스턴트를 위한 최소 15개의 질문으로 구성된 골든 세트를 만듭니다. 최소 3개의 트랩(답변 없음), 3개의 어려운 질문, 2개의 모순되는 소스 질문을 포함합니다. 각 질문에 대해 예상되는 답변과 올바른 부분을 작성하세요. (2) 두 가지 다른 프롬프트 버전을 이 세트와 수동으로 비교합니다. 각 답변에 충실성과 정확성을 위해 1~5점을 부여하세요. (3) 위의 판사로서의 LLM 프롬프트를 귀하의 기준에 맞게 조정하십시오. (4) 프로덕션에서 추적할 3가지 지표를 식별하고 각 질문에 대해 "어떤 임계값에 경고를 표시합니까?" 값을 쓰세요.
체크리스트
- [ ] 별도의 지표를 사용하여 보유 및 생성 품질을 측정할 수 있습니다.
- [ ] 리콜@k, 충실도와 같은 지표가 무엇을 의미하는지 알고 있습니다.
- [ ] 나는 실제 질문, 어려운 질문, 함정 및 모순된 질문을 포함하는 골든 클러스터를 구축할 수 있습니다.
- [ ] 자동 평가를 설정하고 LLM-as-judge를 통해 판사를 확인할 수 있습니다.
- [ ] 회귀 테스트, 생산 모니터링 및 피드백 루프를 운영할 수 있습니다.