Lewati ke konten utama

Cara Menjalankan Llama 3.2 1B di Ponsel Android dengan Torchchat

Dapatkan panduan langkah demi langkah untuk menyiapkan dan menjalankan Llama 3.2 1B di perangkat Android Anda menggunakan kerangka kerja Torchchat.
· 12 mnt Baca

Jelajahi bersama AI

Baru-baru ini saya menulis artikel tentang cara menjalankan LLM dengan Python dan Torchchat. Torchchat adalah kerangka kerja fleksibel yang dirancang untuk mengeksekusi LLM secara efisien di berbagai platform perangkat keras. Menjalankan LLM secara lokal menawarkan beberapa manfaat, di antaranya:

  • Akses offline: Karena model berjalan di perangkat kita, kita tidak perlu terhubung ke internet untuk menggunakannya.
  • Privasi: Karena kita menjalankan model sendiri, prompt dan data yang kita masukkan tetap bersifat pribadi.
  • Biaya: Kita dapat menjalankan model secara gratis.

Menyusul rilis terbaru Facebook atas Llama 3.2, saya memutuskan untuk memperluas artikel sebelumnya guna mengajarkan cara melakukan deployment ke ponsel kita, dengan fokus pada Android.

Berikut gambaran tingkat tinggi mengenai apa yang perlu kita lakukan:

  • Unduh berkas model, yang tersedia secara gratis karena model ini bersifat open source.
  • Hasilkan berkas yang diperlukan untuk menjalankan model di perangkat seluler.
  • Siapkan aplikasi chat Android yang mengeksekusi model.

Torchchat menyediakan jawaban untuk semua langkah ini. Ia memiliki perintah untuk mengunduh model dan menghasilkan berkas yang diperlukan untuk menjalankannya. Selain itu, Torchchat menyertakan aplikasi demo chat Android, sehingga kita tidak perlu membuatnya sendiri.

Mengunduh Torchchat

Langkah pertama adalah mengkloning repositori Torchchat menggunakan Git:

git clone [email protected]:pytorch/torchchat.git

Kita juga dapat melakukannya tanpa Git dengan mengunduh menggunakan tombol unduh di GitHub:

Mengunduh Torchchat dari GitHub

Catatan penting: Setelah mengkloning (atau mengunduh) repositori, sebuah folder bernama torchchat akan tersedia di komputer kita. Semua perintah yang disebutkan dalam artikel ini harus dijalankan dari dalam folder tersebut.

Instalasi Torchchat

Kita akan berasumsi bahwa Python dan Anaconda sudah terpasang. Jika belum, rujuk dua tutorial ini: Menginstal Anaconda di Windows dan Cara Menginstal Anaconda di Mac OS X.

Sebagai alternatif, ikuti langkah-langkah pada repositori Torchchat, yang menggunakan virtual environment alih-alih Anaconda.

Kita mulai dengan membuat environment Anaconda menggunakan perintah:

conda create -yn llama python=3.10.0

Ini membuat environment bernama llama yang menggunakan Python versi 3.10. Opsi -yn menggabungkan -y dan -n:

  • Opsi -y memungkinkan perintah berjalan tanpa meminta konfirmasi sebelum membuat environment.
  • Opsi -n menentukan nama environment, yang dalam hal ini adalah llama. Setelah membuat environment, kita mengaktifkannya dan memasang dependensi.

Untuk mengaktifkannya, gunakan perintah berikut:

conda activate llama

Untuk memasang dependensi yang diperlukan, kita memanfaatkan skrip instalasi yang disediakan oleh TorchChat:

./install/install_requirements.sh

Mengunduh Model Llama 3.2 1B

Dalam tutorial ini, kita akan menggunakan model Llama 3.2 1B, model dengan satu miliar parameter. Kita dapat mengunduhnya menggunakan perintah:

python torchchat.py download llama3.2-1b

Prosesnya sama untuk bereksperimen dengan model lain—kita perlu mengganti llama3.2-1b dengan alias model yang diinginkan. Penting untuk hanya memilih model yang ditandai ramah seluler.

Torchchat memanfaatkan Hugging Face untuk manajemen model. Akibatnya, mengunduh model memerlukan akun Hugging Face. Untuk panduan lengkap tentang cara membuat akun dan masuk dari terminal, lihat bagian “Mengunduh model” dari tutorial Torchchat ini.

Sebagai alternatif, model juga dapat diunduh dari situs resmi Llama. Namun, menggunakan Torchchat lebih praktis karena memudahkan ekspor berkas model untuk deployment seluler.

Mengekspor Model

Untuk melakukan deployment ke perangkat seluler, pertama-tama kita mengekspor model untuk menghasilkan artefak .pte yang merupakan berkas yang digunakan oleh Executorch. Executorch adalah engine yang digunakan Torchchat untuk menjalankan LLM di perangkat seluler.

Untuk menghasilkan berkas PTE, kita harus terlebih dahulu memasang Executorch. Untuk melakukannya, jalankan perintah berikut:

