Ovaj proizvod testiramo oštrije nego što bi većina ljudi uopće testirala alat koji ne prodaje. Ne zato što uživamo pronalaziti vlastite bugove, nego zato što je tvrdnja da “AI stvarno poznaje vaš posao” bezvrijedna ako nitko nije provjerio vrijedi li to pod stvarnim pritiskom.
Jedno pitanje uporno je padalo. Ne skoro točno, ne mutno, nego suho “Nemam te podatke.”
Pitanje, i koliko je puta propalo
“Predloži hibridni paket usluga, utemeljen na onome što je stvarno funkcioniralo.”
Neku verziju ovoga postavili smo kroz tri zasebna simulacijska runa AlphaForgea, potpuni test vertikale za odvjetničke urede i test vertikale za uređenje okoliša. Svaki put, na staroj metodi dohvata: neka verzija “Nemam zapise u Riznici koji pokazuju koje su kombinacije funkcionirale.”
Frustrirajući dio nije bio to što je propalo. Nego to što informacija stvarno nije nedostajala. Riznica je imala opći zapis o cijenama. Imala je i konkretan zapis o ishodu. Samo ih nikad nije povezala, jer je metoda dohvata u pozadini radila pretraživanje po ključnim riječima uživo kod svake poruke, do četrdeset zasebnih pretraga baze podataka po pitanju, a pretraživanje po ključnim riječima ne zna da “palete busena” i “pokrivenost paletama” govore o istoj stvari.
Što smo zapravo promijenili
Ne ono što Riznica pohranjuje. Nego kako se pretražuje.
Svaki zapis u Riznici sada se pretvara u embedding, brojčani prikaz svog stvarnog značenja, u trenutku kad je napisan, a ne u trenutku kad netko o njemu postavi pitanje. Dohvat je postao jedno pretraživanje najbližeg susjeda nad tim prikazom, umjesto pretraživanja cijele Riznice od nule kod svake poruke. Riječ je o istoj bazi podataka, Postgresu, na istoj instanci koju smo već imali, uz ekstenziju napravljenu točno za ovo. Nema nove kategorije infrastrukture. Samo drukčiji način pronalaženja onoga što je već bilo tu.
Do toga se došlo stvarnim, nimalo glamuroznim inženjerskim radom o kojem se u ovakvim objavama obično ne piše: provjerom koji AI provideri uopće nude embedding endpoint (nemaju ga svi), dizajnom prilagođenim svakom klijentu (tenant-aware) tako da se koristi vlastiti konfigurirani provider svake tvrtke umjesto jednog ključa za cijelu platformu, i uistinu sitničavim bugom gdje su embeddinzi jednog providera trebali eksplicitnu normalizaciju prije nego što bi usporedbe udaljenosti uopće bile matematički valjane. Testirali smo i pet kandidata za model na stvarnom pitanju prije nego što smo odabrali jedan, i pritom otkrili nešto vrijedno samo po sebi: najbrža opcija bila je deset do petnaest puta brža od najsporije, uz nula razlike u kvaliteti odgovora na točno ono brojčano pitanje na kojem smo je testirali.
Ponovljeni test
Isti klijent. Isto pitanje. Stara metoda, pa nova, jedna za drugom.
Stari odgovor: “Nemam zapise u Riznici koji pokazuju koje su kombinacije funkcionirale.”
Novi odgovor, potvrđen kroz logove da je stvarno koristio novi put dohvata, ne slučajno: stvaran, konkretan prijedlog, imenovane usluge, stvaran klijent naveden imenom, izračunata ukupna vrijednost, obrazloženje vezano uz to kako stvarno teče rad te tvrtke. Ne blago poboljšana verzija starog ne-odgovora. Potpuno drukčiji ishod, na pitanju koje je identično propadalo, svaki put, kroz cijeli program testiranja do tog trenutka.
Ono što nećemo glumiti
Pošten trošak pokazao se odmah, pa ga izvještavamo, a ne uljepšavamo. Naknadna obrada embeddinga za već veliku Riznicu, preko tisuću zapisa, trajala je gotovo pet minuta, neugodno blizu tvrde granice timeouta zahtjeva. Kod uistinu zrele Riznice, dubine nekoliko tisuća zapisa, ista jednokratna naknadna obrada vjerojatno bi negdje usput pala. To sad znamo jer smo to izmjerili, ne zato što nagađamo. Riječ je o stvarnom, označenom sljedećem koraku, ne o nečemu što smo isporučili i tiho se nadali da nitko neće naletjeti na to.
Broj koji stoji iza svega ovoga
Ova jedna usporedba prije-poslije samo je jedan test unutar mnogo većeg programa: otprilike dvadeset pet simuliranih godina poslovne aktivnosti kroz nekoliko industrija, preko devet tisuća stvarnih zapisa u Riznici nastalih usput, jedanaest stvarnih bugova pronađenih i ispravljenih, među njima i ovaj propust u dohvatu. Ukupna stvarna potrošnja na API za cijeli višemjesečni program: 9,57 USD.
Radije ćemo vam pokazati pitanje koje je pet puta zaredom propalo, i točno što je trebalo da bi se popravilo, nego da krenemo s upečatljivim brojem i nadamo se da nitko neće pitati što zapravo stoji iza njega.