AI Personal Learning
und praktische Anleitung

Benötigt nur 14GB RAM, um DeepSeek-Coder V3/R1 (Q4_K_M quantisiert) lokal auszuführen.

Abstracts

10. Februar 2025Unterstützung für DeepseekR1 und V3 auf einem einzelnen Grafikprozessor (24 GB RAM) / mehreren Grafikprozessoren und 382 GB RAM, mit Geschwindigkeitssteigerungen von bis zu 3-28x.

Grüße an alle vom KTransformers-Team (früher bekannt als das CPU/GPU Hybrid Inference Open Source Project Team, bekannt für DeepSeek-V2).

KTransformatoren Das Team hat Anfragen für DeepSeek-R1/V3-Unterstützung erhalten und freut sich sehr, dass diese nun endlich geliefert wurde!
Entschuldigt die Wartezeit, aber das KTransformers-Team hat etwas wirklich Erstaunliches ausgeheckt!


Heute ist das KTransformers-Team stolz darauf, nicht nur die Unterstützung für DeepSeek-R1/V3 bekannt zu geben, wie im Video unten gezeigt wird:

https://github.com/user-attachments/assets/ebd70bfa-b2c1-4abb-ae3b-296ed38aa285

 

  • [Aktualisiert!!!!] Lokal 671B DeepSeek-Coder-V3/R1. Die Q4_K_M-Version läuft nur mit 14 GB Videospeicher und 382 GB RAM.
    • Geschwindigkeit des Vorfüllens (Token/s).
      • KTransfermor: 54,21 (32 Kerne) → 74,362 (dualer Pfad, 2×32 Kerne) → 255,26 (optimierter AMX-basierter MoE-Kernel, nur V0.3) → 286,55 (selektive Nutzung von 6 Experten, nur V0.3)
      • zusammen mit lama.cpp bis zu 10,31 Token/s bei 2×32 Kernen im Vergleich zum 27,79-fache Beschleunigung.
    • Dekodiergeschwindigkeit (Token/s).
      • KTransfermor: 8,73 (32 Kerne) → 11,26 (dual, 2×32 Kerne) → 13,69 (selektive Nutzung von 6 Experten, nur V0.3)
      • Im Vergleich zu den 4,51 Token/s von llama.cpp auf 2×32 Kernen erreicht dies bis zu 3,03x Beschleunigung.

Das KTransformers-Team gab auch eine Vorschau auf kommende Optimierungen, einschließlich eines Intel AMX-beschleunigten Kernels und selektiver Expertenaktivierungsmethoden, die die Leistung erheblich verbessern werden. Mit der V0.3-Preview ist das Prefill bis zu 286 Token/s, schneller als llama.cpp für native Inferenz! 28 Mal.
Die Binärdistribution ist jetzt verfügbar und der Quellcode wird so bald wie möglich veröffentlicht!Radpakete hier ansehen.

 

Bedingungen der Vorbereitung

Das KTransformers-Team hat die besten Leistungstests (V0.2) mit den folgenden Konfigurationen durchgeführt:

CPU: Intel (R) Xeon (R) Gold 6454S 1T RAM (2 NUMA-Knoten)

GPU: 4090D 24G Videospeicher

Speicher: Standard DDR5-4800-Serverspeicher (1 TB)

 

Benchmarking-Ergebnisse

V0.2

aufstellen

  • Modell: DeepseekV3-q4km (int4)
  • CPU: cpu_model_name: Intel (R) Xeon (R) Gold 6454S, 32 Kerne pro Pfad, 2 Pfade, 2 numa nodes
  • GPU: 4090D 24G Videospeicher
  • KTransformers Team testet nach vollem Aufwärmen

Speicherverbrauch.

  • Einzeln: 382G RAM, mindestens 14GB VRAM
  • Dual: 1T RAM, mindestens 14GB VRAM

Benchmarking-Ergebnisse

Das Szenario "6 Experten" ist Teil der V0.3-Vorschau.

| Aufforderung

(500 Token) Doppelter Ktrans (6 Experten) Doppelter Ktrans (8 Experten) Einzelne Ktrans (6 Experten) Einzelne Ktrans (8 Experten) llama.cpp (8 Experten)
Prefill Token/s 97.32 82.94 65.14 54.21 10.31
Token dekodieren 13.69 12.208 10.303 8.73 4.51

Erhöhung der Dekodiergeschwindigkeit um bis zu 3,03 malMaximale Erhöhung der Vorfüllgeschwindigkeit 9,44 Mal. Es scheint, dass KTransformers in Bezug auf die Dekodierungsbeschleunigung nicht so gut ist wie pre-populated, und es gibt noch viel Raum für Dekodierungsoptimierung.

V0.3-Vorschau

