Transcript
00:00:00Ini adalah model bahasa 28,9 juta parameter yang sedang menghasilkan teks kata demi kata
00:00:08di atas chip seharga sekitar delapan dolar. Tanpa Wi-Fi, tidak ada yang dikirim ke server,
00:00:14semuanya terjadi di dalam ESP32S3, mikrokontroler dengan RAM yang lebih kecil dari komputer
00:00:22tahun 90-an. Ini luar biasa. Bagaimana ini bisa terjadi? Apa rahasia di baliknya dan bagaimana
00:00:29kita bisa membuat sesuatu yang serupa? Pertanyaan-pertanyaan bagus itu akan kita bahas di video
00:00:34hari ini. Ini bakal sangat seru, jadi mari kita mulai. ESP32S3 adalah chip yang memberi Anda
00:00:46512 kilobita SRAM, yaitu jumlah memori cepat yang digunakan chip ini untuk komputasi. Normalnya,
00:00:54jika Anda mencoba menjalankan LLM di dalamnya, seluruh model harus muat di sana.
00:01:00Model bahasa terakhir yang berhasil dijalankan di chip seperti ini maksimal 260.000 parameter. Jadi model
00:01:08ini menampung sekitar 110 kali lebih banyak, dan pengembang Ukraina Slava S adalah orang yang berhasil melakukannya.
00:01:16Lantas apa trik rahasianya? Bagaimana mereka melakukannya? Bagaimana memuat model 28,9 juta parameter ke chip $8?
00:01:24Solusinya berasal dari ide yang digunakan Google pada Gemma. Namanya per-layer embeddings. Sebagian besar
00:01:31parameter model bahasa tidak melakukan komputasi apa pun. Parameter tersebut tersimpan di tabel embedding yang hanya dibaca.
00:01:37Jika sebagian besar parameter hanya dibaca saja, mereka tidak butuh memori cepat. Jadi Anda bisa
00:01:44membiarkan tabel itu tersimpan di memori flash yang lambat dan murah, lalu hanya mengambil baris yang dibutuhkan token saat ini.
00:01:52Sedangkan bagian kecil yang benar-benar melakukan komputasi dan memikirkan token berikutnya, seperti attention head dan feed forward, tetap berada di SRAM.
00:01:59Oke, itu bagian komputasinya. Namun pertanyaannya tetap: Bagaimana kita memasukkan model sebesar itu ke chip sekecil ini?
00:02:05Tabel 25 juta baris tersimpan di memori flash. Dan itu adalah bagian terbesar dari keseluruhan
00:02:1228,9 juta parameter model. Memori flash pada chip ini sangat murah dan berkapasitas besar, yaitu 16 megabita.
00:02:20Jadi alih-alih memaksakan tabel tersebut masuk ke SRAM sebesar 512 kilobita,
00:02:26tabel itu tetap dibiarkan berada di flash. Kita hanya mengambil sekitar enam baris, satu untuk setiap enam lapisan model.
00:02:33Itu secara total hanya sekitar 450 bita. Sebelum Anda terlalu senang, saya harus menyampaikan bahwa
00:02:40ini adalah model yang sangat sederhana dan terbatas. Ini tidak seperti LLM tipe GPT pada umumnya. Model ini tidak bisa menghasilkan kode
00:02:47atau menjawab pertanyaan tentang topik yang rumit. Karena jika Anda mencoba melatih model biasa berukuran ini
00:02:53pada himpunan data normal, 28 juta parameter hanya akan menghasilkan racauan tak bermakna. Namun model ini sendiri dilatih menggunakan
00:03:01Tiny Stories, himpunan data yang dibuat oleh para peneliti di Microsoft, yang sengaja ditulis cukup sederhana sehingga
00:03:08model kecil dengan beberapa juta parameter pun dapat belajar menulis cerita secara koheren. Dan menjalankannya dalam bahasa C murni,
00:03:15di atas chip tanpa sistem operasi dan tanpa interpreter Python, ide tersebut berasal dari proyek Llama2.c milik Andrei
00:03:22Karpathy yang terkenal. Proyek itu menunjukkan bahwa kita bisa melatih model bahasa kecil dan melakukan
00:03:28inferensi hanya menggunakan beberapa ratus baris kode C portabel. Dan itulah cetak biru utama dari
00:03:35seluruh proyek ini. Tanpa Karpathy, hal ini mungkin tidak akan pernah terwujud. Jadi begitulah cara kerjanya secara
00:03:40singkat. Sekarang mari kita coba membuatnya sendiri dan menjalankannya di chip untuk melihat performanya.
00:03:47Untuk membuatnya sendiri, hal pertama yang Anda butuhkan adalah perangkat keras yang tepat, khususnya ESP32S3
00:03:54dengan flash 16 megabita dan PSRAM 8 megabita. Yaitu varian N16R8. Dan ini sangat
00:04:03penting karena ingat ketika kita membahas tabel 25 juta baris yang berada di flash? Tabel itu sendiri,
00:04:10setelah dilatih dan diekspor, berukuran sekitar 15 megabita. Sedangkan papan dengan flash 4 atau 8 megabita
00:04:17jelas tidak akan muat. Jadi jika Anda mencari papan untuk praktik, itulah spesifikasi utama yang harus
00:04:22Anda periksa terlebih dahulu. Saat saya pertama kali mengikuti instruksi resmi proyek ini, penyiapannya tersebar
00:04:28di beberapa berkas berbeda dan mengasumsikan banyak hal yang belum saya ketahui sebelumnya. Jadi
00:04:34alih-alih memandu Anda persis seperti yang tertulis, saya menyusun satu skrip serbaguna yang melakukan
00:04:40semuanya. Memeriksa papan, memasang toolchain, menyiapkan data, melatih, mengekspor, memverifikasi,
00:04:47membuat build, dan mem-flash semuanya sekaligus. Mari kita jalankan skrip tersebut. Satu info penting,
00:04:55jika Anda ikutan mencoba, seluruh skrip butuh waktu sekitar 25 menit sampai selesai. Dan itu kurang lebih sama
00:05:00dengan waktu jika dilakukan langkah demi langkah. Ini karena ada sangat banyak perintah terpisah
00:05:05yang harus Anda awasi. Sebagian besar waktu sebenarnya dihabiskan untuk melatih model tiny stories.
00:05:11Proses itu memakan waktu sekitar 13 menit di MacBook saya. Setelah pelatihan selesai, Anda akan melihat LED pada panel
00:05:18mulai berkedip. Itu menandakan bahwa kita akan memuat modelnya. Begitu memuatnya selesai,
00:05:24di sini kita bisa melihat contoh dasar pertama dari cerita tentang seorang gadis kecil. Dan benar,
00:05:29kita mendapatkan sembilan token per detik. Namun Anda akan menyadari bahwa pada titik tertentu,
00:05:33cerita tersebut akan mengulang dari awal lagi. Jadi model ini masuk ke dalam semacam perulangan. Jika Anda ingin
00:05:39memberikan prompt kustom, saya juga menyertakan skrip contoh yang bisa Anda gunakan untuk menjalankan prompt kustom
00:05:44Anda sendiri. Untuk contoh ini, mari kita mulai cerita tentang seekor robot. Hal lain yang perlu dicatat adalah jika Anda
00:05:50mengubah prompt, Anda harus mem-flash ulang ESP32 tersebut. Itu adalah keterbatasan dari metode ini.
00:05:56Metode ini hanya bisa memainkan satu prompt yang di-flash di awal secara bergantian. Seperti yang Anda lihat,
00:06:02robot tersebut memang disebutkan di dalam cerita. Dan ceritanya memang sedikit berbeda kali ini.
00:06:08Namun perhatikan apa yang terjadi setelah akhir paragraf. Ceritanya kembali ke gadis kecil
00:06:13tadi. Saya tidak tahu pasti mengapa ini terjadi. Namun yang jelas, model cenderung kembali ke satu
00:06:19cerita spesifik tentang gadis kecil itu. Mari kita coba contoh lain. Kali ini mari kita gunakan
00:06:24kalimat terkenal yang ditulis di awal setiap film Star Wars. Mari kita lihat ke mana kalimat itu akan
00:06:30membawa kita. Ini contoh yang menarik. Kita bisa melihat bahwa model tersebut langsung beralih kembali ke
00:06:36naratif gadis kecil lagi. Asumsi saya, untuk model berukuran sebesar ini, ia bahkan tidak paham
00:06:42apa itu galaksi. Mungkin itu sebabnya model tersebut mengabaikan prompt spesifik kita dalam kasus ini. Dan
00:06:47sekali lagi, kita melihat paragraf berikutnya memulai cerita yang sama. Meskipun eksperimen ini
00:06:53mengesankan dan melihat sebuah model menghasilkan sembilan token per detik di mikrokontroler kecil sungguh mengagumkan,
00:06:59ini masih sebatas bukti konsep yang sangat terbatas. Seperti yang kita lihat, apa pun yang Anda tanyakan ke model, ia akan
00:07:06selalu kembali ke bercerita karena memang itulah data latihnya. Namun jika Anda merasa pengujian ini
00:07:11menarik, saya juga membuat video lain di topik serupa saat menguji apakah Raspberry Pi generasi
00:07:18pertama bisa menjalankan LLM sungguhan secara lokal. Silakan tonton video itu jika Anda tertarik. Begitulah,
00:07:24teman-teman. Begitulah cara menjalankan model bahasa 28,9 juta parameter di chip ESP32. Kita sudah
00:07:32mengujinya. Dan berhasil. Apresiasi untuk Slava yang telah membuat proyek ini. Bagaimana pendapat Anda tentang eksperimen ini?
00:07:38Apakah Anda melihat contoh dunia nyata di mana penerapan seperti ini bisa berguna? Tuliskan
00:07:43pendapat Anda di kolom komentar di bawah. Dan teman-teman, jika Anda menyukai pembahasan teknis seperti ini,
00:07:48beritahu saya dengan menekan tombol suka di bawah video ini. Jangan lupa juga untuk
00:07:53berlangganan ke saluran kami. Saya Andres dari Betterstack, sampai jumpa di video-video berikutnya.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video