LLM 엔지니어링5장 · LoRA 파인튜닝과 DPO 정렬22 / 23← 이전목차다음 →MetaContents

5장. LoRA 파인튜닝과 DPO 정렬

정리

LoRA, 아끼는 기술, DPO 를 한 장에 모은 인포그래픽
  • 전체 미세조정은 파라미터마다 16바이트쯤이 들어 0.5B 모델도 4GB GPU 에 들어가지 않습니다. PEFT 는 모델의 작은 부분만 학습하고, 그 가운데 LoRA 가 가장 널리 쓰입니다.
  • LoRA 는 원래 가중치 W 를 얼리고, 옆에 얇은 행렬 A, B 를 두어 W·x + B·A·x 로 계산합니다. B 를 0 으로 시작해 학습 전에는 원래 모델과 같습니다. r, lora_alpha, target_modules 를 정합니다.
  • peft 의 get_peft_model 두 줄을 더하면 4장의 Trainer 로 LoRA 를 학습할 수 있고, 저장되는 것은 몇 MB 의 어댑터뿐입니다. 어댑터는 따로 끼우거나 가중치에 합칩니다.
  • fp16 으로 불러오기, 혼합 정밀도, 그래디언트 체크포인팅, 작은 배치로 GPU 메모리를 아낍니다. 메모리가 모자라면 오류 없이 느려지기도 하니 꼭 잽니다.
  • DPO 는 질문, 고른 답, 반대 답의 쌍으로, 기준 모델보다 고른 답 쪽 확률을 높입니다. margins 와 accuracies 로 학습을 보고, 학습에 쓰지 않은 질문으로 다시 잽니다.
  • 정렬은 말투를 바꾸는 데 강하고 사실을 가르치는 데는 약합니다. 사실은 SFT 로, 말투는 DPO 로 가르치고, 바뀐 뒤에는 정답과 말투와 원래 능력을 함께 잽니다.
← 이전 절5장 · 프로젝트 1 — 친절한 빵집 상담 모델 만들기다음 절 →5장 · 확인문제와 해답