Pelajari cara menjalankan Alpaca-LoRA di perangkat Anda dengan panduan komprehensif ini. Temukan bagaimana model sumber terbuka ini memanfaatkan teknologi LoRA untuk menawarkan solusi chatbot AI yang kuat namun efisien.
Seiring AI generatif semakin populer, pengembang di seluruh dunia berlomba memanfaatkan peluang untuk membangun aplikasi menarik dengan bahasa alami. Satu alat khususnya mendapat banyak sorotan belakangan ini: ChatGPT.
ChatGPT adalah model bahasa yang dikembangkan oleh OpenAI. Tujuannya adalah menjadi chatbot bertenaga AI yang mampu berdialog layaknya manusia. Meskipun sangat bermanfaat, alat ini bukan tanpa masalah. ChatGPT bukan sumber terbuka, artinya kode sumbernya tidak dapat diakses dan tidak dapat dimodifikasi. Selain itu, ia sangat boros sumber daya, sehingga membangun implementasi sendiri bukanlah solusi yang baik.
Masalah-masalah tersebut melahirkan serangkaian alternatif ChatGPT, seperti Alpaca-LoRA, yang mampu berfungsi seperti ChatGPT tetapi dengan lisensi sumber terbuka dan kebutuhan sumber daya yang lebih rendah.
Dalam tutorial ini, kita akan fokus khusus pada Alpaca-LoRA. Kita akan membahas apa itu, prasyarat untuk menjalankannya di perangkat Anda, dan langkah-langkah untuk mengeksekusinya.
Apa itu Alpaca LoRA?
Pada awal Maret 2023, Eric J. Wang merilis proyek Alpaca-LoRA. Ini adalah proyek yang berisi kode untuk mereproduksi hasil Standford Alpaca menggunakan Parameter-Efficient Fine-Tuning (PEFT); ini adalah pustaka yang memungkinkan pengembang melakukan fine-tuning pada model berbasis transformer menggunakan LoRA.
Memahami LoRA
Low-Rank Adaptation pada Large Language Models (LoRA) adalah metode untuk mempercepat proses pelatihan model besar sambil menggunakan lebih sedikit memori.
Begini cara kerjanya:
Membekukan bobot yang ada. Bayangkan model sebagai jaring kompleks dari node yang saling terhubung (ini adalah "bobot"). Biasanya, Anda akan menyesuaikan semua node ini selama pelatihan untuk meningkatkan model. LoRA berkata, "Jangan sentuh yang ini; biarkan tetap seperti adanya."
Menambahkan bobot baru. LoRA kemudian menambahkan beberapa koneksi baru yang lebih sederhana (bobot baru) ke jaring ini.
Melatih hanya bobot baru. Alih-alih menyesuaikan seluruh jaring yang kompleks, Anda hanya fokus memperbaiki koneksi baru yang lebih sederhana ini.
Dengan cara ini, Anda menghemat waktu dan memori komputer sambil tetap membuat model Anda lebih baik dalam menjalankan tugasnya.
Keunggulan LoRA
Keunggulan LoRA meliputi:
Portabilitas - Matriks bobot dekomposisi-rank memiliki jauh lebih sedikit parameter yang dapat dilatih dibandingkan model asli; karena itu, bobot LoRA yang telah dilatih mudah dipindahkan dan dapat dijalankan di Rasberry Pi.
Aksesibilitas – Dibandingkan dengan fine-tuning konvensional, LoRa terbukti secara signifikan mengurangi penggunaan memori GPU; ini memungkinkan fine-tuning dilakukan pada GPU konsumen seperti Tesla T4, RTX 3080, atau bahkan RTX 2080 Ti.
Alpaca: Model Sumber Terbuka
Sementara itu, Alpaca adalah model bahasa AI sumber terbuka yang di-finetune untuk instruksi, berbasis Large Language Model Meta AI (LLaMA). Model ini dikembangkan oleh tim peneliti di Stanford University dengan tujuan membuat model bahasa besar (LLM) lebih mudah diakses.
Dan inilah yang membawa kita ke Alpaca-LoRA.
Model Alpaca-LoRA adalah versi Stanford Alpaca yang lebih hemat sumber daya, yang memanfaatkan LoRA untuk mempercepat proses pelatihan sambil menggunakan lebih sedikit memori.
Prasyarat Alpaca-LoRA
Untuk menjalankan model Alpaca-LoRA secara lokal, Anda harus memiliki GPU. Bisa GPU spesifikasi rendah seperti NVIDIA T4 atau GPU konsumen seperti 4090. Menurut Eric J. Wang, pembuat proyek ini, model tersebut "berjalan dalam hitungan jam pada satu RTX 4090."
Catatan: instruksi dalam artikel ini mengikuti yang disediakan di repositori Alpaca-LoRA oleh Eric J. Wang.
Cara Menjalankan Alpaca-LoRA dalam 4 Langkah
Langkah 1: Buat virtual environment (Opsional)
Virtual environment adalah kontainer terisolasi untuk menyimpan dependensi terkait Python yang dibutuhkan proyek tertentu. Ini membantu menjaga dependensi untuk proyek berbeda tetap terpisah, sehingga memudahkan berbagi proyek dan mengurangi konflik dependensi.
Tidak wajib menggunakannya untuk menjalankan model Alpaca-LoRA, tetapi dianjurkan.
Untuk membuat virtual environment menggunakan command prompt di sistem operasi Windows, jalankan perintah berikut:
Langkah pertama untuk menjalankan model Alpaca-LoRA adalah mengkloning repositori dari GitHub dan menginstal dependensi yang diperlukan untuk eksekusi.
Gunakan perintah berikut untuk menginstal repositori GitHub:
git clone https://github.com/tloen/alpaca-lora.gitDidukung oleh
Lalu navigasikan ke repositori alpaca-lora yang baru saja Anda instal dengan:
Repositori alpaca-lora berisi berkas bernama finetune.py. finetune.py memuat penerapan sederhana Parameter-Efficient Fine-Tuning (PEFT) pada model LLaMA, di antara hal lainnya.
Inilah berkas yang harus Anda eksekusi jika ingin menyetel hyperparameter model, namun tidak wajib. Menurut penulis repositori, “Tanpa penyetelan hyperparameter, model LoRA menghasilkan keluaran yang sebanding dengan model Stanford Alpaca. Penyetelan lebih lanjut mungkin dapat mencapai kinerja yang lebih baik [...].”
Berikut contoh cara menggunakan berkas finetune.py:
Di repositori alpaca-lora juga ada berkas bernama generate.py. Menjalankan generate.py akan melakukan hal-hal berikut:
Membaca model dasar dari Hugging Face model hub
Membaca bobot model dari tloen/alpaca-lora-7b
Menjalankan antarmuka Gradio tempat inferensi dilakukan pada input yang ditentukan.
Pada saat penulisan, adapter Alpaca-LoRA terbaru yang digunakan untuk melatih model adalah alpaca-lora-7b. Ini dilakukan pada 26 Maret 2023 dengan perintah berikut:
Alpaca-LoRA adalah versi Stanford Alpaca yang lebih hemat sumber daya. Tujuan ini dicapai dengan memanfaatkan low-rank adaptation pada large language models (LoRA), yang mempercepat proses pelatihan sambil menggunakan jauh lebih sedikit memori dibandingkan model Alpaca asli.
Pelajari lebih lanjut tentang large language models (LLM) dan AI generatif melalui tutorial berikut:
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Pelajari cara mulai memanfaatkan AI generatif secara bertanggung jawab. Pelajari cara model AI generatif dikembangkan dan dampaknya bagi masyarakat ke depan.
Pelajari dasar-dasar kecerdasan buatan (AI), pelajari cara memanfaatkan AI secara efektif untuk pekerjaan, dan jelajahi model seperti ChatGPT untuk memahami lanskap AI yang dinamis.
Seiring AI generatif semakin populer, pengembang di seluruh dunia berlomba memanfaatkan peluang untuk membangun aplikasi menarik dengan bahasa alami. Satu alat khususnya mendapat banyak sorotan belakangan ini: ChatGPT.
ChatGPT adalah model bahasa yang dikembangkan oleh OpenAI. Tujuannya adalah menjadi chatbot bertenaga AI yang mampu berdialog layaknya manusia. Meskipun sangat bermanfaat, alat ini bukan tanpa masalah. ChatGPT bukan sumber terbuka, artinya kode sumbernya tidak dapat diakses dan tidak dapat dimodifikasi. Selain itu, ia sangat boros sumber daya, sehingga membangun implementasi sendiri bukanlah solusi yang baik.
Masalah-masalah tersebut melahirkan serangkaian alternatif ChatGPT, seperti Alpaca-LoRA, yang mampu berfungsi seperti ChatGPT tetapi dengan lisensi sumber terbuka dan kebutuhan sumber daya yang lebih rendah.
Dalam tutorial ini, kita akan fokus khusus pada Alpaca-LoRA. Kita akan membahas apa itu, prasyarat untuk menjalankannya di perangkat Anda, dan langkah-langkah untuk mengeksekusinya.
Apa itu Alpaca LoRA?
Pada awal Maret 2023, Eric J. Wang merilis proyek Alpaca-LoRA. Ini adalah proyek yang berisi kode untuk mereproduksi hasil Standford Alpaca menggunakan Parameter-Efficient Fine-Tuning (PEFT); ini adalah pustaka yang memungkinkan pengembang melakukan fine-tuning pada model berbasis transformer menggunakan LoRA.
Memahami LoRA
Low-Rank Adaptation pada Large Language Models (LoRA) adalah metode untuk mempercepat proses pelatihan model besar sambil menggunakan lebih sedikit memori.
Begini cara kerjanya:
Dengan cara ini, Anda menghemat waktu dan memori komputer sambil tetap membuat model Anda lebih baik dalam menjalankan tugasnya.
Keunggulan LoRA
Keunggulan LoRA meliputi:
Alpaca: Model Sumber Terbuka
Sementara itu, Alpaca adalah model bahasa AI sumber terbuka yang di-finetune untuk instruksi, berbasis Large Language Model Meta AI (LLaMA). Model ini dikembangkan oleh tim peneliti di Stanford University dengan tujuan membuat model bahasa besar (LLM) lebih mudah diakses.
Dan inilah yang membawa kita ke Alpaca-LoRA.
Model Alpaca-LoRA adalah versi Stanford Alpaca yang lebih hemat sumber daya, yang memanfaatkan LoRA untuk mempercepat proses pelatihan sambil menggunakan lebih sedikit memori.
Prasyarat Alpaca-LoRA
Untuk menjalankan model Alpaca-LoRA secara lokal, Anda harus memiliki GPU. Bisa GPU spesifikasi rendah seperti NVIDIA T4 atau GPU konsumen seperti 4090. Menurut Eric J. Wang, pembuat proyek ini, model tersebut "berjalan dalam hitungan jam pada satu RTX 4090."
Catatan: instruksi dalam artikel ini mengikuti yang disediakan di repositori Alpaca-LoRA oleh Eric J. Wang.
Cara Menjalankan Alpaca-LoRA dalam 4 Langkah
Langkah 1: Buat virtual environment (Opsional)
Virtual environment adalah kontainer terisolasi untuk menyimpan dependensi terkait Python yang dibutuhkan proyek tertentu. Ini membantu menjaga dependensi untuk proyek berbeda tetap terpisah, sehingga memudahkan berbagi proyek dan mengurangi konflik dependensi.
Tidak wajib menggunakannya untuk menjalankan model Alpaca-LoRA, tetapi dianjurkan.
Untuk membuat virtual environment menggunakan command prompt di sistem operasi Windows, jalankan perintah berikut:
Ini akan membuat virtual environment bernama venv di direktori kerja Anda saat ini.
Catatan: Anda dapat menggunakan nama apa pun untuk virtual environment dengan mengganti venv kedua dengan nama pilihan Anda.
Sebelum menginstal dependensi apa pun, Anda harus mengaktifkan virtual environment. Jalankan perintah berikut untuk mengaktifkannya:
Saat Anda tidak lagi menggunakan virtual environment, jalankan perintah berikut untuk menonaktifkannya:
Sekarang Anda siap mulai menjalankan Alpaca-LoRA.
Langkah 2: Penyiapan
Langkah pertama untuk menjalankan model Alpaca-LoRA adalah mengkloning repositori dari GitHub dan menginstal dependensi yang diperlukan untuk eksekusi.
Gunakan perintah berikut untuk menginstal repositori GitHub:
Lalu navigasikan ke repositori
alpaca-lorayang baru saja Anda instal dengan:Dan jalankan perintah berikut untuk menginstal dependensi:
Langkah 3: Fine-Tuning Model (Opsional)
Repositori
alpaca-loraberisi berkas bernamafinetune.py.finetune.pymemuat penerapan sederhana Parameter-Efficient Fine-Tuning (PEFT) pada model LLaMA, di antara hal lainnya.Inilah berkas yang harus Anda eksekusi jika ingin menyetel hyperparameter model, namun tidak wajib. Menurut penulis repositori, “Tanpa penyetelan hyperparameter, model LoRA menghasilkan keluaran yang sebanding dengan model Stanford Alpaca. Penyetelan lebih lanjut mungkin dapat mencapai kinerja yang lebih baik [...].”
Berikut contoh cara menggunakan berkas
finetune.py:Langkah 4: Menjalankan model / Inferensi
Di repositori
alpaca-lorajuga ada berkas bernamagenerate.py. Menjalankangenerate.pyakan melakukan hal-hal berikut:tloen/alpaca-lora-7bPada saat penulisan, adapter Alpaca-LoRA terbaru yang digunakan untuk melatih model adalah
alpaca-lora-7b. Ini dilakukan pada 26 Maret 2023 dengan perintah berikut:Jika Anda ingin menggunakan adaptor lain, Anda dapat melakukannya dengan menjalankan berkas
generate.pydengan tautan ke tujuan adaptor pilihan Anda.Penutup
Alpaca-LoRA adalah versi Stanford Alpaca yang lebih hemat sumber daya. Tujuan ini dicapai dengan memanfaatkan low-rank adaptation pada large language models (LoRA), yang mempercepat proses pelatihan sambil menggunakan jauh lebih sedikit memori dibandingkan model Alpaca asli.
Pelajari lebih lanjut tentang large language models (LLM) dan AI generatif melalui tutorial berikut: