Lewati ke konten utama

Tutorial torchchat PyTorch: Penyiapan Lokal dengan Python

Pelajari cara menyiapkan torchchat dari PyTorch secara lokal dengan Python dalam tutorial praktis ini, lengkap dengan panduan langkah demi langkah dan contoh.
Diperbarui 29 Sep 2026

Jelajahi bersama AI

ChatGPTClaudePerplexity

Large language models (LLMs) kini menjadi bagian integral di berbagai domain teknologi, dengan sebagian besar produk kini memasukkan fitur berbasis LLM. Namun, menerapkan model ini pada perangkat pribadi seperti laptop, desktop, atau ponsel pintar menghadapi hambatan besar karena keterbatasan perangkat keras.

Sebagai respons, tim PyTorch memperkenalkan Torchchat, sebuah kerangka kerja yang fleksibel untuk meningkatkan efisiensi LLM di berbagai platform perangkat keras. Pendekatan terobosan ini memudahkan pemrosesan lokal yang efektif pada beragam perangkat, sehingga berpotensi membuat model AI canggih lebih mudah diakses.

PyTorch adalah kerangka kerja pembelajaran mesin sumber terbuka terkemuka yang dikembangkan oleh Facebook's AI Research Lab (FAIR). PyTorch mendukung berbagai aplikasi, termasuk visi komputer dan pemrosesan bahasa alami.

Dalam artikel ini, kami akan memberikan gambaran kemampuan Torchchat dan mempelajari cara menyiapkannya secara lokal.

Kemampuan Torchchat

Torchchat menawarkan empat fungsi utama:

  1. Menjalankan LLM menggunakan Python dengan PyTorch.
  2. Menjalankan model mandiri pada aplikasi desktop atau server tanpa Python.
  3. Menjalankan model pada perangkat seluler.
  4. Mengevaluasi kinerja model.

Menjalankan LLM menggunakan Python dengan PyTorch

Mode ini memungkinkan menjalankan LLM pada mesin yang telah terpasang Python dan PyTorch. Kita dapat berinteraksi dengan model langsung di terminal atau dengan menyiapkan server menggunakan REST API. Inilah yang akan menjadi fokus penyiapan dalam artikel ini.

Menjalankan model mandiri

Torchchat menggunakan AOT Inductor (Ahead-of-Time Inductor) untuk membuat executable yang mandiri dan dapat didistribusikan bagi program inferensi PyTorch, khususnya dalam bentuk pustaka dinamis tanpa ketergantungan pada Python dan PyTorch.

Pendekatan ini memenuhi kebutuhan penerapan model di lingkungan produksi yang menuntut stabilitas runtime model di tengah pembaruan dan perubahan pada lingkungan penyajian, memastikan model tetap beroperasi tanpa perlu kompilasi ulang. 

AOT Inductor berfokus pada optimalisasi penerapan model dengan memungkinkan format distribusi biner yang efisien, cepat dimuat, dan siap dijalankan, mengatasi keterbatasan dan overhead yang terkait dengan format teks seperti TorchScript. Teknologi ini memanfaatkan teknik generasi kode dan optimalisasi untuk kinerja CPU dan GPU, dengan tujuan mengurangi overhead dan meningkatkan kecepatan eksekusi. 

Menjalankan di perangkat seluler

Untuk eksekusi pada perangkat seluler, Torchchat memanfaatkan ExecuTorch. Serupa dengan AOT Inductor, ExecuTorch mengoptimalkan model untuk dijalankan pada perangkat seluler atau tertanam. Ia menghasilkan artefak PTE yang nantinya dapat digunakan untuk mengeksekusi model.

Mengevaluasi model

Mode evaluasi Torchchat dapat digunakan untuk menilai kinerja LLM pada berbagai tugas yang tersedia di lm_eval. Ini merupakan fitur penting bagi peneliti yang ingin mengevaluasi model baru mereka pada tolok ukur yang umum digunakan.

Mengapa Menggunakan Torchchat

