


Effiziente Zusammenführungsstrategie des PEFT LORA -Adapters und des Basismodells
Sep 19, 2025 pm 05:12 PMEinführung: Notwendigkeit, den PEFT LORA -Adapter mit dem Basismodell zu verschmelzen
Nach der Feinabstimmung mit gro?er Sprachmodellen unter Verwendung der PEFT-Technologie (Parameter effiziente Feinabstimmung), insbesondere LORA (Anpassung mit niedriger Rang), erhalten wir normalerweise ein Leichtgewichts-Adaptermodell. Dieses Adaptermodell enth?lt nur eine kleine Menge von Gewichten, die w?hrend der Feinabstimmung modifiziert wurden, und muss mit dem ursprünglichen Basismodell kombiniert werden, um Schlussfolgerungen zu ziehen. Bei der Bereitstellung oder Freigabe eines Modells ist es eine übliche Voraussetzung, den Adapter mit dem Basismodell in ein vollst?ndiges, unabh?ngiges Modell zusammenzuführen, das die Lade und Verwendung des Modells vereinfacht, ohne dass zwei Modellkomponenten gleichzeitig verwaltet werden müssen.
Viele Anf?nger k?nnen jedoch Schwierigkeiten haben, wenn Sie versuchen zu verschmelzen, z. B. um einen PEFT -Adapter direkt mit Automodel zu laden. From_Pretrained aus der Transformers -Bibliothek oder der Versuch, durchschnittliche Modellgewichte manuell zu wichten. Diese Methoden führen h?ufig zu Fehlern, da PEFT -Adapter ihre spezifische Struktur- und Lademechanismen aufweisen.
Falsche Zusammenführungsversuche und Analyse verursachen
Ein h?ufiger Fehler besteht darin, Transformatoren zu verwenden. Automodel.from_Petretrug, um den PEFT -Adapter zu laden und zu versuchen, die Gewichte durch manuelles Gewicht zu verschmelzen, wie unten gezeigt:
von Transformers importieren Automodel # Fehlervorführung: Versuchen Sie, den PEFT-Adapter direkt zu laden. # lora_adapter = automodel.from_pretraed ("arcturusai/kristalline-1.1b-v23.12-tagger") # Hier wird ein Fehler gemeldet.
Bei der Ausführung von lora_adapter = automodel.from_pretrehed ("arcturusai/kristalline-1.1b-v23.12-tagger) wird normalerweise ein Oserror angetroffen, und veranlasst, dass die Standardmodelldateien wie Pytorch_model.bin, tf_model.h5 auf dem Modell fehlt. Dies liegt daran, dass PEFT -Adapter normalerweise nur die Gewichte der Adapterschicht und nicht die vollst?ndige Modellgewichtsdatei und Transformatoren enthalten .Automodel kann dieses Format nicht erkennen. Darüber hinaus funktioniert das PEFT -Modell, anstatt einfach die Gewichte des Basismodells und des Adaptermodells zu gewichten, sondern ihr Verhalten eher zu modifizieren, indem die Adapterschicht in eine bestimmte Schicht des Basismodells injiziert wird. Daher ist die Methode, Gewichte manuell zu verschmelzen, auch logisch falsch.
Richtige Zusammenführungsstrategie: Verwenden Sie merge_and_unload -Methode der PEFT -Bibliothek
Die PEFT -Bibliothek selbst bietet eine offizielle und effiziente M?glichkeit, Adapter mit dem zugrunde liegenden Modell zusammenzuführen: merge_and_unload (). Diese Methode integriert die Adaptergewichte korrekt in die entsprechende Ebene des Basismodells und gibt eine Standard -Transformatoren -Modellinstanz zurück.
1. Laden Sie das PEFT -Adaptermodell
Zun?chst müssen wir eine Klasse in der PEFT -Bibliothek verwenden, die speziell zum Laden von PEFT -Modellen wie AutopeftModelForcausAllm verwendet wird, um den geschulten PEFT -Adapter zu laden. Diese Klasse erkennt und l?dt automatisch den PEFT -Adapter und die zugrunde liegende Modellkonfiguration.
von peft import autopeftmodelforcausallm Taschenlampe importieren # Definieren Sie den lokalen Pfad oder die Umarmung der Gesichtsmodell -ID des PEFT -Adaptermodells # Angenommen, Sie haben das Adaptermodell lokal heruntergeladen, oder Sie k?nnen model_id = "./Arcturusai/kristalline-1.1b-V23.12-tagger" direkt aus dem Umarmung des Gesichts-Hubs # Proben Pfad # Laden des PEFT-Adaptermodells: Das Basismodell und das adapter-Gewicht. model_id, tourch_dtype = t Torch.bfloat16 # W?hlen Sie den entsprechenden DTYPE basierend auf Ihrer Hardware- und Modellgr??e aus ) print (f "Modelltyp nach dem Laden: {type (peft_model)}") # Erwartete Ausgabe: <klasse></klasse>
2. Durchführen von Modellverschmelzung
Nach dem Laden ist PEFT_Model eine PeftModelForcausAllm -Instanz. Durch Aufrufen der Methode merge_and_unload () verbindet die PEFT -Bibliothek die Adaptergewichte automatisch in das Basismodell und gibt eine Standard -Transformatoren -Modellinstanz zurück.
# Ausführen merged_model = peft_model.merge_and_unload () print (f "fusionged Modelltyp: {type (merged_model)}") # Erwartete Ausgabe: <klasse> (oder der Typ, der dem Basismodell entspricht)</klasse>
Zu diesem Zeitpunkt ist merged_model bereits ein vollst?ndiges Modell mit allen erforderlichen Gewichten und kann wie jedes andere Transformatorenmodell verwendet und gespeichert werden.
3.. Speichern Sie das fusionierte Modell
Das fusionierte Modell kann lokal unter Verwendung der SAVE_PRETRAUT -Methode der Transformers Library zur anschlie?enden Lade- und Bereitstellung gespeichert werden.
# Definieren Sie den Speicherpfad Save_directory = "./Arcturusai/Crystalline-1.1b-v23.12-tagger-fullmodel" # Speichern Sie das merged -Modell merged_model.save_pretraed (Save_Directory) print (f "Das fusionierte Modell wurde gespeichert in: {SAVE_DIRECTORY}")
Tokenizer
Es ist zu beachten, dass die Methode merge_and_unload () nur die Gewichte des Modells verarbeitet und keine Wortsegmentierer behandelt. Ein Tokenizer ist eine Komponente, die unabh?ngig von den Gewichten des Modells ist, das für die Konvertierung von Text in eine Folge von Zahlen verantwortlich ist, die das Modell verstehen kann. Daher müssen Sie den Wortsegmentierer für das Basismodell separat laden und in demselben Verzeichnis wie das zusammengeführte Modell speichern, um die Integrit?t des Modells zu gew?hrleisten.
von Transformatoren importieren Autotokenizer # Laden Sie das Wort Segmentierer Basis_Model_Name = "Tinyllama/Tinyllama-1.1b-chat-v0.6" tokenizer = autotokenizer.from_pretrained (Base_model_name) # Speichern Sie das Wort Partizip in demselben Verzeichnis wie das Merge -Modell -Tokenizer. print (f "Wortpartner gespeichert in: {SARE_DIRECTORY}")
Nach Abschluss der oben genannten Schritte enth?lt das Verzeichnis.
Hinweis: Kompatibilit?t von PEFT -Versionen
Bei der Arbeit mit PEFT -Modellen k?nnen Sie Probleme mit Kompatibilit?t zwischen Modellen treffen, die durch verschiedene Versionen der PEFT -Bibliothek geschult wurden. Zum Beispiel k?nnen neuere Versionen von PEFT neue Konfigurationsschlüssel (wie loftq_config, megatron_config, megatron_core) in der Datei adapter_config.json einführen, w?hrend ?ltere Versionen von PEFT diese Schlüssel beim Laden m?glicherweise nicht erkennen, was zu Lademehlern entsteht.
Wenn Sie auf diese Art von Problem sto?en, besteht eine L?sung darin, die Datei adapter_config.json manuell zu bearbeiten und diese inkompatiblen Konfigurationsschlüssel zu entfernen. Dies geschieht normalerweise, wenn Sie versuchen, einen Adapter zu laden, der von einer neueren Version mit einer ?lteren PEFT -Version trainiert wurde.
Beispiel (vorausgesetzt, Sie haben das Modell lokal heruntergeladen und müssen ge?ndert werden):
- Laden Sie das Modell herunter: Stellen Sie sicher, dass das PEFT -Adaptermodell auf den lokalen Pfad heruntergeladen wurde.
- Position adapter_config.json: Ermitteln Sie die Datei adapter_config.json unter dem Modellpfad.
- Datei bearbeiten: ?ffnen Sie adapter_config.json mit einem Texteditor.
- Entfernen Sie inkompatible Schlüssel: Finden und l?schen Sie Schlüsselwertpaare wie "loftq_config": null, "megatron_config": {}, "megatron_core": {} usw. usw.
- Speichern Sie die Datei: Speichern Sie den ge?nderten adapter_config.json.
Wichtig: Diese manuelle ?nderung von Konfigurationsdateien sollte als tempor?re L?sung verwendet werden und nur, wenn Sie klar wissen, welche Schlüssel die Quelle des Problems sind. Die beste Praxis besteht darin, zu versuchen, die PEFT -Bibliotheksversion konsistent zu halten oder die PEFT -Version der Bereitstellungsumgebung beim Training zu berücksichtigen.
Zusammenfassen
Das Zusammenführen eines PEFT LORA -Adapters mit dem Basismodell ist ein relativ einfacher Prozess, und der Schlüssel besteht darin, die von der PEFT -Bibliothek bereitgestellten richtigen Tools zu verwenden. Laden Sie den Adapter über autopeftmodelforcausAllm und rufen Sie dann die Methode merge_and_unload () auf, um das Modell mit dem Modell effizient zu vervollst?ndigen. Vergessen Sie gleichzeitig nicht, den Word -Segmentierer separat zu verarbeiten und es mit dem fusionierten Modell zu speichern, um die Integrit?t und Bequemlichkeit der Modellbereitstellung zu gew?hrleisten. Achten Sie beim Umgang mit Modellen, die mit verschiedenen Versionen von PEFT geschult sind, und achten Sie auf potenzielle Kompatibilit?tsprobleme und ergreifen Sie geeignete Ma?nahmen, um sie zu beheben.
Das obige ist der detaillierte Inhalt vonEffiziente Zusammenführungsstrategie des PEFT LORA -Adapters und des Basismodells. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Stock Market GPT
KI-gestützte Anlageforschung für intelligentere Entscheidungen

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

In diesem Tutorial wird beschrieben, wie der PEFT LORA -Adapter mit dem Basismodell effizient zusammengeführt werden kann, um ein v?llig unabh?ngiges Modell zu generieren. Der Artikel weist darauf hin, dass es falsch ist, Transformatoren direkt zu verwenden. Automodel zum Laden des Adapters und zum manuellen Zusammenführen der Gewichte und bietet den richtigen Prozess zur Verwendung der Methode merge_and_unload in der PEFT -Bibliothek. Darüber hinaus unterstreicht das Tutorial auch die Bedeutung des Umgangs mit Word -Segmentern und diskutiert die Kompatibilit?t und L?sungen von PEFT -Versionen.

Führen Sie Pipinstall-Rrequirements.txt aus, um das Abh?ngigkeitspaket zu installieren. Es wird empfohlen, zun?chst die virtuelle Umgebung zu erstellen und zu aktivieren, um Konflikte zu vermeiden, sicherzustellen, dass der Dateipfad korrekt ist und dass die PIP aktualisiert wurde, und Optionen wie-No-Deps oder -User, um das Installationsverhalten bei Bedarf anzupassen.

Python ist ein einfaches und leistungsstarkes Testwerkzeug in Python. Nach der Installation werden Testdateien automatisch gem?? den Namensregeln ermittelt. Schreiben Sie eine Funktion, die mit Test_ für Assertionstests beginnt, verwenden Sie @PyTest.Fixure, um wiederverwendbare Testdaten zu erstellen, die Ausnahmen über pyTest.raises zu überprüfen, unterstützt die laufenden Tests und mehrere Befehlszeilenoptionen und verbessert die Testeneffizienz.

TheArgParSemoduleiTherecommendedwaytoHandleCommand-Lineargumentesinpython, das Robustparsing, Typevalidation, Helpsages, AndersHandling berücksichtigt; usesys.argvForSimpecaseSeRequiringMinimalsetup.

Dieser Artikel zielt darauf ab, das gemeinsame Problem der unzureichenden Berechnungsgenauigkeit der schwimmenden Punktzahlen in Python und Numpy zu untersuchen, und erkl?rt, dass seine Grundursache in der Darstellungsbeschr?nkung der Standardzahlen der 64-Bit-Schwimmpunkte liegt. Für Computerszenarien, die eine h?here Genauigkeit erfordern, wird der Artikel die Nutzungsmethoden, -funktionen und anwendbaren Szenarien von mathematischen Bibliotheken mit hoher Pr?zision einführen und vergleichen

In diesem Artikel wird beschrieben, wie die Funktion merge_and_unload der PEFT-Bibliothek verwendet wird, um den LORA-Adapter effizient und genau in das grundlegende Gro?sprachmodell zu verschmelzen, wodurch ein brandneues Modell mit integriertem Feinabstimmungswissen erstellt wird. Der Artikel korrigiert gemeinsame Missverst?ndnisse über Ladeadapter und das manuelle Zusammenführen von Modellgewichten durch Transformers.Automodel und bietet vollst?ndige Code -Beispiele, darunter Modellverschmelzung, Word -Segmentiererverarbeitung und professionelle Anleitung zur L?sung potenzieller Versionskompatibilit?tsprobleme, um reibungslose Verschmelzungsprozesse zu gew?hrleisten.

PYPDF2, PDFPLUMBER und FPDF sind die Kernbibliotheken für Python, um PDF zu verarbeiten. Verwenden Sie PYPDF2, um die Textextraktion, das Zusammenführen, die Aufteilung und die Verschlüsselung durchzuführen, z. PDFPLUMBER eignet sich besser zum Aufbewahren von Layout -Textextraktion und Tabellenerkennung und unterstützt extract_tables (), um Tabellendaten genau zu erfassen. FPDF (empfohlene FPDF2) wird zum Generieren von PDF verwendet, und es werden Dokumente erstellt und über add_page (), set_font () und cell () ausgegeben. Beim Zusammenführen von PDFs kann die append () -Methode von PDFWriter mehrere Dateien integrieren

Importieren Sie@contextManagerfromContextLibanddefinaGeneratorFunctionThatyieldSexactlyonce, whercodeBeforyieldactsasenterandCodeafteryield (vorzugsweise infinal) actsas __exit __. 2.UsetheFunctionInaThstatement, wherheided ValuesieScessable
