패스트캠퍼스환급챌린지

패스트캠퍼스 환급챌린지 38일차 : 파인튜닝과 RAG로 완성하는 맞춤형 LLM 서비스 개발 강의 후기

네모몽 2025. 8. 7. 21:00

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


 

오늘은 NCSOFT에서 제공한 LLaMA 모델을 Hugging Face에서 내려받아 LoRA 파인튜닝 과정을 실습했습니다.
RAG 응답 형식, 문서 인용 처리, 데이터 전처리부터 모델 테스트까지 꽤 탄탄한 흐름을 실습해보면서,

RAG 모델의 튜닝과정을 정리해 볼 수 있는 시간이었습니다 😗

 

🧩 사용 모델과 환경 구성

  • 모델: NCSOFT/Llama-VARCO-8B-Instruct
  • 튜닝 방식: LoRA(Low-Rank Adaptation)
  • 런타임 환경: RunPod A100 GPU (50GB container disk)

RunPod에서 A100 GPU 1대를 사용했습니다.

파인튜닝은 Full fine-tuning이 아닌 PEFT(부분 파인튜닝) 방식으로 진행했습니다.

효율적인 자원 사용이 가능했고, 학습 결과도 adapter 형태로 저장되다보니 관리가 편했습니다 😋

 

📦 데이터셋 및 프롬프트 구조

  • 사용한 데이터셋: iamjoon/klue-mrc-ko-rag-dataset
  • 유형: 검색 기반 질문-응답 형식
  • 주요 포맷:
{
  "messages": [
    { "role": "system", "content": "검색 결과를 기반으로 답하세요..." },
    { "role": "user", "content": "질문" },
    { "role": "assistant", "content": "정답 및 문서 인용 포함 응답" }
  ]
}

 

데이터셋은 지난 실습의 결과물이기 때문에 그냥... 강사님의 데이터셋을 사용했습니다!

질문마다 5개의 문서가 "문서1:", "문서2:" 형태로 주어지고,
응답에는 반드시 [[ref1]], [[ref2]] 같은 인용 정보가 포함되도록 구성되도록 했었죠!
RAG 시스템에서 발생할 수 있는 예외 상황을 대처할 수 있도록 준비해둔 데이터 셋이었습니다.

 

⚙️ 파인튜닝 설정 (SFT + LoRA)

LoRA 설정

LoraConfig(
    r=8,
    lora_alpha=32,
    lora_dropout=0.1,
    target_modules=["q_proj", "v_proj"],
    task_type="CAUSAL_LM"
)
  • q_proj, v_proj에만 LoRA 적용
  • rank=8, dropout=0.1로 경량화된 fine-tuning 설정

SFTTrainer 설정

SFTConfig(
    num_train_epochs=3,
    per_device_train_batch_size=2,
    gradient_accumulation_steps=2,
    learning_rate=1e-4,
    max_seq_length=8192,
    bf16=True,
    save_steps=50,
    logging_steps=10
)
  • LoRA + gradient checkpointing으로 메모리 최적화
  • 긴 문서 대응을 위한 8K 토큰까지 처리 가능한 구조

 

🔄 Collate 함수 & 템플릿

collate_fn() 함수는 강사님이 준비해둔 데이터 전처리 함수입니다.

코드 저작권? 문제로 전부 공유할 수 는 없어서, 대략적인 함수의 기능을 정리해봤습니다.

  • LLaMA 3 채팅 형식에 맞춰 <|start_header_id|>role<|end_header_id|> 템플릿 사용
  • input_ids, labels, attention_mask를 직접 구성
  • 모델이 학습해야 할 응답 구간 외에는 -100으로 마스킹 처리

이러한 전처리를 통해서 모델은 "assistant" 역할의 응답 부분만 정확히 학습하게 됩니다

 

 

✅ 학습 및 저장

trainer.train()
trainer.save_model()
  • llama-3-8b-rag-ko 디렉토리에 adapter 저장
  • Hugging Face hub에는 업로드하지 않고 로컬 디스크에만 저장

 

 

① 오늘자 날짜, 공부 시작, 종료 시각 포함 사진 각 1장

패스트캠퍼스_LLM 서비스개발_38일차_공부시작/종료시간

 

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

패스트캠퍼스_LLM 서비스개발_38일차_수강인증/학습인증

 

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

패스트캠퍼스_LLM서비스개발_38일차_완강률캡처

 


 

https://fastcampus.info/4n8ztzq

 

(~6/20) 50일의 기적 AI 환급반💫 | 패스트캠퍼스

초간단 미션! 하루 20분 공부하고 수강료 전액 환급에 AI 스킬 장착까지!

fastcampus.co.kr