Kiến trúc thực tế là gì
Một vision transformer, được chuyển đổi sang ONNX và nén xuống khoảng 40 MB, được chia thành hai phần để mỗi phần nằm dưới giới hạn kích thước tệp của nền tảng lưu trữ. Nó được lắp ráp lại trong trình duyệt và giá trị tổng kiểm tra (checksum) của nó được xác minh trước khi bất kỳ thứ gì chạy.
Quá trình suy luận (inference) diễn ra thông qua WebAssembly, cho phép một môi trường thời gian chạy (runtime) đã biên dịch thực thi ở tốc độ gần như gốc ngay bên trong một tab trình duyệt. Bản thân thời gian chạy là một tệp nhị phân WASM nén được tải cùng với trọng số (weights).
Không có gì trong số này là điều kỳ lạ nữa. Những gì từng là một bản trình diễn nghiên cứu vào năm 2021 giờ đây là một cách thông thường để phân phối một mô hình, và các trình duyệt đã làm phần lớn công việc đó.
Lợi ích mang lại
| Bất động sản | Trong trình duyệt | Trên máy chủ |
|---|---|---|
| Hình ảnh rời khỏi thiết bị của bạn | No không thể | Yes bắt buộc |
| Chi phí cho mỗi lần kiểm tra | Yes bằng không | No tính toán thực tế |
| Cần có thỏa thuận xử lý dữ liệu | No | Yes |
| Hoạt động không cần mạng sau khi tải | Yes | No |
| Mô hình có thể được giữ riêng tư | No nó được tải xuống | Yes |
| Lần kiểm tra đầu tiên diễn ra tức thời | No mô hình tải xuống một lần | Yes |
Hàng đầu tiên là lý do phần còn lại tồn tại. Do không có điểm cuối tải lên, nên không có kho lưu trữ ảnh của người khác, không có chính sách lưu giữ nào cần viết, không có vụ rò rỉ dữ liệu nào cần công bố và không có gì phải bàn giao theo yêu cầu.
Hàng thứ hai là lý do tại sao nó có thể miễn phí mà không cần đồng hồ đo mức sử dụng. Một lần kiểm tra không tốn chi phí để phục vụ, vì vậy không có chi phí tính trên mỗi hình ảnh cần thu hồi, điều này làm thay đổi diện mạo của biểu giá.
Chi phí phải trả
Ba sự đánh đổi thực tế, được trình bày rõ ràng, bởi vì một trang chỉ liệt kê các ưu điểm thì đó là quảng cáo.
- Lần kiểm tra đầu tiên diễn ra chậm. Bốn mươi megabyte cần phải được tải về trước khi bất kỳ điều gì xảy ra. Trên kết nối nhanh, đó chỉ là vài giây; trên kết nối kém, thời gian sẽ lâu hơn. Các lần kiểm tra tiếp theo sử dụng lại mô hình đã lưu vào bộ nhớ đệm và bắt đầu ngay lập tức.
- Các thiết bị cũ sẽ gặp khó khăn. Quá trình suy luận cần bộ nhớ và khả năng xử lý mà một chiếc điện thoại năm tuổi có thể không thoải mái đáp ứng. Một máy chủ sẽ không quan tâm bạn đang cầm thiết bị nào.
- Mô hình là công khai. Bất cứ thứ gì được tải xuống trình duyệt đều có thể được giữ lại. Một mô hình phía máy chủ có thể là độc quyền; mô hình này thì không, và các trọng số dù sao cũng là một điểm kiểm tra nghiên cứu nguồn mở.
Điểm thứ ba rất đáng để trao đổi một cách thẳng thắn. Việc phân phối một mô hình đến máy khách đồng nghĩa với việc trao nó đi. Đó là một sự đánh đổi có thể chấp nhận được ở đây vì các trọng số đã được công bố, và công việc giúp công cụ này trở nên hữu ích chính là quá trình hiệu chuẩn, phân ô (tiling) và giải thích được xây dựng xung quanh chúng.
Các vấn đề kỹ thuật đáng chú ý
Chia nhỏ một tệp lớn
Các nền tảng lưu trữ tĩnh giới hạn kích thước tệp riêng lẻ. Mô hình 40 MB vượt quá giới hạn đó, vì vậy nó được phân phối dưới dạng hai phần có tính xác định, được lắp ráp lại trong trình duyệt và được kiểm tra đối với hàm băm tệp kê khai (manifest hash) trước khi sử dụng. Một phần bị hỏng hoặc bị thay thế sẽ gây ra lỗi rõ ràng thay vì âm thầm tạo ra các điểm số sai.
Không tải bất cứ thứ gì cho đến khi cần
Mô hình, môi trường thời gian chạy và trình đọc thông tin xác thực không được nạp khi tải trang. Chúng chỉ đến khi có sự tương tác đầu tiên, vì vậy người đọc một bài viết sẽ không bao giờ phải tải xuống bất kỳ phần nào trong số đó. Điều này giúp các trang web tải nhanh đối với đại đa số khách truy cập không bao giờ chạy kiểm tra.
Giải mã các định dạng phức tạp
HEIC từ iPhone, AVIF, TIFF và JPEG XL đều cần được giải mã trước khi tính điểm. Các trình duyệt hiện nay xử lý hầu hết các định dạng này một cách nguyên bản, giúp loại bỏ phần lớn công việc phía máy khách trong một công cụ như thế này.
Khi kiến trúc này là lựa chọn sai lầm
Nó không phải lúc nào cũng tốt hơn. Máy chủ sẽ hợp lý hơn khi mô hình là độc quyền và đáng để bảo vệ, khi nó quá lớn để phân phối, khi bạn cần kết quả trong một đường ống xử lý phụ trợ (backend pipeline) thay vì hiển thị trước mặt người dùng, hoặc khi bạn cần thời gian phản hồi được đảm bảo bất kể thiết bị nào.
Đối với một công cụ mà ai đó mở ra để kiểm tra một bức ảnh đáng ngờ, không có điều nào trong số đó áp dụng, và tính năng quyền riêng tư có giá trị hơn mọi thứ mà một máy chủ có thể mang lại.
Những điều này bị loại trừ
Việc chọn phía máy khách có những hệ quả vượt ra ngoài vấn đề quyền riêng tư, và một số trong số đó là những hạn chế đáng được gọi tên thay vì được coi là các tính năng.
Không có lịch sử. Kết quả chỉ tồn tại trong tab đã tạo ra nó, vì vậy không thể tra cứu lại bất kỳ thứ gì trừ khi nó đã được xuất ra. Đó là cái giá trực tiếp của việc không có tài khoản, và đây cũng là tính năng được yêu cầu nhiều nhất mà kiến trúc này gây khó khăn khi thực hiện.
Không có trạng thái chia sẻ. Hai người không thể nhìn thấy cùng một hàng đợi (queue) và một nhóm không thể xem lại các lần kiểm tra của nhau. Một liên kết được chia sẻ chỉ mang lại một kết quả duy nhất, điều này phù hợp cho một cuộc trò chuyện hơn là một quy trình làm việc.
Không có API. Bất kỳ thứ gì chạy trong tab trình duyệt đều không thể được gọi từ một đường ống xử lý phụ trợ, điều này loại bỏ hoàn toàn các trường hợp sử dụng có khối lượng lớn nhất. Đó là những khoảng trống thực tế, và quan điểm trung thực là đó là cái giá phải trả cho tính năng thực sự quan trọng hơn.