


Cara menggabungkan penyesuai lora dengan betul dengan model asas
Sep 17, 2025 pm 02:51 PMMemahami cabaran dan cara yang betul untuk menggabungkan penyesuai PEFT
Setelah penalaan model bahasa yang besar menggunakan parameter teknologi penalaan yang cekap (PEFT), terutamanya LORA (penyesuaian peringkat rendah), keperluan umum adalah untuk menggabungkan penyesuai terlatih dengan model asas asal untuk membentuk model baru yang bebas, lengkap, dan langsung. Walau bagaimanapun, ramai pemula boleh cuba memuatkan penyesuai secara langsung menggunakan automodel.From_pretrained dari Perpustakaan Transformers, atau cuba untuk menggabungkan secara manual State_dict kedua -dua model, yang biasanya membawa kepada kesilapan.
Mengapa kaedah tradisional tidak boleh dilaksanakan?
- Batasan automodel.from_pretrained: Penyesuai PEFT bukan model lengkap, ia hanya mengandungi sedikit berat yang diubahsuai semasa penalaan halus. transformers.automodel.from_pretrained mengharapkan untuk memuatkan fail model (seperti pytorch_model.bin) dengan struktur model lengkap dan semua berat. Apabila ia cuba memuatkan dari direktori yang hanya mengandungi berat penyesuai, oserror dilemparkan kerana fail model yang diharapkan tidak dijumpai.
- Salah faham secara manual menggabungkan state_dict: Prinsip kerja PEFT adalah untuk menyuntik matriks peringkat rendah ke dalam lapisan tertentu model asas, dan bukannya secara langsung mengubah suai keseluruhan berat model asas. Oleh itu, hanya purata wajaran dari state_dict model asas dan penyesuai (seperti 0.8 * pretrained_weights 0.2 * lora_adapter_weights) adalah tidak sah kerana struktur berat penyesuai tidak secara langsung sesuai dengan struktur berat penuh model asas, dan operasi ini tidak dapat digunakan dengan betul menggunakan model asas lora.
Perkara yang betul untuk dilakukan ialah memanfaatkan kuasa perpustakaan PEFT itu sendiri, yang telah menyediakan kami dengan alat khusus untuk menggabungkan penyesuai.
Gabungkan Adapter Lora Menggunakan PeFt Library
Perpustakaan PEFT merancang kelas dan kaedah khusus untuk mengendalikan model penyesuai. Idea teras adalah untuk memuatkan model dengan penyesuai terlebih dahulu, dan kemudian panggil fungsi gabungan terbina dalamnya.
1. Muatkan model penyesuai PEFT
Untuk memuatkan model penyesuai PEFT, kita harus menggunakan autopeftmodelforcausallm (atau AutopeftModelfor lain ... kelas untuk tugas tertentu). Kelas ini mengiktiraf dan betul memuatkan model asas dan berat penyesuai dengan konfigurasi LORA.
Berikut adalah contoh kod untuk memuatkan model penyesuai:
Dari PEFT Import Autopeftmodelforcausallm obor import # Anggap model penyesuai PEFT anda disimpan di jalan tempatan# atau dimuat secara langsung dari hab muka yang memeluk, seperti "Arcturusai/Crystalline-1.1B-V23.12-Tagger" # Untuk laluan tempatan, pastikan struktur direktori model betul model_id = "./arcturusai/crystalline-1.1b-v23.12-tagger" # Memuatkan model dengan penyesuai PEFT# Jika model asas anda adalah penyebab, gunakan autopeftmodelforcausallm # Sekiranya tugas lain, sila pilih AutopeftModelfor yang sepadan ... peft_model = autopeftmodelforcausallm.from_pretrained ( model_id, TORCH_DTYPE = obor.bfloat16 # disyorkan untuk menentukan jenis data, seperti bfloat16 atau float16, untuk menjimatkan ingatan) cetak (f "jenis model selepas memuat: {type (peft_model)}") # Output yang dijangkakan: <kelas></kelas>
Autopeftmodelforcausallm.from_pretrained secara automatik mengendalikan pemuatan model asas dan penggunaan berat penyesuai, menjadikannya contoh peftmodelforcausallm.
2. Melaksanakan operasi gabungan
Selepas memuatkan model penyesuai, objek PEFTModel menyediakan kaedah yang mudah Merge_and_unload (), yang bertanggungjawab untuk menggabungkan berat penyesuai ke dalam lapisan yang sepadan dengan model asas dan mengembalikan contoh model Transformers tulen.
# Melakukan gabungan_model = peft_model.merge_and_unload () cetak (f "jenis model yang digabungkan: {type (red_model)}") # Contoh output yang diharapkan: <kelas> # Jenis tertentu bergantung pada seni bina model asas anda</kelas>
Kaedah Merge_and_unload () akan:
- Multiply dan tambahkan matriks berat LORA (A dan B) dengan matriks berat asal model asas untuk mengemas kini berat model asas.
- Keluarkan pembalut berkaitan PEFT dan kembalikan contoh transformer.pretrainedmodel standard, yang mengandungi semua pengetahuan selepas penalaan halus.
3. Simpan model yang digabungkan
Model Transformers yang digabungkan kini digabungkan, anda boleh menyimpannya seperti model Transformers lain:
# Tentukan Jimat Jimat Save_Directory = "Arcturusai/Crystalline-1.1B-V23.12-Tagger-Fullmodel" # Simpan model yang digabungkan MERGED_MODEL.SAVE_PRETRAINED (SAVE_DIRECTORY) cetak (f "Model yang digabungkan telah disimpan ke: {save_directory}")
Tokenizer
Harus diingat bahawa kaedah Merge_and_unload () hanya memproses berat model. Pakej model lengkap biasanya juga perlu memasukkan tokenizer yang sepadan. Oleh kerana penalaan halus lora biasanya tidak mengubah participle perkataan, anda perlu memuatkan participle perkataan dari pustaka model asas asal dan simpannya dengan model yang digabungkan.
Dari Transformers Import Autotokenizer # Muatkan perkataan segmene base_model_tokenizer_id = "tinyllama/tinyllama-1.1b-chat-v0.6" tokenizer = autotokenizer.from_pretrained (base_model_tokenizer_id) # Simpan perkataan participle ke direktori yang sama dengan model gabungan tokenizer.save_pretrained (save_directory) cetak (f "Kata participle telah dimuatkan dari {base_model_tokenizer_id} dan disimpan ke: {save_directory}")
Selepas melengkapkan langkah -langkah di atas, Save_Directory akan mengandungi model lengkap, boleh dimuat dan digunakan secara langsung, termasuk berat model gabungan dan participle perkataan yang sepadan.
Isu dan langkah berjaga -jaga yang berpotensi
Keserasian versi PEFT:
Perpustakaan PEFT sentiasa berkembang, dan mungkin terdapat masalah keserasian fail konfigurasi antara versi yang berbeza. Sebagai contoh, jika anda melatih model dengan versi PEFT yang lebih lama dan kemudian cuba memuatkan dan bergabung dengan versi baru PEFT, anda mungkin menghadapi ralat. Ini biasanya ditunjukkan sebagai medan dalam adapter_config.json yang diperkenalkan di PEFT baru tetapi tidak wujud dalam versi lama, atau sebaliknya.
Penyelesaian: Jika anda menghadapi ralat beban, dan beberapa kunci dalam adapter_config.json tidak serasi, anda boleh cuba mengedit secara manual fail adapter_config.json untuk mengeluarkan kunci yang menyebabkan masalah. Kekunci umum yang mungkin perlu dikeluarkan termasuk:
- loftq_config
- megatron_config
- megatron_core
Selepas mengeluarkan kunci ini, cuba memuatkan model lagi. Adalah disyorkan untuk menyandarkan fail adapter_config.json asal sebelum melakukan ini.
Amalan Terbaik:
- Pengurusan Versi: Cuba gunakan versi PEFT yang sama atau serasi apabila latihan dan penggabungan model.
- Pengasingan Alam Sekitar: Gunakan persekitaran maya untuk menguruskan kebergantungan projek untuk memastikan konsistensi versi ketergantungan.
- Semak dokumentasi: Apabila menghadapi masalah, periksa dokumentasi rasmi Perpustakaan PEFT untuk memahami perubahan dan keperluan keserasian antara versi yang berbeza.
Meringkaskan
Menggabungkan penyesuai PEFT LORA dengan model asas adalah proses langsung dan cekap. Kuncinya adalah menggunakan kaedah autopeftModelForCausAllm dan Merge_and_unload () yang disediakan oleh Perpustakaan PEFT. Dengan mengelakkan salah faham penyusunan semula berat manual dan mengendalikan segmentasi perkataan dengan betul, anda boleh dengan mudah membuat dan menggunakan model mandiri dengan pengetahuan penalaan halus. Pada masa yang sama, perhatikan isu keserasian versi PEFT dan laraskan fail konfigurasi jika perlu, untuk memastikan pelaksanaan lancar keseluruhan proses.
Atas ialah kandungan terperinci Cara menggabungkan penyesuai lora dengan betul dengan model asas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Tutorial ini memperincikan bagaimana untuk menggabungkan penyesuai LORA PEFT dengan model asas untuk menghasilkan model yang sepenuhnya bebas. Artikel ini menunjukkan bahawa adalah salah untuk menggunakan transformer.automodel secara langsung untuk memuatkan penyesuai dan menggabungkan berat secara manual, dan menyediakan proses yang betul untuk menggunakan kaedah Merge_and_unload di perpustakaan PEFT. Di samping itu, tutorial juga menekankan pentingnya menangani segmen perkataan dan membincangkan isu dan penyelesaian keserasian versi PEFT.

