Heim >Technologie-Peripheriegeräte >KI >Quantisierung für Großsprachenmodelle (LLMs): Reduzieren Sie die KI -Modellgrößen effizient

Quantisierung für Großsprachenmodelle (LLMs): Reduzieren Sie die KI -Modellgrößen effizient

Christopher Nolan
Christopher NolanOriginal
2025-03-05 09:10:13789Durchsuche

Führen Sie Ihren eigenen Chatgpt auf Ihrem Laptop aus: eine Anleitung zur LLM -Quantisierung

Haben Sie jemals davon geträumt, Ihren eigenen Chatgpt direkt auf Ihrem Laptop auszuführen? Dank der Fortschritte in Großsprachemodellen (LLMs) wird dies Wirklichkeit. Der Schlüssel ist die Quantisierung - eine Technik, die diese massiven Modelle für Verbraucherhardware mit minimalem Leistungsverlust verkleinert (wenn richtig!). Diese Anleitung erklärt die Quantisierung, seine Methoden und zeigt Ihnen, wie Sie ein Modell mithilfe der Quanto -Bibliothek von Hugging Face in zwei einfachen Schritten quantisieren können. Folgen Sie mit dem DataCamp Datalab.

Die ständig wachsende Größe von LLMs

llms sind in Komplexität explodiert. GPT-1 (2018) hatte 0,11 Milliarden Parameter; GPT-2 (2019), 1,5 Milliarden; GPT-3 (2020), satte 175 Milliarden; und GPT-4 verfügt über 1 Billion. Dieses massive Wachstum führt zu einem Gedächtnisgnunfall, der sowohl das Training als auch die Inferenz behindert und die Zugänglichkeit einschränkt. Die Quantisierung löst dies durch Reduzierung der Größe des Modells gleichzeitig die Leistung.

Quantisierung

verstehen

Quantisierung ist eine Modellkomprimierungstechnik, die die Genauigkeit der Gewichte und Aktivierungen eines Modells verringert. Dies beinhaltet das Konvertieren von Daten von einem höheren Voraussetzungsart (z. B. 32-Bit-Schwimmpunkt) in einen Typ mit niedrigerer Präzision (z. B. 8-Bit-Ganzzahl). Weniger Bits bedeuten ein kleineres Modell, das weniger Speicher, Speicher und Energie verbraucht.

Denken Sie an Bildkomprimierung: Hochauflösende Bilder werden für die Verwendung von Web-Verwendung komprimiert, die die Größe und die Ladezeit auf Kosten einiger Details verkürzen. In ähnlicher Weise reduziert die Quantisierung eines LLM die Rechenanforderungen und ermöglicht es ihm, weniger leistungsstarke Hardware auszuführen.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Bildkomprimierung für schnellere Webladedauer.

Quantisierung führt zu Rauschen (Quantisierungsfehler), aber die Forschung konzentriert sich darauf, dies zu minimieren, um die Leistung aufrechtzuerhalten.

Die Theorie hinter Quantisierung

Quantisierung zielt typischerweise auf Modellgewichte ab - die Parameter, die die Stärke von Verbindungen zwischen Neuronen bestimmen. Diese Gewichte sind anfangs zufällig und während des Trainings angepasst. Ein einfaches Beispiel ist das Rundungsgewicht auf weniger Dezimalstellen.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Beispiel: Eine Gewichtsmatrix (links) und ihre quantisierte Version (rechts).

Der Unterschied zwischen den ursprünglichen und quantisierten Matrizen ist der Quantisierungsfehler.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Quantisierungsfehlermatrix.

In der Praxis beinhaltet die Quantisierung das Ändern des Datentyps (Downcasting). Zum Beispiel reduziert das Konvertieren von Float32 (4 Bytes pro Parameter) in INT8 (1 Byte pro Parameter) die Speicherverwendung signifikant.

Gehirnschwebungspunkt (BF16) und Downcasting

BF16, entwickelt von Google, bietet ein Gleichgewicht zwischen dem Dynamikbereich von Float32 und der Effizienz von Float16. Downcasting-die von einer höheren Präzision zu einem Datentyp mit niedrigerer Präzisions-die Geschwindigkeit entsteht, kann jedoch zu Datenverlust und Fehlerverbreitung führen, insbesondere bei kleineren Datentypen.

