Want to Become a Sponsor? Contact Us Now!🎉

LLM
vLLM: Die Revolution des LLM-Servierens mit PagedAttention

vLLM: Die Revolution des LLM-Servierens mit PagedAttention

Published on

Erfahren Sie, wie vLLM mit PagedAttention das Spiel für das LLM-Servieren verändert und unvergleichliche Geschwindigkeit und Effizienz bietet.

Hallöchen! Heute tauchen wir tief in etwas ein, das in der AI-Community Wellen schlägt – vLLM. Wenn Sie sich für künstliche Intelligenz und große Sprachmodelle (LLMs) interessieren, sollten Sie davon erfahren. vLLM ist nicht nur ein weiteres Werkzeug; es ist ein Game-Changer, der uns ermöglicht, LLMs schneller, effizienter und für eine breitere Palette von Projekten und Teams zugänglich zu machen. Schnallen Sie sich an, denn wir werden erkunden, was vLLM so besonders macht und warum es möglicherweise der Durchbruch ist, auf den wir gewartet haben.

Anakin AI - The Ultimate No-Code AI App Builder

In der Welt der künstlichen Intelligenz sind große Sprachmodelle (LLMs) eine revolutionäre Entwicklung. Diese Modelle haben das Potenzial, Branchen zu transformieren, indem sie neue Möglichkeiten bieten, mit Technologie zu interagieren und Informationen zu verarbeiten. Die Bereitstellung dieser Modelle bringt jedoch Herausforderungen mit sich. Sie benötigen erhebliche Rechenressourcen, und trotz leistungsstarker Hardware kann die Bereitstellung von LLMs überraschend langsam und teuer sein. Hier kommt vLLM ins Spiel, ein Leuchtfeuer der Innovation in den oft turbulenten Gewässern der AI-Technologie.

vLLM: Einfaches, Schnelles und Günstiges Servieren von LLMs mit PagedAttention

Am 20. Juni 2023 von einem Team der UC Berkeley eingeführt, ist vLLM ein Zeugnis für das, was gemeinsame Innovation erreichen kann. Entwickelt von Woosuk Kwon, Zhuohan Li, Siyuan Zhuang, Ying Sheng, Lianmin Zheng, Cody Yu, Joey Gonzalez, Hao Zhang und Ion Stoica geht vLLM die Kernprobleme bei der Bereitstellung von LLMs direkt an. Durch den Einsatz eines neuartigen Aufmerksamkeitsalgorithmus namens PagedAttention übertrifft vLLM bestehende Lösungen deutlich in Bezug auf Durchsatz und Effizienz.