aufstellen

  • Modell: DeepseekV3-BF16 (online quantisiert als int8 für CPU, int4 für GPU)
  • CPU: cpu_model_name: Intel (R) Xeon (R) Gold 6454S, 32 Kerne pro Pfad, 2 Pfade, 2 numa nodes
  • GPU: (1~4)x 4090D 24GVRAM (längere Prompts erfordern mehr Speicher)

Speicherverbrauch.

  • 644 GB RAM, mindestens 14 GB Grafikspeicher

Benchmarking-Ergebnisse

Länge der Aufforderung 1K 2K 4K 8K
KTrans (8 Experten) Prefill-Token/s 185.96 255.26 252.58 195.62
KTrans (6 Experten) Prefill-Token/s 203.70 286.55 271.08 207.20

KTrans V0.3 ist beim Vorfüllen schneller als KTrans V0.2. 3,45 MalEs ist schneller als llama.cpp. 27,79 Mal. Dieser Geschwindigkeitszuwachs beim Vorfüllen ist wirklich beeindruckend und es sieht so aus, als hätte KTransformers viel Mühe in die Optimierung des Vorfüllens gesteckt.
Die Dekodiergeschwindigkeit ist die gleiche wie bei KTrans V0.2 (6-Experten-Version), daher wird sie weggelassen. Es scheint, dass sich die Version V0.3 hauptsächlich auf die Verbesserung der Geschwindigkeit beim Ausfüllen konzentriert.

Die Hauptbeschleunigung kommt von

  • Intel AMX-Befehlssatz und cachefreundliches Speicherlayout, entwickelt vom KTransformers-Team
  • Expertenauswahlstrategie zur Auswahl weniger Experten auf der Grundlage von Offline-Profilergebnissen aus Out-of-Domain-Daten

Nach Angaben des KTransformers-Teams für DeepSeekV2, DeepSeekV3 und DeepSeekR1 ist die
Wenn man die Anzahl der aktivierten Experten in der Inferenz leicht reduziert, wird die
Die Ausgabequalität ändert sich nicht. Aber die Geschwindigkeit der Dekodierung und des Vorfüllens
beschleunigt, was sehr ermutigend ist. Die Demo des KTransformers-Teams macht sich also diese Erkenntnis zunutze
 Es scheint, dass die "Expertenauswahlstrategie" der Schlüssel zur Beschleunigung ist, aber wie sichergestellt werden kann, dass sich die Qualität der Ergebnisse nicht verschlechtert, muss noch weiter getestet und überprüft werden.

 

Wie es funktioniert

V0.2 Demo

Ein-Pfad-Version (32 Kerne)

Das Team von KTransformers lokal_chat Der Testbefehl lautet:

git clone https://github.com/kvcache-ai/ktransformers.git
cd ktransformers
numactl -N 1 -m 1 python . /ktransformers/local_chat.py --model_path  --gguf_path  --prompt_file  --cpu_infer 33 -- cache_lens 1536

kann ein lokaler Pfad oder ein Pfad sein, der von einem Online-Hugging Face gesetzt wurde, z. B. deepseek-ai/DeepSeek-V3. Wenn Sie online auf Verbindungsprobleme stoßen, versuchen Sie es mit einem Spiegel (hf-mirror.com).

kann auch ein Online-Pfad sein, aber da er sehr groß ist, empfiehlt das KTransformers-Team, ihn herunterzuladen und das Modell in das von Ihnen gewünschte Format zu quantisieren!

Befehl numactl -N 1 -m 1 Entwickelt, um Datenübertragungen zwischen NUMA-Knoten zu vermeiden

Dual-Path-Version (64 Kerne)

Vor der Installation (mit install.sh oder make dev_install), durch export USE_NUMA=1 Setzen von Umgebungsvariablen USE_NUMA=1 (Falls bereits installiert, installieren Sie es mit dieser Umgebungsvariablen neu)

Das Team von KTransformers lokal_chat Der Testbefehl lautet:

git clone https://github.com/kvcache-ai/ktransformers.git
cd ktransformers
export USE_NUMA=1
make dev_install # oder sh . /install.sh
python . /ktransformers/local_chat.py --model_path  --gguf_path  --prompt_file  --cpu_infer 65 -- cache_lens 1536

Parameter hat die gleiche Bedeutung. Da das KTransformers-Team jedoch ein Zwei-Wege-System verwendet, wird es cpu_infer Einstellung auf 65

V0.3 Demo

Dual-Path-Version (64 Kerne)

Das Team von KTransformers lokal_chat Der Testbefehl lautet:

