Ollama-Modelle feintunen
Was dieser Artikel über Ollama-Feintuning behandelt
- Was Feintuning ist und wann es sinnvoll ist.
- Wie LoRA und QLoRA funktionieren.
- Wie Trainingsdaten aufbereitet werden.
- Wie ein Adapter erstellt und in Ollama genutzt wird.
- Tipps, Tools und typische Stolpersteine.
Einleitung: Ollama-Modelle feintunen
Fertige Modelle decken viele Aufgaben ab, aber für spezielle Domänen, spezifische Sprache oder firmeneigene Daten reicht deren Wissen oft nicht aus. Feintuning passt ein Basismodell auf einen bestimmten Zweck an. Mit Ollama kann man solche angepassten Modelle lokal betreiben, indem man sie mit LoRA-Adaptern ergänzt. So bleiben Daten privat und das Modell lässt sich gezielt steuern.
Dieser Artikel zeigt die Grundlagen des Feintunings, die Vorbereitung der Daten und die Integration in Ollama.
Wichtige Begriffe
- Feintuning: Nachtrainieren eines bereits trainierten Modells.
- LoRA: Low-Rank Adaptation, effizientes Anpassen mit wenig Speicher.
- QLoRA: Quantisierte LoRA, noch speicherschonender.
- Adapter: Zusätzliche Gewichte, die ein Basismodell ergänzen.
- Trainingsdaten: Eingabe-Ausgabe-Paare für das Lernen.
- Evaluationsdaten: Daten zum Testen des trainierten Modells.
- Overfitting: Modell lernt Trainingsdaten auswendig, anstatt zu generalisieren.
Wann Feintuning sinnvoll ist
- Spezifische Begriffe oder Sprache werden benötigt.
- Eigenes Wissen sollte in Antworten berücksichtigt werden.
- Bestimmtes Antwortformat oder Tonfall ist gefragt.
- Einfache Prompt-Engineering reicht nicht mehr aus.
- RAG ergänzt, aber Modell soll tiefere Fähigkeiten entwickeln.
Wenig Daten oder wenig Rechenleistung? Dann ist RAG oft der bessere erste Schritt.
LoRA und QLoRA
LoRA ergänzt das Basismodell mit kleinen, trainierbaren Matrizen. Das originale Modell bleibt unverändert. Vorteile:
- Weniger VRAM nötig.
- Schnelleres Training.
- Adapter können ausgetauscht werden.
- Mehrere Adapter kombinierbar.
QLoRA geht einen Schritt weiter und quantisiert das Basismodell während des Trainings. Das ermöglicht Feintuning auf Consumer-GPUs.
Trainingsdaten vorbereiten
Daten sollten im rorgrechten Format vorliegen. Ein gängiges Format für Chat-Modelle:
{
"messages": [
{"role": "system", "content": "Du bist ein Support-Assistent."},
{"role": "user", "content": "Wie setze ich mein Passwort zurück?"},
{"role": "assistant", "content": "Gehe zu Einstellungen und wähle \"Passwort ändern\"."}
]
}
- Daten qualitativ hochwertig und einheitlich.
- Mindestens einige hundert Beispiele, besser mehr.
- Für spezifische Antworten systematische System-Prompts verwenden.
- Datenschutz beachten, keine sensiblen Daten ungeschützt nutzen.
Training mit axolotl oder unsloth
Tools wie axolotl oder unsloth vereinfachen das Feintuning.
Beispiel mit unsloth
from unsloth import FastLanguageModel
import torch
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="unsloth/llama-3-8b-bnb-4bit",
max_seq_length=2048,
load_in_4bit=True,
)
model = FastLanguageModel.get_peft_model(
model,
r=16,
lora_alpha=16,
target_modules=["q_proj", "v_proj"],
lora_dropout=0,
bias="none",
)
Nach dem Training wird der Adapter gespeichert.
Adapter zu GGUF konvertieren
Nach dem Training muss der Adapter oft zu einem GGUF-Format konvertiert werden, damit Ollama ihn nutzen kann:
python convert-lora-to-gguf.py \
--base-model llama-3-8b \
--lora adapter \
--output mein-adapter.gguf
Alternativ speichert man das fusionierte Modell direkt als GGUF.
Modell in Ollama nutzen
Mit einem Modelfile wird der Adapter eingebunden:
FROM llama3.1
ADAPTER ./mein-adapter.bin
SYSTEM """
Du bist ein spezialisierter Assistent für interne Supportfragen.
"""
Erstellen:
ollama create support-assistent -f Modelfile
ollama run support-assistent
Tipps
- Mit kleinem Datensatz beginnen und iterieren.
- Lernrate und Batchgröße schrittweise anpassen.
- Validation-Loss beobachten, um Overfitting zu erkennen.
- Adapter gegen unbekannte Fragen testen.
- Kombination aus Feintuning und RAG prüfen.
Typische Stolpersteine
- Zu wenig Daten: Modell wird nicht stabil.
- Overfitting: Training zu lange oder zu spezifisch.
- Falsches Format: Ollama erwartet passende Modelfile-Syntax.
- VRAM reicht nicht: QLoRA oder kleinere Modelle wählen.
- Adapter nicht kompatibel: Basis-Modell muss passen.
- Datenlecks: Trainingsdaten enthalten sensible Informationen.
Alternativen zu Feintuning
Bevor man feintunt, sollte man prüfen:
- Prompt Engineering: Besser formulierte Prompts.
- RAG: Externes Wissen in den Kontext einfügen.
- Modellwahl: Grösseres Modell testen.
- Modelfile: System-Prompt und Parameter anpassen.
Weiterführende Links und Infos
- BotServ.de Ollama Modelfiles
- BotServ.de Ollama Modell-Lebenszyklus
- BotServ.de RAG Wissensdatenbank
- BotServ.de Ollama Performance
FAQ: Ollama-Modelle feintunen
Brauche ich viel GPU-Power für Feintuning? QLoRA ermöglicht Training auf Consumer-GPUs mit 8 bis 16 GB VRAM.
Kann ich mehrere LoRA-Adapter kombinieren? Ja, in der Regel nacheinander oder durch Mergen.
Reichen 100 Trainingsbeispiele? Oft zu wenig. Mehrere hundert bis tausend qualitativ hochwertige Beispiele sind besser.
Ist Feintuning datenschutzkonform? Wenn alles lokal läuft, bleiben Daten im eigenen Netzwerk.
Wie teste ich den Erfolg? Mit einem separaten Validierungsdatensatz und blinden Testfragen.
Quellen und weiterführende Literatur
- Unsloth: https://github.com/unslothai/unsloth
- Axolotl: https://github.com/OpenAccess-AI-Collective/axolotl
- LoRA Paper: https://arxiv.org/abs/2106.09685
- QLoRA Paper: https://arxiv.org/abs/2305.14314
Zusammenfassung: Ollama-Modelle feintunen
Feintuning ermöglicht es, Ollama-Modelle auf spezifische Aufgaben und Datensätze zuzuschneiden. LoRA und QLoRA machen das Training auch auf Consumer-Hardware möglich. Wichtig sind hochwertige Trainingsdaten, passende Tools, sorgfältige Evaluierung und die korrekte Integration in Ollama über ein Modelfile. Vor dem Feintuning sollte man Prompt Engineering und RAG prüfen, da diese oft schneller und kostengünstiger zum Ziel führen.


