LoRA로 효율적 파인튜닝

Llama 3 미세 조정(Fine-Tuning)

Francesca Donadoni

Curriculum Manager, DataCamp

모델 학습 시 무슨 일이 일어나나요?

 

  • 토큰은 벡터를 이루는 입력 데이터
  • 행렬(모델) 곱셈
  • 출력 벡터 생성
  • 오류로 가중치 업데이트
  • 모델 크기가 학습 난이도 결정

입력과 모델 행렬의 시각적 표현

Llama 3 미세 조정(Fine-Tuning)

LoRA란?

 

  • 저랭크 분해
  • 학습 파라미터 감소
  • 성능 유지
  • 정규화 효과

파란 행렬이 두 개의 분해된 행렬로 분할되고, 이들을 곱해 원래 행렬을 복원하는 모습

Llama 3 미세 조정(Fine-Tuning)

PEFT로 LoRA 구현하기

from peft import LoraConfig

lora_config = LoraConfig(
r=12,
lora_alpha=32,
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM", target_modules=['q_proj', 'v_proj']
)
Llama 3 미세 조정(Fine-Tuning)

학습에 LoRA 설정 통합

trainer = SFTTrainer(
    model=model,

train_dataset=ds,
max_seq_length=250, dataset_text_field='conversation',
tokenizer=tokenizer, args=training_arguments
peft_config=lora_config,
)
trainer.train()
Llama 3 미세 조정(Fine-Tuning)

LoRA vs 일반 파인튜닝

 

  • TinyLlama/TinyLlama-1.1B-Chat-v1.0
  • 파라미터 11억 개
  • 샘플 1.1만 개
  • 약 30분

 

  • nvidia/Llama3-ChatQA-1.5-8B
  • 파라미터 80억 개
  • 샘플 1.1만 개
  • 약 30분
Llama 3 미세 조정(Fine-Tuning)

Passons à la pratique !

Llama 3 미세 조정(Fine-Tuning)

Preparing Video For Download...