스크립트
00:00:00Model 35 miliar parameter ini berjalan langsung di iPhone saya. Saya bisa menghasilkan 11 token per
00:00:06detik berkat rekayasa pintar yang sebenarnya tidak pernah dirancang untuk model ini. Di video ini, saya akan
00:00:11menunjukkan cara melakukan hal yang sama. Yang saya jalankan di sini adalah model Mixture of Experts.
00:00:21Ukurannya 35 miliar parameter, yang sebagai file 4-bit normal berukuran sekitar 20 GB dan harus ada di RAM.
00:00:28Namun melalui berbagai teknik seperti streaming expert dari SSD sesuai kebutuhan, bobot yang benar-benar
00:00:33harus berada di memori berkurang menjadi hanya 1,4 GB. Saya akan menjelaskan cara kerjanya, lalu kita
00:00:39akan membahas pengaturan di iPhone itu sendiri. Kebanyakan model tersimpan sepenuhnya di RAM, tetapi keunggulan Mixture
00:00:45of Experts adalah hanya sebagian kecil yang aktif pada satu waktu. Ini berarti bagian yang tidak aktif
00:00:51dapat tersimpan di SSD menunggu gilirannya. Trik untuk menjalankan model yang lebih besar
00:00:56dengan memori terbatas adalah hanya mengalirkan expert tersebut ke memori saat dibutuhkan. Kita menjalankan Qwen
00:01:022.5 varian 35 miliar parameter, dan kode A2.4B di bagian akhir berarti hanya sekitar 2,4 miliar parameter
00:01:10yang aktif untuk setiap token. Model ini memiliki 40 layer, masing-masing dengan 64 expert kecil ditambah satu shared expert. Router
00:01:19memilih 4 dari expert tersebut per token, jadi satu token hanya menjalankan sekitar 2,4 miliar dari total 35 miliar
00:01:26parameter. Sekarang, seluruh model itu sendiri dibagi. Biasanya semuanya tersimpan di memori, tetapi ini tidak akan
00:01:32muat di iPhone. Sebagai gantinya, bagian yang dibutuhkan setiap token—seperti embedding, attention, router,
00:01:39dan shared expert—hanya dimuat sekali dan tetap berada di RAM sepanjang waktu, ukurannya sekitar
00:01:441,4 GB. Sementara expert—40 file masing-masing sekitar 300 MB dengan total 12 gigabita—tersimpan di SSD. Jadi untuk setiap token,
00:01:53attention berjalan di GPU, lalu router memilih 4 expert dan engine membaca ke-4 expert itu langsung dari SSD
00:02:00ke memori GPU dan menjalankannya bersama shared expert. Ini terjadi di setiap
00:02:06dari 40 layer tersebut, jadi ada 160 pembacaan kecil untuk setiap token. Jika Anda belum familiar dengan attention,
00:02:14itu adalah bagian dari model yang melihat kembali seluruh percakapan sejauh ini dan menentukan
00:02:19kata mana yang penting untuk memprediksi kata berikutnya. Attention berjalan pada setiap token tanpa kecuali,
00:02:25sehingga harus tetap berada di memori. Expert adalah bagian yang melakukan pemikiran sebenarnya tentang suatu token setelah
00:02:31attention menentukan konteksnya. Namun karena hanya empat dari expert tersebut yang digunakan, sisanya bisa kita biarkan
00:02:36di penyimpanan. Tidak ada cache expert di aplikasi sama sekali; setiap pembacaan melalui sistem operasi,
00:02:42dan iOS menyimpan expert yang baru saja digunakan di page cache miliknya sendiri selama masih ada sisa RAM. Para pengembang
00:02:49sebenarnya membuat cache 9,8 GB milik mereka sendiri lalu menghapusnya, dan itu membuat prosesnya 38% lebih cepat karena
00:02:55di Mac atau iPhone, RAM apa pun yang diambil aplikasi adalah RAM yang diambil dari GPU dan page cache tersebut,
00:03:03padahal cache itulah yang melakukan sebagian besar pekerjaan di sini. Pada kecepatan 11 token per detik, jika setiap expert dibaca dari flash storage,
00:03:09ponsel akan membutuhkan kecepatan baca lebih dari 5 gigabita per detik, sedangkan flash storage iPhone hanya mencapai sekitar 1,6 GB per
00:03:15detik. Jadi sebagian besar expert dibaca dari RAM yang dikelola sistem operasi untuk kita. Trik berikutnya adalah kuantisasi bertegkat
00:03:22(tiered quantization). Kuantisasi mengompresi bobot model sehingga memakan lebih sedikit ruang, tetapi juga mengurangi
00:03:29akurasi bobot tersebut dan memengaruhi kecerdasannya. Namun pada model ini, sekitar 25% dari
00:03:35expert menangani sekitar 80% pekerjaan. Jadi expert yang sering digunakan (hot expert) tetap di 4-bit, sedangkan yang jarang digunakan (cold expert)
00:03:41dikuantisasi menjadi 2-bit, menjadikannya 44% lebih kecil. Ukuran seluruh file menyusut 34% dari sekitar 19 GB menjadi
00:03:5013 GB, yang berarti lebih banyak bagian yang muat di page cache. Di iPhone 16 Pro saya, ini berjalan 11 token per detik saat
00:03:57model berada dalam mode berpikir. Namun harus saya akui, ponselnya menjadi sangat panas, bahkan hanya dengan menyapa “hello”. Saya bisa merasakan
00:04:03ponsel memanas di tangan saya, jadi usahakan agar ponsel Anda tidak meledak saat mengujinya. Jujur saja, saya
00:04:08agak takut untuk mengetik sesuatu yang terlalu rumit karena ini benar-benar bisa melelehkan tangan saya.
00:04:14Engine khusus yang kita jalankan ini adalah proyek bernama FlashMoE buatan Dan Woods. Engine ini ditulis untuk
00:04:19MacBook, dan ada port iOS kecil bernama FlashiOS yang membungkus engine yang sama ke dalam aplikasi iPhone,
00:04:26dan itulah yang memungkinkan saya menjalankan seluruh model ini di ponsel. Awalnya saya juga mengalami bug di mana pemikiran model
00:04:31terjebak dalam pengulangan. Awalnya berjalan baik, tetapi setelah sekitar 10 kata, model akan terus mengulang
00:04:35dua token yang sama selamanya. Untuk memeperbaikinya, saya memperbarui fungsi bernama async pre-read weight agar fungsi tersebut memeriksa
00:04:41setiap pembacaan expert terhadap ukuran expert itu sendiri. Cold expert berukuran 2-bit dan setengah dari ukuran hot expert,
00:04:48sehingga sebelum diperbaiki, setiap cold expert gagal dalam pemeriksaan ukuran dan dilewati secara diam-diam. Model tersebut secara efektif
00:04:54berjalan hanya dengan setengah dari expert yang ada, sehingga terus berulang. Jika Anda menyukai konten ini, teman-teman, bantuan besar bagi kami
00:04:59jika Anda bersedia berlangganan saluran ini agar kami bisa terus membuat konten gratis setiap hari. Sekarang, untuk
00:05:05memasangnya di ponsel Anda, Anda perlu mengkloning repositori, menerapkan perbaikan pre-read yang baru saya sebutkan ke
00:05:11metal infer / infer.m, lalu atur proyek Xcode ke tim dan ID bundle Anda. Anda memerlukan akun Apple
00:05:18Developer berbayar untuk ini. Buat release build dan pasang di iPhone Anda. Unduh model bertingkat
00:05:24yang sudah dikemas sebelumnya yang berukuran sekitar 13 GB, kirim ke aplikasi melalui USB yang membutuhkan waktu sekitar tujuh menit.
00:05:30Di ponsel, buka aplikasi FlashMoE, ketuk modelnya, lalu mulailah mengobrol. Dan jika Anda ingin mencoba menjalankan
00:05:36model lokal di Mac Anda untuk token per detik yang lebih cepat, tonton video berikutnya ini. Saya Warren dari
00:05:43Better Stack, terima kasih banyak telah menonton, dan sampai jumpa di video berikutnya.
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기