@ 앞서 RAG 학습용 데이터로 파인튜닝한 모델에 대해 평가를 하고자 한다.
@ vllm을 활용하여 모델을 서빙 및 추론하면서 평가를 진행할 예정이다.
# vLLM의 역할 = “파인튜닝 ‘이후’ 서빙/추론 엔진입니다.
# SLM(Small Language Model)을 LoRA/QLoRA 등으로 파인튜닝하는 도구가 아니라,
# 완성된(혹은 어댑터가 붙은) 모델을 빠르고 싸게 돌려주는 서버예요.
# 왜 vLLM을 쓰나
# PagedAttention/KV 캐시 페이징으로 GPU 메모리 효율↑, 긴 컨텍스트도 안정적으로 처리
# Continuous batching으로 동시 요청 처리량(throughput)↑
# 멀티-GPU 분산(tensor parallel) & 스트리밍 토큰 지원
# OpenAI 호환 API 제공 → 기존 클라이언트 교체가 쉬움
# LoRA 어댑터 온더플라이 로딩/스위칭(여러 파인튜닝 버전을 한 서버에서)
# (옵션) 양자화/저정밀 추론과의 연계로 비용 절감
@ 저장해둔 rag 성능 향상을 위한 파인튜닝 모델을 불러온다.
@ 질문-정답 예시
@ 테스트 데이터에 대한 예측 생성
@ 평가 프롬프트
prompt_template = """
당신은 RAG(Retrieval-Augmented Generation) 시스템 평가 전문가입니다. 아래 정보를 바탕으로 생성된 답변의 품질을 철저히 평가해주세요.
질문: {question}
검색된 컨텍스트:
{context}
생성된 답변:
{prediction}
참조 답변(정답):
{label}
다음 4가지 평가 기준으로 1-5점 척도로 점수를 매겨주세요:
1. 응답 정확성 (Answer Correctness) [1-5]:
* 생성된 답변이 참조 답변과 비교하여 정확하고 완전한 정보를 제공하는지 평가
* 1점: 완전히 잘못된 정보
* 2점: 부분적으로 관련된 정보를 담고 있으나 대부분 부정확함
* 3점: 정확한 정보와 부정확한 정보가 혼재되어 있음
* 4점: 대부분 정확하지만 일부 정보가 누락되거나 미미한 오류가 있음
* 5점: 참조 답변과 비교했을 때 완전히 정확하고 포괄적인 정보를 제공함
2. 컨텍스트 관련성 (Context Relevance) [1-5]:
* 검색된 컨텍스트가 질문에 대답하기 위해 관련성이 높은지 평가
* 1점: 컨텍스트가 질문과 전혀 관련이 없음
* 2점: 컨텍스트가 질문과 간접적으로만 관련됨
* 3점: 컨텍스트 중 일부만 질문과 직접적으로 관련됨
* 4점: 대부분의 컨텍스트가 질문과 직접적으로 관련됨
* 5점: 모든 컨텍스트가 질문에 완벽하게 관련되어 있고 불필요한 정보가 없음
3. 컨텍스트 충실성 (Context Faithfulness) [1-5]:
* 생성된 답변이 주어진 컨텍스트에만 기반하는지, 아니면 없는 정보를 추가했는지 평가
* 1점: 답변이 컨텍스트에 없는 정보로만 구성됨 (심각한 환각)
* 2점: 답변이 주로 컨텍스트에 없는 정보로 구성됨
* 3점: 답변이 컨텍스트 정보와 없는 정보가 혼합되어 있음
* 4점: 답변이 주로 컨텍스트에 기반하지만 약간의 추가 정보가 있음
* 5점: 답변이 전적으로 컨텍스트에 있는 정보만을 사용함
4. 컨텍스트 충분성 (Context Recall) [1-5]:
* 검색된 컨텍스트가 질문에 완전히 답변하기에 충분한 정보를 포함하는지 평가
* 1점: 컨텍스트가 답변에 필요한 정보를 전혀 포함하지 않음
* 2점: 컨텍스트가 필요한 정보의 일부만 포함함
* 3점: 컨텍스트가 필요한 정보의 약 절반을 포함함
* 4점: 컨텍스트가 필요한 정보의 대부분을 포함하지만 일부 누락됨
* 5점: 컨텍스트가 질문에 완전히 답변하기 위한 모든 필요한 정보를 포함함
반드시 다음 JSON 형식으로만 응답하세요. 마크다운은 사용하지 않습니다.:
{
"answer_correctness": 정수로 된 점수(1-5),
"context_relevance": 정수로 된 점수(1-5),
"context_faithfulness": 정수로 된 점수(1-5),
"context_recall": 점수(1-5),
"analysis": "종합적인 분석 의견"
}
다른 형식의 응답은 하지 마세요. 오직 마크다운이 아닌 JSON만 반환하세요.
"""
@ gpt4o에게 평가 수행하게 하기
@ 평가 요약 통계
@ 평가 예시 점수
-> gpt4o가 총점 20점 만점에 4가지 항목(각각 5점 만점)으로 질문세트를 평가한 것을 볼 수 있다.
'LLM 파인튜닝' 카테고리의 다른 글
[한국어 데이터셋] 허깅페이스 주요 한국어 파인튜닝 데이터셋 종류 (0) | 2025.08.26 |
---|---|
[ai100-5T] [RAG 파인 튜닝] klue mrc 데이터 파인튜닝 후 RAG QA 테스트 (2) | 2025.08.25 |
[ai100-4T] [RAG 학습 데이터 생성2] no aswer 질문 데이터 만들기 (0) | 2025.08.25 |
[ai100-3T] [RAG 학습 데이터 생성1] 다수의 문서를 인용하는 질문 데이터 만들기 (0) | 2025.08.24 |
[ai100-2T] [경제 뉴스 예측 파인튜닝 모델 만들기2] 허깅페이스 trl로 경제 뉴스 llama3 파인튜닝 (3) | 2025.08.15 |