Menjalankan LLM secara lokal alih-alih mengandalkan API cloud pihak ketiga seperti API OpenAI menghadirkan beragam kasus penggunaan dan manfaat, sesuai berbagai kebutuhan dan skenario. 

  • Aplikasi yang sensitif terhadap privasi: Untuk industri yang menangani data sensitif, seperti kesehatan, keuangan, dan hukum, menjalankan LLM secara lokal memastikan informasi rahasia tidak keluar dari infrastruktur organisasi, sejalan dengan regulasi perlindungan data.
  • Aplikasi waktu nyata: Aplikasi yang memerlukan respons berlatensi rendah, seperti chatbot interaktif, pembuatan konten waktu nyata, dan sistem pemantauan langsung, dapat memperoleh manfaat dari menjalankan LLM secara lokal, menghilangkan latensi yang ditimbulkan oleh transmisi jaringan ke dan dari API cloud.
  • Skenario luring atau konektivitas rendah: Di lingkungan dengan konektivitas internet buruk atau tidak ada, penerapan lokal memungkinkan penggunaan aplikasi LLM, seperti untuk riset lapangan, pendidikan jarak jauh, dan sistem hiburan dalam penerbangan.
  • Pengendalian dan optimalisasi biaya: Untuk kasus volume tinggi atau penggunaan berkelanjutan, penerapan lokal bisa lebih hemat biaya, menghindari model harga per permintaan dari API cloud dan berpotensi memanfaatkan sumber daya komputasi yang sudah ada.

Jika Anda tertarik mempelajari lebih lanjut tentang menjalankan model AI secara lokal pada perangkat alih-alih di cloud, saya merekomendasikan tulisan blog tentang Edge AI ini.

Penyiapan Lokal dengan Python

Mari menyiapkan Torchchat secara lokal langkah demi langkah. Kita mulai dengan mengkloning repositori Torcchat.

Kloning atau unduh kodenya

Langkah pertama dalam menyiapkan Torchchat secara lokal adalah mengkloning repositori Torchchat. Dengan Git terpasang, kita dapat mengkloning repositori dengan membuka terminal dan menjalankan perintah:

git clone git@github.com:pytorch/torchchat.git

Sebagai alternatif, kita dapat mengunduh repositori menggunakan antarmuka Github.

Cara mengunduh torchchat dari github.

Instalasi

Kami mengasumsikan Python 3.10 sudah terpasang. Untuk panduan cara memasang Python, lihat artikel ini.

Untuk memasang Torchchat, buka terminal di folder Torchchat. Kita mulai dengan membuat lingkungan virtual:

python -m venv .venv

Singkatnya, lingkungan virtual adalah direktori mandiri untuk sebuah proyek, yang berisi direktori instalasi untuk pustaka dan paket Python, dan terkadang bahkan versi Python tertentu. Ini memastikan setiap proyek memiliki versi perangkat lunak yang tepat untuk dijalankan, tanpa gangguan dari proyek lain beserta kebutuhannya.

Setelah lingkungan virtual dibuat, kita perlu mengaktifkannya. Kita dapat melakukannya dengan perintah:

source .venv/bin/activate

Terakhir, kita perlu menyiapkan lingkungan dengan memasang semua dependensi yang diperlukan agar Torchchat dapat berjalan. Torchchat menyediakan skrip instalasi, install_requirements.sh, yang dapat kita jalankan dengan perintah:

./install_requirements.sh

Kini Torchchat seharusnya sudah terpasang dan siap digunakan. Kita dapat memverifikasi instalasi dengan mencantumkan perintah Torchchat yang tersedia, seperti ini:

python torchchat.py --help

Menggunakan Torchchat Secara Lokal dengan Python

Dengan Torchchat terpasang, kita dapat mulai menjalankan LLM di mesin lokal.

Mencantumkan semua model yang didukung

TorchChat mendukung beragam LLM. Kita dapat mencantumkan model yang didukung menggunakan perintah list:

python torchchat.py list

Daftar lengkap model dapat ditemukan di repositori GitHub mereka. 

Daftar model yang didukung oleh torchchat

Bagian “Notes” memberikan informasi berguna tentang model, seperti kasus penggunaan terbaik dan alias model yang digunakan untuk menentukan model saat memakai perintah Torchchat.