export TORCHCHAT_ROOT=${PWD} 
./torchchat/utils/scripts/install_et.sh

Setelah instalasi selesai, kita dapat menghasilkan berkas PTE menggunakan perintah:

python torchchat.py export llama3.2-1b --quantize torchchat/quant_config/mobile.json --output-pte-path llama3_2-1b.pte

Perintah ini juga akan melakukan kuantisasi pada model, mengurangi ukurannya dan meningkatkan kecepatan inferensi. Kita menggunakan konfigurasi bawaan Torchchat di torchchat/quant_config/mobile.json.

Setelah proses ini selesai, sebuah berkas bernama llama3_2-1b.pte akan dibuat di folder torchchat.

Menyiapkan Aplikasi Seluler

Torchchat menawarkan aplikasi demo Android yang memungkinkan kita mengoperasikan Llama langsung di ponsel pintar. Proyek demo ini dapat ditemukan di folder Torchchat yang diunduh. Path relatifnya adalah torchchat/edge/android/torchchat. Perlu dicatat bahwa referensi torchchat pertama dalam path merujuk ke folder di dalam repositori, bukan folder root repositori.

Mengunduh dan menyiapkan pustaka Java

  1. Unduh berkas .aar yang disediakan oleh Torchchat. Ini berisi pustaka Java dan pustaka JNI terkait untuk membangun dan menjalankan aplikasi.
  2. Buka direktori folder aplikasi: torchchat/edge/android/torchchat/app/
  3. Buat direktori bernama libs (jika belum ada)
  4. Ubah nama berkas unduhan menjadi executorch.aar dan tempelkan ke folder libs.

Memuat proyek Android di Android Studio

Unduh dan pasang Android Studio dari situs resmi. Setelah instalasi selesai, buka proyek:

Membuka aplikasi demo di Android Studio

Proyek demo terletak di torchchat/edge/android/torchchat.

Saat kita membuka proyek, kita akan ditanya melalui jendela ini apakah kita mempercayai kodenya:

Popup setelah membuka aplikasi demo

Di sini, pilih opsi “Trust Project”.

Setelah proyek dibuka, Android Studio akan memerlukan waktu untuk memuat konfigurasi dan menyelesaikan penyiapan awal. Penting untuk menunggu hingga proses ini selesai. Kita dapat memantau statusnya di pojok kanan bawah jendela. Setelah siap, tombol run di bagian atas akan berubah menjadi hijau:

Cara mengetahui saat proyek telah dimuat

Menyiapkan mode pengembang di Android

Agar dapat menjalankan aplikasi di ponsel melalui Android Studio, kita perlu mengaktifkan mode pengembang di perangkat kita. Berikut cara melakukannya:

  1. Buka "Settings"
  2. Pilih "About device" atau "About phone"
  3. Buka “Software information”
  4. Temukan “Build number” dan ketuk tujuh kali

Selesai! Sekarang, kita dapat menggunakan perangkat kita untuk menjalankan aplikasi dari Android Studio. Saat kita melakukan ini, aplikasi akan tetap ada di ponsel, sehingga kita dapat menjalankannya bahkan tanpa koneksi ke komputer.

Menginstal adb

Aplikasi memerlukan berkas model ditempatkan di folder tertentu di ponsel. Untuk mengirim berkas tersebut ke ponsel, kita menggunakan adb (Android Debug Bridge). Kita dapat memasangnya menggunakan Android Studio dengan mengikuti langkah-langkah berikut:

  1. Buka pengaturan dan mulai ketik “Android SDK” pada bilah pencarian
  2. Temukan menu bernama “Android SDK” dan klik
  3. Pilih opsi “Android SDK command line tools (latest)”
  4. Klik “Apply” untuk memasangnya

Menginstal adb dari Android Studio

Perhatikan bahwa di bagian atas jendela, Android Studio menampilkan lokasi Android sdk:

Menemukan path ke adb

Kita salin path tersebut dan jalankan perintah berikut (gantikan <android_skd_location> di bawah ini dengan path yang baru saja disalin):

export PATH=$PATH:<android_skd_location>/platform-tools/

Untuk memastikan bahwa adb telah terpasang dengan benar, gunakan perintah adb --version, yang akan menampilkan versi adb.

Menyiapkan aplikasi di ponsel

Hubungkan ponsel ke komputer dengan kabel. Nama perangkat akan muncul pada daftar perangkat di sebelah tombol run:

Pemilihan perangkat di Android Studio

Sebelum menjalankan aplikasi di ponsel, sekarang kita menggunakan adb untuk menyalin berkas model yang diperlukan ke perangkat kita.

  1. Temukan id perangkat menggunakan perintah adb devices. Bisa jadi ada beberapa baris pada output. Cari baris dengan bentuk <device_code> device dan salin kode perangkatnya.
  2. Buat direktori untuk menyimpan berkas model menggunakan adb -s <device_code> shell mkdir -p /data/local/tmp/llama.
  3. Salin berkas .pte yang berada di folder torchchat dengan adb -s <device_code> push llama3_2-1b.pte /data/local/tmp/llama.
  4. Temukan berkas tokenizer model menggunakan python torchchat.py where llama3.2-1b. Ini akan menampilkan beberapa baris; yang kita perlukan adalah path yang ditampilkan pada baris terakhir.