Jalankan pipinstall-rrequirements.txt untuk memasang pakej ketergantungan. Adalah disyorkan untuk mencipta dan mengaktifkan persekitaran maya terlebih dahulu untuk mengelakkan konflik, memastikan bahawa laluan fail adalah betul dan PIP telah dikemas kini, dan menggunakan pilihan seperti-tidak-deps atau-pengguna untuk menyesuaikan tingkah laku pemasangan jika perlu.

Python adalah alat ujian yang mudah dan berkuasa di Python. Selepas pemasangan, fail ujian ditemui secara automatik mengikut peraturan penamaan. Tulis fungsi bermula dengan ujian untuk ujian pernyataan, gunakan @pytest.fixture untuk membuat data ujian yang boleh diguna semula, mengesahkan pengecualian melalui pytest.raises, menyokong menjalankan ujian tertentu dan pelbagai pilihan baris arahan, dan meningkatkan kecekapan ujian.

TheargParsemoduleisThereMendingWayOhandLecommand-lineargumentsinpython, menyediakan robrobustparsing, typevalidation, helpmessages, anderrorhandling; usesy.argvforsimplecasesrequiringminiminalsetup.

Artikel ini bertujuan untuk meneroka masalah biasa ketepatan pengiraan yang tidak mencukupi bagi nombor titik terapung di Python dan Numpy, dan menjelaskan bahawa punca akarnya terletak pada batasan perwakilan nombor terapung 64-bit standard. Untuk senario pengkomputeran yang memerlukan ketepatan yang lebih tinggi, artikel itu akan memperkenalkan dan membandingkan kaedah penggunaan, ciri-ciri dan senario yang berkenaan dengan perpustakaan matematik ketepatan tinggi seperti MPMATH, SYMPY dan GMPY untuk membantu pembaca memilih alat yang tepat untuk menyelesaikan keperluan ketepatan yang rumit.

