Wavi Books · AI, LLM & AI Agent

Web AI là gì? Khi mô hình AI chạy ngay trong trình duyệt với LiteRT.js

Nguyễn Minh Trí · Biên tập chuyên môn Wavi Books

Trang minh họa sách Hands-On Large Language Models tiếng Việt cho chủ đề Web AI và chạy mô hình AI trực tiếp trong trình duyệt bằng LiteRT.js

Tìm hiểu Web AI, LiteRT.js, WebGPU và cách chạy mô hình AI trực tiếp trong trình duyệt: lợi ích, giới hạn, kiến trúc và lộ trình thử nghiệm thực tế.

## Có những dữ liệu không nên rời khỏi chiếc máy của người dùng

Hãy hình dung một ứng dụng web giúp nhân viên đọc nhanh hợp đồng nội bộ. Cách quen thuộc là tải tài liệu lên server, gọi mô hình AI rồi trả kết quả về. Luồng này dễ triển khai, nhưng ngay lập tức kéo theo những câu hỏi không hề nhỏ: tài liệu được lưu ở đâu, tồn tại bao lâu, ai có quyền xem log và chuyện gì xảy ra khi mạng chập chờn?

Web AI đưa ra một hướng khác: tải mô hình hoặc runtime xuống trình duyệt và thực hiện suy luận ngay trên thiết bị của người dùng. Dữ liệu có thể được xử lý cục bộ, không phải đi qua API cho từng lần dự đoán. Google công bố LiteRT.js ngày 09/07/2026 như một binding JavaScript của LiteRT, hướng tới việc chạy mô hình `.tflite` trên web bằng WebAssembly, WebGPU và về sau là WebNN.

Nghe qua rất hấp dẫn: riêng tư hơn, phản hồi nhanh hơn và không tốn phí server theo từng request. Nhưng nếu chỉ nhìn ba ưu điểm đó, ta sẽ dễ biến một demo đẹp thành một website tải chậm, nóng máy và không chạy trên phần lớn thiết bị của khách hàng. Web AI không xóa chi phí tính toán; nó chuyển một phần chi phí từ hạ tầng của doanh nghiệp sang máy và đường truyền của người dùng.

## Web AI là gì, nói theo cách dễ hiểu?

Web AI là nhóm kỹ thuật cho phép ứng dụng web tải, thực thi hoặc tương tác với mô hình machine learning ngay trong môi trường trình duyệt. Tùy kiến trúc, mô hình có thể chạy hoàn toàn cục bộ, chia việc giữa client và server, hoặc chỉ dùng trình duyệt cho bước tiền xử lý và hậu xử lý.

Điểm quan trọng không nằm ở chữ ‘AI’, mà ở vị trí diễn ra inference — quá trình dùng mô hình đã huấn luyện để tạo dự đoán. Khi inference chạy trên server, developer kiểm soát phần cứng nhưng phải trả chi phí vận hành và truyền dữ liệu. Khi inference chạy trong trình duyệt, ứng dụng tận dụng CPU, GPU hoặc NPU của máy người dùng, đổi lại phải chấp nhận sự khác biệt rất lớn giữa các thiết bị.

Web AI phù hợp với những bài toán nhỏ hoặc vừa, cần phản hồi gần thời gian thực và có giá trị khi giữ dữ liệu cục bộ: nhận dạng vật thể từ camera, xử lý âm thanh, gợi ý văn bản ngắn, embedding cho tìm kiếm cục bộ, làm mờ nền hay phân loại dữ liệu riêng tư. Nó không mặc nhiên phù hợp với một LLM hàng chục tỷ tham số hoặc workflow cần dữ liệu doanh nghiệp luôn cập nhật.

## LiteRT.js đang thay đổi điều gì?

Trước đây, nhiều developer nghĩ đến TensorFlow.js khi muốn chạy machine learning trên web. LiteRT.js không đơn giản là một cái tên thay thế. Nó đưa runtime LiteRT đã được tối ưu cho on-device AI sang JavaScript và TypeScript, đồng thời hướng tới một quy trình dùng chung mô hình `.tflite` trên web, mobile và desktop.

