Setelah enam tahun pengembangan, WebGPU akan diluncurkan di sebagian besar browser web utama. Hal ini sangat besar: aplikasi web kini memiliki akses yang hampir asli ke GPU, dengan tambahan kapasitas komputasi shader.
WebGPT adalah implementasi vanilla JS dan HTML dari model transformator, yang dimaksudkan sebagai bukti konsep serta sumber daya pendidikan. WebGPT telah diuji untuk dapat bekerja dengan model hingga parameter 500 M, meskipun kemungkinan dapat mendukung lebih banyak lagi dengan pengujian/optimasi lebih lanjut.
Mac M1 2020: 3 md/token pada parameter 5 juta dengan presisi f32.
Mac M1 2020: 30 md/token pada parameter 117 juta dengan presisi f32.
Mac M1 2020: 70 md/token pada parameter 377 juta dengan presisi f32.
Mac M1 2020: 120 md/token pada parameter 775 juta dengan presisi f32.
1.5B berfungsi tetapi tidak stabil, berada di sekitar 1000ms/token karena inefisiensi.
Menjalankan WebGPT sangat sederhana, karena ini hanya sekumpulan file HTML + JS. Karena WebGPU masih dalam proses rilis, Anda harus membukanya dengan browser yang kompatibel. WebGPU saat ini tersedia di Chrome v113 tetapi cara paling mudah untuk memastikan fungsionalitas yang tepat adalah dengan menginstal Chrome Canary atau Edge Canary.
Saya telah menyertakan dua model berbeda: model mainan GPT-Shakespeare (yang sangat kurang terlatih haha) dan GPT-2 117M. Lihat main.js untuk informasi selengkapnya tentang cara menjalankan model ini. Jika Anda ingin mengimpor model khusus, lihat misc/conversion_scripts.
Jika Anda ingin mencoba WebGPT, kunjungi situs demo di sini KMeans.org. Saya biasanya merekomendasikan mengkloning repo dan menjalankannya secara lokal, hanya karena memuat bobot dari jarak jauh jauh lebih lambat.
Catatan: Anda harus menggunakan Git LFS untuk mengunduh file model, setelah mengkloning repositori.
Ketika saya memulai proyek ini, saya tidak tahu cara kerja transformator atau cara mengimplementasikannya (atau GPU atau kernel matmul atau WebGPU atau tokenisasi dalam hal ini), jadi seri Andrej Karpathy tentang jaringan saraf dan membangun GPT dari awal sangat berharga: Youtube Andrej. Saya juga menggunakan beberapa kode dari repositori nanoGPT: nanoGPT.
Saya menyalin dari implementasi tokenizer GPT-3 OpenAI LatitudeGames dalam Javascript: GPT-3-Encoder.