Connect with us

Künstliche Intelligenz

Die Zukunft der serverlosen Inferenz für große Sprachmodelle

mm

Aktuelle Fortschritte bei großen Sprachmodellen (LLMs) wie GPT-4 und PaLM haben zu transformierenden Fähigkeiten bei natürlichen Sprachaufgaben geführt. LLMs werden in verschiedene Anwendungen wie Chatbots, Suchmaschinen und Programmierassistenten integriert. Die Bereitstellung von LLMs im großen Maßstab bleibt jedoch aufgrund ihrer erheblichen GPU- und Speicheranforderungen herausfordernd.

Ansätze, um diese Herausforderung zu überwinden, fallen im Allgemeinen in zwei Hauptkategorien:

  1. Modellkomprimierungstechniken

Diese Techniken zielen darauf ab, die Größe des Modells zu reduzieren, während die Genauigkeit erhalten bleibt. Gängige Ansätze umfassen:

  • Beschränkung – Entfernen redundanter oder weniger wichtiger Parameter aus dem Modell. Dies erstellt ein sparsames Modell mit weniger Parametern.
  • Quantisierung – Verwenden von niedrigeren Präzisionszahlen wie int8 oder bfloat16, um Gewichte anstelle von fp32 oder fp16 darzustellen. Dies reduziert den Speicherbedarf.
  • Wissensdestillation – Trainieren eines kleineren “Schüler”-Modells, um ein großes “Lehrer”-Modell nachzuahmen. Das kleinere Modell wird dann für die Inferenz verwendet.
  1. Selektive Ausführung

Anstatt komprimierte Modelle zu verwenden, führen diese Techniken selektiv nur Teile des Modells pro Inferenz aus:

  • Sparse Aktivierungen – Überspringen von Berechnungen bei Null-Aktivierungen.
  • Bedingte Berechnung – Ausführen nur bestimmter Schichten, die von der Eingabe abhängen.

Auf der komplementären Seite zur Software-Architektur; um eine schnellere Bereitstellung von LLMs zu ermöglichen, haben Forscher serverlose Inferenzsysteme vorgeschlagen. In serverlosen Architekturen werden LLMs auf gemeinsam genutzten GPU-Clustern gehostet und dynamisch basierend auf der Nachfrage zugewiesen. Dies ermöglicht eine effiziente Nutzung von GPUs und reduziert die Kosten für Entwickler. Bekannte Implementierungen umfassen Amazon SageMaker, Microsoft Azure ML und Open-Source-Optionen wie KServe.

Trotz des Versprechens von serverlosen LLMs zeigen bestehende Systeme hohe Latenzüberhänge, die die Benutzererfahrung in interaktiven Anwendungen beeinträchtigen:

  1. Kostspielige Checkpoint-Downloads: LLMs haben große Speicherbedarfe, oft Gigabyte bis Terabyte groß. Der Download von Checkpoints von Remote-Speicher ist zeitaufwändig und dauert über 20 Sekunden, sogar mit optimierten Netzwerken.
  2. Ineffiziente Checkpoint-Ladung: Selbst mit lokalem SSD-Speicher dauert das Laden von Checkpoints in den GPU-Speicher zehn Sekunden, aufgrund von Faktoren wie Tensor-Deserialisierung und -Zuweisung. Dies verursacht erhebliche Verzögerungen über die Container-Startzeit hinaus.

Um diese Probleme zu lösen, haben Forscher am MIT CSAIL ServerlessLLM vorgeschlagen, ein innovatives System, das eine low-latency-serverlose Inferenz für LLMs ermöglicht. ServerlessLLM verbessert die Lokalität, indem es die reichlich vorhandene, aber unterausgelastete Kapazität und Bandbreite in der mehrstufigen Server-Speicherung für die LLM-Bereitstellung nutzt.

Überblick über serverlose LLM-Inferenzsysteme

Überblick über serverlose LLM-Inferenzsysteme

Wichtige Innovationen in ServerlessLLM ServerlessLLM umfasst mehrere neuartige Designs, um die LLM-Ladzeiten in serverlosen Umgebungen zu reduzieren:

  1. Schnelles Checkpoint-Laden
  • Ladoptimiertes Checkpoint-Format, das schnelles sequentielles Lesen und effizientes tensorielles Adressieren ermöglicht.
  • Mehrstufige Checkpoint-Ladepipeline, die die Bandbreitennutzung über Netzwerk, SSDs, DRAM und GPU-Speicher durch Techniken wie direkten I/O, festgelegten Speichertransfer und Parallelität maximiert.
  1. Live-Migration für lokalitätsgetriebene Inferenz
  • Tokenbasierte Migration, die nur die wesentlichen Prompt-Tokens über das Netzwerk überträgt und den langsamen Snapshot-Transfer vermeidet.
  • Zweiphasige Migration, die eine ununterbrochene Inferenz ermöglicht, indem asynchron die Cache-Zustände auf dem Zielserver vor dem Transfer der endgültigen Tokens rekompiliert werden.
  1. Latenzoptimierte Serverzuweisung
  • Genauere Modelle, um Checkpoint-Ladzeiten von jedem Tier und Migrationzeiten für einen Server zu schätzen.
  • Lokalitätsbewusster Scheduler, der Server auswählt, die die erwartete Startlatenz minimieren, unter Verwendung der oben genannten Modelle.

Diese Optimierungen ermöglichen es ServerlessLLM, die LLM-Ladzeiten um 4-8X und die Gesamtstartzeit um über 25X gegenüber bestehenden Systemen wie PyTorch, TensorFlow und KServe zu reduzieren.

Lassen Sie uns tiefer in die Funktionsweise von ServerlessLLM eintauchen.

Beschleunigung der Checkpoint-Ladung

Das erste große Hindernis, das ServerlessLLM angeht, ist die hohe Latenz der Ladung von LLM-Checkpoints aus dem Speicher in den GPU-Speicher.

Um eine schnelle Checkpoint-Ladung zu ermöglichen, führt ServerlessLLM Folgendes ein:

  1. Ladoptimiertes Checkpoint-Format

Standard-Checkpoints, die von Frameworks wie PyTorch verwendet werden, sind für das Modelltraining und -debugging konzipiert. Für serverlose Inferenz werden Checkpoints jedoch nur gelesen und wiederholt zugegriffen.

Um für eine solche leseintensive Verwendung zu optimieren, konvertiert ServerlessLLM Checkpoints in ein Format mit zwei wichtigen Eigenschaften:

  • Sequentielles chunkbasiertes Lesen: Tensoren werden in pro-GPU-Binärdateien gruppiert, was große sequenzielle Lesevorgänge ermöglicht.
  • Effizientes tensorielles Adressieren: Ein Index kartiert Tensor-Namen auf Speicheroffsets, wodurch eine direkte Wiederherstellung im Speicher ohne Deserialisierung ermöglicht wird.
  1. Mehrstufige Checkpoint-Ladepipeline

ServerlessLLM nutzt die mehrstufige Architektur von GPU-Servern, mit Speichermedien wie SSDs und Netzwerken, die über PCIe, NVMe usw. mit GPUs verbunden sind.

Das System umfasst eine mehrstufige Pipeline, um die Bandbreitennutzung über alle Ebenen zu maximieren:

  • In-Memory-Daten-Chunks werden mit festgelegtem Speicher für schnellen GPU-Transfer zugewiesen.
  • Direkter I/O wird für effizientes SSD-Lesen ohne Caching-Overheads verwendet.
  • Mehrere Threads lesen verschiedene Speicher-Chunks parallel.
  • Zwischen den Stufen findet eine Koordination über asynchrone Task-Warteschlangen statt.

Zusammen ermöglicht dies, die Bandbreitenkapazität sogar der schnellsten Ebenen wie NVMe-RAID zu sättigen. Experimente zeigen, dass ServerlessLLM 6-8X schneller lädt als PyTorch/TensorFlow und die Startzeit für große LLMs von über einer Minute auf unter 10 Sekunden reduziert.

Lokalitätsgetriebene LLM-Inferenz über Live-Migration

Mit beschleunigter Ladung steht ServerlessLLM vor einer neuen Herausforderung – wie man vorgeladene Checkpoints für Lokalität ohne Unterbrechung der laufenden Inferenzen auf beschäftigten Servern nutzt?

ServerlessLLM führt eine neuartige Technik ein – Live-Migration von LLM-Inferenz über GPU-Server. Dies ermöglicht eine nahtlose Übertragung der Ausführung auf Server mit lokalen Checkpoints.

Wichtige Enabler der Live-LLM-Migration:

  1. Tokenbasierte Migration

Anstatt den gesamten Modellzustand zu snapshoten, migriert ServerlessLLM nur die minimalen Prompt-Tokens über das Netzwerk. Dies überträgt weniger Daten als Snapshots.

  1. Zweiphasige Migration

Der Zielserver berechnet asynchron die Cache-Zustände aus den Prompt-Tokens. Sobald bereit, überträgt der Quellserver die endgültigen Tokens, bevor er Ressourcen freigibt. Dies verhindert Inferenz-Stillstände.

Experimente zeigen, dass tokenbasierte Migration die Migrationzeiten von zehn Sekunden auf unter eine Sekunde reduziert, sogar für lange Sequenzen. Live-Migration ist entscheidend, um Warteschlangen-Verzögerungen zu vermeiden, wenn Lokalitätsgetriebene Zuweisung erreicht wird.

Latenzoptimierte Modellplanung

Um die Gesamtlatenz zu minimieren, verbessert ServerlessLLM den Scheduler, um die Serverauswahl unter Berücksichtigung der Lokalität zu optimieren. Dies umfasst:

  1. Feingranulare Ladzeit-Schätzer

