Skip to content
BotServBotServ
OllamaFinetuningLoRAModell anpassenKI-Training

Ollama-Modelle feintunen

Modelle mit Ollama und LoRA-Techniken anpassen. Datenvorbereitung, Training, Adapter und Praxisbeispiele.

S

schutzgeist

3 min read
Ollama-Modelle feintunen

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.

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

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.

Zurück zum KI Blog
Share:

Ähnliche Beiträge