TorchTune로 파인튜닝하기

Llama 3 미세 조정(Fine-Tuning)

Francesca Donadoni

Curriculum Manager, DataCamp

TorchTune 파인튜닝 구성 요소

  • 모델

    • 파인튜닝할 아키텍처와 사전학습 가중치 정의
    • 버전과 파라미터 크기 선택 가능
  • 데이터셋

    • 학습에 사용할 데이터 지정
  • 레시피

    • 모델, 데이터셋, 학습 파라미터를 묶는 중앙 설정 파일
    • 일관성과 재현성 보장

iStock-2151073200.jpg

iStock-1281282682.jpg

iStock-2173849278.jpg

Llama 3 미세 조정(Fine-Tuning)

TorchTune 파인튜닝 구성 요소

  • 모델

    • !tune ls
      llama3/8B_full
      llama3_1/8B_full
      llama3_2/1B_full ...
      
  • 데이터셋

    • ds.save_to_disk("new_dataset")
  • 레시피

    • custom_recipe.yaml

iStock-2151073200.jpg

iStock-1281282682.jpg

iStock-2173849278.jpg

Llama 3 미세 조정(Fine-Tuning)

TorchTune 레시피의 구성 요소

  • 일반 설정 및 출력 디렉터리
    • 배치 크기, 디바이스, 에포크

 

  • 모델
    • 아키텍처와 모델 설정 지정

 

  • 옵티마이저

    • 학습률 포함
  • 데이터셋

    • 전처리와 경로 정의
batch_size: 4
device: cuda
epochs: 20
output_dir: /tmp/full-llama3.2-finetune

model:
  _component_: 
      torchtune.models.llama3_2.llama3_2_1b

optimizer:
  _component_: bitsandbytes.optim.PagedAdamW8bit
  lr: 2.0e-05

dataset:
  _component_: torchtune.datasets.alpaca_dataset
Llama 3 미세 조정(Fine-Tuning)

TorchTune 레시피 구성하기

  • 더 많은 매개변수 제공
  • yaml로 Python에서 구성 가능
import yaml

config_dict = {"batch_size": 4, "device": "cuda", "model": { "_component_": "torchtune.models.llama3_2.llama3_2_1b" }, ... }
yaml_file_path = "custom_recipe.yaml" with open(yaml_file_path, "w") as yaml_file: yaml.dump(config_dict, yaml_file)
Llama 3 미세 조정(Fine-Tuning)

커스텀 파인튜닝 실행하기

tune run --config custom_recipe.yaml
INFO:torchtune.utils.logging:Running 
Writing logs to /tmp/full-llama3.2-finetune/log_1732815689.txt
INFO:torchtune.utils.logging:Model is initialized with precision torch.bfloat16.
INFO:torchtune.utils.logging:Tokenizer is initialized from file.
1|52|Loss: 2.3697006702423096:   0%|▏                     | 52/25880
  • 로그 저장됨
  • 초기화 성공
  • 에포크/스텝 진행률
  • 손실 지표
Llama 3 미세 조정(Fine-Tuning)

연습해 봅시다!

Llama 3 미세 조정(Fine-Tuning)

Preparing Video For Download...