Что представляет собой архитектура
Vision Transformer, преобразованный в ONNX и сжатый примерно до 40 МБ, разделен на две части, чтобы каждая оставалась в пределах лимита размера файла хостинг-платформы. Он собирается заново в браузере, а его контрольная сумма проверяется перед запуском.
Вывод (inference) происходит через WebAssembly, который позволяет скомпилированной среде выполнения работать почти со скоростью нативной программы внутри вкладки браузера. Сама среда выполнения — это сжатый бинарный файл WASM, загружаемый вместе с весами.
В этом больше нет ничего экзотического. То, что было демонстрацией исследований в 2021 году, сейчас является обычным способом доставки модели, и браузеры выполнили большую часть работы.
Что это дает
| Объект | В браузере | На сервере |
|---|---|---|
| Изображение покидает ваше устройство | No невозможно | Yes обязательно |
| Стоимость проверки | Yes ноль | No реальные вычислительные мощности |
| Требуется соглашение об обработке данных | No | Yes |
| Работает без сети после загрузки | Yes | No |
| Модель можно хранить приватно | No она загружается | Yes |
| Первая проверка мгновенна | No модель загружается один раз | Yes |
Первая строка — причина существования остальных. Поскольку нет конечной точки для загрузки, нет хранилища с чужими фотографиями, нет политики хранения, нет данных для раскрытия при утечке и нет ничего, что можно было бы передать по запросу.
Вторая строка — причина, по которой это может быть бесплатно и без счетчика использования. Проверка не стоит ничего в обслуживании, поэтому нет затрат на изображение, которые нужно возмещать, что меняет подход к ценообразованию.
Во что это обходится
Три реальных компромисса, изложенных прямо, потому что страница, перечисляющая только преимущества, — это реклама.
- Первая проверка медленная. Сорок мегабайт должны поступить, прежде чем что-то произойдет. На быстром соединении это несколько секунд; на медленном — дольше. Последующие проверки используют кэшированную модель и начинаются немедленно.
- Старые устройства работают с трудом. Вывод требует памяти и обработки, которыми пятилетний телефон может не обладать. Серверу было бы все равно, какое устройство у вас в руках.
- Модель общедоступна. Все, что загружено в браузер, можно сохранить. Серверная модель может быть проприетарной; эта — нет, а веса в любом случае являются открытым исследовательским чекпоинтом.
Третий пункт стоит обсудить напрямую. Доставка модели клиенту означает ее публичное распространение. Это приемлемый компромисс, так как веса уже опубликованы, а работа, которая делает инструмент полезным, заключается в калибровке, тайлинге и интерпретации, построенных вокруг них.
Инженерные проблемы, о которых стоит знать
Разделение большого файла
Платформы статического хостинга ограничивают размер отдельных файлов. Модель объемом 40 МБ превышала лимит, поэтому она поставляется как две детерминированные части, которые собираются в браузере и проверяются по хешу манифеста перед использованием. Поврежденная или подмененная часть вызовет ошибку, а не молча выдаст неверные оценки.
Загрузка только по необходимости
Модель, среда выполнения и считыватель учетных данных не запрашиваются при загрузке страницы. Они приходят при первом взаимодействии, поэтому читатель статьи никогда ничего не скачивает. Это сохраняет скорость работы страниц для подавляющего большинства посетителей, которые никогда не запускают проверку.
Декодирование сложных форматов
HEIC с iPhone, AVIF, TIFF и JPEG XL требуют декодирования перед оценкой. Браузеры теперь справляются с большинством из них нативно, что устраняет то, что раньше было самой большой частью клиентской работы в таком инструменте.
Когда эта архитектура — неудачный выбор
Она не является универсально лучшей. Сервер более оправдан, когда модель проприетарна и требует защиты, когда она слишком велика для доставки, когда вам нужны результаты в бэкенд-конвейере, а не перед человеком, или когда вам нужно гарантированное время отклика независимо от устройства.
Для инструмента, который открывают, чтобы проверить одну подозрительную картинку, ни один из этих пунктов не актуален, и свойство конфиденциальности стоит больше, чем все, что мог бы добавить сервер.
Что это исключает
Выбор клиентской стороны имеет последствия, выходящие за рамки конфиденциальности, и некоторые из них — это ограничения, которые стоит назвать, а не представлять как функции.
Нет истории. Результат существует только во вкладке, в которой он был создан, поэтому его нельзя просмотреть позже, если он не был экспортирован. Это прямая цена отсутствия учетной записи, и это самая частая просьба, которую архитектура делает неудобной для реализации.
Нет общего состояния. Два человека не могут видеть одну очередь, а команда не может проверять результаты друг друга. Общая ссылка содержит один результат, что охватывает беседу, а не рабочий процесс.
Нет API. То, что работает во вкладке браузера, нельзя вызвать из бэкенд-конвейера, что полностью исключает использование с большими объемами. Это реальные пробелы, и честная позиция заключается в том, что это цена за свойство, которое важнее.