Theo Google, LiteRT.js có thể dùng XNNPACK cho CPU, WebGPU cho GPU và đang hướng tới WebNN để khai thác NPU. Mô hình từ PyTorch có thể được chuyển đổi, lượng tử hóa rồi tải vào ứng dụng web. Điều này mở ra khả năng tái sử dụng pipeline mô hình giữa nhiều nền tảng thay vì duy trì một bản riêng cho web.

Tuy nhiên, benchmark của nhà cung cấp cần được đọc đúng bối cảnh. Kết quả nhanh hơn nhiều lần thường được đo trên phần cứng, trình duyệt, mô hình và điều kiện cụ thể. Developer Việt Nam vẫn phải thử trên laptop văn phòng, điện thoại tầm trung, mạng di động và cả thiết bị không có WebGPU phù hợp. Một con số đẹp trên MacBook cao cấp không đại diện cho toàn bộ người dùng thật.

## WebAssembly, WebGPU và WebNN khác nhau ở đâu?

WebAssembly, thường viết tắt là WASM, cho phép mã đã biên dịch chạy trong trình duyệt với hiệu năng ổn định hơn nhiều tác vụ JavaScript thuần. Với LiteRT.js, WASM có thể đóng vai trò backend CPU và cũng là phương án dự phòng khi thiết bị không hỗ trợ tăng tốc GPU.

WebGPU là API web cho phép ứng dụng gửi tác vụ tính toán và đồ họa tới GPU. W3C mô tả WebGPU như một giao diện cho các phép toán trên bộ xử lý đồ họa; chuẩn này vẫn tiếp tục được cập nhật trong năm 2026. Với inference, WebGPU có thể tăng tốc các phép nhân ma trận và xử lý tensor, nhưng khả năng thật còn phụ thuộc trình duyệt, driver và giới hạn bộ nhớ.

WebNN hướng tới việc truy cập phần cứng chuyên dụng cho neural network, gồm cả NPU. Đây là mảnh ghép hứa hẹn cho hiệu quả năng lượng, nhưng mức hỗ trợ vẫn chưa đồng đều. Vì vậy, kiến trúc production nên có chiến lược capability detection và fallback rõ ràng thay vì giả định mọi máy đều chạy được backend mạnh nhất.

## Một request biến mất không có nghĩa là chi phí biến mất

Khi chuyển inference sang client, chi phí API có thể giảm nhưng bạn phát sinh ba khoản khác. Thứ nhất là băng thông tải mô hình: một file vài trăm MB có thể khiến người dùng mạng di động rời trang trước khi trải nghiệm bắt đầu. Thứ hai là bộ nhớ và pin: mô hình chạy nhanh vẫn có thể làm thiết bị nóng hoặc giật giao diện. Thứ ba là chi phí hỗ trợ: cùng một tính năng nhưng hành vi khác nhau giữa trình duyệt, hệ điều hành và GPU.

Bởi vậy, chỉ số cần theo dõi không chỉ là latency của model. Hãy đo thời gian từ lúc người dùng mở tính năng đến lúc có kết quả đầu tiên, tỷ lệ tải mô hình thất bại, dung lượng tải lại, bộ nhớ đỉnh, mức tiêu thụ pin, số thiết bị phải fallback và tỷ lệ người dùng bỏ cuộc trước khi model sẵn sàng.

Một mô hình inference 40 ms nhưng cần 25 giây tải xuống chưa chắc đem lại trải nghiệm tốt hơn một API phản hồi trong một giây. Tối ưu đúng là tối ưu toàn bộ hành trình, không phải chỉ tối ưu phép tính ở giữa.

## Riêng tư hơn không đồng nghĩa an toàn tuyệt đối

