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