Kung ano talaga ang arkitektura
Isang vision transformer, na-convert sa ONNX at naka-compress sa mga 40 MB, hinati sa dalawang bahagi upang ang bawat isa ay manatili sa ibaba ng limitasyon sa laki ng file ng hosting platform. Ito ay muling pinagsama-sama sa browser at ang checksum nito ay na-verify bago tumakbo ang anuman.
Ang inference ay nangyayari sa pamamagitan ng WebAssembly, na nagbibigay-daan sa isang naka-compile na runtime na isagawa sa bilis na malapit sa native sa loob ng isang tab ng browser. Ang mismong runtime ay isang naka-compress na WASM binary na naka-load kasama ng mga timbang.
Wala rito ang kakaiba ngayon. Ang isang research demonstration noong 2021 ay isa na ngayong normal na paraan upang magpadala ng modelo, at ang mga browser ang gumawa ng karamihan sa trabaho.
Kung ano ang binibili nito
| Ari-arian | Sa browser | Sa isang server |
|---|---|---|
| Umalis ang larawan sa iyong device | No imposible | Yes kinakailangan |
| Gastos bawat pagsusuri | Yes zero | No tunay na compute |
| Kinakailangan ang kasunduan sa pagpoproseso ng data | No | Yes |
| Gumagana nang walang network pagkatapos mag-load | Yes | No |
| Ang modelo ay maaaring panatilihing pribado | No ito ay na-download | Yes |
| Ang unang pagsusuri ay instant | No minsang nag-download ang modelo | Yes |
Ang unang row ang dahilan kung bakit umiiral ang iba. Dahil walang upload endpoint, walang lalagyan ng mga litrato ng ibang tao, walang patakaran sa pagpapanatili na isusulat, walang paglabag na ihahayag at walang ibibigay kapag hiniling.
Ang pangalawang row ay kung bakit ito ay maaaring maging libre nang walang metro ng paggamit. Ang pagsusuri ay walang gastos na sineserbisyuhan, kaya walang gastos bawat larawan na babawiin, na nagbabago sa hitsura ng pagpepresyo.
Kung ano ang gastos nito
Tatlong tunay na trade-off, na sinabi nang tahasan, dahil ang isang pahina na naglilista lamang ng mga pakinabang ay advertising.
- Ang unang pagsusuri ay mabagal. Apatnapung megabyte ang kailangang dumating bago mangyari ang anuman. Sa isang mabilis na koneksyon ito ay ilang segundo; sa isang mahina ay mas matagal. Ang mga sumusunod na pagsusuri ay muling gumagamit ng naka-cache na modelo at agad na nagsisimula.
- Nahihirapan ang mga lumang device. Ang inference ay nangangailangan ng memorya at pagpoproseso na maaaring hindi kumportableng taglay ng limang taong gulang na telepono. Wala sanang pakialam ang isang server kung aling device ang hawak mo.
- Ang modelo ay pampubliko. Anumang na-download sa isang browser ay maaaring itago. Ang isang server-side na modelo ay maaaring pagmamay-ari; ito ay hindi, at ang mga timbang ay isang bukas na research checkpoint pa rin.
Ang ikatlong punto ay sulit na maging direkta. Ang pagpapadala ng modelo sa client ay nangangahulugang ipinamamahagi ito. Katanggap-tanggap na trade iyon dito dahil ang mga timbang ay nai-publish na, at ang gawain na ginagawang kapaki-pakinabang ang tool ay ang calibration, ang tiling at ang interpretation na binuo sa paligid nila.
Ang mga problemang pang-inhinyero na sulit malaman
Paghati sa isang malaking file
Nililimitahan ng mga static hosting platform ang mga indibidwal na laki ng file. Lumampas ang limitasyon ng 40 MB na modelo, kaya ipinapadala ito bilang dalawang deterministikong bahagi na muling pinagsama-sama sa browser at sinuri laban sa isang manifest hash bago gamitin. Ang isang sira o pinalitang bahagi ay nabibigo nang malakas sa halip na tahimik na gumawa ng mga maling marka.
Walang nilo-load hangga't hindi kinakailangan
Ang modelo, ang runtime at ang credential reader ay hindi kinukuha sa pag-load ng pahina. Dumating sila sa unang pakikipag-ugnayan, kaya ang isang taong nagbabasa ng artikulo ay hindi nag-download ng anuman dito. Pinapanatili nitong mabilis ang mga pahina para sa malaking mayorya ng mga bisita na hindi kailanman nagpapatakbo ng pagsusuri.
Pag-decode ng mga mahirap na format
Ang HEIC mula sa mga iPhone, AVIF, TIFF at JPEG XL ay nangangailangan ng pag-decode bago ang pag-marka. Hinahawakan na ngayon ng mga browser ang karamihan sa mga ito nang native, na nag-aalis sa kung ano ang dati nang pinakamalaking bahagi ng client-side na gawain sa isang tool na tulad nito.
Kung kailan ang arkitekturang ito ay maling pagpipilian
Hindi ito unibersal na mas mahusay. Mas may katwiran ang isang server kapag ang modelo ay pagmamay-ari at sulit na protektahan, kapag ito ay masyadong malaki upang ipadala, kapag kailangan mo ng mga resulta sa isang backend pipeline sa halip na sa harap ng isang tao, o kapag kailangan mo ng garantisadong oras ng pagtugon anuman ang device.
Para sa isang tool na binubuksan ng isang tao upang suriin ang isang kahina-hinalang larawan, wala sa mga iyon ang nalalapat, at ang ari-arian ng privacy ay mas nagkakahalaga kaysa sa lahat ng idadagdag ng isang server.
Ang pinamamahalaan nito
Ang pagpili sa client ay may mga kahalagahan na lampas sa privacy, at ang ilan sa mga ito ay mga limitasyon na nagkakahalaga ng pagpapangalan kaysa sa mga feature.
Walang kasaysayan. Ang isang resulta ay umiiral lamang sa tab na gumawa nito, kaya walang maaaring hanapin sa ibang pagkakataon maliban kung ito ay na-export. Iyan ang direktang halaga ng kawalan ng account, at ito ang pinakahiniling na bagay na ginagawang mahirap ng arkitektura.
Walang nakabahaging estado. Hindi makita ng dalawang tao ang parehong pila, at hindi masuri ng isang koponan ang mga pagsusuri ng isa't isa. Ang isang nakabahaging link ay nagdala ng iisang resulta, na sumasaklaw sa isang pag-usapan at hindi sa isang workflow.
Walang API. Ang anumang tumatakbo sa isang tab ng browser ay hindi matatawag mula sa isang backend pipeline, na ganap na nag-aalis sa mga pinakamataas na volume na gamit. Ang mga iyon ay mga totoong puwang, at ang tapat na posisyon ay ang mga ito ang presyo ng ari-arian na mas mahalaga.