La tabeloj, kiuj ne ekzistis
Aŭtomata traduko el la itala. · legu la originalon
Ĉapitro 2 — La tabeloj, kiuj ne ekzistis
Teknikisto de mekanika firmao el Nord-Oriento rakontis al ni antaŭ espresso, kun la trankvileco de la venetoj, kiu antaŭas katastrofon: "Nia chatbot sciis ĉion pri la motoro. Escepte la datumojn de la motoro." Li poste klarigis. Ilia interna AI-asistanto sciis priskribi la produktojn, la uzokuntekston, la historion de la marko, la konkurantajn avantaĝojn. Miraklo, laŭ rakonta nivelo. Sed kiam kliento demandis la noman momenton de la modelo CMP50L — do la teknika datumo por kiu oni malfermas la katalogon, la nombro por kiu oni aĉetas motoron — la chatbot respondis neklare, foje kredinde, foje ne. Kvin monatojn da evoluo, la operacia direktoro ĉiam pli konfuziĝanta, kaj neniu sciis kial.
La diagnozo venis hazarde, preskaŭ pro enuo, inspekante mane la datumbazon post la enespira kunveno sen konkludo. La PDF-katalogo enhavis 342 teknikajn tabelojn. En la datumbazo alvenis nulo. Ne manpleno: nulo. Neniu. La kodo, kiu elprenis la tabelojn el la PDF-oj, konservis la datumojn en kampoj nomataj columns kaj data, dum la kodo, kiu poste indeksis ilin, atendis kampojn nomatajn headers kaj rows. Ne respektata "sinonimo". Interna konveno, kiu forlasis dum forgesita refaktorigado. La rezulto, dum kvin silentaj monatoj: la tuta nombra intelekto de la katalogo — paroj, potencoj, diametroj, pezoj, mendokodoj, nutrovoltaj tensioj — elfluetis el la robineto sen esti iam ajn versita en la glason. Tricent kvardek du tabeloj, perdiĝintaj unu post la alia en silenta liturgio.
Ĉi tio estas la tipo de eraro kiu ne krias. Ĝi ne levas esceptojn, ne kaŭzas kraŝojn, ne aperas en ajna protokolo. Simple, parto de la mondo ĉesas ekzisti por via sistemo, kaj neniu rimarkas ĝin ĝis uzanto — kutime kolerita uzanto — faras sufiĉe obstinajn demandojn por montri la abismon. Kaj ĝi estas simbolo de multe pli granda problemo ol la nomoj de la kampoj: la ĝeneralaj RAG-kadroj estas optimumigitaj por la nuna teksto — artikoloj, retejoj, paragrafoj de rakontoj — kaj traktas tabulojn kiel civitanojn de dua klaso, kiam ili ilin traktas. Sed la italaj entreprenaj dokumentoj *estas* ofte tabuloj. Teknikaj katalogoj, prezlistoj, produktspecifoj, sekurecdatatabeloj, mendobulatenoj: la valora parto, por kiu konsultas ĉi tiujn dokumentojn, estas la tabula parto. Tiu kiu rompiĝas unue kaj pri kiu neniu rimarkas.
La leciono ne estas "atentu la nomojn de la kampoj". Ĝi estas pli malfacila: en serioza RAG, ĉiu tipo de enhavo — tabeloj, bildoj, alfanumericaj kodoj, titoloj de alineoj, subnotoj — bezonas dediĉitan, desegnitan, testitan traktadon. Kaj la funkcia testo ne estas "la chatbot respondas al trivialaj demandoj" — al tiuj eĉ rompitaj sistemoj respondas, ĉar ekzistas sufiĉe da flosantaj datumoj por konstrui ion verŝajnan. La vera testo estas "la chatbot respondas al demandoj kiuj devigas ĝin tuŝi ĉiun solan pecon de la kondukilo". Specifaj, numericaj, vereblaj demandoj. Demandoj por kiuj ekzistas ĝusta kaj sola respondo, kaj se la sistemo eraras, vi tuj scias.
Se vi ne faras ĉi tiun teston, vi ne scias ĉu via RAG funkcias. Vi scias nur, ke ĝi ne plendas. Kaj "ne plendas" estas tre malalta kvalita kriterio por sistemo, kiun homoj uzos por preni decidojn.
Vi havas observon? Skribu al ni
La mesaĝo venas nur al ni. Se via komento estas interesa, ni povus publikigi ĝin ĉe la fino de la artikolo, sed nur post taksado.
Dum vi skribas, via retumilo solvas etan malgrandan kalkulan problemon: tio estas nia maniero forteni aŭtomatajn mesaĝojn sen uzi servon de tria persono kaj sen peti vin rekoni semaforojn. Vi ne ricevas demandon, kaj neniu dato forlasas ĉi tiun retejon.