Trong một minh chứng đáng chú ý về khả năng AI trên trình duyệt, một nhà phát triển đã tạo ra bản triển khai hoàn chỉnh của GPT-2 small (117M tham số) chạy hoàn toàn trên WebGL2 shaders. Dự án này cho thấy cách các trình duyệt hiện đại có thể tận dụng khả năng tăng tốc GPU cho các tác vụ học máy mà không cần dựa vào các framework chuyên biệt.
WebGL và WebGPU: Vấn đề về tính tương thích và kinh nghiệm
Nhà phát triển đã chọn WebGL thay vì tiêu chuẩn WebGPU mới hơn chủ yếu do sự quen thuộc và yêu cầu dự án. Theo bình luận từ tác giả, đây được phát triển như một dự án cuối khóa cho lớp đồ họa sử dụng nhiều WebGL. Các thành viên cộng đồng chỉ ra rằng mặc dù WebGPU có thể mang lại lợi thế về hiệu suất, WebGL cung cấp khả năng tương thích rộng hơn trên các trình duyệt. Một người bình luận lưu ý rằng hỗ trợ WebGPU vẫn còn không ổn định trên các nền tảng khác nhau, khiến WebGL trở thành lựa chọn đáng tin cậy hơn cho khả năng truy cập phổ quát.
Cuộc thảo luận nhấn mạnh rằng một số thư viện hiện có như transformers.js đã tận dụng WebGPU, khiến việc triển khai WebGL này đáng chú ý vì tính độc đáo hơn là chỉ về chức năng. Dự án này tham gia cùng các triển khai sáng tạo khác của các mô hình ngôn ngữ trong môi trường bất ngờ, bao gồm một thế giới VRChat được đề cập chạy Qwen2-0.5B trong shaders và thậm chí là một triển khai GPT-2 trước đây trong Microsoft Excel.
Triển khai kỹ thuật và các cân nhắc về hiệu suất
Bản triển khai có forward pass GPT-2 small hoàn chỉnh chạy trên GPU thông qua WebGL2 shaders, với tokenization BPE được xử lý bởi js-tiktoken trực tiếp trong trình duyệt mà không yêu cầu tìm nạp WebAssembly. Các thành viên cộng đồng bày tỏ sự quan tâm đến việc hiểu các đặc điểm hiệu suất, đặc biệt là bao nhiêu thời gian suy luận thực sự bị ràng buộc bởi GPU so với CPU trong môi trường trình duyệt.
Dự án cực kỳ tuyệt vời! Bao nhiêu phần trăm thời gian suy luận thực sự bị ràng buộc bởi GPU so với CPU trong trình duyệt? Tò mò liệu WebGPU có mang lại sự cải thiện hiệu suất lớn so với WebGL2 trong trường hợp này không.
Câu hỏi này nhấn mạnh một cân nhắc kỹ thuật quan trọng cho việc học máy trên trình duyệt: sự cân bằng giữa khối lượng công việc GPU và CPU có thể ảnh hưởng đáng kể đến hiệu suất tổng thể. Một số người bình luận cho rằng việc đẩy các công nghệ cũ hơn như WebGL có thể thực sự thúc đẩy sự hiểu biết sâu sắc hơn về cách các mô hình này hoạt động so với việc sử dụng các thư viện mới hơn trừu tượng hóa các chi tiết triển khai.
Tính năng Kỹ thuật của Dự án
- Chạy toàn bộ GPT-2 small (117M) trên GPU thông qua WebGL2 shaders
- Tokenization BPE sử dụng js-tiktoken trong trình duyệt (không cần tải WASM)
- Script Python để tải các trọng số đã được huấn luyện trước
Yêu cầu hệ thống
- Node.js ≥ 16.x và npm
- Python ≥ 3.8
- Trình duyệt hiện đại có hỗ trợ WebGL2 (Chrome, Firefox, Safari, Edge)
Các Dự án Cộng đồng Tương tự đã Tham khảo
- Triển khai GPT-2 trong Excel
- Qwen2-0.5B chạy trong shaders của thế giới VRChat
- transformers.js sử dụng ONNX runtime (hỗ trợ WASM, WebGL, WebGPU, WebNN)
Thách thức về triển khai và khả năng tiếp cận
Dự án hiện đang đối mặt với các thách thức triển khai, đặc biệt là liên quan đến phân phối trọng số. Mặc dù mã nguồn có sẵn trên GitHub, người dùng lưu ý khó khăn trong việc truy cập bản demo trực tiếp do các vấn đề với việc lưu trữ trọng số mô hình. Một số thành viên cộng đồng đã đề xuất các giải pháp, bao gồm việc tìm nạp trọng số trực tiếp từ kho lưu trữ Hugging Face theo yêu cầu thay vì đóng gói chúng với ứng dụng.
Tác giả đề cập đến việc đang làm việc trên triển khai GitHub Pages nhưng thừa nhận những thách thức với phương pháp hiện tại để tải trọng số. Các thành viên cộng đồng đưa ra những đề xuất hữu ích, bao gồm tham khảo các dự án hiện có đã thành công trong việc tìm nạp trọng số GPT-2 từ Hugging Face một cách động.
Dự án này đại diện cho sự giao thoa thú vị giữa lập trình đồ họa và học máy, chứng minh rằng các trình duyệt hiện đại ngày càng có khả năng chạy các mô hình AI phức tạp trực tiếp ở phía máy khách. Khi công nghệ trình duyệt tiếp tục phát triển, chúng ta có thể mong đợi thấy nhiều ứng dụng sáng tạo hơn tận dụng khả năng tăng tốc GPU cho các tác vụ AI mà không cần phần cứng hoặc môi trường phần mềm chuyên biệt.
Tham khảo: GPT-2 WebGL Inference Demo