※ 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. ※

안녕하세요 49일차 포스팅...입니다...😂
네... 44일차부터 48일차는 개인적인 일정으로 공부를 할 시간이 없어서 작성을 못했습니다ㅠ
그렇게 100% 환급은 물 건너 갔지만...! 그대로 포기하기는 아쉽죠.
50%환급은 45개 포스팅을 작성하면 가능한 것으로 알고 있어서 포기하지 않고, 듣던 강의를 이어 들었답니다.
지난번(43일차)까지는 데이터 전처리와 학습 과정에 집중했는데요.
오늘은 그다음 단계, 즉 "우리 모델이 잘 작동하는지" 확인하는 "테스트"와 "평가"에 대해 이야기를 해보려 합니다.
테스트 없이 학습만 하면, 결국 “그림의 떡 🍰” 이겠죠?
모델이 진짜로 곰돌이 푸 페르소나를 갖고 말하는지,
아니면 그냥 또 다른 LLM일 뿐인지 직접 확인하고 수치화하여 평가하는 게 중요 게 중요합니다.
1️⃣ 파인튜닝된 모델 테스트하기
학습이 끝난 모델을 불러와서 직접 문장을 넣고 테스트하는 과정은 해당 모델을 서비스 단계에서 사용하기 전에,
반드시 거쳐야할 과정 중 하나입니다.
from vllm import LLM, SamplingParams
sampling_params = SamplingParams(
temperature=0.7,
max_tokens=256,
stop=["<|eot_id|>"]
)
llm = LLM(model="output_dir/checkpoint-3000")
prompt = "오늘 하루가 힘들었어. 위로해줄래?"
outputs = llm.generate([prompt], sampling_params)
print(outputs[0].outputs[0].text)
전반적인 테스트 프로세스 과정에 대한 로직인데요.
먼저, LLM(model=...) 클래스를 활용해, 우리가 직접 파인튜닝한 모델을 경로에 접근해 불러옵니다.
그다음 SamplingParams을 통해 생성 방식을 제어 (온도=창의성, 토큰=길이 제한) 해야하죠.
이번에 학습한 모델의 경우, 어느정도 랜덤한 값을 유도하기 위해 temperature값을 0.7을 부여했습니다.
마지막으로, llm.generate() 함수를 통해 실제 문장을 넣어 응답을 받아봅니다.
이 과정을 통해 우리는 곰돌이 푸 페르소나 학습에 결과를 확인 할 수 있었는데요.
잘 학습된 따뜻한 답변을 얻을 수 있었답니다.
테스트는 작동 확인을 반드시 해야하며, 특히 페르소나 챗봇의 경우 모델 분위기 점검 두 가지를 동시에 해줘야 하겠습니다.
2️⃣ 평가 프롬프트 만들기
테스트만으로는 "좋다/별로다" 수준의 느낌만 받을 수 있어요. 그래서 다음 단계는 정량 평가입니다.
def create_evaluation_prompt(prompt_data, label_data, model_output):
evaluation_prompt = f"""
당신은 LLM 응답 평가자입니다. 아래 데이터를 바탕으로 곰돌이 푸 페르소나 기반의 모델 예측을 평가해주세요.
입력 프롬프트:
{prompt_data}
레이블 (정답):
{label_data}
모델 예측:
{model_output}
다음 기준으로 1-5점 척도로 평가해주세요:
<persona_score>...</persona_score>
<tone_score>...</tone_score>
<context_score>...</context_score>
<relevance_score>...</relevance_score>
<similarity_score>...</similarity_score>
<total_score>...</total_score>
<evaluation>...</evaluation>
"""
return evaluation_prompt
GPT를 활용해서 모델의 성능을 평가해봤습니다.
그냥 질문하면, 언제나 그렇듯, 역시나 할루시네이션이 발생할 수 있기 때문에
명확한 항목과 척도 평가 기준을 프롬프트로 제공해야합니다. (위 코드는 예시)
이번 평가의 항목은 ...! 😆
- 곰돌이 푸 페르소나 충실도
- 푸 말투 일치도
- 컨텍스트 활용도
- 응답 적절성
- 레이블 유사도
이렇게 5가지 기준으로 점수를 매기도록 설계했답니다.
단순히 "답이 맞다"가 아니라, “푸처럼 말했는가?” 까지 보는 게 포인트랍니다.
3️⃣ 평가 실행 & 점수 비교
마지막으로 compare_model_outputs() 함수는 기본 모델과 파인튜닝 모델을 나란히 평가합니다.
results = compare_model_outputs(
df=df,
openai_api_key=openai_api_key,
model="gpt-4o"
)
기본 모델(base_model_output)과 파인튜닝 모델(output) 응답을 비교하고,
OpenAI API를 불러와 각각 점수화를 진행한 후
최종적으로 평균 점수와 차이를 계산해보았습니다.
=== 모델 비교 결과 ===
모델1 평균 총점: 21.3
모델2 평균 총점: 15.7
평균 점수 차이 (모델1 - 모델2): +5.6
우리가 튜닝한 모델이 얼마나 개선됐는지를 눈으로 확인할 수 있게 되죠.
① 오늘자 날짜, 공부 시작, 종료 시각 포함 사진 각 1장


② 1개 클립 수강 인증 사진 1장 / 학습 인증 사진 1장


③ 챌린지 대상 강의 완강률 캡쳐 사진 1장

https://fastcampus.info/4n8ztzq
(~6/20) 50일의 기적 AI 환급반💫 | 패스트캠퍼스
초간단 미션! 하루 20분 공부하고 수강료 전액 환급에 AI 스킬 장착까지!
fastcampus.co.kr
'패스트캠퍼스환급챌린지' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 : '파인튜닝과 RAG로 완성하는 도메인 맞춤형 LLM 서비스 개발' 강의 최종 후기 (1) | 2025.09.09 |
|---|---|
| 패스트캠퍼스 환급챌린지 50일차 : 파인튜닝과 RAG로 완성하는 맞춤형 LLM 서비스 개발 강의 후기 (5) | 2025.08.19 |
| 패스트캠퍼스 환급챌린지 43일차 : 파인튜닝과 RAG로 완성하는 맞춤형 LLM 서비스 개발 강의 후기 (4) | 2025.08.12 |
| 패스트캠퍼스 환급챌린지 42일차 : 파인튜닝과 RAG로 완성하는 맞춤형 LLM 서비스 개발 강의 후기 (3) | 2025.08.11 |
| 패스트캠퍼스 환급챌린지 41일차 : 파인튜닝과 RAG로 완성하는 맞춤형 LLM 서비스 개발 강의 후기 (7) | 2025.08.10 |