Home
Login

Ein erweiterbares, bequemes und effizientes Toolkit für die Feinabstimmung und Inferenz großer Basismodelle, das benutzerfreundlich, schnell und zuverlässig konzipiert und für die gesamte Community offen ist.

Apache-2.0Python 8.4kOptimalScale Last Updated: 2025-05-15

LMFlow - Toolkit für Feinabstimmung und Inferenz großer Basismodelle

Projektübersicht

LMFlow ist ein Open-Source-Projekt, das vom OptimalScale-Team entwickelt wurde. Es handelt sich um ein skalierbares, bequemes und effizientes Toolkit für die Feinabstimmung großer Modelle des maschinellen Lernens. Das Projekt wurde mit Blick auf Benutzerfreundlichkeit, Geschwindigkeit und Zuverlässigkeit entwickelt und zielt darauf ab, die Technologie großer Sprachmodelle der gesamten Community zugänglich zu machen, um die Vision "Große Modelle für alle" zu verwirklichen.

Projektadresse: https://github.com/OptimalScale/LMFlow

Kernfunktionen

1. Unterstützung für vielfältige Trainingsmethoden

  • Vollständige Parameter-Feinabstimmung: Aktualisierung aller Parameter zur Feinabstimmung von Sprachmodellen
  • LoRA (Low-Rank Adaptation): Parametereffizienter Feinabstimmungsalgorithmus, effizienter als die vollständige Parameter-Feinabstimmung
  • LISA (Layerwise Importance Sampling): Speicher-effizienter Feinabstimmungsalgorithmus, der das Training von 7B-Modellen in 24 GB GPU-Speicher ohne Auslagerung ermöglicht

2. Breite Modellunterstützung

Unterstützt eine Vielzahl gängiger großer Sprachmodelle, darunter:

  • DeepSeek-Serie: deepseek, deepseek_v2, deepseek_r1 usw.
  • LLaMA-Serie: llama2, llama3, llama3_for_tool
  • Qwen-Serie: qwen2, qwen2_for_tool, qwen2_5 usw.
  • Gemma, Phi, Yi, InternLM2 und viele andere Modellarchitekturen

3. Leistungsoptimierungstechniken

Speicheroptimierung

  • FlashAttention-2: Unterstützt die neueste FlashAttention-Technologie, die die Trainings- und Inferenzgeschwindigkeit deutlich erhöht
  • Gradienten-Checkpointing: Optimiert die Speichernutzung durch eine Strategie, die Rechenleistung gegen Speicher tauscht
  • DeepSpeed Zero-3: Unterstützt das verteilte Training von Modellen in großem Maßstab

Inferenzbeschleunigung

  • vLLM-Integration: Unterstützt schnelle und einfach zu bedienende LLM-Inferenz und -Dienste
  • Spekulative Dekodierung: Unterstützt die spekulative Dekodierungstechnologie zur Beschleunigung der Inferenz
  • CPU-Inferenz: Unterstützt die Ausführung von LLaMA-Modellen auf der CPU (durch 4-Bit-Quantisierung)

4. Umfangreiche Funktionsmerkmale

Unterstützung für Dialogvorlagen

  • Vordefinierte neueste Llama-3- und Phi-3-Dialogvorlagen
  • Unterstützt verschiedene gängige Vorlagen wie chatml
  • Anpassbare Dialogvorlagen für bessere Leistung

Multimodale Unterstützung

  • Unterstützt multimodale Eingaben von Bildern und Text
  • Bietet multimodale Chatbot-Funktionen
  • Online-Demo-Service verfügbar

Verarbeitung langer Kontexte

  • Unterstützt Positionsinterpolation (lineare und NTK-Skalierung) für LLaMA-Modelle
  • Erweitert die Kontextverarbeitungsfähigkeit des Modells

5. Bewertung und Benchmarking

LMFlow Benchmark ist ein automatisches Bewertungsframework, das speziell für Open-Source-Sprachmodelle entwickelt wurde und die Fähigkeit des Modells in den folgenden Bereichen anhand der negativen Log-Likelihood (NLL) als Metrik bewertet:

  • Geplauder-Dialog
  • Common-Sense-Schlussfolgerung
  • Befolgung von Anweisungen

Technische Innovation

RAFT-Algorithmus

Das Projekt schlägt einen neuen Ausrichtungsalgorithmus vor: Reward rAnked FineTuning (RAFT). Dieser Ansatz ist effizienter als das traditionelle PPO-basierte RLHF.

Benutzerdefinierte Optimierer

Unterstützt das Training mit verschiedenen benutzerdefinierten Optimierern, darunter:

  • RMSprop, LION-32bit, Adam, AdamW
  • AdaFactor, Adan, RAdam und mehr als 20 weitere Optimierer
  • Ermöglicht die Auswahl der am besten geeigneten Optimierungsstrategie für die jeweilige Aufgabe

Praktische Anwendungsfälle

Durchbruch im medizinischen Bereich

Das mit LMFlow trainierte Modell zeigt im medizinischen Bereich hervorragende Leistungen. Sein aufgabenoptimiertes Modell übertrifft ChatGPT im medizinischen Bereich und demonstriert das enorme Potenzial für Anwendungen in vertikalen Bereichen.

Robin-Modellserie

Das Projekt hat mehrere leistungsstarke Robin-Modelle veröffentlicht:

  • Robin-33B-V2: Erzielte eine hervorragende Punktzahl von 64,1 auf der Huggingface LLM-Bestenliste
  • Bietet Checkpoints in verschiedenen Größen: 7B, 13B, 33B, 65B usw.

Installation und Verwendung

Systemanforderungen

  • Hauptsächlich unter Linux OS (Ubuntu 20.04) getestet
  • Unterstützt CUDA 10.3-11.7
  • Python 3.9 Umgebung

Schnelle Installation

git clone -b v0.0.9 https://github.com/OptimalScale/LMFlow.git
cd LMFlow
conda create -n lmflow python=3.9 -y
conda activate lmflow
conda install mpi4py
pip install -e .

PyPI-Installation

pip install lmflow-finetune

Technischer Einfluss

Das LMFlow-Projekt hat bereits in der akademischen Welt und der Industrie einen wichtigen Einfluss ausgeübt:

  • Zugehörige Artikel wurden auf Top-Konferenzen veröffentlicht
  • Erhielt viel Aufmerksamkeit und Nutzung auf GitHub
  • Leistet einen wichtigen Beitrag zum Open-Source-Ökosystem großer Sprachmodelle

Zusammenfassung

LMFlow ist ein umfassendes Toolkit für große Sprachmodelle, das nicht nur vollständige Lösungen für das Modelltraining und die Inferenz bietet, sondern auch Innovationen in den Bereichen Speicheroptimierung, Leistungsbeschleunigung, Modellbewertung usw. vorantreibt. Es senkt die Einstiegshürde für die Verwendung großer Sprachmodelle und ermöglicht es mehr Forschern und Entwicklern, ihre eigenen Sprachmodelle bequem zu erstellen und bereitzustellen, wodurch das Ziel "Große Modelle für alle" wirklich erreicht wird.