Catatan Cak AT
HATIPENA.COM – Ollama, DeepSeek, QWen, ALLaM, Gemma 3, dan banyak lagi model LLM lainnya yang open source, telah memungkinkan kita menjalankan AI di komputer lokal. Harapannya, data kita menjadi lebih aman ketimbang menjalankan AI secara online seperti chatGPT.
Namun, untuk menjalankan AI di lokal, kita perlu memiliki komputer dengan kemampuan gahar. CPU, prosesor, RAM, hingga kartu grafis, semuanya harus tinggi. Tingginya tergantung model LLM yang akan kita jalankan. Untuk menjalankan model LLM dengan 70 miliar parameter, dibutuhkan RAM besar dan kartu grafis NVidia A100 yang harganya ratusan juta.
Menjalankan model bahasa besar (Large Language Model atau LLM) dengan 70 miliar parameter biasanya memerlukan perangkat keras dengan kapasitas memori yang sangat besar. Sebagai ilustrasi, model sebesar ini memiliki ukuran parameter sekitar 130GB, yang biasanya membutuhkan dua GPU A100 dengan masing-masing 100GB memori hanya untuk memuat model tersebut. Belum lagi untuk memprosesnya.
Namun, sebuah teknik inovatif memungkinkan inferensi model sebesar ini dijalankan pada GPU dengan memori hanya 4GB. Jika benar teknik ini berfungsi, ini sungguh luar biasa.
Berikut adalah beberapa teknik utama yang memungkinkan hal tersebut, sebagaimana dijelaskan di laman: https://huggingface.co/blog/lyogavin/airllm.
- Inferensi Per Lapisan (Layer-wise Inference): Alih-alih memuat seluruh model ke dalam memori GPU sekaligus, teknik ini memuat dan memproses model per lapisan secara berurutan. Setelah satu lapisan diproses, lapisan tersebut dibebaskan dari memori, dan lapisan berikutnya dimuat. Dengan demikian, hanya satu lapisan yang berada di memori GPU pada satu waktu, yang secara signifikan mengurangi kebutuhan memori. Untuk model 70B dengan 80 lapisan, setiap lapisan memiliki ukuran sekitar 1,6GB.
- Optimalisasi Lapisan Tunggal dengan Flash Attention: Flash attention adalah teknik yang mengurangi kompleksitas memori dari mekanisme self-attention dalam model Transformer. Dengan memproses perhitungan dalam blok-blok kecil, flash attention mengurangi penggunaan memori dan meningkatkan kecepatan pemrosesan.
- Pemecahan File Model (Model File Sharding): Biasanya, file model dipecah menjadi beberapa bagian besar (misalnya, 10GB per bagian). Dengan memecah file model berdasarkan lapisan dan menggunakan format penyimpanan seperti safetensor, proses pemuatan model menjadi lebih efisien dan cepat.
- Penggunaan Meta Device: Dengan fitur meta device yang disediakan oleh Hugging Face Accelerate, model dapat dimuat tanpa langsung membaca data ke memori. Bagian-bagian model dapat dipindahkan secara dinamis dari meta device ke perangkat nyata seperti CPU atau GPU selama eksekusi, sehingga menghemat penggunaan memori.
Semua teknik ini telah diimplementasikan dalam pustaka open-source bernama AirLLM, yang memungkinkan pengguna menjalankan inferensi model besar dengan memori GPU yang terbatas.
Perlu dicatat bahwa meskipun teknik-teknik ini memungkinkan inferensi model besar pada GPU dengan memori terbatas, kecepatan pemrosesan mungkin lebih lambat dibandingkan dengan penggunaan GPU dengan kapasitas memori yang lebih besar. Namun, pendekatan ini membuka peluang bagi lebih banyak pengguna untuk mengakses dan menggunakan model bahasa besar tanpa memerlukan perangkat keras yang mahal.
Ini kodenya:
https://www.kaggle.com/code/simjeg/platypus2-70b-with-wikipedia-rag/notebook