Trend-Themen
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.

芋野斧子🅾️
24 Jahre alter Planet
Wir werden die Bit-TTT-Engine revolutionieren.
Bisher war der Zustand "Nur LLMs, die mit Bit-TTT-Engine erstellt wurden, funktionieren → Es gibt kein LLM". Wir werden ein Tool zur Umwandlung in variable Bit-Präzision (1,58 Bit x N) erstellen, das bestehende LLMs (wie Safetensors-Dateien von Llama-3) zerlegt.
Das folgende Bild zeigt die Ergebnisse eines Experiments mit einem Python-Prototypen, der eine Gaußsche Matrix der Größe 4096x4096 (entsprechend einer Schicht von Llama-3) verwendet.
1. Hohe Kompressionseffizienz: Selbst mit drei Basen (Basis 3) passt es auf etwa 30 % der Größe von FP16 (32 MB).
2. Reduzierung des Fehlers: Durch die dreistufige Zerlegung wurde der Fehler (RMSE) auf etwa 1/4 des ursprünglichen Wertes reduziert.
3. Durchführbarkeit: Der Prototyp in Python läuft schnell, und die Umwandlung des gesamten Llama-3 ist in einer realistischen Zeit möglich.
Aus diesen Ergebnissen können wir schließen, dass es technisch durchaus möglich ist, ein Modell der Klasse Llama-3 mit 4 GB VRAM hochpräzise zu betreiben, wenn die Rust-Engine "variable Basisaddition" unterstützt.
Hier ist der Fahrplan.
---
🚀 Projektfahrplan: Phase 10.5 (Adaptive Zerlegung)
Mission: Modelle der Klasse Llama-3 (8B) mit "praktischer Geschwindigkeit und Präzision" auf Consumer-GPUs (VRAM 4GB) zum Laufen zu bringen.
🎯 Kernkonzept
Die Einschränkung der bestehenden BitNet (1,58 Bit), die "Neulernen erforderlich" war, wird aufgehoben. Durch Post-Training Quantization (PTQ) und Adaptive Ternary Decomposition (ATD) wird es möglich, bestehende FP16-Modelle dynamisch zu quantisieren und auszuführen.
📅 Entwicklungsphasen
Phase 1: Die Brücke (Python-Tools & Datenlayout)
Ziel: Bestehende Modelle in "N Basen" zu zerlegen und in einem GPU-optimierten Format zu speichern.
🔧 Implementierung:
Converter (convert_adaptive.py): Implementierung eines Gewichtszersetzungsalgorithmus mit der Greedy Residual-Methode.
Interleaved Packing: Um die Inferenzgeschwindigkeit zu priorisieren, wird das weight_packed-Format verwendet, bei dem [w0, w1, w2] parameterweise interleaved angeordnet sind.
Legacy Support: Datenlayout, das die Kompatibilität mit bestehenden BitNet-Modellen (N=1) aufrechterhält.
✅ Liefergegenstand:
.safetensors-Datei (einschließlich weight_packed + scales).
Validierungsskript in Python.
Phase 2: Der Motor (Rust-Grundlage)
Ziel: Der Rust-Motor soll "mehrschichtige Basen" erkennen und die Richtigkeit der Berechnungen gewährleisten (Geschwindigkeit ist zweitrangig).
🔧 Implementierung:
AdaptiveBitLinear Struct: Erneuerung in eine neue Struktur, die gepackte Gewichte behandelt, anstatt BitLinear zu enthalten.
Loader-Logik: Automatische Unterscheidung und Verzweigung zwischen weight (Legacy) und weight_packed (Adaptive) beim Laden des Modells.
Naive Inference: Zunächst wird die Korrektheit durch eine Schleifenverarbeitung zur Berechnung von Produkten und Summen sichergestellt.
✅ Liefergegenstand:
Bestehen von Unit-Tests (cargo test).
Übereinstimmung der Python-Simulationswerte mit den Rust-Inferenzwerten.
Phase 3: Die Geschwindigkeit (Optimierung & Fusionierte Kerne)
Ziel: Einen "funktionierenden" Motor in einen "benutzbaren" Motor verwandeln. Ziel ist es, Geschwindigkeiten zu erreichen, die mit Int4-Modellen vergleichbar sind.
🔧 Implementierung:
Multi-Base Fused Kernel: Implementierung eines benutzerdefinierten CUDA-Kernels, der die Lesevorgänge aus dem VRAM auf einen einzigen Vorgang beschränkt und w0 + w1 + w2 sofort im Register berechnet.
Speicherausrichtung: Block-Interleaved-Optimierung zur Lösung des Ausrichtungsproblems bei "N=3" (z. B. in 4-Parameter-Einheiten).
✅ Liefergegenstand:
Schnellere Inferenzgeschwindigkeit als FP16-Modelle.
Minimierung des VRAM-Verbrauchs (vergleichbar mit Int4-Modellen).
Phase 4: Integration & UX
Ziel: Verbesserung der Benutzererfahrung und Nutzung der adaptiven Bitrate.
🔧 Implementierung:
Bit-Depth Slider: API-Entwicklung, die es dem Benutzer ermöglicht, zur Laufzeit zwischen "Geschwindigkeit priorisieren (nur Basis 0)" und "Präzision priorisieren (alle Basen)" zu wählen.
Benchmark-Suite: Veröffentlichung von Vergleichsbenchmarks mit bestehenden Llama.cpp (Int4) und FP16.
🛡️ Circuit Breakers (Go/No-Go-Kriterien)
Wenn in jeder Entwicklungsphase die folgenden Kriterien nicht erfüllt sind, wird das Design überarbeitet.
Präzision (Accuracy): Bei Verwendung von 3 Basen (ca. 4,7 Bit) sollte die Verschlechterung der Perplexität im Vergleich zum ursprünglichen FP16-Modell minimal sein.
Geschwindigkeit (Speed):
Minimum: Auch wenn es langsamer als Int4 ist, muss es in 4 GB VRAM passen und funktionieren (Wert als Enabler).
Ziel: Nach Anwendung des Fused Kernels schneller als FP16-Modelle sein.

354
Top
Ranking
Favoriten
