· 5 min read

Suunnitteluassistentti, joka toimii laitteessasi ei tiliä, ei palvelinta

PinePaper:n on-device AI-assistentti kääntää pikaviestin todelliseksi kohtaukseksi käyttäen kielimallia, joka toimii kokonaan selaimessasi. Tässä on arkkitehtuuri ... Rajoitettu työkalupuhelut, kaksi tarjoajaa, ja rehellinen selvitys siitä, mitä pieni malli voi ja ei voi tehdä.

Lähtökohta

Useimmat AI design työkalut lähettää pyynnön palvelimelle, ajaa suuri malli, ja lähettää koodin takaisin. Se tarvitsee tilin, verkon kiertomatkan ja luottaa siihen, että työsi kulkee jonkun muun infrastruktuurin kautta.

Halusimme tietää, kuinka pitkälle toinen äärimmäisyys menee: suunnittelija, jossa malli toimii omalla koneellasi. Ei tiliä. Ei latausta. Raketti ei koskaan poistu selaimesta. Tämä on nyt livenä PinePaper:n editorissa kokeellisena AI / Code → Assistant -välilehtenä, ja tämä viesti on rehellinen selvitys siitä, miten se toimii ja missä se jää vajaaksi.

Miksei mallilta kysytä koodia?

Ilmeinen lähestymistapa on pyytää laitteen mallin kirjoittaa JavaScript vastaan PinePaper API ja ajaa se. Kokeilimme sitä. Se epäonnistuu pahasti.

Pienet mallit, jotka sopivat kannettavaan tietokoneeseen, eivät tunne tietyn sovelluksen API:ää. Pyydä 0.5..2B-malli soittaa PinePaper.create() ja se improvisoi: avain menetelmä ei lue (PG2X-tyylinen fill jossa API odottaa color), menetelmä se kuvitteli, argumentteja väärässä muodossa. Tuotos * näyttää* koodilta ja hiljaa tekee väärin.

Joten emme pyydä koodia. Pyydämme harjaantunutta listaa työkalupuheluista:

[
  { "name": "pinepaper_set_background_color", "arguments": { "color": "#0F0F1A" } },
  { "name": "pinepaper_create_item", "arguments": { "itemType": "star", "x": 400, "y": 300, "radius": 90, "color": "#E74C3C", "animationType": "pulse" } }
]

Sama sanasto PinePaper:n MCP-palvelin altistaa ulkoisille aineille, mutta lähettää ne paikallisesti toimivan mallin avulla ja suoritetaan kankaalla pienen lähettäjän kautta.

Virheellisen ulostulon tekeminen mahdottomaksi

Avainliike on **rajoitettu dekoodaus. ** Sen sijaan, että toivoisimme mallin tuottavan kelvollisen muodon, rajoitamme mitä merkkejä se saa jopa lähettää:

  • Chromen sisäänrakennetussa Prompt API (Gemini Nano), ohitamme JSON Schema vastausrajoitteena. Malli voi tuottaa vain kohteita, jotka skeema sallii additionalProperties: false: lla, mikä tahansa argumentti, jota skeema ei määrittele, on kirjaimellisesti edustamaton.
  • WebLLM (avoin malli käynnissä WebGPU), me liitä ** ** ** ** ** ** ** ** ** ** ** ** ** XGammarin kautta. Kielioppi sanelee rakenteen; malli täyttää vain arvot.

Molemmat tuottavat saman työkalu-kutsun muodon. Pieni korjauspassi sitten pelastaa läheltä piti pieni malli tekee vielä ... pudotettu name, argumentteja ilman niiden kääre ...päättelemällä työkalun argumentin muoto. Tuloksena on, että "vedä vihreä pentagon" tulee todellinen create_item puhelu sijasta virhe.

Kaksi tarjoajaa, yksi sopimus

On-device AI ei ole yksi asia Se riippuu selaimesta:

  • Selaimen AI Chrome sisäänrakennettu ** Gemini Nano** (window.LanguageModel). Mallialukset selaimella, ei ole mitään ladattavaa meiltä. Tämä on luotettavin on-device polku tänään, koska JSON-schema rajoitus on halpa ja hyvin tuettu.
  • PinePaper AI ... WebLLM. Se lataa mallin kerran (kätketty sen jälkeen), sitten toimii pois päältä.
  • **Kielet ** Ei-Englanti-kehotukset käännetään ensin englanniksi (selaimen sisäänrakennetun kääntäjän kautta), koska pienet koodisuuntautuneet mallit ovat englanninkielisiä. Luotu kohtaus on sama riippumatta nopea kieli.