Menemukan berkas tokenizer.model

  1. Salin berkas tokenizer ke perangkat menggunakan adb -s <device_code> push <model_path>/tokenizer.model /data/local/tmp/llama dengan mengganti <model_path> menggunakan path yang diperoleh pada langkah sebelumnya.

Setelah langkah ini selesai, berkas model seharusnya sudah ada di ponsel kita dan siap digunakan. Kita dapat memeriksanya dengan menampilkan daftar semua berkas di folder perangkat yang baru saja kita buat:

adb -s <device_code> shell ls 

Outputnya harus memuat dua berkas yang baru saja kita salin:

llama3_2-1b.pte
tokenizer.model

Menjalankan aplikasi

Semuanya kini siap untuk menjalankan aplikasi demo di ponsel kita. Kita dapat mengeklik panah hijau untuk menjalankannya.

Menjalankan aplikasi di ponsel

Ini akan membuka aplikasi di perangkat kita. Aplikasi akan meminta kita memilih berkas model dan tokenizer.

Memilih model dan tokenizer

Menggunakan Aplikasi Llama 3.2 1B

Sekarang kita dapat mulai mengobrol dengan Llama3.2 1B di ponsel! Antarmuka aplikasinya cukup sederhana. Kita dapat menggunakan kotak teks “Prompt” untuk menulis prompt dan mengirimkannya ke model menggunakan tombol “Generate”.

Karena model berjalan offline, saya bisa menggunakannya di pesawat menuju destinasi berikutnya untuk menanyakan, misalnya, rekomendasi hidangan:

Contoh penggunaan aplikasi

Dari interaksi ini, kita melihat beberapa keterbatasan aplikasi demo:

  1. Jawaban mengulang prompt kita.
  2. Format jawaban dimulai dengan “I’ve been to Taiwan…” yang menunjukkan bahwa aplikasi belum dirancang untuk menggunakan model langsung sebagai asisten.
  3. Respons terpotong mendadak, kemungkinan karena batas token tercapai.

Kita dapat membandingkan perilakunya dengan menjalankan model yang sama di terminal dengan perintah:

python torchchat.py chat llama3.2-1b

Kita memberikan prompt yang sama untuk melihat apakah perilakunya berbeda. Memang, dalam kasus ini, jawabannya tampak jauh lebih natural dan berguna, meskipun juga terpotong:

Perilaku model di komputer

Saya menghubungi tim di balik Torchchat, dan mereka memberi tahu saya bahwa Llama 3.2 masih terlalu baru dan aplikasi demo perlu sedikit diperbarui untuk mendukungnya.

Namun, proses penyiapan akan tetap sama, dan pengetahuan yang diperoleh di sini tetap berlaku untuk versi yang diperbarui. Ada kemungkinan bahwa saat Anda membaca artikel ini, aplikasinya sudah diperbarui dan berfungsi dengan baik.

Kesimpulan

Dalam panduan ini, kita mempelajari cara menyiapkan Llama 3.2 1B langsung di perangkat Android menggunakan Torchchat. Kita membahas proses langkah demi langkah untuk mengunduh dan memasang komponen yang diperlukan, termasuk berkas model dan aplikasi demo Android.

Meskipun ada beberapa keterbatasan pada aplikasi demo saat ini, khususnya pada pemformatan dan panjang respons, potensi dasar dari implementasi semacam ini sangat besar.

Jika Anda ingin membaca lebih lanjut tentang Llama 3.2, saya merekomendasikan blog berikut:

François Aubry

Penulis

François Aubry

Insinyur full-stack & pendiri di CheapGPT. Mengajar selalu menjadi passion saya. Sejak masa awal sebagai mahasiswa, saya aktif mencari peluang untuk membimbing dan membantu mahasiswa lain. Passion ini mendorong saya menempuh studi PhD, di mana saya juga menjadi asisten pengajar untuk mendukung kegiatan akademik saya. Selama tahun-tahun itu, saya menemukan kepuasan besar dalam suasana kelas tradisional, membangun koneksi dan memfasilitasi proses belajar. Namun, dengan hadirnya platform pembelajaran daring, saya melihat potensi transformatif pendidikan digital. Bahkan, saya terlibat aktif dalam pengembangan salah satu platform tersebut di universitas kami. Saya sangat berkomitmen untuk mengintegrasikan prinsip-prinsip pengajaran tradisional dengan metodologi digital yang inovatif. Tujuan saya adalah menciptakan kursus yang tidak hanya menarik dan informatif, tetapi juga mudah diakses oleh para pembelajar di era digital ini.

Topik

Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

blogs

Tutorial Korelasi di R