Allgemeine Einführung
LichtLLM ist ein Python-basiertes Large Language Model (LLM) Inferenz- und Service-Framework, das für sein schlankes Design, seine einfache Skalierbarkeit und seine effiziente Leistung bekannt ist. Das Framework nutzt eine Vielzahl bekannter Open-Source-Implementierungen, darunter FasterTransformer, TGI, vLLM und FlashAttention. lightLLM verbessert die GPU-Nutzung und die Inferenzgeschwindigkeit durch Techniken wie asynchrone Zusammenarbeit, dynamische Stapelverarbeitung und Tensor-Parallelität für eine Vielzahl von Modellen und Anwendungsszenarien erheblich.
Funktionsliste
- Asynchrone Zusammenarbeit: Unterstützt asynchrone Wortsplitting-, Modellinferenz- und De-Splitting-Vorgänge, um die GPU-Nutzung zu verbessern.
- Fillerless Attention: unterstützt füllungslose Aufmerksamkeitsoperationen für mehrere Modelle und behandelt Anfragen mit großen Längenunterschieden.
- Dynamische Batch-Verarbeitung: Unterstützt die dynamische Batch-Planung von Anfragen.
- FlashAttention: Erhöhen Sie die Geschwindigkeit und reduzieren Sie den Speicherbedarf der GPU mit FlashAttention.
- Tensor-Parallelität: Beschleunigen Sie die Inferenz auf mehreren GPUs mit Tensor-Parallelität.
- Token Achtung: Implementierter Token-basierter Speichermanagement-Mechanismus für KV-Cache mit null Speicherverschwendung.
- Hochleistungsrouter: Zusammenarbeit mit Token Attention zur Optimierung des Systemdurchsatzes.
- Int8KV Cache: Erhöhung der Token-Kapazität, nahezu Verdoppelung.
- Unterstützt mehrere Modelle: einschließlich BLOOM, LLaMA, StarCoder, ChatGLM2, usw.
Hilfe verwenden
Einbauverfahren
- Installieren Sie LightLLM mit Docker:
docker pull modeltc/lightllm
docker run -it --rm modeltc/lightllm
- Installieren Sie die Abhängigkeit:
pip install -r requirements.txt
Verwendung
- Starten Sie den LightLLM-Dienst:
python -m lightllm.server
- Abfragemodell (Konsolenbeispiel):
python -m lightllm.client --model llama --text "你好,世界!"
- Abfragemodell (Python-Beispiel):
from lightllm import Client
client = Client(model="llama")
response = client.query("你好,世界!")
print(response)
Hauptfunktionen
- asynchrone ZusammenarbeitLightLLM verbessert die GPU-Nutzung erheblich, indem es die Segmentierung, Modellinferenz und De-Segmentierung asynchron ausführt. Die Benutzer starten einfach den Dienst und das System führt diese Vorgänge automatisch aus.
- Unerfüllte AufmerksamkeitsspanneLightLLM unterstützt bei der Bearbeitung von Anfragen mit großen Längenunterschieden auffüllungsfreie Aufmerksamkeitsoperationen, um eine effiziente Bearbeitung zu gewährleisten. Eine zusätzliche Konfiguration durch den Nutzer ist nicht erforderlich, und das System wird automatisch optimiert.
- Dynamische StapelverarbeitungLightLLM unterstützt die dynamische Batch-Planung. Die Benutzer können die Batch-Parameter über die Konfigurationsdatei festlegen, und das System passt die Batch-Politik dynamisch an die jeweilige Anforderung an.
- FlashAttentionDurch die Integration der FlashAttention-Technologie verbessert LightLLM die Inferenzgeschwindigkeit und reduziert den Speicherbedarf der GPU. Benutzer können diese Funktion in der Konfigurationsdatei aktivieren.
- Tensor-ParallelitätLightLLM unterstützt Tensor-Parallelität auf mehreren GPUs: Der Benutzer kann die Anzahl der GPUs und die Parameter für die Parallelität in einer Konfigurationsdatei festlegen, und das System weist die Aufgaben automatisch zu.
- Token AufmerksamkeitLightLLM implementiert einen Token-basierten Speicherverwaltungsmechanismus für den KV-Cache, der keine Speicherverschwendung verursacht. Es ist keine zusätzliche Konfiguration erforderlich, das System verwaltet den Speicher automatisch.
- Hochleistungs-RouterDie Hochleistungsrouter von LightLLM arbeiten mit Token Attention, um den Systemdurchsatz zu optimieren. Die Benutzer können die Routing-Parameter in der Konfigurationsdatei festlegen, und das System optimiert die Routing-Strategie automatisch.
- Int8KV CacheLightLLM unterstützt Int8KV-Cache, um die Token-Kapazität zu erhöhen und fast zu verdoppeln. Benutzer können diese Funktion in der Konfigurationsdatei aktivieren, und das System passt die Caching-Strategie automatisch an.
Unterstützte Modelle
LightLLM unterstützt eine Vielzahl von Modellen, einschließlich, aber nicht beschränkt auf:
- BLOOM
- LLaMA
- StarCoder
- ChatGLM2
- InternLM
- Qwen-VL
- Llava
- Stablelm
- MiniCPM
- Phi-3
- CohereForAI
- DeepSeek-V2
Die Benutzer können das für ihre Bedürfnisse geeignete Modell auswählen und es in der Konfigurationsdatei entsprechend einstellen.