← Все руководства Принцип работы

Почему детектор работает в вашем браузере

Модель объемом 40 МБ, WebAssembly и отсутствие конечной точки для загрузки. Что дает такая архитектура, во что она обходится и почему этот обмен оправдан.

· 8 мин чтения · Best AI Image Detector

Чтобы ваши изображения никогда не покидали ваше устройство. Модель загружается один раз и работает на вашем компьютере, что одновременно исключает необходимость загрузки файлов на сервер, расходы на сервер и риски при обработке данных.

Что представляет собой архитектура

Vision Transformer, преобразованный в ONNX и сжатый примерно до 40 МБ, разделен на две части, чтобы каждая оставалась в пределах лимита размера файла хостинг-платформы. Он собирается заново в браузере, а его контрольная сумма проверяется перед запуском.

Вывод (inference) происходит через WebAssembly, который позволяет скомпилированной среде выполнения работать почти со скоростью нативной программы внутри вкладки браузера. Сама среда выполнения — это сжатый бинарный файл WASM, загружаемый вместе с весами.

В этом больше нет ничего экзотического. То, что было демонстрацией исследований в 2021 году, сейчас является обычным способом доставки модели, и браузеры выполнили большую часть работы.

Что это дает

Объект В браузере На сервере
Изображение покидает ваше устройство No невозможно Yes обязательно
Стоимость проверки Yes ноль No реальные вычислительные мощности
Требуется соглашение об обработке данных No Yes
Работает без сети после загрузки Yes No
Модель можно хранить приватно No она загружается Yes
Первая проверка мгновенна No модель загружается один раз Yes
Один и тот же продукт, построенный двумя способами. Различия заключаются в архитектуре, а не в выборе политики.

Первая строка — причина существования остальных. Поскольку нет конечной точки для загрузки, нет хранилища с чужими фотографиями, нет политики хранения, нет данных для раскрытия при утечке и нет ничего, что можно было бы передать по запросу.

Вторая строка — причина, по которой это может быть бесплатно и без счетчика использования. Проверка не стоит ничего в обслуживании, поэтому нет затрат на изображение, которые нужно возмещать, что меняет подход к ценообразованию.

Во что это обходится

Три реальных компромисса, изложенных прямо, потому что страница, перечисляющая только преимущества, — это реклама.

  1. Первая проверка медленная. Сорок мегабайт должны поступить, прежде чем что-то произойдет. На быстром соединении это несколько секунд; на медленном — дольше. Последующие проверки используют кэшированную модель и начинаются немедленно.
  2. Старые устройства работают с трудом. Вывод требует памяти и обработки, которыми пятилетний телефон может не обладать. Серверу было бы все равно, какое устройство у вас в руках.
  3. Модель общедоступна. Все, что загружено в браузер, можно сохранить. Серверная модель может быть проприетарной; эта — нет, а веса в любом случае являются открытым исследовательским чекпоинтом.

Третий пункт стоит обсудить напрямую. Доставка модели клиенту означает ее публичное распространение. Это приемлемый компромисс, так как веса уже опубликованы, а работа, которая делает инструмент полезным, заключается в калибровке, тайлинге и интерпретации, построенных вокруг них.

Инженерные проблемы, о которых стоит знать

Разделение большого файла

Платформы статического хостинга ограничивают размер отдельных файлов. Модель объемом 40 МБ превышала лимит, поэтому она поставляется как две детерминированные части, которые собираются в браузере и проверяются по хешу манифеста перед использованием. Поврежденная или подмененная часть вызовет ошибку, а не молча выдаст неверные оценки.

Загрузка только по необходимости

Модель, среда выполнения и считыватель учетных данных не запрашиваются при загрузке страницы. Они приходят при первом взаимодействии, поэтому читатель статьи никогда ничего не скачивает. Это сохраняет скорость работы страниц для подавляющего большинства посетителей, которые никогда не запускают проверку.

Декодирование сложных форматов

HEIC с iPhone, AVIF, TIFF и JPEG XL требуют декодирования перед оценкой. Браузеры теперь справляются с большинством из них нативно, что устраняет то, что раньше было самой большой частью клиентской работы в таком инструменте.

Когда эта архитектура — неудачный выбор

Она не является универсально лучшей. Сервер более оправдан, когда модель проприетарна и требует защиты, когда она слишком велика для доставки, когда вам нужны результаты в бэкенд-конвейере, а не перед человеком, или когда вам нужно гарантированное время отклика независимо от устройства.

Для инструмента, который открывают, чтобы проверить одну подозрительную картинку, ни один из этих пунктов не актуален, и свойство конфиденциальности стоит больше, чем все, что мог бы добавить сервер.

Что это исключает

Выбор клиентской стороны имеет последствия, выходящие за рамки конфиденциальности, и некоторые из них — это ограничения, которые стоит назвать, а не представлять как функции.

Нет истории. Результат существует только во вкладке, в которой он был создан, поэтому его нельзя просмотреть позже, если он не был экспортирован. Это прямая цена отсутствия учетной записи, и это самая частая просьба, которую архитектура делает неудобной для реализации.

Нет общего состояния. Два человека не могут видеть одну очередь, а команда не может проверять результаты друг друга. Общая ссылка содержит один результат, что охватывает беседу, а не рабочий процесс.

Нет API. То, что работает во вкладке браузера, нельзя вызвать из бэкенд-конвейера, что полностью исключает использование с большими объемами. Это реальные пробелы, и честная позиция заключается в том, что это цена за свойство, которое важнее.

Вопросы пользователей

Действительно ли мое изображение не загружается?
Да, и вам не нужно верить на слово. Откройте вкладку сети в инструментах разработчика и запустите проверку. Вы увидите загрузку модели и среды выполнения, а также отсутствие запросов с вашим файлом. Это одно из немногих заявлений о конфиденциальности, которое пользователь может проверить напрямую примерно за тридцать секунд.
Почему модель такая большая?
Это vision transformer с миллионами параметров, сжатый настолько, насколько возможно без потери точности. Существуют модели поменьше, но они работают заметно хуже, особенно на сжатых и обрезанных изображениях, которые люди реально проверяют. Сорок мегабайт — это цена точности.
Работает ли это в автономном режиме?
После первой загрузки — во многом да. Как только модель кэширована, оценка выполняется вообще без сети. Единственная часть, для которой нужно соединение, — это получение изображения по вставленному URL, а проверка локального файла работает и без него.
Будет ли это разряжать батарею телефона?
Одна проверка — это несколько секунд обработки, сопоставимые с загрузкой тяжелой веб-страницы. Запуск партии из двадцати пяти штук более заметен. Это не то, что вы будете оставлять работающим постоянно, и это не значительные расходы для эпизодического использования.
Нельзя ли использовать WebGPU, чтобы ускорить это?
Для устройств, которые его поддерживают, да, но поддержка все еще настолько неравномерна, что путь WASM все равно должен существовать. Добавление второго пути выполнения удваивает область, где результаты могут расходиться между пользователями, что является реальной ценой ради прироста скорости, который большинство людей даже не заметит.
Отправляет ли браузер вообще что-то о моем изображении?
Нет. Нет никакой телеметрии по именам файлов, размерам или оценкам, потому что результат нигде не существует, кроме как в вашей вкладке. Это следствие архитектуры, а не настройки, и именно эту часть стоит понять.