LoRA-Fine-Tuning von Llama für den Kundensupport
Du sollst ein Sprachmodell feinabstimmen, das Kundenanfragen beantwortet.
Die Llama-Modelle sind für Question Answering ziemlich gut geeignet und sollten für diese Support-Aufgabe gut funktionieren. Leider hast du nicht genug Rechenkapazität für reguläres Fine-Tuning und musst LoRA-Techniken mit dem Datensatz bitext verwenden.
Du möchtest Maykeye/TinyLLama-v0 trainieren. Das Trainingsskript ist fast fertig, und der Trainingscode ist bereits vorhanden – mit Ausnahme der LoRA-Konfigurationsparameter.
Das relevante Modell, der Tokenizer, der Datensatz und die Trainingsargumente wurden bereits als model, tokenizer, dataset und training_arguments für dich geladen.
Diese Übung ist Teil des Kurses
Feinabstimmung mit Llama 3
Anleitung zur Übung
- Füge das Argument hinzu, um deine LoRA-Adapter auf Rang 2 zu setzen.
- Setze den Skalierungsfaktor so, dass er doppelt so groß wie dein Rang ist.
- Lege in deiner LoRA-Konfiguration den Task-Typ fest, der bei Llama-Modellen verwendet wird.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
from peft import LoraConfig, get_peft_model
peft_config = LoraConfig(
# Set rank parameter
____=____,
# Set scaling factor
____=____,
# Set the type of task
____=____,
lora_dropout=0.05,
bias="none",
target_modules=['q_proj', 'v_proj']
)
trainer = SFTTrainer(
model=model,
train_dataset=dataset,
max_seq_length=250,
dataset_text_field='conversation',
tokenizer=tokenizer,
args=training_arguments,
peft_config=peft_config,
)
trainer.train()