Apa itu LoRa (adaptasi peringkat rendah)?

Penulis

Joshua Noble

Data Scientist

Apa itu LoRA?

Adaptasi peringkat rendah (LoRA) adalah teknik yang digunakan untuk mengadaptasi model machine learning dengan konteks baru. Teknik ini dapat menyesuaikan model besar untuk penggunaan tertentu dengan menambahkan bagian yang ringan ke model aslinya tanpa mengubah seluruh model. Seorang ilmuwan data dapat dengan cepat memperluas cara model dapat digunakan daripada mengharuskan mereka untuk membangun model yang sama sekali baru.

Teknik ini awalnya dipublikasikan oleh Edward Hu, Yelong Shen, dan kolaborator dalam makalah mereka yang berjudul LoRA: Low-Rank Adaptation Of Large Language Models 1. Dalam makalah tersebut, mereka menunjukkan bahwa model yang direduksi dan dilatih ulang menggunakan LoRA mengungguli model dasar pada berbagai tugas tolok ukur. Kinerja model dapat ditingkatkan tanpa memerlukan penyempurnaan penuh dan dengan menggunakan parameter model yang dapat dilatih dalam jumlah yang sangat kecil.

Tren AI terbaru, dipersembahkan oleh para pakar

Dapatkan kurasi insight tentang berita AI yang paling penting dan menarik. Berlangganan buletin Think mingguan. Lihat Pernyataan Privasi IBM.

Terima kasih! Anda telah berlangganan.

Langganan Anda akan dikirimkan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM kami untuk informasi lebih lanjut.

Apa yang dilakukan LoRA?

Model machine learning yang besar dan kompleks, seperti yang digunakan untuk model bahasa besar (LLM) seperti ChatGPT, memerlukan waktu yang lama dan sangat banyak sumber daya untuk menyiapkannya. Mereka mungkin memiliki triliunan parameter yang diatur ke nilai tertentu. Setelah proses ini selesai, model mungkin akan kuat dan akurat secara umum, tetapi belum tentu disempurnakan untuk melakukan tugas-tugas tertentu.

Mendapatkan model untuk bekerja dalam konteks tertentu dapat memerlukan banyak pelatihan ulang, mengubah semua parameternya. Dengan jumlah parameter dalam model seperti itu, pelatihan ulang ini mahal dan memakan waktu. LoRA menyediakan cara cepat untuk mengadaptasi model tanpa harus melatihnya kembali.

Sebagai contoh, penyempurnaan penuh model GPT-3 membutuhkan pelatihan 175 miliar parameter karena ukuran kumpulan data pelatihannya. Menggunakan LoRa, parameter yang dapat dilatih untuk GPT-3 dapat dikurangi menjadi sekitar 18 juta parameter, yang mengurangi kebutuhan memori GPU sekitar dua pertiga.

LoRa bukan satu-satunya metode penyempurnaan yang efisien. Varian LoRa adalah kuantisasi LoRa (QLoRa), teknik penyempurnaan yang menggabungkan teknik komputasi presisi tinggi dengan metode penyimpanan presisi rendah. Teknik ini membantu menjaga ukuran model tetap kecil sekaligus tetap memastikan bahwa kinerja model tetap sangat tinggi dan akurat.

Mixture of Experts | 12 Desember, episode 85

Decoding AI: Rangkuman Berita Mingguan

Bergabunglah dengan panel insinyur, peneliti, pemimpin produk, dan sosok kelas dunia lainnya selagi mereka mengupas tuntas tentang AI untuk menghadirkan berita dan insight terbaru seputar AI.

Cara kerja LoRA

Alih-alih melatih ulang seluruh model, LoRa mengunci bobot dan parameter asli model sebagaimana adanya. Kemudian, di atas model asli ini, ia menambahkan tambahan ringan yang disebut matriks peringkat rendah, yang kemudian diterapkan pada input baru untuk mendapatkan hasil khusus untuk konteks. Matriks peringkat rendah menyesuaikan bobot model asli sehingga output cocok dengan contoh penggunaan yang diinginkan.

LoRA memanfaatkan konsep matriks peringkat rendah untuk membuat proses pelatihan model menjadi luar biasa efisien dan cepat. LLM yang disempurnakan secara tradisional membutuhkan penyesuaian seluruh model. LoRA berfokus pada modifikasi bagian parameter yang lebih kecil (matriks peringkat rendah) untuk mengurangi overhead komputasi dan memori.

Diagram ini menunjukkan bagaimana LoRA memperbarui matriks A dan B untuk melacak perubahan dalam bobot yang telah dilatih sebelumnya menggunakan matriks yang lebih kecil dengan peringkat r. Setelah pelatihan LoRa selesai, bobot yang lebih kecil digabungkan ke dalam matriks bobot baru, tanpa perlu memodifikasi bobot asli dari model yang telah dilatih sebelumnya.

Gambar menunjukkan bagaimana adaptasi peringkat rendah mengurangi ukuran model

LoRa dibangun di atas pemahaman bahwa model besar secara inheren memiliki struktur dimensi rendah. Dengan memanfaatkan matriks lebih kecil yang disebut matriks peringkat rendah, LoRa menyesuaikan model ini secara efektif. Metode ini berfokus pada konsep inti bahwa perubahan model yang signifikan dapat ditunjukkan dengan parameter yang lebih sedikit, sehingga membuat proses adaptasi menjadi lebih efisien.

Matriks adalah bagian penting dari cara kerja model machine learning dan neural networks. Matriks peringkat rendah lebih kecil dan memiliki nilai lebih sedikit daripada matriks peringkat yang lebih besar atau lebih tinggi. Mereka tidak memakan banyak memori dan membutuhkan lebih sedikit langkah untuk menambahkan atau mengalikannya, sehingga lebih cepat diproses oleh komputer.

