Heim >Technologie-Peripheriegeräte >KI >Quantisierung für Großsprachenmodelle (LLMs): Reduzieren Sie die KI -Modellgrößen effizient
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
verstehenQuantisierung 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.
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.
Beispiel: Eine Gewichtsmatrix (links) und ihre quantisierte Version (rechts).
Der Unterschied zwischen den ursprünglichen und quantisierten Matrizen ist der Quantisierungsfehler.
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 Quantisierungsgleichungen.
Beispiel: Lineare Quantisierung einer Gewichtsmatrix.
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 GesichtsHier ist eine Schritt-für-Schritt-Anleitung mit dem Pythia 410m-Modell:
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)
quantize()
, um das Modell zu konvertieren. from quanto import quantize, freeze quantize(model, weights=torch.int8, activations=None)
freeze()
, um die Quantisierung auf die Gewichte anzuwenden. freeze(model)
compute_module_sizes()
ist eine benutzerdefinierte Funktion; siehe DataCamp Datalab zur Implementierung).
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
quantize()
umfasst implizite Kalibrierung; Eine calibration()
-Methode ist für die benutzerdefinierte Kalibrierung verfügbar. model_name
Variable in das gewünschte Modell. Denken Sie daran, die Allgemeinen Geschäftsbedingungen von Umarmungen zu akzeptieren.
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!