Hochskalierung der Bereitstellung von fein abgestimmten LoRa-Modellen

Auf Geschwindigkeit ausgelegt: ~ 10 ms Latenz, auch unter Last
Unglaublich schnelle Methode zum Erstellen, Verfolgen und Bereitstellen Ihrer Modelle!
- Verarbeitet mehr als 350 RPS auf nur 1 vCPU — kein Tuning erforderlich
- Produktionsbereit mit vollem Unternehmenssupport
Im Bereich der Bereitstellung von KI-Anwendungen hat sich die Skalierung der Bereitstellung fein abgestimmter Modelle als zentrale Herausforderung herausgestellt. Stellen Sie sich ein Szenario vor: Sie sind ein SaaS-Startup, das 500 Kunden mit unterschiedlichen Bedürfnissen betreut und für interne Unterstützung und personalisierte Marketinginhalte fein abgestimmte Anpassungen des Sprachmodells (LLM) benötigt. Dies beinhaltet die schwierige Aufgabe, rund 1000 Modelle zu verfeinern.
Um diese Einschränkungen zu umgehen, verwenden Sie LoRa FineTuning — eine Technik, bei der das Kern-LLM eingefroren und bestimmte Gewichte selektiv verfeinert werden, um aktualisierte Daten zu berücksichtigen. Dieser effiziente und skalierbare Ansatz arbeitet mit einem Bruchteil der ursprünglichen Parameter, die durch die LoRa-Konfiguration definiert wurden.
Die eigentliche Herausforderung besteht jedoch darin, diese fein abgestimmten Adapter effektiv einzusetzen.
Versuchsaufbau
Zahlreiche Open-Source-LLM-Serving-Frameworks arbeiten aktiv daran, die Bereitstellung von LoRa-Adaptern zu integrieren, aber eine umfassende Lösung ist noch nicht verfügbar. In diesem Experiment untersuchen wir LoRax von Predibase, einem vielversprechenden Framework, das den Code für die Bereitstellung und Skalierung von LoRa-Adaptern anscheinend effizient geknackt hat.
💡
Weitere Einblicke in LoRaX von Predibase finden Sie in ihrem Blog: LoRaX — Bieten Sie Hunderte von fein abgestimmten LLMs zum Preis von einem an
Hauptmerkmale von LoRax
LoRaX zeichnet sich durch drei grundlegende Säulen der Implementierung aus:
- Dynamisches Laden des Adapters: Ermöglicht das Just-in-Time-Laden von fein abgestimmten LoRa-Gewichten und stellt sicher, dass gleichzeitige Anfragen zur Laufzeit nicht unterbrochen werden.
- Mehrstufiges Gewichts-Caching: Erleichtert das schnelle Austauschen von LoRa-Adaptern zwischen Anfragen und verhindert Speicherprobleme, indem Adaptergewichte auf CPU und Festplatte verlagert werden.
- Kontinuierliches Batching mit mehreren Adaptern: Verwendet eine faire Planungsrichtlinie, um den Gesamtsystemdurchsatz zu optimieren und kontinuierliche Batching-Strategien parallel auf mehrere Sätze von LoRa-Adaptern auszudehnen.
Leistungsbewertung mit LoRax
In unserem Experiment haben wir die Leistung von LoRAX bei der Verwaltung einer Vielzahl von fein abgestimmten Adaptern unter Verwendung des TinylLama LLM-Modells ausführlich bewertet. Während unserer Experimente haben wir die Effizienz bei der Verarbeitung zahlreicher Anfragen über mehrere Adapter hinweg gemessen.
Voraussetzungen für LoRax Einrichtung
Um unsere Experimente zu replizieren, folgen Sie diesen Voraussetzungen, um LoRaX auf Ihrem Server einzurichten:
Docker-Lauf\
--gpus alle\
--shm-Größe 1 g\
-p 8080:80\
-v $pwd/Daten: /daten\
ghcr.io/predibase/lorax: aktuell\
--model-id tinyllama/tinyllama-1.1b-chat-v0.6 # Basismodell, das für die Feinabstimmung verwendet wird
Installieren Sie zusätzlich den LoRAX-Client für Inferenzrufe, indem Sie Folgendes verwenden:
pip installiere Lorax-Client
Einblicke in Inferenzen
Die Nutzung von LoRAX für die Bereitstellung fein abgestimmter LoRa-Modelle bot deutliche Vorteile, da es in der Lage war, eine einzelne GPU für das LLM-Basismodell zu verwenden und gleichzeitig jeden Adapter pro Anfrage dynamisch zu laden. Dieser dynamische Ansatz, bei dem eine einzige GPU verwendet und Adapter im laufenden Betrieb geladen werden, macht LoRX zu einer optimalen Lösung für die Bedienung einer Vielzahl von fein abgestimmte LoRa-Modelle.
Beispiel für einen Inferenzcode:
von Lorax Import Client
client = Kunde (“ https://example.lorax.truefoundry.tech „, timeout=10)
generierter_text = client.generate (
auffordern,
do_sample=Falsch,
max_neue_token=10,
adapter_id=adapter_id,
adapter_source="lokal“
) .generierter_Text
Unsere experimentellen Ergebnisse haben eindeutig die erheblichen Vorteile des Einsatzes von LoRaX für die Bereitstellung fein abgestimmter LoRa-Modelle gezeigt. Durch das dynamische Laden des Adapters pro Anfrage und die effektive Nutzung einer einzelnen A100-GPU für das LLM-Basismodell optimierte LoRaX die Leistung erheblich.
Einblicke in die Leistung
In unseren jüngsten Experimenten mit der dynamischen Belastung von 100 Adaptern haben wir deren Leistungsmerkmale genau untersucht. Die anfängliche Latenz, die bei der ersten Anfrage beobachtet wurde, war hauptsächlich auf die Notwendigkeit zurückzuführen, das LLM-Basismodell in den Speicher zu laden. Bei nachfolgenden Anfragen kam es jedoch zu einer Verringerung der Latenz, da LoRaX in der Lage war, Adapter schnell auszutauschen und Zusammenführungen in Echtzeit für Vorhersagen durchzuführen.

Zuvor haben wir in unseren Blogs den Prozess des Ladens von Lora-Fintune-Modellen mit HuggingFace PEFT besprochen. Unsere Experimente haben jedoch erhebliche Probleme mit diesem Ansatz aufgezeigt:
1) Latenzeskalation mit mehr Adaptern im GPU-Speicher:
Das Hauptproblem trat auf, als wir versuchten, mehr Adapter in den GPU-Speicher einzubauen. Dies führte zu einem deutlichen Anstieg der Latenz. Mit jedem weiteren Adapter stieg die Latenz erheblich an, was sich auf die Gesamtleistung auswirkte.
2) Eingeschränkte Kapazität im GPU-Speicher:
Eine weitere kritische Einschränkung war die begrenzte Anzahl von Adaptern, die im GPU-Speicher untergebracht werden konnten. Diese Einschränkung behinderte die Skalierbarkeit und stellte einen Engpass bei der gleichzeitigen Aufnahme einer größeren Anzahl von Adaptern dar.
Betrachten Sie die folgenden Vergleiche, um die Leistungsunterschiede weiter zu veranschaulichen:
Verarbeitung von 70 Tokens und Generieren von 10 Tokens auf einer A100-GPU:
Umarmendes Gesicht LINKS: Die Latenz lag zwischen 400 und 450 ms.
LoRax: Es wurde eine durchschnittliche Latenz von 170 ms nachgewiesen.
Auswirkungen von Adaptern auf die Latenz:
Umarmendes Gesicht LINKS: Das Hinzufügen von 1000 Tinyllama Lora-Adaptern zum Basis-LLM erhöhte die Latenz auf 3500-4000 ms, was einem Anstieg von etwa 700% entspricht.
LoRax: Die Latenz blieb dank des dynamischen Lademechanismus auf der GPU konstant unabhängig von der Anzahl der Adapter, wodurch eine stabile Latenz auch bei einer höheren Anzahl von Modellen gewährleistet wurde.
Zusammenfassend lässt sich sagen, dass HuggingFace PEFT zwar die Modellanpassung und Adapternutzung erleichtert, jedoch mit Leistungsproblemen zu kämpfen hat, da die Anzahl der Adapter zunimmt, was sich insbesondere auf Latenz und Skalierbarkeit auswirkt. Im Gegensatz dazu zeichnet sich LoRaX durch seine Fähigkeit aus, Adapter dynamisch zu laden und Vorhersagen in Echtzeit auszuführen, wodurch eine konsistente Leistung und Skalierbarkeit gewährleistet werden, selbst bei einer beträchtlichen Anzahl von fein abgestimmten Lora-Modellen.
Fazit
Die Fähigkeit von LoRaX, verschiedene fein abgestimmte LoRa-Modelle effizient zu handhaben und gleichzeitig ein konsistentes Basismodell beizubehalten, ist ein gutes Zeichen für Unternehmen, die skalierbare KI-Dienste suchen, die auf individuelle Kundenbedürfnisse zugeschnitten sind.
Durch die Nutzung der effizienten Adapterladestrategien von LoRaX können Unternehmen ihre Dienste getrost skalieren, um Tausende von speziell maßgeschneiderten, fein abgestimmten LoRa-Modellen zu umfassen, und das alles unter Beibehaltung eines einheitlichen Basismodells.
Zusammenfassend lässt sich sagen, dass LoRaX bei der Bereitstellung fein abgestimmter Adapter wegweisend ist und eine skalierbare und optimierte Lösung für Unternehmen bietet, die verschiedene KI-Modelle effektiv einsetzen möchten.
Wahre Gießerei ist ein ML Deployment PaaS über Kubernetes, um die Workflows von Entwicklern zu beschleunigen und ihnen gleichzeitig volle Flexibilität beim Testen und Bereitstellen von Modellen zu bieten und gleichzeitig die volle Sicherheit und Kontrolle für das Infra-Team zu gewährleisten. Über unsere Plattform ermöglichen wir Teams für maschinelles Lernen bereitstellen und überwachen Modelle innerhalb von 15 Minuten mit 100% iger Zuverlässigkeit, Skalierbarkeit und der Möglichkeit, innerhalb von Sekunden rückgängig zu machen. So können sie Kosten sparen und Modelle schneller für die Produktion freigeben, wodurch ein echter Geschäftswert erzielt wird.
TrueFoundry AI Gateway bietet eine Latenz von ~3—4 ms, verarbeitet mehr als 350 RPS auf einer vCPU, skaliert problemlos horizontal und ist produktionsbereit, während LiteLM unter einer hohen Latenz leidet, mit moderaten RPS zu kämpfen hat, keine integrierte Skalierung hat und sich am besten für leichte Workloads oder Prototyp-Workloads eignet.
Der schnellste Weg, deine KI zu entwickeln, zu steuern und zu skalieren















.png)




.png)






.webp)

.webp)