Artikel ini memperincikan cara menggunakan fungsi Merge_and_unload Perpustakaan PEFT untuk menggabungkan penyesuai LORA secara efisien dan tepat ke dalam model bahasa asas yang besar, dengan itu mewujudkan model baru dengan pengetahuan penalaan yang bersepadu. Artikel ini membetulkan kesalahpahaman umum tentang memuatkan penyesuai dan menggabungkan berat model secara manual melalui transformer.automodel, dan menyediakan contoh kod lengkap termasuk penggabungan model, pemprosesan segmen perkataan, dan panduan profesional untuk menyelesaikan masalah keserasian versi berpotensi untuk memastikan proses penggabungan yang lancar.

PYPDF2, PDFPlumber dan FPDF adalah perpustakaan teras untuk Python untuk memproses PDF. Gunakan pypdf2 untuk melakukan pengekstrakan teks, penggabungan, pemisahan dan penyulitan, seperti membaca halaman melalui pdfreader dan memanggil extract_text () untuk mendapatkan kandungan; PDFplumber lebih sesuai untuk mengekalkan pengekstrakan teks susun atur dan pengiktirafan jadual, dan menyokong extract_tables () untuk menangkap data jadual dengan tepat; FPDF (disyorkan FPDF2) digunakan untuk menjana PDF, dan dokumen dibina dan dikeluarkan melalui add_page (), set_font () dan sel (). Apabila menggabungkan PDF, kaedah tambahan PDFWriter () dapat mengintegrasikan pelbagai fail

Import@contextManagerFromContextLibandDefineageneratorfunctionThatTyieldSexactlyonce, whereCodeBeforeyieldActSasenterandCodeAfteryield (PreferitlySinfinal) actsas __
