Fine Tuning
Basierend auf den Fähigkeiten von DevPod bieten wir Images an, die speziell für das Fine-Tuning von Modellen entwickelt wurden, damit Benutzer bequem ihre eigenen Modelle optimieren können.
Der Prozess zum Erstellen eines Fine-Tuning-Jobs ist im Wesentlichen derselbe wie bei DevPod. Sie können auf den Erstellungsprozess von DevPod verweisen. Hier sind einige Unterschiede:
- Sie müssen das Basismodell für das Fine-Tuning auf der Erstellungsseite eingeben, zum Beispiel: Qwen/Qwen3-8B.
- Wenn das Modell ein Zugriffstoken erfordert, müssen Sie auch das Hugging Face-Token ausfüllen (optional).
- Geben Sie Ihre gewählte Dataset-Kennung im Dataset-Feld ein, zum Beispiel: tatsu-lab/alpaca.

Nachdem Sie die Konfiguration der Task-Ressourcen ausgewählt haben, stellen Sie den Pod bereit und warten Sie, bis der Task-Status auf "running" wechselt. Klicken Sie auf Connect und wählen Sie Ihre bevorzugte Verbindungsmethode:
- Jupyter Notebook: Browser-basierte Notebook-Schnittstelle (empfohlen).
- Web Terminal: Browser-basiertes Terminal.
- SSH: Lokale Maschinen-Terminal-Verbindung.
Hinweis:
Um SSH zu verwenden, fügen Sie Ihren öffentlichen SSH-Schlüssel in Ihren Kontoeinstellungen hinzu. Das System fügt Ihren Schlüssel automatisch zur authorized_keys-Datei des Pods hinzu.
Derzeit haben wir sorgfältig zwei Tool-Images vorbereitet, die auf Axolotl bzw. Torchtune basieren und darauf abzielen, Benutzern die Optimierung von Modellen zu erleichtern. Als Nächstes werden wir die Nutzungsprozesse dieser beiden Images im Detail vorstellen.
Basierend auf Axolotl
Konfigurieren Sie Ihre Umgebung
Öffnen Sie das Jupyter Notebook im Browser. Sie können sehen, dass es drei Dateien im Arbeitsverzeichnis gibt:
- examples/: Beispielkonfigurationen und Skripte
- outputs/: Trainingsergebnisse und Modellausgaben
- config.yaml: Trainingsparameter für Ihr Modell Das System generiert eine initiale config.yaml basierend auf Ihrem ausgewählten Basismodell und Dataset.

