Steber

Vprašanje, ki je vsakič propadlo, dokler ni le uspelo

Ta izdelek testiramo bolj temeljito, kot bi se večina ljudi sploh potrudila testirati orodje, ki ga ne prodaja. Ne zato, ker uživamo v iskanju lastnih hroščev, ampak ker je trditev, da “AI res pozna vaš posel”, nič vredna, če nihče ni preveril, ali drži pod resničnim pritiskom.

Eno vprašanje je vztrajno odpovedovalo. Ne skoraj pravilno, ne nejasno, temveč suho “Tega nimam.”

Vprašanje in kolikokrat je odpovedalo

“Predlagaj hibridni paket storitev, utemeljen na tem, kar je dejansko delovalo.”

Neko različico tega smo zastavili v treh ločenih simulacijskih zagonih AlphaForgea, celotnem testu vertikale za odvetniške pisarne in testu vertikale za urejanje zunanjih površin. Vsakič, pri stari metodi iskanja: neka različica “Nimam vnosov v Trezorju ali zapisov, ki bi pokazali, katere kombinacije so delovale.”

Frustrirajoče ni bilo to, da je odpovedalo. Frustrirajoče je bilo to, da informacija dejansko ni manjkala. Trezor je imel splošen vnos o cenah. Imel je tudi konkreten vnos o rezultatu. Le nikoli ju ni povezal, ker je metoda iskanja v ozadju ob vsakem sporočilu izvajala živo iskanje po ključnih besedah, do štirideset ločenih preiskav baze podatkov na vprašanje, iskanje po ključnih besedah pa ne ve, da “palete busena” in “pokritost s paletami” govorita o isti stvari.

Kaj smo dejansko spremenili

Ne tega, kar Trezor hrani. Ampak kako se po njem išče.

Vsak vnos v Trezorju se zdaj pretvori v embedding, številčni zapis svojega dejanskega pomena, v trenutku, ko je zapisan, ne v trenutku, ko nekdo o njem zastavi vprašanje. Iskanje je postalo eno samo iskanje najbližjega soseda nad tem zapisom, namesto iskanja po celotnem Trezorju od začetka ob vsakem sporočilu. Gre za isto osnovno bazo podatkov, Postgres, ki teče na isti instanci, kot smo jo že imeli, z razširitvijo, zgrajeno prav za to. Nobene nove kategorije infrastrukture. Le drugačen način iskanja tega, kar je bilo že tam.

Do tega je pripeljalo resnično, nič kaj bleščeče inženirsko delo, o katerem se v takih objavah običajno ne piše: preverjanje, kateri ponudniki AI sploh ponujajo endpoint za embeddinge (ne vsi), zasnova, ki upošteva najemnika (tenant-aware), tako da se uporabi lastni konfigurirani ponudnik vsakega podjetja namesto enega ključa za celotno platformo, ter res zoprn hrošč, kjer je embeddinge enega ponudnika bilo treba eksplicitno normalizirati, preden bi primerjave razdalj sploh bile matematično veljavne. Prav tako smo pred izbiro primerjali pet kandidatov za model na resničnem vprašanju in odkrili nekaj, kar je vredno vedeti samo po sebi: najhitrejša možnost je bila deset- do petnajstkrat hitrejša od najpočasnejše, ob ničelni razliki v kakovosti odgovora na točno tisto številčno vprašanje, na katerem smo jo testirali.

Ponovni test

Isti najemnik. Isto vprašanje. Stara metoda, nato nova, ena za drugo.

Stari odgovor: “Nimam vnosov v Trezorju ali zapisov, ki bi pokazali, katere kombinacije so delovale.”

Novi odgovor, prek dnevnikov potrjeno, da je resnično uporabil novo pot iskanja, ne po naključju: resničen, konkreten predlog, poimenovane storitve, resničen naročnik, naveden po imenu, izračunana skupna vrednost, utemeljitev, vezana na to, kako dejansko poteka delo tega podjetja. Ne rahlo boljša različica starega ne-odgovora. Popolnoma drugačen izid, na vprašanju, ki je do takrat identično odpovedovalo, vsakič, skozi celoten program testiranja.

Česa ne bomo prikrivali

Poštena cena se je pokazala takoj, zato o njej poročamo, ne glajmo je. Naknadna obdelava embeddingov za že velik Trezor, več kot tisoč vnosov, je trajala skoraj pet minut, neprijetno blizu trde meje časovne omejitve zahteve. Pri resnično zrelem Trezorju, globokem več tisoč vnosov, bi ista enkratna naknadna obdelava verjetno odpovedala nekje na poti. To zdaj vemo, ker smo to izmerili, ne zato, ker ugibamo. Gre za resnično, označeno nadaljnjo nalogo, ne za nekaj, kar smo objavili in tiho upali, da nihče ne bo naletel nanjo.

Številka, ki stoji za vsem tem

Ta ena primerjava pred in po je le en test znotraj veliko večjega programa: približno petindvajset simuliranih let poslovne dejavnosti v več panogah, prek devet tisoč resničnih vnosov v Trezorju, nastalih na poti, enajst resničnih hroščev, najdenih in odpravljenih, med njimi tudi ta vrzel pri iskanju. Skupna resnična poraba za API za celoten večmesečni program: 9,57 USD.

Raje vam pokažemo vprašanje, ki je petkrat zapored odpovedalo, in točno to, kar je bilo potrebno, da smo ga popravili, kot da bi začeli z veliko številko in upali, da nihče ne bo vprašal, kaj dejansko stoji za njo.

Vprašanja, ki jih ljudje dejansko postavljajo

Ali AI-ju res ni manjkala informacija, ali je šlo za težavo pri iskanju?

Težava pri iskanju, potrjeno neposredno. Vsako dejstvo, potrebno za odgovor na vprašanje, je bilo že v Trezorju. Stara metoda iskanja je uporabljala živo iskanje po ključnih besedah, zato vprašanje z besedo ‘palete’ ni zanesljivo našlo zapisa, napisanega z besedo ‘paleta’, širše sintezno vprašanje pa ni zanesljivo povezalo dveh sorodnih, a drugače zapisanih vnosov. Znanje je bilo tam. Iskanje ga preprosto ni našlo.

Kaj se je dejansko spremenilo?

Vnosi v Trezorju se zdaj v trenutku zapisa pretvorijo v embedding, številčni zapis njihovega pomena. Iskanje je postalo eno samo iskanje najbližjega soseda nad tem zapisom, namesto živega iskanja po ključnih besedah po celotnem Trezorju ob vsakem sporočilu. Isto osnovno znanje. Popolnoma drugačen način, kako ga najti.

Kako veste, da je izboljšava resnična in ne enkraten uspeh?

Isto vprašanje smo znova zagnali na istem najemniku, najprej z iskanjem po ključnih besedah, nato z vektorskim iskanjem, in primerjali rezultate. Preverili smo tudi pošteno ceno: zakasnitev, čas naknadne obdelave pri velikem obsegu podatkov in resnično tveganje, ki smo ga odkrili (enkratna naknadna obdelava velikega Trezorja se približa trdi meji časovne omejitve zahteve), namesto da bi poročali le o zmagi.

Pridružite se Early Crew →← Nazaj na vse prispevke

Recorded on a live database and a live screen, but run by automated scripts standing in for a human's clicks and typing, not performed live. When Stark answers faster than the script expects, the screen can hold still for a beat before the next step starts. That's left in on purpose. The goal was never a polished demo reel, it was proof the feature actually works. Dejan's own verdict, after watching the raw footage: rough, but the best demo video we've made.