Google Baru Saja Membuat TensorFlow.js Menjadi Usang (LiteRT.js)

BBetter Stack
컴퓨터/소프트웨어게임/e스포츠AI/미래기술

스크립트

00:00:00Google baru saja merilis pustaka runtime baru yang memungkinkan Anda menjalankan model pembelajaran mesin dan AI
00:00:05di dalam peramban dengan kecepatan mendekati aslinya. Namanya LiteRT.js dan sangat mengesankan. Jadi
00:00:12dalam video ini kita akan melihat LiteRT.js, memahami cara kerjanya, dan kita akan mengujinya dengan
00:00:18membangun aplikasi penangkap gerak 3D waktu nyata yang berjalan sepenuhnya di dalam peramban. Ini akan menjadi
00:00:24sangat menyenangkan, jadi mari kita selami. Jadi apa sebenarnya LiteRT.js itu? Nah, ini adalah binding JavaScript untuk
00:00:36LiteRT, runtime inferensi di perangkat mereka, yang telah menjalankan model di Android, iOS, dan perangkat keras
00:00:42tertanam selama bertahun-tahun. Namun LiteRT.js menghadirkan runtime yang sama ke dalam peramban melalui WebAssembly menggunakan
00:00:50paket npm inti LiteRT.js. Dan inilah yang membuat LiteRT.js berbeda. Google sudah memiliki
00:00:58pustaka pembelajaran mesin peramban, namanya TensorFlow.js, dan sudah ada selama bertahun-tahun. Tapi
00:01:04TensorFlow.js berjalan pada kernel berbasis JavaScript, dan itu merupakan hambatan besar. Anda tahu, kernel JavaScript
00:01:11tidak dapat sepenuhnya memanfaatkan CPU atau GPU seperti runtime asli. Jadi TensorFlow.js selalu tertinggal di belakang
00:01:19performa aplikasi asli. Namun LiteRT.js menggunakan WebAssembly, dan hadir dengan kernel yang dioptimalkan sendiri.
00:01:27Jadi runtime asli yang sama yang mendukung inferensi Android dan iOS dikompilasi ke WASM lalu diekspos ke
00:01:34LiteRT.js. Jadi Anda tidak lagi mendapatkan lapisan abstraksi rasa web, Anda benar-benar mendapatkan
00:01:40mesin runtime yang benar-benar dioptimalkan. Dan ini juga terlihat pada arsitektur back-end mereka. LiteRT.js memiliki
00:01:47tiga tingkat berbeda yang memungkinkannya berkinerja baik pada CPU, GPU, dan bahkan NPU. Jadi di sisi CPU,
00:01:55ia menggunakan XNNPack, pustaka kernel CPU yang dioptimalkan milik Google, yang bersifat multi-thread dengan dukungan SIMD yang fleksibel.
00:02:04Dan ini adalah fallback universal Anda yang akan berjalan di mana saja, tidak memerlukan GPU. Namun untuk GPU,
00:02:11ia menggunakan ML drift melalui web GPU, dan di sinilah performa sebenarnya berada. Ia memanfaatkan kernel
00:02:18GPU asli, jadi hal-hal seperti shader tidak lagi dirender menggunakan semacam orkestrasi JavaScript. Dan untuk
00:02:24NPU, ia memiliki WebNN, yang masih eksperimental di Chrome dan Edge, dan menargetkan perangkat keras pemrosesan
00:02:31neural khusus untuk inferensi yang hemat daya. Dan menurut tolok ukur Google sendiri, yang mereka
00:02:37lakukan pada MacBook Pro 2024 dengan Silikon M4, tampaknya ia memiliki inferensi tiga kali lebih cepat daripada
00:02:45runtime web lainnya pada CPU dan GPU untuk model visi dan audio. Dan saat menjalankan beban kerja seperti
00:02:53pelacakan objek, transkripsi audio, atau manipulasi gambar pada GPU atau NPU, daripada pada CPU,
00:03:00kita mendapatkan peningkatan performa yang melonjak dari lima kali hingga 60 kali lebih cepat,
00:03:07tergantung pada tugasnya. Dan perlu disebutkan bahwa itu adalah skenario kasus terbaik. Dan Google juga
00:03:13mengakui hal ini. Jadi hasil Anda mungkin bervariasi, dengan mempertimbangkan GPU spesifik Anda,
00:03:18thermal throttling, dan kualitas driver. Dan ada satu hal lagi yang sangat penting untuk runtime ini.
00:03:24Jika Anda sudah memiliki model yang biasa Anda gunakan untuk berjalan di PyTorch atau TensorFlow, jika Anda memiliki file
00:03:30TF Lite yang ada, LiteRT.js sebenarnya dapat menjalankannya secara langsung. Dan jika Anda menggunakan PyTorch, ada juga LiteRT
00:03:38Torch, jalur konversi yang membawa model Anda langsung ke .TF Lite. Selain itu, ada juga AI Edge
00:03:44Quantizer untuk memperkecil ukuran model tanpa penulisan ulang penuh. Jadi alur kerja lama yang Anda gunakan pada
00:03:50TensorFlow.js dapat dengan mudah dipindahkan ke LiteRT.js yang baru, yang sangat keren. Tapi apa yang bisa
00:03:58Anda lakukan dengannya? Nah, Google memiliki beberapa demo keren, yang memberi Anda gambaran tentang
00:04:03jangkauannya. Jadi Anda dapat melakukan deteksi objek YOLO waktu nyata, estimasi kedalaman monokular dengan
00:04:09pustaka depth anything yang mengubah feed webcam Anda menjadi titik awan 3D langsung. Dan ia juga dapat melakukan peningkatan skala gambar
00:04:16dengan pustaka real ESR GAN. Dan semua demo ini berjalan sepenuhnya di sisi klien tanpa
00:04:23backend, tanpa API langsung di dalam peramban Anda. Dan mereka sudah mengumumkan apa yang akan datang selanjutnya,
00:04:29LiteRT.LM.js. Dan ini akan digunakan untuk menjalankan model bahasa lengkap secara lokal di dalam peramban.
00:04:36Jadi ini bukan hanya untuk visi komputer. Segera ia juga akan menawarkan inferensi LLM lokal juga.
00:04:42Baiklah, itu semua terdengar bagus, tetapi saya ingin mengujinya sendiri untuk melihat seberapa kuat sebenarnya
00:04:48itu. Jadi untuk demo ini, saya memutuskan untuk membuat aplikasi penangkap gerak nyata yang menggunakan webcam Anda untuk
00:04:55estimasi pose waktu nyata. Dan itu juga berjalan sepenuhnya di peramban Anda, sisi klien, dan offline tanpa
00:05:03syarat apa pun. Jadi saya membuat aplikasi ini di cloud code menggunakan model Fable 5 yang baru. Dan inilah hasil akhirnya.
00:05:10Dan omong-omong, jika Anda ingin mengunduh repo ini dan memainkannya sendiri, saya juga telah menambahkan tautan ke
00:05:15proyek ini di deskripsi di bawah. Jadi di sini LiteRT.JS berjalan melalui peramban menggunakan model blaze pose
00:05:23dengan 33 tengara tubuh, menggerakkan karakter 3D secara waktu nyata menggunakan 3.js. Tidak ada server backend dan
00:05:31semua yang Anda lihat terjadi pada mesin ini sekarang sepenuhnya offline. Jadi kita bisa melihat di sini bahwa pada
00:05:38CPU, kita rata-rata mencapai sekitar 38 FPS dengan inferensi 23,3 milidetik. Dan kita juga bisa melihat bahwa estimasi pose
00:05:47sedikit tertinggal. Tapi sekarang jika kita beralih ke versi web GPU, kita bisa melihat bahwa kita sekarang
00:05:54mendapatkan 120 frame per detik yang solid dengan inferensi 8,4 milidetik. Dan estimasi pose juga sedikit
00:06:02lebih cepat. Dan itu kira-kira tiga kali lipat lonjakan frame rate dan 2,8 kali penurunan waktu inferensi, yang
00:06:10sejalan dengan angka Google sendiri, meskipun itu pada batas moderat dari apa yang mereka publikasikan. Tapi kita harus
00:06:16mempertimbangkan bahwa blaze pose benar-benar model kecil. Jadi ada lebih sedikit komputasi mentah bagi GPU
00:06:23untuk diproses. Namun bahkan dengan itu, memindahkan matematika tensor dari CPU ke web GPU memangkas latensi
00:06:30cukup sehingga lag jauh lebih rendah. Dan saya juga menambahkan fitur di mana Anda dapat merekam animasi tangkapan pose
00:06:36Anda dan mengekspornya sebagai JSON atau sebagai file penangkapan gerak bio vision, lalu membukanya di
00:06:44sesuatu seperti blender dan menargetkan ulang animasi itu ke karakter khusus Anda sendiri. Dan seperti yang Anda lihat di sini,
00:06:49itu tidak sempurna. Gerakannya tidak terlalu detail atau halus. Jadi ini masih sangat dalam proses
00:06:56pengerjaan. Tapi sangat keren bahwa saya bisa membuat versi awal ini berfungsi hanya dalam 10 menit
00:07:01menggunakan LiteRT.js yang baru. Jadi begitulah, kawan. Itu adalah LiteRT.js secara singkat. Sungguh
00:07:08luar biasa melihat seberapa jauh WebAssembly telah mendorong kemampuan menjalankan aplikasi kompleks
00:07:14di peramban. Dan pustaka LiteRT.js baru ini benar-benar membuktikan bahwa terkadang JavaScript bisa
00:07:21menjadi hambatan nyata untuk mencapai kecepatan performa yang mendekati asli. Jadi saya sangat terkesan dengan
00:07:27pustaka ini dan saya tidak sabar untuk mencoba LiteRT.js ketika akhirnya dirilis akhir tahun ini. Tapi apa pendapat Anda
00:07:35tentang LiteRT.js? Apakah Anda sudah mencobanya? Apakah Anda akan menggunakannya? Beri tahu kami di komentar di bawah. Dan kawan,
00:07:40jika Anda menyukai jenis perincian teknis ini, harap beri tahu saya dengan menekan tombol suka itu
00:07:45di bawah video. Dan juga jangan lupa untuk berlangganan saluran kami. Ini adalah Andres dari
00:07:50BetterStack dan saya akan melihat Anda di video berikutnya.