Matriks peringkat tinggi dapat diuraikan menjadi dua matriks peringkat rendah, matriks 4 x 4 dapat diuraikan menjadi matriks 4 x 1 dan 1 x 4.

Gambar menunjukkan bagaimana matriks 4 kali 4 dapat dikurangi menjadi matriks 1 kali 4 dan 4 kali 1

LoRa menambahkan matriks peringkat rendah ke model machine learning asli yang dikunci. Matriks peringkat rendah diperbarui melalui penurunan gradien selama penyempurnaan tanpa mengubah bobot model dasar. Matriks ini berisi bobot baru untuk diterapkan pada model saat membuat hasil. Matriks perubahan yang dikalikan ditambahkan ke bobot model dasar untuk mendapatkan model akhir yang disempurnakan dengan baik. Proses ini mengubah output yang dihasilkan model dengan daya komputasi dan waktu pelatihan minimal.

Intinya, LoRa menjaga model asli tidak berubah dan menambahkan bagian kecil yang dapat diubah ke setiap lapisan model. Hal ini secara signifikan mengurangi parameter model yang dapat dilatih dan kebutuhan memori GPU untuk proses pelatihan, yang merupakan tantangan signifikan lainnya apabila menyangkut penyempurnaan atau pelatihan model besar.

Untuk menerapkan penyempurnaan LoRa dengan HuggingFace menggunakan Python dan PyTorch, pengembang dapat menggunakan pustaka penyempurnaan dengan parameter yang efisien (PEFT) untuk menyuntikkan adaptor LoRa ke dalam model dan menggunakannya sebagai matriks pembaruan. Pustaka ini tersedia secara gratis melalui HuggingFace atau GitHub. Pustaka ini memberikan cara mengonfigurasi parameter LoRa untuk model Anda. Beberapa parameter yang paling umum digunakan adalah:

r: peringkat dari matriks pembaruan, dinyatakan dalam int. Hasil penguraian peringkat yang lebih rendah dalam matriks pembaruan yang lebih kecil dengan parameter dapat dilatih yang lebih sedikit.

target_modules: Modul (contohnya, blok perhatian) untuk menerapkan matriks pembaruan LoRA.

lora_alpha: Faktor penskalaan LoRA.

Keuntungan dari LoRA

Salah satu keuntungan utama dari LoRA adalah bahwa model dasar dapat dibagikan dan digunakan untuk membangun banyak modul LoRA kecil untuk berbagai tugas baru. Model bersama dikunci, yang memungkinkan pengguna untuk beralih tugas dengan mengganti matriks bobot LoRa. Alih-alih memerlukan dua model berbeda, satu model dapat digunakan dalam tugas yang berbeda, namun tetap mempertahankan kinerja dari penyempurnaan.

LoRA membuat pelatihan menjadi lebih efisien dan menurunkan hambatan perangkat keras untuk memulai karena pengguna tidak perlu menghitung gradien atau mempertahankan status pengoptimal untuk sebagian besar parameter. Sebaliknya, proses ini hanya membutuhkan pengoptimalan matriks peringkat rendah yang jauh lebih kecil.

Desain linier LoRa memungkinkan ilmuwan data untuk menggabungkan matriks yang dapat dilatih dengan bobot model terlatih dikunci saat penerapan sehingga tidak menyebabkan latensi inferensi, dibandingkan dengan model yang dibuat dengan penyempurnaan penuh.

LoRA dapat dikombinasikan dengan teknik lain untuk meningkatkan kinerja model seperti penyetelan awalan yang membuatnya fleksibel.

Kelemahan

Meskipun LoRa menghasilkan pengurangan yang signifikan dalam jumlah parameter yang dapat dilatih, namun ada kekurangannya. Proses ini menciptakan kehilangan informasi selama dekomposisi matriks. Karena LoRA mengurangi matriks bobot penuh menjadi komponen yang lebih kecil, beberapa detail dapat hilang dalam prosesnya. Ini sama seperti model overfitting. Namun, dalam kasus LLM, kesalahannya sering kali minimal karena model pembelajaran mendalam mengalami parameterisasi berlebihan—artinya, model ini mengandung lebih banyak parameter daripada yang diperlukan untuk tugas tersebut. “Parameterisasi berlebihan” berarti bahwa model ini sering kali lebih besar dari yang seharusnya untuk data pelatihan. Tidak semua parameter sangat penting. Ada redundansi, ketangguhan, dan ketahanan dalam parameter. Menghilangkan ketahanan ini dapat membuat model menjadi kurang akurat, sehingga peringkat matriks pembaruan dapat disetel sebagai bagian dari proses LoRA.

Solusi terkait
Model dasar

Jelajahi pustaka model dasar IBM di portfolio watsonx untuk menskalakan AI generatif untuk bisnis Anda dengan percaya diri.

Temukan watsonx.ai
Solusi kecerdasan buatan (AI)

Gunakan AI di bisnis Anda dengan keahlian AI terdepan di industri dan portofolio solusi dari IBM.

Jelajahi solusi AI
Konsultasi dan layanan AI

Rancang ulang alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.

Jelajahi layanan AI
Ambil langkah selanjutnya

Jelajahi pustaka model dasar IBM dalam portofolio IBM watsonx untuk menskalakan AI generatif untuk bisnis Anda dengan penuh percaya diri.

Temukan watsonx.ai Jelajahi model AI IBM Granite
Catatan kaki

1. Hu, Edward, et al, LoRA: Low-Rank Adaptation of Large Language Models, 2021