Dipublikasikan: 13 Januari 2024
Ini adalah bagian pertama dari seri tiga bagian tentang LLM dan chatbot. Bagian 2 tentang membuat chatbot dengan WebLLM dan bagian 3 tentang menggunakan Prompt API sudah aktif.
Model bahasa besar (LLM) menjadi elemen penyusun penting dalam pengembangan software: LLM sangat cocok untuk membuat dan memproses teks bahasa alami, membuka kasus penggunaan seperti ekstraksi data, ringkasan, atau memfasilitasi dialog dengan data pengguna.
Dalam seri ini, saya membahas manfaat dan kekurangan LLM di perangkat serta memandu Anda menambahkan kemampuan chatbot ke aplikasi yang ada menggunakan dua pendekatan lokal dan offline, WebLLM runtime LLM berbasis web dan Prompt API eksperimental Chrome.
Kasus penggunaan yang mungkin terjadi
Kita akan membuat chatbot di atas aplikasi daftar tugas klasik. Kode sumber untuk setiap langkah tersedia di GitHub. Pengguna dapat menambahkan daftar tugas baru, menandainya sebagai selesai, dan menghapusnya.
Anda dapat menambahkan fitur bagi pengguna untuk mempelajari lebih lanjut data daftar tugas atau melakukan fungsi tambahan. Fitur chatbot dapat memungkinkan pengguna untuk:
- Tanyakan jumlah tugas yang terbuka.
- Identifikasi daftar tugas duplikat atau yang sangat mirip.
- Kategorikan daftar tugas ke dalam grup.
- Mendapatkan rekomendasi untuk tugas baru berdasarkan tugas yang telah diselesaikan.
- Menerjemahkan tugas ke dalam bahasa lain.
- Mengekspor daftar tugas dalam format XML.
Ini hanyalah beberapa contoh tugas yang dapat ditangani LLM.
Apa itu model bahasa besar (LLM)?
LLM adalah jaringan neural buatan yang memproses dan menghasilkan teks bahasa alami. Sebagian besar LLM saat ini didasarkan pada arsitektur Transformer, yang dikembangkan di Google. Contohnya mencakup model Gemini dan Gemma Google, rangkaian model GPT OpenAI, dan model open source, seperti LLaMa oleh Meta AI dan Mistral oleh Mistral AI.
Berkat pelatihannya pada data dalam jumlah besar, LLM memiliki berbagai kemampuan yang mengesankan. Mereka memahami berbagai bahasa, memiliki pengetahuan tentang trivia, dapat menerjemahkan antarbahasa, atau membuat kode pemrograman. Cakupan kemampuan ini dapat bervariasi secara signifikan berdasarkan ukuran model, seperti yang dibahas dalam Memahami Ukuran LLM.
LLM menyebabkan pergeseran paradigma dalam arsitektur software, karena bahasa alami kini menjadi fitur inti dalam rekayasa software. Daripada memanggil API menggunakan antarmuka yang ditentukan dengan baik, cukup ekspresikan intent dalam bahasa alami dalam perintah yang disebut.
Batasan LLM
LLM juga memiliki batasan tertentu:
- Perilaku non-deterministik: LLM dapat menghasilkan respons yang bervariasi dan terkadang bertentangan dengan perintah yang sama, karena outputnya bergantung pada model probabilistik, bukan aturan tetap.
- Halusinasi: Model ini terkadang dapat menghasilkan informasi yang salah atau tidak masuk akal, yang mengandalkan pola yang dipelajari, bukan akurasi faktual.
- Injeksi perintah: LLM dapat rentan terhadap serangan injeksi perintah, saat pengguna membuat perintah input yang memanipulasi model agar menyimpang dari fungsi yang diinginkan atau menghasilkan hasil yang tidak diinginkan.
Oleh karena itu, pengguna harus memverifikasi hasil yang dihasilkan oleh LLM sebelum mengambil tindakan yang berakibat.
Saat menangani LLM di perangkat, ukurannya harus dipertimbangkan. File tersebut memiliki ukuran file beberapa Gigabyte dan harus didownload ke perangkat pengguna sebelum digunakan pertama kali. Model yang lebih kecil cenderung menghasilkan respons berkualitas lebih rendah, terutama jika dibandingkan dengan model yang didukung cloud.
Memilih solusi lokal
Intuisi pertama Anda untuk mengintegrasikan LLM ke dalam aplikasi web mungkin adalah menggunakan penyedia cloud. Banyak penyedia menawarkan LLM berkualitas tinggi, beberapa di antaranya eksklusif untuk penyedia tertentu. LLM berbasis cloud memberikan kecepatan inferensi yang cepat dengan biaya yang wajar, yang biasanya dihitung per token yang diproses.
Sebaliknya, solusi lokal memiliki keunggulan yang menarik. Dengan beroperasi langsung di perangkat pengguna, LLM yang dihosting secara lokal memberikan waktu respons yang lebih andal, tetap dapat diakses meskipun pengguna sedang offline, dan tidak memerlukan developer untuk membayar biaya langganan atau biaya berkelanjutan lainnya. Secara khusus, fitur ini dapat meningkatkan keamanan pengguna secara signifikan. Dengan menyimpan semua aktivitas di perangkat, Anda dapat menghindari pengiriman informasi identitas pribadi (PII) ke penyedia atau region eksternal.
Demo
Anda dapat melihat demo yang sudah selesai dengan kemampuan chatbot, sebelum mempelajari cara membuatnya sendiri.
- Aplikasi daftar tugas asli
- Aplikasi daftar tugas dengan WebLLM
- Aplikasi daftar tugas dengan Prompt API
- Sumber di GitHub
Selanjutnya, Anda akan menggunakan WebLLM untuk menambahkan chatbot ke aplikasi daftar tugas.