Mengunduh model

Torchchat menggunakan Hugging Face sebagai saluran distribusi model. Hugging Face adalah platform kolaboratif dengan alat yang memberdayakan siapa pun untuk membuat, melatih, dan menerapkan model NLP dan ML menggunakan kode sumber terbuka. Untuk mempelajarinya lebih lanjut, lihat tulisan blog tentang Apa itu Hugging Face.

Sebelum mengunduh model, kita perlu:

  1. Memasang antarmuka baris perintah Hugging Face
  2. Membuat akun di Hugging Face
  3. Membuat token akses
  4. Masuk menggunakan antarmuka baris perintah Hugging Face

Untuk memasang antarmuka baris perintah Hugging Face, kita gunakan pip:

pip install huggingface_hub

Selanjutnya, kita dapat membuka situs Hugging Face untuk membuat akun. Setelah membuat akun, kita dapat membuat token akses dengan membuka pengaturan profil:

Pengaturan profil di Hugging Face

Di profil, kita dapat membuka menu “Access Tokens” untuk membuat token baru:

Membuat token akses di Hugging Face

Terkait izin token, izin baca sudah cukup untuk artikel ini. Perhatikan bahwa saat token dibuat, kita harus menyalinnya ke papan klip karena nanti tidak akan bisa melihatnya lagi. 

Dengan menggunakan token, kita dapat masuk menggunakan perintah berikut:

huggingface-cli login

Setelah masuk, kita dapat mengunduh model menggunakan perintah download. Perlu diingat beberapa model bisa sangat besar, jadi pastikan ruang disk Anda cukup. Untuk tujuan ilustrasi, kita akan menggunakan model stories15M, sebuah model kecil untuk pembuatan cerita. Ini adalah model yang baik untuk memulai karena cepat diunduh dan tidak memerlukan izin khusus.

Untuk mengunduhnya, lakukan:

python torchchat.py download stories15M

Menjalankan model

Setelah mengunduh model, kita dapat menggunakan perintah chat atau generate. Untuk menghasilkan teks, kita perlu memberikan prompt menggunakan argumen --prompt. Berikut contohnya:

python torchchat.py generate stories15M --prompt “Once upon a time”

Perintah di atas akan menginstruksikan Torchchat untuk menghasilkan teks menggunakan model stories15M dengan prompt ”Once upon a time”.

Untuk menjalankan model dalam mode chat, gunakan perintah chat tanpa prompt.

python torchchat.py chat stories15M 

Perintah chat akan memulai obrolan interaktif di terminal tempat kita dapat berbincang bolak-balik dengan LLM. Perhatikan bahwa beberapa model lebih cocok digunakan dengan mode generate, sementara yang lain lebih cocok untuk mode chat. Informasi ini tersedia di bagian “Notes” pada dokumentasi model.

Meminta akses ke model

Beberapa model seperti llama3 memerlukan akses khusus untuk diunduh. Jika kita mencoba mengunduh model seperti itu, kita akan mendapatkan pesan kesalahan:

Access to model meta-llama/Meta-Llama-3-8B-Instruct is restricted and you are not in the authorized list. Visit https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct to ask for access.

Kita dapat meminta akses dengan mengikuti URL yang disediakan dalam pesan kesalahan. Kita perlu mengisi formulir singkat dengan informasi pribadi dan menyetujui ketentuan layanan. Anda akan menerima email setelah akses diberikan.

Formulir permintaan akses untuk LLM di Hugging Face

Penggunaan Lanjutan

Torchchat menyediakan beberapa opsi tambahan saat menjalankan LLM secara lokal, sehingga memungkinkan penyesuaian dengan kebutuhan dan perangkat keras kita. Mari jelajahi beberapa opsi ini.

Mengendalikan presisi

LLM sangat bergantung pada perkalian matriks, yang melibatkan perkalian banyak bilangan floating point. Terdapat beberapa tipe data untuk merepresentasikan bilangan floating point di komputer dengan presisi yang berbeda-beda. 

