Feinabstimmung mit TorchTune

Feinabstimmung mit Llama 3

Francesca Donadoni

Curriculum Manager, DataCamp

Bestandteile des TorchTune-Fine-Tunings

  • Modell

    • Definiert Architektur und Pretrained-Gewichte zum Fine-Tunen
    • Verschiedene Versionen und Parametergrößen verfügbar
  • Datensatz

    • Gibt die Trainingsdaten an
  • Rezept

    • Zentrale Konfig, kombiniert Modell, Datensatz und Train-Parameter
    • Sichert Konsistenz und Reproduzierbarkeit

Symbolbild Modell

Symbolbild Datensatz

Symbolbild Rezept

Feinabstimmung mit Llama 3

Bestandteile des TorchTune-Fine-Tunings

  • Modell

    • !tune ls
      llama3/8B_full
      llama3_1/8B_full
      llama3_2/1B_full ...
      
  • Datensatz

    • ds.save_to_disk("new_dataset")
  • Rezept

    • custom_recipe.yaml

Symbolbild Modell

Symbolbild Datensatz

Symbolbild Rezept

Feinabstimmung mit Llama 3

Bestandteile eines TorchTune-Rezepts

  • Allgemeine Einstellungen & Ausgabepfad
    • Batchgröße, Gerät, Epochen

 

  • Modell
    • Definiert Architektur und Modell-Config

 

  • Optimizer

    • Enthält Lernrate
  • Datensatz

    • Definiert Preprocessing und Datensatzpfad
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
Feinabstimmung mit Llama 3

TorchTune-Rezepte konfigurieren

  • Mehr Parameter verfügbar
  • In Python mit yaml konfigurierbar
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)
Feinabstimmung mit Llama 3

Eigenes Fine-Tuning ausführen

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
  • Logs gespeichert
  • Erfolgreiche Initialisierung
  • Fortschritt: Epochen und Schritte
  • Loss-Metriken
Feinabstimmung mit Llama 3

Lass uns üben!

Feinabstimmung mit Llama 3

Preparing Video For Download...