Chạy cục bộ có lợi thế rõ: dữ liệu đầu vào không nhất thiết phải gửi lên server. Điều này đặc biệt đáng giá với camera, âm thanh, tài liệu cá nhân và những tính năng hoạt động offline. Nhưng cụm từ ‘dữ liệu không rời thiết bị’ chỉ đúng khi toàn bộ pipeline thực sự tuân thủ điều đó.

Ứng dụng vẫn có thể gửi analytics, crash log, prompt, embedding hoặc kết quả dự đoán về server. Extension độc hại, mã bên thứ ba và lỗ hổng XSS vẫn là rủi ro. Bản thân file mô hình cũng được tải xuống máy khách nên có thể bị sao chép hoặc phân tích. Nếu mô hình là tài sản trí tuệ quan trọng, chạy hoàn toàn ở client có thể không phù hợp.

Do đó, tuyên bố riêng tư phải mô tả chính xác dữ liệu nào ở lại thiết bị, dữ liệu nào được gửi đi và người dùng có quyền kiểm soát gì. Đừng dùng ‘on-device’ như một nhãn marketing để che một pipeline vẫn gửi phần nhạy cảm lên cloud.

## Khi nào nên chạy AI trong trình duyệt?

Một phép thử thực tế gồm năm câu hỏi. Một: mô hình có đủ nhỏ để tải trong thời gian chấp nhận được không? Hai: tính năng có hưởng lợi rõ từ độ trễ thấp, offline hoặc quyền riêng tư không? Ba: tập thiết bị mục tiêu có phần cứng và trình duyệt phù hợp không? Bốn: có phương án fallback khi model không tải hoặc backend tăng tốc không khả dụng không? Năm: chất lượng mô hình cục bộ có đủ cho quyết định mà người dùng sắp đưa ra không?

Nếu câu trả lời chủ yếu là ‘không’, server inference vẫn có thể là lựa chọn đúng. Cloud cho phép dùng mô hình lớn, cập nhật tập trung, kiểm soát phiên bản và theo dõi đồng nhất. Nếu câu trả lời chủ yếu là ‘có’, Web AI có thể giảm độ trễ, tăng riêng tư và mở ra trải nghiệm mà API từ xa khó đạt được.

Nhiều sản phẩm sẽ chọn kiến trúc hybrid. Model nhỏ chạy trên client để lọc, gợi ý hoặc tạo embedding; tác vụ khó mới gọi server. Cách này giữ trải nghiệm nhanh cho trường hợp phổ biến nhưng vẫn có sức mạnh cloud khi cần. Đổi lại, team phải quản lý hai đường thực thi và bảo đảm kết quả không mâu thuẫn.

## Lộ trình thử nghiệm LiteRT.js cho team nhỏ

Đừng bắt đầu bằng việc chuyển toàn bộ tính năng AI sang browser. Hãy chọn một tác vụ có đầu vào, đầu ra và tiêu chí thành công rõ. Ví dụ: phân loại một ảnh thành vài nhóm, tạo embedding cho tập tài liệu nhỏ hoặc phát hiện vật thể trong webcam.

Bước tiếp theo là xác định ngân sách trải nghiệm: mô hình được phép nặng bao nhiêu, thời gian tải lần đầu, latency mục tiêu, mức bộ nhớ tối đa và những thiết bị nào bắt buộc hỗ trợ. Sau đó mới chọn mô hình, chuyển đổi sang `.tflite`, lượng tử hóa và thử từng backend.

Trong prototype, hãy hiển thị trạng thái tải thay vì để giao diện đứng im; cache model có kiểm soát phiên bản; kiểm tra WebGPU trước khi dùng; chuẩn bị WASM fallback; và cho người dùng một đường lui nếu thiết bị không đáp ứng. Với tác vụ có ảnh hưởng lớn, kết quả cục bộ vẫn cần ngưỡng tin cậy hoặc bước xác nhận của con người.