핵심 요약

LiteRT.js menggantikan keterbatasan kernel JavaScript pada TensorFlow.js dengan menggunakan runtime berbasis WebAssembly yang dioptimalkan, menghasilkan peningkatan performa inferensi hingga 60 kali lipat secara lokal di dalam peramban.

하이라이트

  • LiteRT.js memungkinkan inferensi model pembelajaran mesin di peramban dengan memanfaatkan WebAssembly dan kernel runtime yang dioptimalkan.

  • Performa inferensi LiteRT.js mencapai peningkatan kecepatan 5x hingga 60x lipat pada GPU atau NPU dibandingkan dengan CPU untuk tugas tertentu.

  • Pengujian pada MacBook Pro 2024 dengan chip M4 menunjukkan inferensi 3x lebih cepat dibandingkan pustaka web lainnya pada tugas visi dan audio.

  • Aplikasi penangkap gerak 3D berbasis WebGPU mencapai 120 FPS dengan latensi 8,4 milidetik, sedangkan pada CPU hanya mencapai 38 FPS dengan latensi 23,3 milidetik.

  • LiteRT.js mendukung model yang ada dari PyTorch dan TensorFlow melalui format file .tflite atau jalur konversi LiteRT Torch.

  • Arsitektur LiteRT.js menggunakan XNNPack untuk CPU, WebGPU untuk akselerasi grafis, dan WebNN untuk pemrosesan perangkat keras neural khusus.