Käyttäjä poimii moottorin; kaikki alajuoksulla rajoite, suoritin, kankaalla on sama.

Muokkaaminen, ei vain tuottaa

Yhden laukauksen generaattori ei ole avustaja. Jotta "tehdään tähti punaiseksi," mallin on tiedettävä, mitä kankaalla on jo. Joten jokainen kierros me syötämme sille kompakti kuva nykyisen kohteita ... niiden ids, tyypit ja värit... aivan kuten palvelimen puolella chat. "Tee tähti punainen" sitten ratkaisee todellinen modify_item puhelu vastaan kohteen ID. (Ja koska pieni malli joskus viittaa " circle," kun se tarkoittaa tähteä, toimeenpanija ratkaisee sumea viittaukset live kankaalle.)

Keskusteluloki säilytetään ** laitteessa** paikallisessa muistissa. Mitään siitä lähetetään minne tahansa ... ellet nimenomaisesti halua jakaa epäonnistuneita kehotuksia, mikä auttaa meitä parantamaan kehotuksia ja kielioppia.

Kun pieni malli ei riitä ..

Tässä on rehellinen osa: ** 0.5 Rajoitetut dekoodaustakeet voimakas rakenne, mutta mallin täytyy silti valita oikea työkalu ja järkevät arvot, eikä se aina. Pyydä Pentagon ja alle määritelty malli antaa sinulle kuusikulmio; kysy kahdesti "punainen" ja se voi ajaa generaattori sijaan.

Joten arkkitehtuuri kohtelee on-laite ensimmäinen taso, ei ainoa. Muutaman epäonnistuneen yrityksen jälkeen assistentti tarjoaa käsi koko keskustelun ylös Cloud-malliin Sama tarkoitus, sama kangas, paljon kyvykkäämpi malli, ja jatkat täsmälleen siihen, mihin jäit. Alhainen uskollisuus, vapaa ja yksityinen, yhdellä napsautuksella polku korkea uskollisuus kun sitä tarvitaan.

Mitä opimme

  • **Vaatimukset voittavat kehotuksen. ** Maadoitettu järjestelmäkeho auttaa; kielioppi/kaavio, joka tekee virheellisen ulostulon mahdottomaksi auttaa paljon enemmän. Suurin yksittäinen luotettavuushyppy tuli rajoitetusta dekoodauksesta, ei paremmasta ripeydestä.
  • Mallin koko hallitsee edelleen. Siirtyminen 0.5B-mallista 1.5B-malliin paransi huomattavasti sitä, kuinka usein avustaja valitsee oikean työkalun. Ei ole mitään vihjettä, joka tekisi pienestä mallista älykkään.
  • Koko kielioppi voi olla liian suuri. Ensimmäinen kielioppi koodattu * jokainen * mahdollinen toiminta ... mukaan lukien rajoitettu-pituus pakoluukku mielivaltainen piirustus koodi. Se oli niin suuri, että rajoitettu dekoodaus pysäytti sivun. Kompakti kielioppi, joka kattaa yhteiset toiminnot, on oikea oletus; koko pinta on opt-in.
  • Ota se pois päälangasta. Malli tekee johtopäätöksen käyttöliittymän lanka jäädyttää sivun. WebLLM toimii Web Worker joten editori pysyy reagoiva kun malli kuormittaa ja tuottaa.

Mitä seuraavaksi

Tämä on kokeellista ja parantaa. Etenemissuunnitelma

  • Wider työkalun kattavuus rajoitetulla polulla ... Lisää PinePaper:n toimintoja ilmaistavissa ilman vapaamuotoista pakoluukkua.
  • Suurimmat laitemallit kun WebGPU-mallistot kasvavat, ne vaihtavat latauskoon luotettavuutta varten.
  • Tarkempi aikasilmukka ...
  • Sileämpi laite → Pilviluovutus, joten eskalaatio tuntuu käännökseltä laatuvalinnan sijaan.

Läpiviiva: sama ilmaisutyökalu sanasto ajaa mallin molemmin puolin selaimen rajan. Ulkopuolinen agentti kutsuu näitä työkaluja MCP:n kautta; laitemalli kutsuu samoja muotoja paikallisesti. Yksi sopimus, agentteja kaikkialla.

*Kokeile sitä editorissa Avaa **AI / Koodi → Assistentti **. Se on ilmainen, toimii laitteessa, eikä tarvitse tiliä

Ready to create?

Start making animated GIFs, videos, and graphics — free, no signup.

Open PinePaper Editor