All news

Multi-Token-Prediction landet in llama.cpp (Beta)

Mit PR #22673 wurde am 16. Mai 2026 MTP-Unterstützung in llama.cpp integriert. Ein Community-Benchmark mit Qwen 3.6-27B meldete einen Sprung der Decode-Geschwindigkeit von 38 auf 65 Tokens/s auf einer einzelnen RTX 5090 — ein 1,71×-Speedup.

Multi-Token-Prediction (MTP) wurde am 16. Mai mit PR #22673 von am17an in llama.cpp integriert. Das Feature befindet sich in der Beta-Phase — hinter --mtp auf llama-cli und llama-server, standardmäßig deaktiviert.

Ein Community-Benchmark, gepostet innerhalb des ersten Tages nach dem Merge, meldete: Qwen 3.6-27B dekodiert mit 65 Tokens/s auf einer einzelnen RTX 5090, gegenüber 38 Tokens/s ohne MTP — ein 1,71×-Speedup bei Q4_K_M ohne wahrnehmbaren Qualitätsverlust in Side-by-Side-Prompt-Vergleichen. Das ist bislang der einzige Datenpunkt; breitere Build-×-Modell-Abdeckung wird ein paar Refresh-Zyklen brauchen.

Was MTP tatsächlich ist

Das Modell wird mit zusätzlichen Output-Heads trainiert, die die nächsten 2, 3 oder 4 Tokens gleichzeitig aus demselben gemeinsam genutzten Backbone-Hidden-State vorhersagen. Der Haupt-Head läuft dann erneut, um die Kandidatensequenz zu verifizieren. Wenn die spekulativen Tokens übereinstimmen, bekommt man sie praktisch umsonst. Wenn nicht, fällt man für diesen Schritt auf Single-Token-Decoding zurück.

Das fasst zusammen, was Speculative Decoding traditionell tut — ein kleines Draft-Modell parallel zu einem großen Target-Modell zu betreiben — in einem einzigen Modell mit eingebauten Prediction-Heads. Der Overhead beträgt grob eine zusätzliche Transformer-Layer pro extra Prediction-Position, kein vollständiges zweites Netzwerk. Speicherkosten sind gering; Throughput-Kosten während fehlgeschlagener Verifizierungen sind der Hauptnachteil, aber bei für MTP trainierten Modellen ist die Hit-Rate hoch genug, dass das durchschnittliche Decoding spürbar schneller wird.

Was das vom Modell verlangt

MTP setzt Prediction-Heads voraus, die im Training eingebacken werden — die Runtime kann sie nicht nachträglich synthetisieren. Der zitierte Benchmark nutzte Qwen 3.6-27B bei Q4_K_M; das --mtp-Flag ist ein No-Op für jedes Modell, dessen Checkpoint die zusätzlichen Head-Gewichte nicht enthält, also schadet es nicht, das Flag standardmäßig aktiviert zu lassen.

Das Paper zu DeepSeek-V3 hat MTP als Trainingszeit-Hilfsobjective bekannt gemacht. Welche nach dem DeepSeek-V3-Paper veröffentlichten Open-Weights-Modelle die Heads in ihren öffentlichen Checkpoints tragen — und wie viele Positionen vorausschauend — werden wir beim nächsten Daten-Refresh pro Modell katalogisieren, mit Zitat der jeweiligen Model-Card statt architektonischer Gerüchte.

Vorbehalte

  • Beta heißt Beta. PR #22673 selbst weist darauf hin; rechne mit Ecken und Kanten und behalte den verlinkten llama.cpp-Issue-Tracker im Auge, bevor du dich in Produktion darauf verlässt.
  • Speedups skalieren mit dem, was Decode bottleneckt. Auf compute-reichen, bandbreiten-versorgten Rigs hat der spekulative Durchlauf Headroom; auf bandbreitenlimitierten Rigs schrumpft der Gewinn. Die 1,71× auf einer 5090 sind ein Punkt auf diesem Gradient — nimm nicht an, dass es universell gilt.

So aktivieren

Baue llama.cpp vom main-Branch nach dem 16. Mai und übergib --mtp an llama-server oder llama-cli. Upstream-Unterstützung in Ollama, LM Studio und Jan hinkt llama.cpp main typischerweise einen Release-Zyklus hinterher — prüfe die Release Notes der jeweiligen Runtime, in welchem Build die Unterstützung erstmals erscheint.

Quellen