Chip Seharga $10 Ini Menjalankan Model AI 45 Juta Parameter (Needle 2)
BBetter Stack
컴퓨터/소프트웨어가전제품/카메라
스크립트
00:00:00Ini adalah Needle 2. Ini adalah model LLM Argentic berukuran 14 megabyte. Izinkan saya mengulanginya jika Anda melewatkannya.
00:00:07Ukurannya 14 megabyte dan memiliki 45 juta parameter. Pada dasarnya LLM ini sangat kecil sehingga benar-benar dapat berjalan
00:00:14pada perangkat edge apa pun hingga ESP32 S3 yang mendasar. Model ini dikembangkan oleh Cactus Compute yang kini telah
00:00:21membuka sumber model ini di bawah lisensi Apache 2.0 dan saya telah mengujinya sendiri dan model ini benar-benar
00:00:28berfungsi. Jadi dalam video ini kita akan melihat Needle 2, melihat cara kerjanya dan kemudian kita akan
00:00:34menjalankan beberapa uji inferensi yang menyenangkan pada mikrokontroler aktual untuk melihat kinerjanya. Ini
00:00:40akan sangat menyenangkan jadi mari kita langsung bahas. Jadi beberapa minggu lalu saya membuat video lain di mana
00:00:49saya menerapkan model 29 juta parameter pada ESP32 S3 tetapi itu lebih merupakan sebuah gimik dan bukan
00:00:56LLM yang sebenarnya karena sangat mendasar dan dilatih menggunakan cerita anak-anak sehingga hanya itulah
00:01:03yang bisa dikeluarkannya. Namun, LLM ini adalah model nyata yang memahami konteks Anda, tetapi sebelum Anda
00:01:10terlalu bersemangat, ada satu hal yang perlu dicatat. Ini bukan chatbot LLM biasa Anda. Sebaliknya,
00:01:16model ini khusus dibuat untuk bekerja sebagai pemanggil alat (tool call dispatcher). Jadi cara kerjanya adalah Anda
00:01:22menetapkan serangkaian pemanggilan alat terlebih dahulu, dan itu bisa apa saja mulai dari memutar servo hingga operasi mekanis
00:01:29atau dapat dieksekusi lainnya yang dapat Anda pikirkan. Dan kemudian Anda dapat memberikan perintah kepada model dalam bahasa alami
00:01:35dan model itu akan cukup pintar untuk memahami berdasarkan perintah Anda pemanggilan alat mana yang harus dieksekusi. Dan itulah
00:01:40intinya. Sekarang ini sangat keren karena pada papan seperti Raspberry Pi 5 model ini dapat mencapai
00:01:47hingga 500 token per detik sehingga dapat menjadi penggerak yang sangat efisien untuk proyek robotika misalnya. Tetapi pada perangkat yang lebih besar dan berkinerja tinggi
00:01:55dapatkah Needle 2 benar-benar beroperasi sebagai chatbot? Nah, jawabannya adalah tidak karena ini bukan masalah kecepatan
00:02:04karena Needle sama sekali tidak dilatih tentang pengetahuan umum atau percakapan. Seluruh data pelatihannya adalah
00:02:10tindakan perangkat seperti perintah rumah pintar, tindakan seluler, tindakan perangkat yang dapat dikenakan, hal-hal semacam itu. Jadi
00:02:17bahkan pada perangkat yang bertenaga jika Anda bertanya kepadanya apa ibu kota Prancis, ia tidak akan dapat menjawabnya. Model ini akan
00:02:23sangat baik dalam memilih fungsi yang tepat dan mengisi argumen yang tepat, tetapi hanya itu saja. Dan itulah
00:02:28kompromi yang harus mereka buat agar ukurannya bisa sangat kecil ini. Tapi mari kita bahas bagaimana mereka berhasil mewujudkan
00:02:3345 juta parameter yang sebenarnya mampu bersaing dengan model lima atau tujuh kali lebih besar. Karena
00:02:40biasanya ketika Anda memperkecil ukuran model sedemikian rupa, model tersebut menjadi bodoh. Namun Cactus tidak menginginkan hal itu sehingga mereka membangun kembali
00:02:47beberapa bagian arsitekturnya dari awal. Perubahan besar tersebut adalah sesuatu yang mereka sebut sebagai engram.
00:02:53Biasanya semua pengetahuan model berada di dalam bobotnya dan setiap bobot tersebut harus dijalankan
00:02:59melalui perkalian matriks untuk setiap token dan itu membutuhkan biaya komputasi yang besar. Tetapi Cactus memindahkan sebagian
00:03:06pengetahuan itu ke dalam tabel pencarian terenkripsi (hashed lookup tables). Jadi model dapat langsung mengambil baris memori alih-alih
00:03:12melakukan perhitungan matematika di atasnya. Dan mereka juga mengganti lapisan MLP normal dengan sesuatu yang dibangun berdasarkan transformasi Hadamard,
00:03:19yaitu operasi matematika tetap yang hampir tidak memiliki parameter yang dapat dipelajari yang melekat padanya. Biasanya langkah
00:03:25pencampuran tersebut dilakukan oleh matriks besar yang harus dipelajari oleh model dari awal. Dan itu menghabiskan sebagian besar
00:03:32anggaran parameter model kecil tersebut. Namun transformasi Hadamard melewati semua pembelajaran tersebut karena merupakan
00:03:38rumus tetap yang melakukan semua pencampuran secara gratis. Jadi Cactus mendapatkan keuntungan tersebut tanpa menghabiskan
00:03:4445 juta parameter mereka untuk itu. Dan kemudian ada kuantisasi, yang sejujurnya merupakan bagian yang membuat
00:03:50semua ini dapat diterapkan. Needle 2 berjalan pada dua bit per bobot dan sebenarnya dilatih pada dua
00:03:57bit, bukan dikuantisasi setelah pelatihan selesai. Masalahnya adalah banyak model kecil yang rusak ketika Anda
00:04:03mengompresnya setelah pelatihan karena mereka tidak pernah dibuat untuk bertahan dari kompresi tersebut. Tetapi Needle
00:04:09dilatih dengan memperhitungkan kompresinya sendiri sejak awal, sehingga versi default mereka sudah dioptimalkan. Jadi, apakah semua ini
00:04:16benar-benar terbukti? Nah, pada tolok ukur Cactus sendiri, Needle 2 benar-benar bersaing langsung dengan model
00:04:23yang ukurannya lima kali lipat lebih besar. Dan pada beberapa pengujian pemanggilan alat yang lebih sulit, model ini benar-benar mengunggulinya secara telak,
00:04:30meskipun berjalan pada presisi dua-bit dibandingkan dengan presisi penuh 16-bit milik LFM. Dan pada tolok ukur tindakan
00:04:38seluler, Needle memilih nama fungsi yang benar sebanyak 98,3% dari waktu, dan angka itu lebih tinggi daripada setiap
00:04:45model yang dibandingkan dengannya. Jadi model ini tidak sempurna dalam segala hal, tetapi untuk tugas yang memang dibangun untuknya,
00:04:51model ini sangat, sangat bagus. Jadi mari kita mengujinya untuk melihat bagaimana kinerjanya. Untuk tujuan ini, saya membuat
00:04:57mesin inferensi kustom saya sendiri yang benar-benar berjalan pada papan persis ini, yaitu ESP32-S3. Dan saya akan menyertakan tautan ke
00:05:05repositori GitHub di deskripsi di bawah jika Anda ingin mencobanya sendiri. Di terminal ini,
00:05:10kita dapat melihat bahwa kita memiliki aplikasi TUI kecil. Jadi sekarang saya dapat memberikannya perintah berupa permintaan
00:05:17bahasa alami dan melihat cara kerjanya. Pertama, mari kita beri perintah yang sederhana. Misalnya menyalakan lampu merah
00:05:25berkedip selama tiga detik. Dan begitu saya meluncurkan ini, Anda dapat melihat ia memetakan model langsung dari
00:05:32cip kilat dan menyiapkan memori kerjanya. Dan setelah selesai, model melewati fase penalaran.
00:05:39Dan kita dapat melihat bahwa model mengidentifikasi warnanya adalah merah, modenya adalah berkedip, dan ia juga mengidentifikasi
00:05:48bahwa kita harus melakukannya selama tiga detik. Jadi setelah selesai dengan fase penalaran,
00:05:53model akan melanjutkan ke penulisan pemanggilan alat yang sebenarnya. Dan ini memerlukan sedikit waktu karena berjalan lambat
00:06:00pada ESP32. Namun demikian, ini cukup keren. Dan lihat itu, kita sekarang mendapatkan lampu merah yang berkedip selama
00:06:08tiga detik. Dan kita juga dapat melihat bahwa model memiliki skor tingkat keyakinan (confidence score) yang memberi tahu kita seberapa yakin
00:06:15ia terhadap pemanggilan alat tertentu ini. Dan ini sudah bawaan di needle dua. Dan ini sangat keren karena berdasarkan
00:06:21skor keyakinan ini, kita dapat memrogram cip untuk skenario yang berbeda. Jadi seperti yang Anda lihat, ini memakan waktu sekitar
00:06:2739 detik untuk diselesaikan, yang mungkin terdengar lambat. Tapi ingat bahwa ini adalah model 45 juta parameter
00:06:35yang berjalan pada mikrokontroler delapan megabyte tanpa GPU. Sekarang, mari kita lihat apa yang terjadi jika saya meminta sesuatu
00:06:41yang sepenuhnya di luar konteks. Jadi biarkan saya bertanya, apa ibu kota Prancis?
00:06:48Dan seperti yang dapat Anda lihat di sini, model membaca permintaan kita lagi. Dan sekarang dalam fase penalaran,
00:06:54ia mengatakan bahwa tidak ada alat yang tersedia untuk fakta negara. Jadi pemanggilan alat akan kosong. Dan
00:07:00lihat itu, ia sangat yakin bahwa tidak ada alat yang dapat dieksekusi dengan percaya diri berdasarkan
00:07:07perintah ini. Jadi saya rasa ini tetap merupakan respons yang sangat cerdas. Kali ini, mari kita minta untuk
00:07:14menyalakan lampu ungu selama tujuh detik. Dan mari kita lihat apakah ia memahaminya. Dan model mengidentifikasi bahwa
00:07:21warnanya memang ungu. Dan ia memahami bahwa menyalakan berarti modenya harus stabil dan tidak berkedip.
00:07:29Dan ia juga mengerti bahwa durasinya harus selama tujuh detik. Jadi ia kemudian melanjutkan untuk menulis alat
00:07:36pemanggilan yang sebenarnya. Dan setelah selesai, lihat itu. Lampu ungu sekarang menyala. Seharusnya selama tujuh detik.
00:07:46Nah, itu dia. Betapa kerennya itu? Dan yang menarik, kali ini tingkat keyakinannya tidak begitu tinggi.
00:07:52Jadi skor keyakinannya adalah 0,57, tetapi model tetap berhasil bernalar melalui tugas tersebut dengan semestinya dan
00:08:00mengeksekusi persis seperti yang kita minta. Dan ada satu hal lagi yang ingin saya tunjukkan kepada Anda. Saya membangun proyek ini
00:08:06khusus agar dapat digunakan kembali. Jadi Anda dapat menukar perintah lampu berkedip dengan sesuatu yang lain. Seperti,
00:08:12misalnya, jika Anda memiliki proyek robotika yang menggunakan servo, Anda pada dasarnya dapat mengganti perintah-perintah ini
00:08:17dengan perintah Anda sendiri. Dan saya telah mendokumentasikan proses tiga langkah cara melakukannya di file readme proyek.
00:08:24Jadi jika Anda ingin menggunakannya kembali untuk proyek Anda sendiri, ikuti saja tiga langkah tersebut dan Anda
00:08:29siap menggunakannya. Mari kita coba variasi lain. Tampilkan lampu kuning selama lima detik. Dan silakan lihat.
00:08:36Model menyalakan lampu kuning berkedip selama lima detik. Dan ini memiliki skor keyakinan terendah dari semuanya,
00:08:42yaitu 0,46. Dan saya merasa menarik bahwa ia berpikir menampilkan berarti menyalakan lampu berkedip dan bukan menampilkannya
00:08:50untuk jangka waktu yang lama. Jadi begitulah. Itu menunjukkan bahwa model ini tidak sempurna. Ia mungkin masih
00:08:56salah memahami niat Anda, tetapi meskipun demikian, kita mendapatkan lampu kuning dan kita mendapatkannya selama lima detik. Dan
00:09:03sebagian besar pemanggilan alat ini membutuhkan waktu sekitar 40 detik untuk diproses dengan kecepatan rata-rata 1,86 token per detik. Jadi
00:09:10itu adalah hasil yang cukup keren menurut saya. Jadi begitulah kawan-kawan. Itulah Needle 2 secara singkat,
00:09:16model 45 juta parameter, 14 megabyte yang berjalan sepenuhnya secara offline pada cip yang harganya sekitar 10 dolar.
00:09:24Dan teman-teman, jika Anda menyukai jenis analisis teknis seperti ini, beri tahu saya dengan menekan tombol
00:09:28suka di bawah video. Dan juga jangan lupa untuk berlangganan saluran kami.
00:09:33Ini adalah Andrus dari BetterStack dan saya akan melihat Anda di video berikutnya.
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기