wget https://github.com/kvcache-ai/ktransformers/releases/download/v0.1.4/ktransformers-0.3.0rc0+cu126torch26fancy-cp311-cp311- linux_x86_64.whl
pip install . /ktransformers-0.3.0rc0+cu126torch26fancy-cp311-cp311-linux_x86_64.whl
python -m ktransformers.local_chat --model_path  --gguf_path  --prompt_file  -cpu_infer 65 - -cache_lens 1536

Die Bedeutung der Parameter ist die gleiche wie in V0.2. Da das KTransformers-Team jedoch einen doppelten Pfad verwendet, sind die cpu_infer Einstellung auf 65

 

Einige Erklärungen

  1. Das KTransformers-Team wollte auch die beiden NUMA-Knoten der Xeon Gold-CPU weiter nutzen.
    Um die Kosten für die Datenübertragung zwischen den Knotenpunkten zu vermeiden, ist das KTransformers-Team
    Die Schlüsselmatrix wird auf beide Knoten "kopiert", was zwar mehr Speicherplatz beansprucht, aber den Vorbesetzungs- und Entschlüsselungsprozess beschleunigt.
    Allerdings verbraucht diese Methode viel Speicherplatz und ist langsam beim Laden von Gewichten, also haben Sie bitte etwas Geduld, während sie geladen wird!
    Das KTransformers-Team wird diesen großen Speicher-Overhead optimieren. Bleiben Sie dran~ Dieses "Kopieren" der Matrix mag den Prozess beschleunigen, aber der Speicherplatzbedarf ist ein echtes Problem, daher sind wir gespannt, was sich das KTransformers-Team in Zukunft einfallen lässt.
  2. Befehlsparameter --cpu_infer 65 Geben Sie die Anzahl der zu verwendenden Kerne an (mehr als die Anzahl der physischen Kerne ist in Ordnung, die
    Aber mehr ist nicht besser. Stellen Sie ihn einfach auf etwas weniger als die tatsächliche Anzahl der Kerne ein.)
  3. Warum hybride CPU/GPU-Inferenz?
    DeepSeek Der MLA-Algorithmus ist rechenintensiv. Es ist zwar möglich, ihn vollständig auf der CPU laufen zu lassen, aber die Auslagerung der schweren Berechnungen auf die GPU kann die Leistung drastisch verbessern. Da die CPU die Expertenberechnungen und die GPU den MLA/KVCache übernimmt, sieht diese hybride Inferenzstrategie intelligent aus und nutzt sowohl die CPU als auch die GPU voll aus.
  4. Woher kommt der Geschwindigkeitszuwachs?
    • Experten-Offload: Im Gegensatz zu traditionellen Layer- oder KVCache-basierten Offloads (wie in llama.cpp) verlagert das KTransformers-Team die Expertenberechnungen auf die CPU und den MLA/KVCache auf die GPU, was perfekt zur DeepSeek-Architektur passt, um eine optimale Effizienz zu erreichen.
    • Intel AMX-Optimierung - Der AMX-beschleunigte Kernel des KTransformers-Teams wurde sorgfältig abgestimmt, um mehrere Male schneller als die bestehende llama.cpp-Implementierung zu laufen. Das KTransformers-Team plant, diesen Kernel nach der Bereinigung als Open-Source zu veröffentlichen und erwägt, Code zum Upstream llama.cpp beizusteuern. der AMX Das Hinzufügen des AMX-Befehlssatzes scheint einer der Schlüsselfaktoren für die Beschleunigung von KTransformers zu sein.
  5. Warum Intel-CPUs?
    Intel ist derzeit der einzige CPU-Anbieter, der so etwas wie den AMX-Befehl unterstützt, der eine deutlich bessere Leistung bietet als die reine AVX-Alternative. Es scheint, dass Intel-CPUs der richtige Weg sind, wenn es darum geht, die beste Leistung von KTransformern zu erhalten.
CDN
Darf nicht ohne Genehmigung vervielfältigt werden:Chef-KI-Austauschkreis " Benötigt nur 14GB RAM, um DeepSeek-Coder V3/R1 (Q4_K_M quantisiert) lokal auszuführen.

Chef-KI-Austauschkreis

Der Chief AI Sharing Circle konzentriert sich auf das KI-Lernen und bietet umfassende KI-Lerninhalte, KI-Tools und praktische Anleitungen. Unser Ziel ist es, den Nutzern dabei zu helfen, die KI-Technologie zu beherrschen und gemeinsam das unbegrenzte Potenzial der KI durch hochwertige Inhalte und den Austausch praktischer Erfahrungen zu erkunden. Egal, ob Sie ein KI-Anfänger oder ein erfahrener Experte sind, dies ist der ideale Ort für Sie, um Wissen zu erwerben, Ihre Fähigkeiten zu verbessern und Innovationen zu verwirklichen.

Kontaktieren Sie uns
de_DE_formalDeutsch (Sie)