Arten von Quantisierung

Es gibt mehrere Quantisierungstypen:

  • Lineare Quantisierung: Karten-Gleitpunktwerte zu einem Festpunktbereich gleichmäßig. Es beinhaltet die Berechnung von minimalen/maximalen Werten, Skala, Nullpunkt, Quantisierung und Degenerisierung (während der Inferenz).

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

lineare Quantisierungsgleichungen.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Beispiel: Lineare Quantisierung einer Gewichtsmatrix.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Dequantisation und Quantisierungsfehler.

  • Blockweise Quantisierung: Quantalisiert Gewichte in kleineren Blöcken, die ungleichmäßigen Verteilungen effektiver behandelt.

  • Gewicht vs. Aktivierungsquantisierung: Quantisierung kann sowohl auf Gewichte (statisch) als auch auf Aktivierungen (dynamisch) angewendet werden. Die Aktivierungsquantisierung ist komplexer.

  • Nachtraining Quantisierung (PTQ) im Vergleich zum quantisierungsbewussten Training (QAT): PTQ quantisiert ein vorgebildetes Modell; QAT modifiziert das Training, um Quantisierungseffekte zu simulieren, was zu einer besseren Genauigkeit führt, aber die Trainingszeit.

Kalibrierungstechniken

Einige Methoden erfordern eine Kalibrierung - eine Inferenz in einem Datensatz, um die Quantisierungsparameter zu optimieren. Zu den Techniken gehören die Perzentilkalibrierung und die mittlere/Standardabweichungskalibrierung. Methoden wie Qlora vermeiden Kalibrierung.

Tools für die Quantisierung

Mehrere Python -Bibliotheken unterstützen die Quantisierung, einschließlich Pytorch und Tensorflow. Die Quanto -Bibliothek von Face ist den Prozess für Pytorch -Modelle vereinfacht.

Quantisieren eines Modells mit Quanto

des Gesichts

Hier ist eine Schritt-für-Schritt-Anleitung mit dem Pythia 410m-Modell:
  1. Laden Sie das Modell: Laden Sie das vorgebrachte Modell und Tokenizer.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "EleutherAI/pythia-410m"
model = AutoModelForCausalLM.from_pretrained(model_name, low_cpu_mem_usage=True)
tokenizer = AutoTokenizer.from_pretrained(model_name)
  1. quantisieren: Verwenden Sie quantize(), um das Modell zu konvertieren.
from quanto import quantize, freeze
quantize(model, weights=torch.int8, activations=None)
  1. Einfrieren: Verwenden Sie freeze(), um die Quantisierung auf die Gewichte anzuwenden.
freeze(model)
  1. Ergebnisse überprüfen: Überprüfen Sie die reduzierte Modellgröße und die Testinferenz. (Hinweis: compute_module_sizes() ist eine benutzerdefinierte Funktion; siehe DataCamp Datalab zur Implementierung).

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Schlussfolgerung

Quantisierung macht LLMs zugänglicher und effizienter. Wenn Sie seine Techniken verstehen und Tools wie das Quanto von Face verwenden, können Sie leistungsstarke Modelle auf weniger leistungsstarken Hardware ausführen. Für größere Modelle erwägen Sie Ihre Ressourcen zu aktualisieren.

LLM Quantisierung FAQs

  • QAT vs. PTQ: QAT ist im Allgemeinen eine bessere Leistung, erfordert aber während des Trainings mehr Ressourcen.
  • Quanto -Bibliothek: unterstützt sowohl PTQ als auch QAT. quantize() umfasst implizite Kalibrierung; Eine calibration() -Methode ist für die benutzerdefinierte Kalibrierung verfügbar.
  • Genauigkeit: int4 und int2 Quantisierung ist möglich.
  • Zugriff auf Umarmungsgesichtsmodelle: Ändern Sie die model_name Variable in das gewünschte Modell. Denken Sie daran, die Allgemeinen Geschäftsbedingungen von Umarmungen zu akzeptieren.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Das obige ist der detaillierte Inhalt vonQuantisierung für Großsprachenmodelle (LLMs): Reduzieren Sie die KI -Modellgrößen effizient. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn