Liquid AI veröffentlichte LFM2.5-24B-A2B am 13. Oktober 2026, mit herunterladbaren Basis- und nachtrainierten Gewichten. Das Modell übernimmt die hybride Faltungs-/Attention-Architektur und die sparsamen Feed-forward-Netze seines Vorgängers; neu sind ein größeres Vokabular, längerer Kontext und ein überarbeitetes Training. Dieser Artikel erklärt den veröffentlichten Checkpoint zur Textgenerierung, ohne die übernommene Architektur als neue Erfindung darzustellen.1
Zwei voneinander unabhängige Einsparungen sind relevant: In jeder MoE-Schicht laufen pro Token vier von 64 Experten, und nur zehn von 40 Schichten halten einen wachsenden Attention-Cache. Keine der beiden Einsparungen macht das vollständige Modell zu einer Speicherbelegung von zwei Milliarden Parametern. Alle folgenden Speicherwerte sind Berechnungen, keine Messungen aus einem GPU-Lauf.
Der genaue Checkpoint
Tabellen und Formeln verwenden die internationale Zahlenschreibweise: Komma für Tausendergruppen, Punkt für Dezimalstellen.
Die Prüfung verwendet Modellrevision 1769516ac588c4c558089c94f27d96b0dc67b183 und Transformers-Code auf Revision 28034545c35acac05793695bd5c878f66e6b544e, geprüft am 14. Oktober 2026. Letztere dient als Code-Referenz; daraus folgt nicht, dass Liquid diesen Commit für seine Benchmarks verwendet hat. Der Checkpoint nennt Lfm2MoeForCausalLM; seine Konfiguration vermerkt Transformers 5.12.1.23
| Konfiguration | Wert |
|---|---|
| Hidden-Breite / Schichten | 2,048 / 40 |
| Token-Mixer | 30 kurze Faltungen, 10 vollständige Attention |
| Attention-Schichtindizes, ab null | 2, 6, 10, 14, 18, 22, 26, 30, 34, 38 |
| Dichte Feed-forward-Schichten | 0, 1 |
| MoE-Schichten / Experten / ausgewählte Experten | 38 / 64 / 4 |
| Zwischenbreite dicht / pro Experte | 11,776 / 1,536 |
| Query-Heads / KV-Heads / Head-Breite | 32 / 8 / 64 |
| Faltungskernel / normale Zustandsbreite | 3 / 3 Tokens |
| Vokabular / maximale Positionen | 128,000 / 131,072 |
| RoPE | default, theta = 10,000,000 |
| Embedding-/Ausgabegewichte | geteilt |
Diese Werte stammen aus der Konfiguration, mit zwei Ausnahmen: Die Head-Breite folgt aus 2,048 / 32, die Zustandsbreite bestätigt die Cache-Implementierung. Die ersten beiden Schichten sind dicht und verwenden Faltungen. Die Wahl des Token-Mixers und die Wahl des Feed-forward-Netzes sind unabhängige Entscheidungen.24
Bei Batch-Größe und Sequenzlänge behält ein Block die Form bei. Er wendet vor dem Mixer RMS-Normalisierung an und addiert eine Residualverbindung. Anschließend folgen eine weitere RMS-Normalisierung, das dichte oder sparse Feed-forward-Netz und eine zweite Residualverbindung.3
Der Router verwendet zwei verschiedene Scores
Die normalisierten Hidden States werden zu mit zusammengefasst. Eine Router-Matrix erzeugt 64 Logits pro Token. Die Implementierung wendet auf jeden davon separat Sigmoid an. Bei use_expert_bias=true beeinflusst ein gespeicherter Bias mit 64 Elementen die Top-4-Auswahl, wird aber nicht in die Mischgewichte übernommen.3
Der Checkpoint aktiviert diese Normalisierung und setzt den Routing-Skalierungsfaktor auf 1. Bei exakter Arithmetik summieren sich die Gewichte wegen des Epsilon auf etwas weniger als eins; endliche Genauigkeit kann diesen Unterschied wegrunden. Jeder ausgewählte Experte berechnet ein gegatetes SiLU-MLP mit drei Matrizen und insgesamt Gewichten. Zur Laufzeit können die beiden Eingangsmatrizen zusammengefasst werden; ihre Funktion bleibt dabei gleich.23
Das folgende Beispiel zeigt ein Token mit fünf Kandidaten; die übrigen 59 Experten haben niedrigere Auswahlscores. Die Zahlen sind synthetisch und keine Messungen des Checkpoints.
| Experte | Sigmoid-Score | Bias | Auswahlscore | Ausgewählt? | Mischgewicht, näherungsweise |
|---|---|---|---|---|---|
| A | 0.80 | 0 | 0.80 | ja | 0.32 |
| B | 0.70 | 0 | 0.70 | ja | 0.28 |
| C | 0.60 | 0 | 0.60 | ja | 0.24 |
| D | 0.50 | 0 | 0.50 | nein | 0 |
| E | 0.40 | 0.20 | 0.60 | ja | 0.16 |
E verdrängt D, trägt aber mit 0,40 statt mit dem durch Bias erhöhten Wert 0,60 bei. Wer die Auswahlscores als Mischgewichte verwendet, implementiert ein anderes Modell. Gleiches gilt für einen Austausch von Sigmoid durch Softmax: Ohne Bias erhalten beide zwar die Reihenfolge der Logits, liefern aber unterschiedliche Verhältnisse der normalisierten Gewichte. Ein nach der Aktivierung addierter Bias kann außerdem die ausgewählte Menge verändern.
Der Inferenzcode liest den gespeicherten Bias; er passt ihn nicht an den aktuellen Serving-Batch an. Die Trennung von Auswahl und Beitrag erlaubt Auswahlpräferenzen, ohne die Ausgabekoeffizienten direkt zu erhöhen. Daraus folgt keine gleichmäßige Expertenauslastung im Betrieb, und auch die Trainingsregel zur Bias-Anpassung ist damit nicht belegt. Verschiedene Tokens eines Batches können zusammen viele oder alle Experten aktivieren. Dispatch, Umgruppierung der Tokens und ungleiche Expertenlast bleiben relevant; siehe Expert Parallelism.
Eine kurze Faltung ist ein lokaler Mixer, kein Embedding-Lookup
Der Faltungspfad projiziert einen normalisierten Hidden-Vektor in drei Streams der Breite 2,048, im Code B, C und x genannt. Damit der Stream-Name nicht mit der Batch-Größe verwechselt wird, heißen sie hier . Zuerst wird gebildet, dann eine kanalweise kausale Faltung der Breite drei ausgeführt. Das Ergebnis wird mit multipliziert und auf Breite 2,048 zurückprojiziert.3
Die Gleichung indiziert Kernel-Koeffizienten nach zeitlichem Abstand; im Tensor können sie in umgekehrter Reihenfolge liegen. Die Streams sind direkte lineare Projektionen, ohne Sigmoid auf diesen multiplikativen Gates. „Double-gated“ bezeichnet die Multiplikationen vor und nach der Faltung. Der kanalweise Kernel mischt keine Kanäle miteinander; dafür sorgen die umgebenden dichten Projektionen. Hier gibt es weder gehashte Engram-Lookups noch eine eingabeunabhängige Speichertabelle.
Das unmittelbare rezeptive Feld umfasst drei Positionen. Gestapelte Schichten erweitern es, und die eingestreuten Attention-Schichten greifen auf die gesamte vorherige Sequenz zu. Eine Faltungsschicht allein kann nicht beliebige frühere Tokens abrufen, nur weil das Modell 131,072 Positionen akzeptiert. Beim normalen Decode mit Cache speichert die Implementierung drei aktuelle -Vektoren pro Faltungsschicht. Mathematisch benötigt der nächste Ausgabewert zwei vorherige Positionen; die Laufzeitimplementierung reserviert aber einen Zustand mit drei Positionen. Für Rollbacks kann zusätzliche Historie aufgezeichnet werden.4
Zehn Schichten behalten vollständige Attention
Jede Attention-Schicht projiziert , und . Je vier Query-Heads teilen sich einen KV-Head. Queries und Keys erhalten pro Head RMS-Normalisierung und anschließend RoPE; Values nicht. Konfiguriert ist die Standard-RoPE-Formel mit Theta , kein YaRN. Der kausale Attention-Skalierungsfaktor beträgt .23
ist die kausale Maske. Der Ausdruck beschreibt die logische Operation; ein fusionierter Kernel muss die -Score-Matrix nicht materialisieren. Vollständige Attention behält quadratische Prefill-Arithmetik und beim Decode einen Lesezugriff, der mit der Cache-Länge wächst. Der Ersatz von 30 Attention-Schichten reduziert diese Kosten, beseitigt sie aber nicht.
Für BF16-Keys und -Values benötigt eine Sequenz mit gecachten Tokens die folgende logische Nutzlast, ohne Allokations-Padding, Aktivierungen und Workspaces:2
| Gecachte Tokens, eine Sequenz | LFM2.5-KV-Nutzlast | Hypothetische GQA-Nutzlast mit 40 Schichten |
|---|---|---|
| 8,192 | 0.15625 GiB | 0.625 GiB |
| 32,768 | 0.625 GiB | 2.5 GiB |
| 131,072 | 2.5 GiB | 10 GiB |
Der hypothetische Vergleich behält Head-Geometrie und Datentyp bei und gibt jeder Schicht vollständige Attention. Er vergleicht keine Modellqualität mit einem anderen veröffentlichten Modell. Der normale Faltungszustand ergänzt Bytes, also 360 KiB pro Sequenz, unabhängig von der Kontextlänge. Bei unabhängigen gleichzeitigen Sequenzen werden die Nutzlasten multipliziert; geteilte Präfixe und das Laufzeitlayout müssen separat berücksichtigt werden. Der KV-Cache-Guide erklärt diesen Unterschied.
Aktive Gewichte bestimmen nicht den residenten Speicher
Der Gewichtsindex meldet 23 971 585 280 Parameter und 47 943 180 288 Tensor-Bytes, ungefähr 44,65 GiB. Das ist serialisierte Tensor-Nutzlast, keine maximale Gerätespeicherbelegung. Sparse Ausführung überspringt Berechnungen nicht ausgewählter Experten; sie entfernt deren Gewichte nicht aus einer vollständig residenten Bereitstellung.5
Über 38 MoE-Schichten entfallen ungefähr 22,951 Milliarden Parameter auf Expertengewichte. Werden in dieser Zählung alle 64 Experten durch vier ausgewählte ersetzt, ergeben sich ungefähr 2,455 Milliarden aktive Parameter, passend zur Angabe 2.45B in der Model Card. Diese Zählung berücksichtigt alle übrigen Gewichte einschließlich der geteilten Vokabularmatrix, obwohl das Eingabe-Embedding nur einzelne Zeilen abruft. Sie ist keine exakte Schätzung von FLOPs oder Speicherverkehr.56
Allein die geteilte Vokabularmatrix enthält Gewichte: 500 MiB bei BF16. Das Teilen vermeidet eine zweite Matrixallokation; die Ausgabeprojektion bewertet trotzdem 128,000 Vokabulareinträge. Vollständige BF16-Tensor-Nutzlast plus ein BF16-KV-Cache mit maximaler Länge ergeben bereits ungefähr 47,15 GiB, bevor weitere Allokationen hinzukommen. Quantisierung oder Offload verändern das Budget und bringen eigene Genauigkeits-, Bandbreiten- und Laufzeitgrenzen mit; siehe Quantisierung.
Wird eine Multiplikation mit anschließender Addition als zwei FLOPs gezählt, kosten die Matrixprodukte der ausgewählten Experten ungefähr GFLOPs pro Token. Die Berechnung aller 64 Experten wäre für diesen Anteil 16-mal so teuer. Das erklärt die arithmetische Einsparung bei einem größeren Vorrat trainierter Expertenfunktionen. Es belegt weder eine 16-fache Gesamtbeschleunigung noch einen Qualitätsvorteil gegenüber einem dichten Modell. Attention, gemeinsame Projektionen, Vokabular-Head, Dispatch und Speicherverkehr fehlen in dieser Schätzung.
Was im Betrieb geprüft werden muss
Die untersuchte Transformers-Implementierung trennt die Attention-Backend-Auswahl, die Prefill-Faltung und Updates des Faltungszustands für einzelne Decode-Tokens. Sie enthält PyTorch-Fallbacks für die Faltung und Hooks zum Austausch durch optimierte Kernel. Der Standardpfad für Experten gruppiert Tokens nach Experte und summiert gewichtete Ausgaben. Ein konfigurierter Modellname verrät nicht, welche optimierten Kernel tatsächlich ausgeführt wurden.3
Liquids veröffentlichter GPU-Test verwendete eine B300, SGLang 0.5.22, BF16, 1,024 Eingabetokens und bis zu 256 Ausgabetokens. Bei fester Parallelität wurden abgeschlossene Requests kontinuierlich ersetzt. Der gemeldete Gesamtdurchsatz ist weder die Decode-Geschwindigkeit eines einzelnen Requests noch ein Test mit 131k Kontext oder eine isolierte Messung des Router-Vorteils. Hier wurde kein solcher Benchmark reproduziert.1
Gewichte, Tokenizer und Laufzeitversion sollten festgelegt werden; ebenso sind das Chat-Template und die tatsächlich verwendeten Faltungs-, Experten- und Attention-Kernel zu prüfen. Prompt-Latenz, Decode-Latenz pro Request, Gesamtdurchsatz und Aufgabengenauigkeit müssen bei der vorgesehenen Kontextlänge und Parallelität gemessen werden. Das nachtrainierte Modell verwendet ausschließlich den Reasoning-Modus und kann zusätzliche Thinking-Tokens erzeugen. Die Zeit bis zu einer brauchbaren Antwort hängt daher auch von der Ausgabelänge ab. Die Model Card führt DSpark für spekulatives Decoding als angekündigt auf, nicht als bereits veröffentlichten Geschwindigkeitsgewinn.6
Die Grenze von 131,072 Positionen gilt für Eingabe und generierte Tokens zusammen, einschließlich der Thinking-Tokens. Eine konfigurierte Kontextgrenze allein belegt noch keinen zuverlässigen Abruf oder eine ausreichende Aufgabengenauigkeit bei dieser Länge.
Die Gewichte verwenden die LFM Open License v1.0 mit einer Umsatzschwelle für kommerzielle Nutzung; die festgelegte Lizenz ist auf ihre Anwendbarkeit für den eigenen Betrieb zu prüfen.7 Dieser Checkpoint erzeugt Text. Liquid d1-3B ist ein separates veröffentlichtes Entscheidungsmodell mit geteilten Fragezweigen. Ein gemeinsamer Familienname macht ihre Serving-Pfade nicht austauschbar.
Primärquellen
Footnotes
-
Liquid AI release, October 13, 2026; architecture continuity and GPU measurement conditions. ↩ ↩2
-
Released checkpoint configuration at the same revision. ↩ ↩2 ↩3 ↩4 ↩5
-
Transformers LFM2 MoE implementation at 28034545c35acac05793695bd5c878f66e6b544e:
Lfm2MoeTopKRouter,Lfm2MoeExperts,Lfm2MoeShortConv,Lfm2MoeAttention,Lfm2MoeDecoderLayer. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 -
Transformers cache implementation at the same revision:
LinearAttentionLayer,lazy_initialization,update_conv_state, rollback recording. ↩ ↩2 -
Safetensors index and tensor-payload metadata at the same revision. ↩ ↩2
-
Model card at revision 1769516ac588c4c558089c94f27d96b0dc67b183. ↩ ↩2