Wichtige Highlights:

  • GitHub | Dokumentation | Paper: vLLM (opens in a new tab) ist ein Schatz an Open-Source-Informationen für alle, die tiefer in die technischen Details eintauchen oder es einfach für ihre eigenen LLM-Servierbedürfnisse nutzen möchten (https://docs.vllm.ai/de/latest/index.html (opens in a new tab)).
  • Unglaubliche Leistung: In Benchmarks erzielt vLLM eine bis zu 24-fach höhere Durchsatzleistung im Vergleich zu beliebten Bibliotheken wie HuggingFace Transformers, ohne dass Änderungen an der Modellarchitektur erforderlich sind.

Das Geheimnis seines Erfolgs: PagedAttention

  • Im Kern behebt PagedAttention das Speicherengpassproblem bei der Bereitstellung von LLMs. Durch eine effektivere Verwaltung von Aufmerksamkeitsschlüsseln und -werten ermöglicht es einen hohen Durchsatz und eine effiziente Speicherauslastung.
  • Flexibilität und Effizienz: PagedAttention speichert Aufmerksamkeitsschlüssel und -werte in nicht zusammenhängenden Speicherblöcken, inspiriert von virtuellen Speichersystemen in Betriebssystemen. Dadurch wird eine dynamische und effiziente Speicherverwaltung ermöglicht.
  • Optimierte Speicherauslastung: Diese Methode reduziert den Speicherverschwendung erheblich und ermöglicht eine höhere GPU-Auslastung, was zu einer besseren Leistung führt.

Praktische Anwendungen und Auswirkungen

  • Einsatz in der Realität: vLLM wurde auf Plattformen wie Chatbot Arena und Vicuna Demo eingesetzt und hat seine Wirksamkeit bei der Bedienung von Millionen Benutzern unter Beweis gestellt.
  • Kosteneffizienz: Durch verbesserten Durchsatz und reduzierte GPU-Anforderungen ermöglicht vLLM kleinen Teams, LLMs kostengünstig bereitzustellen und den Zugang zu fortschrittlichen KI-Technologien zu demokratisieren.

Erste Schritte mit vLLM

Für diejenigen, die es kaum erwarten können, mit vLLM loszulegen, ist der Einstieg genauso einfach wie das Ausführen eines einzelnen Befehls zur Installation von GitHub. Ganz gleich, ob Sie eine Offline-Inferenz durchführen oder ein Online-Serviersystem einrichten möchten: vLLM bietet Flexibilität und Benutzerfreundlichkeit.

  • Installation: Einfach und benutzerfreundlich, erfordert nur einen einzelnen Befehl, um startklar zu sein.
  • Anwendungsszenarien: Unterstützt verschiedene Anwendungsfälle, von der Inferenz auf Datensätzen bis hin zur Einrichtung eines OpenAI API-kompatiblen Servers für die Online-Interaktion.

vLLM in Aktion: Eine Schritt-für-Schritt-Anleitung

Um Ihnen einen Eindruck davon zu vermitteln, wie die Arbeit mit vLLM aussieht, hier eine kurze Übersicht:

  1. Offline-Batched-Inferenz: Erfahren Sie, wie Sie vLLM für die Hochdurchsatz-Textgenerierung aus einer Liste von Ausgangspunkten verwenden können.
  2. Aufbau eines API-Servers: Führen Sie den Prozess zum Einrichten eines API-Servers für LLM-Interaktionen durch, der mit der OpenAI API kompatibel ist.
  3. Erweiterte Funktionen: Entdecken Sie die Fähigkeiten von vLLM, einschließlich paralleler Abtastung und Beam Search, und sehen Sie, wie es komplexe Abfragealgorithmen mühelos bewältigt.

Als Wegbereiter für ein zugänglicheres, effizienteres und skalierbareres LLM-Servieren bietet vLLM die Möglichkeit, die Grenzen dessen, was mit großen Sprachmodellen möglich ist, zu erweitern. Nun tauchen wir in die technischen Details ein und sehen vLLM in Aktion.

Noch tiefer in vLLM eintauchen

vLLM zeichnet sich nicht nur durch seine beeindruckende Leistung, sondern auch durch seine Benutzerfreundlichkeit aus. Es lässt sich nahtlos in bestehende Tools und Workflows integrieren und ist somit eine vielseitige Wahl für verschiedene Anforderungen in Bezug auf das Servieren von LLMs.

Kernfunktionen von vLLM

vLLM bietet eine Reihe von Funktionen, die viele der mit dem LLM-Servieren verbundenen Herausforderungen angehen:

  • Modernste Durchsatzleistung: Durch die Optimierung von CUDA-Kernen und den innovativen PagedAttention-Algorithmus erreicht vLLM beispiellose Serviergeschwindigkeiten.
  • Effizientes Speichermanagement: Über PagedAttention verwaltet vLLM Aufmerksamkeitsschlüssel und -werte effizient und reduziert dadurch den Speicherbedarf der LLM-Inferenz erheblich.
  • Kontinuierliches Batching: vLLM kann eingehende Anfragen kontinuierlich sammeln und stapeln, um die Hardwareauslastung und den Durchsatz zu maximieren.
  • Optimierte CUDA-Kerne: Die Verwendung von benutzerdefinierten CUDA-Kernen verbessert die Leistung weiter und gewährleistet, dass vLLM so effizient wie möglich läuft.

Anfangen mit vLLM und LangChain

Die Integration von vLLM in Ihre Projekte ist unkompliziert, dank seiner Kompatibilität mit gängigen Python-Paketen. Hier ist eine kurze Anleitung:

  1. Installation: Stellen Sie sicher, dass das vllm-Paket für Python installiert ist. Sie können es mit pip installieren:

    %pip install --upgrade --quiet vllm -q
  2. Grundlegende Verwendung: Beginnen Sie, indem Sie VLLM aus dem langchain_community.llms-Paket importieren und es mit Ihrem gewünschten Modell initialisieren. Hier ist ein Beispiel:

    from langchain_community.llms import VLLM
     
    llm = VLLM(
        model="mosaicml/mpt-7b",
        trust_remote_code=True,  # bei hf-Modellen erforderlich
        max_new_tokens=128,
        top_k=10,
        top_p=0.95,
        temperature=0.8,
    )
     
    print(llm.invoke("Was ist die Hauptstadt von Frankreich?"))

    Dieses einfache Skript zeigt, wie man Inferenz durchführt und "Paris" als Hauptstadt von Frankreich zurückgibt.

Verbesserung der Inferenz mit LLMChain

Für komplexere Inferenzaufgaben kann vLLM in eine LLMChain integriert werden, die eine anspruchsvolle Prompt-Entwicklung und -Verarbeitung ermöglicht:

from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
 
template = """Frage: {question}
 
Antwort: Lassen Sie uns Schritt für Schritt nachdenken."""
prompt = PromptTemplate.from_template(template)
 
llm_chain = LLMChain(prompt=prompt, llm=llm)
 
question = "Wer war der US-Präsident im Jahr, als das erste Pokémon-Spiel veröffentlicht wurde?"
 
print(llm_chain.invoke(question))

Dieser Ansatz ermöglicht schrittweises Denken und liefert detaillierte Antworten auf komplexe Fragen.

Verteilte Inferenz und Quantisierung

vLLM unterstützt erweiterte Funktionen wie verteilte Inferenz und Quantisierung, was es für leistungsstarke Umgebungen geeignet macht:

  • Verteilte Inferenz: Um mehrere GPUs zu nutzen, setzen Sie einfach das Argument tensor_parallel_size, wenn Sie VLLM initialisieren.
  • Quantisierung: vLLM unterstützt auch AWQ-Quantisierung, die den Speicherbedarf des Modells erheblich reduzieren kann, ohne die Leistung einzubüßen.

OpenAI-kompatibler Server

Eine der leistungsstärksten Funktionen von vLLM ist seine Fähigkeit, das OpenAI-API-Protokoll zu imitieren und somit eine problemlose Integration in Anwendungen zu ermöglichen, die derzeit das OpenAI-API verwenden. Diese Fähigkeit eröffnet eine Vielzahl von Möglichkeiten für den Einsatz effizienter und skalierbarer LLM-Lösungen.

Fazit: Die Zukunft des LLM-Servings mit vLLM

vLLM repräsentiert einen bedeutenden Fortschritt in der LLM-Serving-Technologie. Mit seiner Kombination aus hoher Durchsatzrate, effizientem Speichermanagement und Benutzerfreundlichkeit ist vLLM gut positioniert, um zu einem wichtigen Akteur in der KI-Landschaft zu werden. Ob Sie bestehende Anwendungen verbessern oder neue Möglichkeiten mit LLMs erkunden möchten, vLLM bietet Ihnen die Werkzeuge und Leistung, um Ihre Projekte zum Erfolg zu führen. Während die Community die Möglichkeiten von vLLM weiter erforscht und ausbaut, können wir noch mehr innovative Anwendungen und Verbesserungen in der Zukunft erwarten.

Anakin AI - The Ultimate No-Code AI App Builder