타임라인

Arsitektur dan Keunggulan LiteRT.js

  • LiteRT.js menggunakan WebAssembly untuk menjalankan runtime inferensi asli di dalam peramban.
  • Runtime ini melampaui performa TensorFlow.js karena tidak bergantung pada kernel berbasis JavaScript.
  • Sistem mendukung tiga tingkat akselerasi: XNNPack untuk CPU, WebGPU untuk GPU, dan WebNN untuk NPU.

LiteRT.js membawa runtime inferensi perangkat keras yang telah digunakan di Android dan iOS ke lingkungan peramban. Penggunaan WebAssembly menghilangkan lapisan abstraksi JavaScript yang selama ini membatasi pemanfaatan CPU dan GPU. Kernel yang dioptimalkan secara khusus memastikan eksekusi model berjalan mendekati kecepatan aplikasi asli pada perangkat keras klien.

Kompatibilitas dan Penggunaan Model

  • Model yang sudah ada dalam format TF Lite dapat langsung dijalankan tanpa perubahan.
  • Model PyTorch dapat dikonversi langsung melalui LiteRT Torch.
  • AI Edge Quantizer tersedia untuk memperkecil ukuran model tanpa harus menulis ulang arsitektur.
  • Dukungan masa depan mencakup LiteRT.LM.js untuk menjalankan model bahasa besar secara lokal di peramban.

Peralihan dari alur kerja TensorFlow.js ke LiteRT.js dimudahkan dengan dukungan format model yang sudah ada. Google menyediakan jalur konversi untuk pengguna PyTorch dan alat kuantisasi untuk mengoptimalkan model agar tetap ringan saat berjalan di sisi klien. Selain visi komputer, peta jalan pengembangan mencakup inferensi model bahasa lokal di masa mendatang.

Uji Coba Aplikasi Penangkap Gerak 3D

  • Aplikasi penangkap gerak 3D menggunakan model Blaze Pose dengan 33 titik tubuh.
  • Peralihan dari pemrosesan CPU ke WebGPU meningkatkan frame rate dari 38 FPS menjadi 120 FPS.
  • Latensi inferensi berkurang dari 23,3 milidetik pada CPU menjadi 8,4 milidetik pada WebGPU.
  • Data tangkapan gerak dapat diekspor sebagai JSON atau file bio vision untuk digunakan dalam perangkat lunak seperti Blender.

Demonstrasi praktis menggunakan webcam untuk estimasi pose menunjukkan keunggulan signifikan saat menggunakan WebGPU dibandingkan CPU. Meskipun masih dalam tahap awal, sistem ini mampu menghasilkan animasi yang dapat diekspor dan ditargetkan ulang ke model karakter 3D. Seluruh proses inferensi dilakukan secara offline tanpa ketergantungan pada server backend atau API eksternal.

커뮤니티 글

모든 글 보기