Überprüfen und ändern Sie die Konfiguration
Überprüfen und passen Sie die Parameter basierend auf Ihrem spezifischen Anwendungsfall an. Hier ist eine Beispielkonfiguration mit gängigen Parametern:
base_model: Qwen/Qwen3-32B
# Automatically upload checkpoint and final model to HF
# hub_model_id: username/custom_model_name
plugins:
- axolotl.integrations.cut_cross_entropy.CutCrossEntropyPlugin
strict: false
chat_template: qwen3
datasets:
- path: mlabonne/FineTome-100k
type: chat_template
split: train[:20%]
field_messages: conversations
message_property_mappings:
role: from
content: value
val_set_size: 0.0
output_dir: ./outputs/out
dataset_prepared_path: last_run_prepared
sequence_len: 2048
sample_packing: true
eval_sample_packing: true
pad_to_sequence_len: true
load_in_4bit: true
adapter: qlora
lora_r: 16
lora_alpha: 32
lora_target_modules:
- q_proj
- k_proj
- v_proj
- o_proj
- down_proj
- up_proj
lora_mlp_kernel: true
lora_qkv_kernel: true
lora_o_kernel: true
wandb_project:
wandb_entity:
wandb_watch:
wandb_name:
wandb_log_model:
gradient_accumulation_steps: 2
micro_batch_size: 1
num_epochs: 1
optimizer: adamw_torch_4bit
lr_scheduler: cosine
learning_rate: 0.0002
bf16: auto
tf32: true
gradient_checkpointing: offload
gradient_checkpointing_kwargs:
use_reentrant: false
resume_from_checkpoint:
logging_steps: 1
flash_attention: true
warmup_steps: 10
evals_per_epoch: 4
saves_per_epoch: 1
weight_decay: 0.0
special_tokens:Für weitere Konfigurationsbeispiele besuchen Sie das Axolotl-Beispiel-Repository.
Starten Sie den Fine-Tuning-Prozess
Sobald Ihre Konfiguration fertig ist, folgen Sie diesen Schritten:
- Starten Sie den Trainingsprozess:
axolotl train config.yaml- Überwachen Sie den Trainingsfortschritt in Ihrem Terminal.
Basierend auf Torchtune
Konfigurieren Sie Ihre Umgebung
Öffnen Sie das Jupyter Notebook im Browser. Sie können tune ls verwenden, um die vollständige Sammlung von Fine-Tuning-Rezepten aufzulisten, die von torchtune unterstützt werden.
RECIPE CONFIG
full_finetune_single_device llama2/7B_full_low_memory
code_llama2/7B_full_low_memory
llama3/8B_full_single_device
llama3_1/8B_full_single_device
llama3_2/1B_full_single_device
llama3_2/3B_full_single_device
mistral/7B_full_low_memory
phi3/mini_full_low_memory
phi4/14B_full_low_memory
qwen2/7B_full_single_device
qwen2/0.5B_full_single_device
qwen2/1.5B_full_single_device
qwen2_5/0.5B_full_single_device
qwen2_5/1.5B_full_single_device
qwen2_5/3B_full_single_device
qwen2_5/7B_full_single_device
llama3_2_vision/11B_full_single_device
full_finetune_distributed llama2/7B_full
llama2/13B_full
llama3/8B_full
llama3_1/8B_full
llama3_2/1B_full
llama3_2/3B_full
llama3/70B_full
llama3_1/70B_full
llama3_3/70B_full
llama3_3/70B_full_multinode
mistral/7B_full
gemma/2B_full
gemma/7B_full
gemma2/2B_full
gemma2/9B_full
gemma2/27B_full
phi3/mini_full
phi4/14B_full
qwen2/7B_full
qwen2/0.5B_full
qwen2/1.5B_full
qwen2_5/0.5B_full
qwen2_5/1.5B_full
qwen2_5/3B_full
qwen2_5/7B_full
llama3_2_vision/11B_full
llama3_2_vision/90B_full
lora_finetune_single_device llama2/7B_lora_single_device
llama2/7B_qlora_single_device
code_llama2/7B_lora_single_device
code_llama2/7B_qlora_single_device
llama3/8B_lora_single_device
llama3_1/8B_lora_single_device
llama3/8B_qlora_single_device
llama3_2/1B_lora_single_device
llama3_2/3B_lora_single_device
llama3/8B_dora_single_device
llama3/8B_qdora_single_device
llama3_1/8B_qlora_single_device
llama3_2/1B_qlora_single_device
llama3_2/3B_qlora_single_device
llama2/13B_qlora_single_device
mistral/7B_lora_single_device
mistral/7B_qlora_single_device
gemma/2B_lora_single_device
gemma/2B_qlora_single_device
gemma/7B_lora_single_device
gemma/7B_qlora_single_device
gemma2/2B_lora_single_device
gemma2/2B_qlora_single_device
gemma2/9B_lora_single_device
gemma2/9B_qlora_single_device
gemma2/27B_lora_single_device
gemma2/27B_qlora_single_device
phi3/mini_lora_single_device
phi3/mini_qlora_single_device
phi4/14B_lora_single_device
phi4/14B_qlora_single_device
qwen2/7B_lora_single_device
qwen2/0.5B_lora_single_device
qwen2/1.5B_lora_single_device
qwen2_5/0.5B_lora_single_device
qwen2_5/1.5B_lora_single_device
qwen2_5/3B_lora_single_device
qwen2_5/7B_lora_single_device
qwen2_5/14B_lora_single_device
llama3_2_vision/11B_lora_single_device
llama3_2_vision/11B_qlora_single_device
lora_dpo_single_device llama2/7B_lora_dpo_single_device
llama3_1/8B_lora_dpo_single_device
lora_dpo_distributed llama2/7B_lora_dpo
llama3_1/8B_lora_dpo
full_dpo_distributed llama3_1/8B_full_dpo
ppo_full_finetune_single_device mistral/7B_full_ppo_low_memory
lora_finetune_distributed llama2/7B_lora
llama2/13B_lora
llama2/70B_lora
llama2/7B_qlora
llama2/70B_qlora
llama3/8B_dora
llama3/70B_lora
llama3_1/70B_lora
llama3_3/70B_lora
llama3_3/70B_qlora
llama3/8B_lora
llama3_1/8B_lora
llama3_2/1B_lora
llama3_2/3B_lora
llama3_1/405B_qlora
mistral/7B_lora
gemma/2B_lora
gemma/7B_lora
gemma2/2B_lora
gemma2/9B_lora
gemma2/27B_lora
phi3/mini_lora
phi4/14B_lora
qwen2/7B_lora
qwen2/0.5B_lora
qwen2/1.5B_lora
qwen2_5/0.5B_lora
qwen2_5/1.5B_lora
qwen2_5/3B_lora
qwen2_5/7B_lora
qwen2_5/32B_lora
qwen2_5/72B_lora
llama3_2_vision/11B_lora
llama3_2_vision/11B_qlora
llama3_2_vision/90B_lora
llama3_2_vision/90B_qlora
dev/lora_finetune_distributed_multi_dataset dev/11B_lora_multi_dataset
generate generation
dev/generate_v2 llama2/generation_v2
llama3_2_vision/11B_generation_v2
dev/generate_v2_distributed llama3/70B_generation_distributed
llama3_1/70B_generation_distributed
llama3_3/70B_generation_distributed
dev/early_exit_finetune_distributed llama2/7B_full_early_exit
eleuther_eval eleuther_evaluation
llama3_2_vision/11B_evaluation
qwen2/evaluation
qwen2_5/evaluation
gemma/evaluation
phi4/evaluation
phi3/evaluation
mistral/evaluation
llama3_2/evaluation
code_llama2/evaluation
quantize quantization
qat_distributed llama2/7B_qat_full
llama3/8B_qat_full
qat_lora_finetune_distributed llama3/8B_qat_lora
llama3_1/8B_qat_lora
llama3_2/1B_qat_lora
llama3_2/3B_qat_lora
knowledge_distillation_single_device qwen2/1.5_to_0.5B_KD_lora_single_device
llama3_2/8B_to_1B_KD_lora_single_device
knowledge_distillation_distributed qwen2/1.5_to_0.5B_KD_lora_distributed
llama3_2/8B_to_1B_KD_lora_distributedÜberprüfen und ändern Sie die Konfiguration
- Kopieren Sie die Konfigurationsdatei auf das lokale Gerät. zum Beispiel:
tune cp qwen2_5/3B_lora_single_device config.yaml- Ändern, überprüfen und passen Sie die Parameter basierend auf Ihrem spezifischen Anwendungsfall an.
Starten Sie den Fine-Tuning-Prozess
Sobald Ihre Konfiguration fertig ist, folgen Sie diesen Schritten:
- Starten Sie den Trainingsprozess:
tune run lora_finetune_single_device --config config.yaml- Überwachen Sie den Trainingsfortschritt in Ihrem Terminal.
Verwandte Dokumente
Weitere Informationen zum Fine-Tuning mit Axolotl finden Sie unter:
Weitere Informationen zum Fine-Tuning mit Torchtune finden Sie unter:
Weitere Informationen zu freieren und flexibleren Fine-Tuning-Kursen finden Sie unter: