Modul 10 · Von Grund auf verstehen

Feintuning und lokaler Betrieb

Erst klären, wann sich Feintuning lohnt, dann LoRA von Hand schreiben, mit peft ein kleines Open-Source-Modell feintunen, Speicherbedarf abschätzen, Quantisierung von Hand schreiben, mit Ollama auf dem eigenen Rechner ausführen und zum Schluss verstehen, welches Problem Serving-Frameworks wie vLLM lösen.

Lektionen

  1. 01
    Wann man feintunen sollte und wann nicht

    Feintuning klingt nach dem richtigen Weg, damit ein Modell dein Geschäft „lernt“, ist aber oft nicht die erste Wahl. Diese Lektion vergleicht, was Prompts, RAG und Feintuning jeweils verändern und was sie kosten, und gibt eine Reihenfolge für die Entscheidung.

    25 Minuten · Fortgeschritten
  2. 02
    Das Prinzip von LoRA, von Hand geschrieben

    Muss man beim Feintuning eines großen Modells alle Milliarden Parameter neu trainieren? LoRA friert die ursprünglichen Parameter ein und fügt daneben nur zwei kleine Matrizen hinzu. LoRA von Hand am kleinen GPT aus Modul 09 umsetzen und mit nur 1,5 % trainierten Parametern seinen Stil ändern.

    45 Minuten · Vertiefung
  3. 03
    Ein kleines Open-Source-Modell mit LoRA feintunen

    Wechsel zu einem echten Open-Source-Modell – mit transformers und peft Qwen2.5-0.5B mit LoRA ausstatten, auf der CPU in gut zehn Sekunden seine Selbstvorstellung ändern und dann die Nebenwirkungen des Feintunings genau ansehen.

    45 Minuten · Vertiefung
  4. 04
    Modelle auf dem eigenen Rechner: Ollama und Quantisierung

    Open-Source-Modelle auf dem eigenen Rechner ausführen. Erst abschätzen, wie viel Speicher ein Modell belegt, dann Quantisierung von Hand schreiben und sehen, wie viel kleiner und wie viel schlechter die Gewichte bei 8, 4 und 2 Bit werden, und zum Schluss mit Ollama zum Laufen bringen.

    40 Minuten · Fortgeschritten
  5. 05
    Einen Modelldienst mit vLLM bereitstellen

    Bedient man viele Nutzer gleichzeitig, lautet die Frage, wie man mit derselben Grafikkarte möglichst viele Anfragen verarbeitet. Mit dem kleinen GPT die Wirkung gebündelter Verarbeitung messen, dann erklären, wie vLLM den KV-Cache verwaltet und wie man einen OpenAI-kompatiblen Dienst startet.

    35 Minuten · Vertiefung

Modul 09 hat ein kleines GPT von Grund auf trainiert. In der Praxis trainierst du kaum je ein großes Modell von Grund auf, sondern nimmst ein fertig trainiertes Open-Source-Modell: Du führst es direkt aus oder feintunest es. Dieses Modul behandelt beides.

Alle Experimente laufen auf der CPU eines Laptops. Feingetunt wird Qwen2.5-0.5B-Instruct mit nur 500 Millionen Parametern; das Training dauert gut zehn Sekunden. Größere Modelle brauchen eine Grafikkarte; die Lektionen zeigen, wie man den nötigen Grafikspeicher abschätzt.

Warum diese Reihenfolge

Lektion 1 gießt zuerst kaltes Wasser ins Glas: Meistens brauchst du kein Feintuning, Prompts und RAG passen besser. Brauchst du es wirklich, schreibt Lektion 2 LoRA von Hand am kleinen GPT aus Modul 09, um das Prinzip zu verstehen; Lektion 3 wechselt zu einem echten Open-Source-Modell, arbeitet mit transformers und peft und schaut sich die Nebenwirkungen des Feintunings genau an.

Die letzten beiden Lektionen behandeln den Betrieb. Lektion 4 zeigt zuerst, wie man den Speicherbedarf abschätzt, schreibt Quantisierung von Hand und führt dann mit Ollama ein Modell auf dem eigenen Rechner aus; Lektion 5 behandelt die Probleme, wenn viele Nutzer gleichzeitig bedient werden, und wie vLLM sie löst.

Der Code liegt in code/10-finetune-deploy/. Lektionen 2, 4 und 5 nutzen das in Modul 09 trainierte Modell; Modul 09 muss also vorher abgeschlossen sein.

Du bist fertig, wenn

  • du bei einer Anforderung beurteilen kannst, ob Prompt, RAG oder Feintuning passt, und das begründen kannst.
  • du eine LoRA-Schicht von Hand schreiben und erklären kannst, warum B mit 0 initialisiert wird und warum sich LoRA in die ursprünglichen Gewichte zurückführen lässt.
  • du mit peft ein Open-Source-Modell mit LoRA ausstatten und trainieren kannst, den Verlust nur auf dem Antwortteil berechnest und Wirkung und Nebenwirkungen mit unbekannten und gewöhnlichen Fragen prüfst.
  • du aus Parameterzahl und Genauigkeit abschätzen kannst, wie viel Speicher ein Modell belegt, und sagen kannst, wie man den KV-Cache berechnet.
  • du symmetrische und gruppenweise Quantisierung erklären und sagen kannst, was 8, 4 und 2 Bit ungefähr bewirken.
  • du mit Ollama ein lokales Modell ausführen und den Code aus Teil 1 mit ein paar geänderten Umgebungsvariablen darauf zugreifen lassen kannst.
  • du erklären kannst, warum ein Modelldienst Anfragen gebündelt verarbeitet, und welche Abwägung zwischen Durchsatz und Latenz besteht.

Code zu diesem Modul

Code und Programmausgaben stehen genau so da, wie sie gelaufen sind – Kommentare und Ausgaben sind daher auf Chinesisch.