Cuối cùng, đo trên thiết bị thật tại Việt Nam. Chọn ít nhất một laptop phổ thông, một điện thoại Android tầm trung, một thiết bị cũ và các mạng Wi‑Fi/4G khác nhau. Nếu sản phẩm chỉ chạy tốt trên máy của đội phát triển, đó vẫn là demo.

## Web AI sẽ không thay thế cloud — nó làm kiến trúc có thêm một lựa chọn

LiteRT.js đáng chú ý vì đưa runtime on-device mạnh hơn tới hệ sinh thái JavaScript. Nhưng giá trị lớn nhất không phải lời hứa ‘không cần server’. Giá trị là developer có thể đặt từng phần việc ở nơi phù hợp hơn: dữ liệu nhạy cảm ở client, mô hình lớn ở cloud, trải nghiệm tức thời trên thiết bị và quy trình phức tạp trên hạ tầng trung tâm.

Để đi xa hơn phần API, người học cần hiểu embedding, Transformer, lượng tử hóa, pipeline inference và cách đánh giá chất lượng mô hình. [Hands-On Large Language Models bản tiếng Việt](/sach/hands-on-large-language-models-jay-alammar-2026) giúp nối trực giác trực quan với kỹ thuật xây ứng dụng LLM; [Build a Large Language Model](/sach/build-large-language-model-sebastian-raschka-2026) đi sâu vào cách mô hình được tạo từ bên trong.

Wavi Books phụ trách dữ liệu và nội dung chuyên môn cho các đầu sách lập trình tiếng Việt; 89ebook là đối tác thương mại độc quyền phân phối sách tiếng Việt của Wavi Books tại Việt Nam trong thời điểm hiện tại. Điều đáng nhớ sau cùng: chạy AI ở đâu không phải quyết định theo xu hướng. Đó là quyết định kiến trúc dựa trên dữ liệu, phần cứng, rủi ro và trải nghiệm người dùng thật.

Nguồn tham khảo và tài liệu đối chiếu

  1. Google Developers Blog — LiteRT.js, Google's high performance Web AI Inference
  2. Google Developers Blog — LiteRT: The Universal Framework for On-Device AI
  3. W3C — WebGPU Candidate Recommendation Draft

Sách liên quan

Câu hỏi thường gặp

Web AI là gì?

Web AI là cách ứng dụng web tải hoặc chạy mô hình machine learning trong trình duyệt. Inference có thể diễn ra hoàn toàn trên thiết bị hoặc kết hợp với server, tùy dung lượng mô hình, phần cứng và yêu cầu dữ liệu.

LiteRT.js khác TensorFlow.js như thế nào?

LiteRT.js đưa runtime LiteRT và mô hình .tflite lên JavaScript, hướng tới khả năng tăng tốc thống nhất trên CPU, GPU và tương lai là NPU. TensorFlow.js vẫn là hệ sinh thái riêng cho machine learning trong JavaScript; lựa chọn cần dựa trên định dạng mô hình, backend và thiết bị mục tiêu.

Chạy AI trong trình duyệt có cần Internet không?

Ứng dụng thường cần Internet ở lần đầu để tải mã và mô hình. Sau khi tài nguyên được cache đúng cách, một số tính năng có thể hoạt động offline, nhưng điều này phụ thuộc thiết kế của ứng dụng và nguồn dữ liệu cần dùng.

WebGPU có được mọi trình duyệt hỗ trợ không?

Mức hỗ trợ WebGPU phụ thuộc trình duyệt, hệ điều hành, GPU và driver. Ứng dụng production cần kiểm tra khả năng thiết bị và có fallback như WebAssembly hoặc server inference.

Khi nào không nên chạy mô hình AI ở client?

Không nên ưu tiên client khi mô hình quá lớn, thiết bị mục tiêu yếu, cần cập nhật model tập trung, phải bảo vệ file mô hình hoặc tác vụ phụ thuộc dữ liệu server liên tục. Trong các trường hợp này, cloud hoặc kiến trúc hybrid thường phù hợp hơn.