인공지능 모델을 개발하거나 도입할 때, 우리 모델이 얼마나 일을 잘하는지 확인하는 과정은 정말 중요합니다. 단순히 "좋다"라고 말하는 대신, 정확한 기준을 가지고 평가해야 하거든요. 오늘은 특정 Task 수행 능력을 수동으로 평가하는 구체적인 방법을 소개해 드릴게요
🧭 1. 평가 목적 정의하기
🔧 예시: "법률 질문 요약", "장문의 보고서 요약" 등
- 평가를 정밀하게 하려면, 여러 가지를 한꺼번에 하지 않고 단일 작업이나 특정 도메인에만 집중하는 것이 좋습니다.
- 먼저 무엇을 넣을지(입력 예시)와 어떤 대답이 나오길 바라는지(출력 기대치)를 미리 정합니다.
- 예시:
- 입력: CCTV 이벤트 로그
- 출력: 사람이 보기 쉽게 요약된 자연어 보고서
- 예시:
🛠️ 2. 평가 데이터셋 구성하기
- 10개에서 50개 정도의 아주 특별한 테스트 샘플을 만듭니다.
- 각 샘플은 입력 (prompt)과 아주 완벽한 정답인 이상적인 정답 (reference)을 꼭 포함해야 합니다.
- 가능하다면 아주 쉬운 것부터 어려운 것(엣지 케이스 포함)까지 골고루 섞어주는 것이 좋습니다.
{
"input": "침입 감지: 02시 33분, 동문, 인원 수 3명 이상",
"expected_output": "새벽 2시 33분에 동문에서 3명 이상의 무단침입이 감지되었습니다."
}
🤖 3. 후보 모델 선정 및 응답 수집하기
- 여러 인공지능 모델들에게 똑같은 입력을 주고, 각각 어떤 대답을 하는지 모아봅니다.
- 예: GPT-4, Claude 3 Opus, Gemini 1.5, Mistral, LLaMA2, custom tuned 모델 등
- 이 과정은 Python 스크립트로 API를 호출하거나 내 컴퓨터에 있는 모델을 돌려서 자동으로 저장할 수 있습니다.
📊 4. 응답 평가 방법 선택하기
🔹 자동 평가 (숫자로 점수 매기기)
- BLEU / ROUGE / BERTScore: 우리가 정해둔 reference와 인공지능의 대답이 얼마나 비슷한지 숫자로 계산합니다.
- Exact match / Keyword match: 꼭 들어가야 하는 단어가 들어있는지 확인합니다.
- Self-check prompting: GPT에게 "이 응답이 적절한가?"라고 물어보고 평가하게 시킵니다.
🔹 수동 평가 (사람이 직접 읽기)
- 평가 기준 설정: 정확성, 간결성, 문법, 사실 일치, 업무 적합성 등을 확인합니다.
- 사람이 직접 대답을 읽어보고 1점에서 5점까지 점수를 매기거나, 어떤 게 더 나은지 A/B 테스트를 합니다.
⚠️ 자동 평가는 아주 빠르지만, 사람이 하는 수동 평가가 훨씬 더 정확합니다. 그래서 보통은 이 두 가지를 혼합해서 사용합니다.
🏆 5. 점수 비교 및 최종 모델 선택하기
- 모델별로 평균 점수가 몇 점인지, 그리고 가장 대답을 못 한 경우(worst-case)는 언제인지 확인합니다.
- score = 0.7 * 정확성 + 0.3 * 문장 자연스러움과 같이 중요도에 따라 점수를 합치는 가중 평균 방법도 사용 가능합니다.
📈 6. 시각화로 결과 확인하기 (선택 사항)
- pandas나 matplotlib, seaborn 같은 도구를 써서 모델별 점수를 그래프나 박스플롯으로 그려봅니다.
- 가장 결과가 안 좋았던 Worst-case 샘플들은 따로 모아서 살펴보면 모델의 단점을 고치기 좋습니다.
💡 요약 플로우
[1] 작업 정의 -> [2] 평가셋 구성 -> [3] 모델 응답 수집 -> [4] 자동/수동 평가 -> [5] 최종 선택
🔍 정답(Reference) 데이터는 왜 직접 만들어야 할까요?
그 이유는 BLEU, ROUGE, BERTScore 같은 자동 평가 지표들이 "모델이 내놓은 대답"과 우리가 미리 만든 "정답(reference)"이 얼마나 닮았는지를 계산하는 방식이기 때문입니다. 즉, 비교의 기준이 되는 Ground Truth가 반드시 있어야만 평가를 할 수 있습니다.
✅ 정답 데이터 활용 예시
- 입력 (Prompt): "침입 감지: 02시 33분, 동문, 인원 수 3명 이상"
- 내가 직접 만든 Reference 정답: "새벽 2시 33분, 동문에서 3명 이상의 무단 침입이 감지되었습니다."
- 인공지능 모델이 내놓은 출력 (Hypothesis): "동문에서 새벽 2시 33분경, 3명 이상의 침입이 탐지되었습니다."
➡ 이때 BLEU, ROUGE, BERTScore가 이 두 문장을 비교해서 "얼마나 비슷한가?"를 점수로 매겨주는 것입니다.
🛠️ 정답 데이터 만드는 꿀팁!
- 여러 개의 정답 만들기: 하나의 Prompt에 여러 개의 Reference를 만들면, 다양한 표현을 정답으로 인정해 줄 수 있어서 평가가 더 정확해집니다.
- 요약 작업 시: 정답이 딱 하나로 정해지지 않을 때는 "이상적인 예시"를 정하되, 간결하고 일관성 있게 만듭니다.
- 기준 문서화: 정답을 만들 때의 규칙을 미리 써두면 좋습니다. 예를 들어 "CCTV 요약은 반드시 시간 + 위치 + 사건 요약을 포함한다"라고 정해두는 식입니다.
❗ 참고: Self-check prompting은 예외입니다
Self-check prompting 방식은 GPT-4 같은 똑똑한 모델에게 아래처럼 직접 물어보는 방식입니다.
질문: "이 응답은 입력 정보와 정확히 일치하며 사람이 이해하기 쉽게 표현되었나요?"
하지만 이 경우에도 인공지능이 잘 판단할 수 있도록, 어떤 기준을 넘어야 좋은 대답인지를 우리가 미리 정해서 알려주어야 한답니다.
'LLM' 카테고리의 다른 글
| 구글의 딥시크: 터보퀀트(TurboQuant) 완전 분석 — 메모리 6배 절감이 반도체 주가를 흔든 이유 (0) | 2026.03.27 |
|---|---|
| [기초] LLM이 더 똑똑하게 생각하게 만드는 법 — CoT, ToT, Self-Consistency 완전 비교 (0) | 2026.03.26 |
| [기초] LLM이 도구를 직접 호출한다 — Function Calling 원리와 구현 완전 정리 (0) | 2026.03.25 |
| sglang vs vLLM — 오픈소스 LLM 서빙 프레임워크 실전 비교 (0) | 2026.03.24 |
| LLM 성능 평가는 어떻게 할까? MT-Bench부터 HELM까지 (0) | 2026.03.24 |