Nachdem Sie Ihr erstes Ergebnis erzielt haben, ist es leicht, größere Modelle ausprobieren zu wollen. Sie können von 0.5B auf 7B wechseln, aber das ursprüngliche Gerät reicht möglicherweise nicht mehr aus.
Bei der Auswahl der Ressourcen unterscheiden Sie zunächst zwischen einigen Dingen. CPU und GPU sind für Berechnungen zuständig, Speicher und Videospeicher halten Daten während der Ausführung, und Festplatten speichern Modelldateien. Ein Modell erfolgreich herunterzuladen bedeutet nur, dass die Festplatte genügend Platz hat — ob es reibungslos laufen kann, hängt auch von Speicher, Videospeicher und Rechenleistung ab. Dasselbe Modell, je nach Ladepräzision, Eingabelänge und gleichzeitig verarbeiteter Anfragenanzahl, beeinflusst alles die Ressourcennutzung. Inferenz und Training haben auch unterschiedliche Anforderungen.
Schauen wir uns zunächst an, wofür CPU und GPU jeweils geeignet sind, dann schätzen wir ab, wie viel Platz Modellparameter einnehmen werden, um die Wahl eines Laptops oder einer Cloud-Instanz vorzubereiten.
CPU und GPU unterscheiden sich erheblich in ihren Rechenansätzen.
CPU ist für Allzweckberechnungen konzipiert, wobei jeder Kern über relativ vollständige Steuerungs- und Rechenfähigkeiten verfügt. Er kann Entscheidungen treffen, Springen und Aufgaben basierend auf dem Programmausführungsprozess planen und verschiedene Arten von Berechnungsaufgaben flexibel handhaben.
GPU verwendet eine parallele Rechenarchitektur mit einer großen Anzahl von Recheneinheiten, die eine große Anzahl von Berechnungsaufgaben gleichzeitig ausführen können. Es ist für die Verarbeitung von Aufgaben mit großen Datenskalen und hoher Berechnungsredundanz geeignet.
Die Verarbeitungsgeschwindigkeit von CPU und GPU hängt vom Aufgabentyp und der Berechnungsskala ab.
Für Szenarien mit einer großen Menge logischer Urteile, Programmkontrolle und Aufgabenplanung hat CPU eine höhere Ausführungseffizienz. Aufgaben wie Betriebssystembetrieb und Datenbankabfragen eignen sich für CPU.
Für große parallele Berechnungsaufgaben kann GPU einen höheren Rechendurchsatz bieten. Matrixmultiplikation und Faltungsoperationen im Deep Learning können in mehrere parallele Unteraufgaben aufgeteilt werden, die gleichzeitig von GPU-Recheneinheiten ausgeführt werden, was die Gesamtberechnungseffizienz verbessert.
Allerdings werden die Vorteile von GPU erst bei großem Umfang der Berechnungsaufgaben signifikant. Wenn das Datenvolumen gering ist, können GPU-Rechenressourcen nicht voll genutzt werden, und Datenübertragung und Aufgabenplanung zwischen CPU und GPU bringen zusätzliche Kosten mit sich. In diesem Fall kann die Verwendung von CPU effizienter sein.
Anmelden an der Diskussion teilnehmen
Die Kosten von CPU und GPU umfassen nicht nur die Hardware-Anschaffungspreise, sondern auch den Stromverbrauch während des Betriebs sowie die nachfolgenden Nutzungs- und Wartungskosten.
Bei der Hardware-Beschaffung ist CPU Standard — normale Server und Personal Computer benötigen alle eine CPU-Konfiguration. Hochleistungs-GPU für KI-Training und -Inferenz sind typischerweise teuer. Neben dem GPU selbst müssen Sie auch die Kosten für Server, Videospeicher, Speicher und andere unterstützende Hardware berücksichtigen.
Während des Betriebs hat GPU einen hohen Stromverbrauch bei der Durchführung großer Berechnungen. Je mehr GPU in einem Server, desto größer der Druck auf Stromversorgung und Kühlung, und die Strom- und Kühlkosten von Rechenzentren steigen erheblich.
Bei Nutzung und Wartung ist das CPU-Ökosystem relativ ausgereift, und routinemäßige Serverwartung ist relativ unkompliziert. GPU erfordert die Berücksichtigung der Kompatibilität von Treibern, RechenFrameworks und Hardware-Umgebung. Konflikte zwischen verschiedenen Versionen können verhindern, dass Modelle normal funktionieren. Multi-GPU-Umgebungen beinhalten auch die Datenkommunikation zwischen Geräten, was bestimmte Anforderungen an Hardware-Verbindungen und Software-Konfiguration hat.
Training und Inferenz haben unterschiedliche Ressourcenanforderungen, und Modelle verschiedener Größen und Typen haben auch signifikante Unterschiede bei Rechenressourcen. Die Hardware-Auswahl muss Modellskala, Datenvolumen, Leistungsanforderungen und Ressourcenbedarf in beiden Szenarien Training und Inferenz umfassend berücksichtigen.
In der Trainingsphase des Modells, wenn die Datenskala klein ist, kann CPU die Trainingsanforderungen der meisten traditionellen maschinellen Lernmodelle erfüllen, wie lineare Regression, logistische Regression und Random Forests. Einige leichtgewichtige neuronale Netze können auch CPU für Training verwenden, aber mit zunehmendem Datenvolumen und steigender Modellstrukturkomplexität wird die Trainingszeit deutlich länger. Wenn Sie häufig Modelloptimierungen durchführen müssen, kann die Verwendung von GPU die Trainingszeit verkürzen.
Das Training großer neuronaler Netze und großer Sprachmodelle erfordert umfangreiche Matrixberechnungen mit hohen Anforderungen an Rechenleistung und Videospeicherkapazität. Große Sprachmodelle mit Milliarden von Parametern wie Qwen benötigen Hochleistungs-Beschleunigungsgeräte wie GPU für das Training.
Die Modellanforderungen während der Inferenz unterscheiden sich vom Training. Für Szenarien mit kleineren Parameterskalen und geringeren Zugriffsvolumina kann CPU die Inferenzanforderungen erfüllen, und die Ressourcennutzung kann auch durch Methoden wie Quantisierung reduziert werden. Für große Modelle, Hochlast-Dienste und Szenarien, die schnelle Reaktion erfordern, kann GPU eine höhere Inferenzleistung bieten.
CPU und GPU haben jeweils anwendbare Szenarien, und Sie müssen Modellskala, Datenvolumen, gleichzeitige Anfragen, Leistungsanforderungen und Bereitstellungskosten umfassend berücksichtigen.
Die Bewertung der Ressourcenanforderungen eines Modells hängt hauptsächlich von zwei Indikatoren ab: Parameterskala und Datenpräzision.
Die Modellparameterskala wird allgemein in B ausgedrückt, wobei 1B eine Milliarde Parameter repräsentiert. Parameter sind die numerischen Werte, die das Modell während des Trainings lernt. Während der Inferenz müssen diese Parameter in Speicher (CPU) oder Videospeicher (GPU) geladen werden. Je größer die Parameteranzahl, desto mehr Ressourcen belegt.
Datenpräzision bezieht sich auf das numerische Format, das Modellparameter für Speicherung und Berechnung verwenden. Gängige Formate umfassen FP32, FP16, BF16 und Quantisierungsformate wie INT8 und INT4. Für dieselbe Parameteranzahl bedeutet höhere Datenpräzision mehr belegte Ressourcen.
Der geschätzte Speicherplatz für 1B Parameter bei verschiedenen Präzisionen ist wie folgt:
| Präzision | Platz pro 1B Parameter (ca.) | Gängige Verwendungen |
| FP32 (Einfache Präzision) | 4GB | Training, Hochpräzisionsinferenz |
| FP16 (Halbpräzision) | 2GB | Training, Inferenz |
| BF16 | 2GB | Training, Inferenz |
| INT8 | 1GB | Quantisierte Inferenz |
| INT4 | 0.5GB | Niedrigpräzisions-Quantisierte Inferenz |
Modellgewichte = Parameteranzahl × Speicherplatz pro 1B Parameter bei dieser Präzision. Für ein 7B-Modell mit FP16-Präzisionsinferenz beträgt die Belegung der Modellgewichte ungefähr: 7 × 2GB ≈ 14GB.
Während der Modellinferenz werden zusätzlich zum Laden der Modellgewichte weitere Ressourcen für KV Cache, Laufzeit-Framework und temporäre Berechnungen benötigt.
KV Cache wird verwendet, um Token-bezogene Informationen zu speichern, die bereits während des Generierungsprozesses berechnet wurden, um redundante Berechnungen zu vermeiden. Seine Nutzung hängt von der Modellstruktur, Kontextlänge und Anzahl gleichzeitiger Anfragen ab. Je länger der Kontext, desto mehr Informationen müssen gespeichert werden; je mehr Anfragen gleichzeitig verarbeitet werden, desto mehr steigt die KV-Cache-Nutzung.
Schätzformel für Inferenz-Ressourcennutzung:
CPU-Inferenz benötigter Speicher ≈ Modellgewichte + Framework- und temporäre Kosten.
GPU-Inferenz benötigter Videospeicher ≈ Modellgewichte + KV Cache + Framework- und temporäre Kosten.
Davon sind Gewichte statisch, Framework-Kosten grundsätzlich konstant, und die Variable liegt vollständig in KV Cache. In langen Sequenz-Szenarien muss KV-Cache-Platz reserviert werden.
Die Ressourcenanforderungen der Trainingsphase sind höher als die der Inferenzphase. Neben der Speicherung der Modellgewichte müssen auch Gradienten, Optimierzustände und Zwischenergebnisse während des Trainings gespeichert werden, was mehr Ressourcen erfordert. Die Trainings-Ressourcenanforderungen hängen vom Optimierertyp und der Trainingsstrategie ab.
(1) Vollständiges Modelltraining
Beim vollständigen Modelltraining müssen Modellgewichte, Gradienten, Optimierzustände und Aktivierungen gleichzeitig gespeichert werden. Am Beispiel des vollständigen Trainings mit Adam-Optimierer und FP16-Präzision benötigt jeder 1B Parameter ungefähr:
| Komponente | Pro 1B Parameter |
| Modellgewichte (FP16) | 2 GB |
| Gradienten (FP16) | 2 GB |
| Optimierzustände | 8 GB |
| FP32-Gewichtskopie | 4 GB |
| Subtotal (ohne Aktivierungen) | 16 GB |
Hinweis: Der Adam-Optimierer muss zwei Kopien von FP32-Präzisionszuständen (Impuls und Varianz) speichern, daher nehmen Optimierzustände 8GB ein; die FP32-Gewichtskopie wird für die Optimierer-Parameteraktualisierung verwendet.
Die vorläufige Schätzformel für vollständiges Training ist:
GPU-Training benötigter Videospeicher ≈ Parameteranzahl × 16 Byte + Aktivierungskosten
CPU-Training benötigter Speicher ≈ Parameteranzahl × 16 Byte + Aktivierungskosten
GPU-Training ist durch Videospeicherkapazität begrenzt, während CPU-Training durch Berechnungsgeschwindigkeit begrenzt ist. Zum Beispiel benötigt ein 7B-Modell mit vollständigem FP16-Training auf GPU mindestens 7B × 16 Byte ≈ 112GB Videospeicher, und der tatsächliche Bedarf wird nach Hinzufügen von Aktivierungen größer sein.
(2) Parameter-effizientes Feintuning (wie LoRA)
Für das Feintuning großer Modelle werden parameter-effiziente Feintuning-Methoden wie LoRA (Low-Rank Adaptation) in der Praxis häufiger verwendet. LoRA aktualisiert nicht alle ursprünglichen Modellparameter während des Trainings; es friert die ursprünglichen Modellgewichte ein und trainiert nur die neu hinzugefügten niedrigrangigen Anpassungsparameter, wodurch die Videospeicheranforderungen erheblich reduziert werden.
LoRA-Training-Videospeicher ≈ Basis-Modellgewichte + LoRA-Parameter + LoRA-Parametergradienten und Optimierzustände + Aktivierungen.
Davon müssen Basis-Modellgewichte nur geladen werden und nehmen nicht an Aktualisierungen teil; die von LoRA hinzugefügten Parameter betragen nur 0,1%~1% des Originalmodells, und ihre Gradienten und Optimierer-Kosten sind fast vernachlässigbar. Der tatsächliche Videospeicher hängt hauptsächlich von Modellgewichten, Kontextlänge, Stapelgröße und Trainingsframework-Optimierungsmethoden ab. LoRA-Feintuning kann die Videospeicheranforderungen im Vergleich zum vollständigen Training erheblich reduzieren.
Zum Beispiel belegen Modellgewichte beim Laden eines 7B-Modells mit FP16 4GB. Auf einem einzelnen GPU mit 24GB Videospeicher kann LoRA-Feintuning normalerweise laufen (mit geeigneten Anpassungen von Stapelgröße und Kontextlänge). Die Verwendung von QLoRA (Quantisierung des Basismodells auf INT4) kann die Videospeichernutzung weiter reduzieren und Feintuning auf begrenzterer Hardware ermöglichen.