Modelle schätzen Ladzeiten von Netzwerk, SSD-Caches und Speicher für jeden Server unter Verwendung von Metriken wie Warteschlangen-Verzögerungen, Modellgrößen und gemessener Bandbreite.

  1. Genauer Migrationzeit-Prädiktor

Der Scheduler schätzt Migrationzeiten für Server unter Verwendung der Anzahl von Prompt- und Ausgabe-Tokens. Er verfolgt den Inferenzfortschritt asynchron, um Overhead zu vermeiden.

  1. Lokalitätsbewusste Zuweisung

Für jede Inferenzanfrage bewertet der Scheduler die geschätzten Ladzeiten und Migrationzeiten über alle Server. Er wählt den Server aus, der die erwartete Startlatenz minimiert.

Der Scheduler verwaltet auch Server-Task-Warteschlangen und nutzt einen stark konsistenten Speicher für Fehlertoleranz. Zusammen reduzieren diese Innovationen die Planungs-Overheads, während sie die Vorteile der Lokalität maximieren.

Auswertung der ServerlessLLM-Leistung

Umfassende Experimente messen die Gesamteffektivität von ServerlessLLM gegenüber bestehenden Systemen unter Verwendung von realen Modellen wie OPT-175B und Workloads, die nach Azure-Spuren modelliert sind.

Wichtige Ergebnisse:

  • Mikrobenchmarks: ServerlessLLM beschleunigt das Checkpoint-Laden um 3,6-8,2X im Vergleich zu PyTorch/TensorFlow. Es sättigt die Speicherbandbreite, sogar für High-End-NVMe-RAID.
  • Planung: ServerlessLLM reduziert die Zuweisungs-Latenz um 4-12X im Vergleich zur zufälligen Planung, was die Vorteile der Lokalitätsbewusstheit unterstreicht. Live-Migration verhindert Warteschlangen-Verzögerungen.
  • End-to-End-Serving: Für große Modelle wie OPT-30B verbessert ServerlessLLM die 99. Perzentil-Latenz um 28-200X im Vergleich zu Systemen wie KServe und Ray Serve. Es verbessert auch die Ressourceneffizienz.

Diese wesentlichen Gewinne demonstrieren die Fähigkeit von ServerlessLLM, Engpässe in bestehenden serverlosen Implementierungen zu überwinden und die Leistung von LLMs für interaktive Dienste zu entfesseln.

Die in ServerlessLLM eingeführten Optimierungen, wie die mehrstufige Ladung, Live-Migration und latenzgetriebene Planung, können die Gestaltung zukünftiger serverloser Architekturen beeinflussen. Die Fähigkeit des Systems, Ladzeiten und Startzeiten zu reduzieren, ermöglicht die skalierbare Bereitstellung großer Sprachmodelle für praktische Anwendungen.

Blick in die Zukunft: Anhaltende Herausforderungen

Obwohl ein bedeutender Fortschritt, stellt ServerlessLLM nur den ersten Schritt bei der Optimierung der serverlosen Inferenz für massive LLMs dar. Mehrere offene Probleme bleiben bestehen, darunter:

  • Vorhersage des Echtzeit-Modellbedarfs, um die Bereitstellung und Vorausladung zu leiten
  • Intelligente Platzierung von Checkpoints auf Servern, um Cache-Treffer zu maximieren
  • Effiziente Skalierung von Planungsalgorithmen, um größere Cluster zu bewältigen
  • Sicherstellung von Fairness bei der Ressourcenzuweisung zwischen Modellen und Entwicklern
  • Verallgemeinern von Innovationen wie Live-Migration auf andere serverlose Workloads

Die Lösung dieser Probleme kann dazu beitragen, das Versprechen von serverlosen LLMs zu erfüllen und ihre Fähigkeiten noch zugänglicher zu machen. Darüber hinaus bleibt die Reduzierung des erheblichen CO2-Fußabdrucks und der potenziellen Schäden von großen Modellen ein dringendes Anliegen.

ServerlessLLM zeigt, dass ein enormes Potenzial für Innovation in der nächsten Generation serverloser Architekturen für KI-Workloads besteht. Da LLMs weiter an Größe und Popularität gewinnen, werden Lösungen wie ServerlessLLM, die ihre Skalierbarkeit ermöglichen, immer einflussreicher. Die Kombination von System- und Maschinenlernforschung kann neue Paradigmen in der Bereitstellung, dem Teilen und der Skalierung von KI-Modellen sicher und nachhaltig einführen.

Ich habe die letzten fünf Jahre damit verbracht, mich in die faszinierende Welt des Machine Learning und Deep Learning zu vertiefen. Meine Leidenschaft und mein Fachwissen haben mich dazu geführt, an über 50 verschiedenen Software-Entwicklungsprojekten mitzuwirken, mit einem besonderen Fokus auf KI/ML. Meine anhaltende Neugier hat mich auch zum Natural Language Processing hingezogen, ein Feld, das ich weiter erforschen möchte.