Presisi yang lebih tinggi dapat memastikan nuansa yang ditangkap selama pelatihan tetap tercermin dengan baik saat inferensi, terutama untuk tugas kompleks atau pemahaman bahasa yang bernuansa. Namun, menggunakan angka berpresisi tinggi dapat memperlambat inferensi secara signifikan. Tipe data yang tepat bergantung pada kompromi antara kecepatan dan akurasi.

Untuk menetapkan tipe data saat menjalankan LLM, kita dapat menggunakan parameter --dtype, misalnya:

python torchchat.py chat --dtype fast stories15M

Kompilasi Just-In-Time

Flag --compile mengaktifkan kompilasi Just-In-Time (JIT) pada model. JIT mengacu pada teknik untuk mengoptimalkan kinerja inferensi dengan mengompilasi secara dinamis bagian-bagian model ke kode tingkat mesin saat runtime, alih-alih menafsirkannya setiap kali dieksekusi. Pendekatan ini dapat meningkatkan efisiensi dan kecepatan secara signifikan untuk model yang berjalan di berbagai platform perangkat keras.

Menggunakan JIT akan menyebabkan waktu mulai lebih lama karena langkah kompilasi tambahan, tetapi inferensi akan berjalan lebih cepat. Begini cara menggunakan chat bersama JIT:

python torchchat.py chat --compile stories15M

Perhatikan bahwa opsi ini mungkin tidak didukung pada semua jenis perangkat keras. Dalam kasus tersebut, Torchchat akan mengabaikan langkah kompilasi dan menjalankan LLM tanpanya.

Kuantisasi

Kuantisasi adalah teknik untuk mengurangi ukuran model dan meningkatkan kecepatan inferensi tanpa secara signifikan mengorbankan performa atau akurasi. Ini sangat penting untuk menerapkan LLM di perangkat edge atau di lingkungan dengan sumber daya komputasi, memori, dan bandwidth terbatas.

Singkatnya, kuantisasi melibatkan konversi bobot dan aktivasi jaringan saraf dari representasi floating point (biasanya float 32-bit) ke representasi bit yang lebih rendah, seperti integer 16-bit, integer 8-bit, atau bahkan representasi biner pada beberapa kasus. 

Ini berbeda dengan menetapkan presisi menggunakan --dtype. Kuantisasi bekerja langsung pada bobot model, menciptakan model yang lebih kecil, sementara tipe data menentukan jenis data yang digunakan dalam perhitungan inferensi.

Menggunakan kuantisasi di Torchchat memerlukan berkas konfigurasi JSON dan dapat digunakan seperti ini:

python torchchat.py chat --quantize config.json stories15M

Untuk detail lebih lanjut tentang format berkas konfigurasi config.json atau cara kerja kuantisasi di Torchchat, lihat halaman dokumentasi kuantisasi mereka.

Spesifikasi perangkat

Kita dapat menentukan perangkat yang digunakan untuk mengeksekusi LLM dengan opsi --device. Misalnya, untuk menjalankannya di CUDA, kita gunakan:

python torchchat.py chat --device cuda stories15M

Kesimpulan

Torchchat adalah langkah besar dalam demokratisasi inferensi LLM. Alat ini memudahkan siapa pun untuk menjalankan LLM secara efisien di berbagai perangkat.

Torchchat menawarkan jauh lebih banyak kemampuan daripada yang kami perkenalkan dalam artikel ini. Kami telah memberikan penjelasan yang diperlukan agar siapa pun dapat mulai menjalankan LLM secara lokal di komputer mereka menggunakan Python dan PyTorch. Saya sangat mendorong Anda untuk mengeksplorasi Torchchat lebih lanjut.


François Aubry's photo
Author
François Aubry
LinkedIn
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
Kecerdasan Buatan
AI Generatif
Terkait

{count, plural, one {blog} other {blogs}}

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

{count, plural, one {blog} other {blogs}}

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

{count, plural, one {blog} other {blogs}}

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

{count, plural, one {blog} other {blogs}}

40 Pertanyaan Wawancara DBMS Teratas di 2026

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.
Dario Radečić's photo

Dario Radečić

15 mnt

Lihat SelengkapnyaLihat Selengkapnya