Winnow ja allikate kogumine ilma kaosest
Paberihunnik ei ole toode
On teatud tüüpi AI-projekte, mis algavad entusiasmiga ja lõpevad kaustaga nimega scrape-final-2-real-final. Meeskond vajab alusmaterjali. Keegi ütleb, et peaksime allikad kokku koguma. Keegi teine leiab roomiku. Nädal hiljem on tuhandeid faile, kolm CSV-faili, märkmik, mis töötab ainult ühel sülearvutil, ja väike moraalikriis selle üle, kas pooli allikaid tohtis üldse koguda.
Traagika on selles, et kõigil olid head kavatsused. Meeskond ei asunud teadlikult andmesood ehitama. Nad tahtsid paremaid vastuseid. Nad tahtsid, et mudel viitaks tegelikule materjalile. Nad tahtsid, et süsteem lõpetaks kõlamise nagu konsultant pärast neljandat lennujaama viivitust. Nii nad kogusid. Siis kogusid veel. Siis avastasid, et kogumine ei ole sama, mis allikate omamine.
Allikakogumissüsteem peab vastama igavatele küsimustele enne, kui nutikas töö algab. Kust see tuli? Kas see oli lubatud? Millal see toodi? Millise staatuse päring tagastas? Mis välja võeti? Mis oli sisu räsi? Milline koguja, otsingutee või API selle tootis? Kas kogumispoliitikat saab hiljem taastada? Kas saame näidata, et privaatsed võrgupiirkonnad olid blokeeritud ja päringupiiranguid järgiti? Kui need küsimused puuduvad, on allikahunnik lihtsalt hunnik enesekindlusprobleemidega.
Winnow on loodud selle vähem glamuursema, kuid kasulikuma kihi jaoks. See on Rusti-põhine andmekogumisplatvorm ning CLI/teek otsinguks, kraapimiseks, roomamiseks, API-kogumiseks ja struktureeritud väljundiks. Rakendus kirjeldab teksti-, JSON-, JSONL-, CSV- ja HTML-väljundeid, robotipoliitikat, domeenipõhiseid päringupiiranguid, SSRF-kaitset ja struktureeritud kogumisprotokolle. See on õiget tüüpi igavus. Roomik ei ole näljane suu. See on kontrollitud sissevõtt.
See eristus on oluline, sest AI alusmaterjal on ainult nii hea kui allikatee. Mudel võib tsiteerida lõiku ja olla siiski operatiivselt kasutu, kui keegi ei tea, kust lõik tuli, kas see oli ajakohane, kas seda tohtis kasutada või kas hilisem käivitus tooks sama materjali. Alusmaterjal ilma päritoluta on lihtsalt ilusam kuulujutt.
Kogumine on tarneahel
Inimesed mõistavad tarneahelaid, kui kastid on mängus. Tarnija saadab osad. Osadel on partii numbrid. On arveid, tarnekuupäevi, kvaliteedikontrolle, tagasikutsumisi, auditeid. Keegi tõsine ei ütle, et ladu on täis, seega oleme valmis. Infoga muutuvad meeskonnad äkki müstiliseks. Kaustas on failid. Andmejärves on tabelid. Vektorpoodis on tükid. Kuidagi peaks see tähendama tõde.
See ei tähenda. Allikakogumine on samuti tarneahel. Toormaterjal on väline info. See saabub teede kaudu, millel on erinev usaldusväärsus, õigused, latentsus, vormingud ja rikkeviisid. Otsingutulemused ei ole samad mis API-protokollid. Roomatud leht ei ole sama mis arhiivikoopia. Tabelieksport ei ole sama mis renderdatud HTML-dokument. Kõige selle kohtlemine lihtsalt sisuna kaotab need faktid, mis muudavad sisu hiljem kasutatavaks.
Winnow'i kasulik hoiak on see, et kogumismetaandmed liiguvad koos väljavõttega. Allika URL on oluline. Ajatempel on oluline. Staatus on oluline. Sisu räsi on oluline. Koguja klass on oluline. Väljundvorming on oluline. Protokoll ei ole ainult tekst, mis välja tuli. See on ümbrik teksti ümber.
See ümbrik võimaldab hiljem hindajal eristada allika kvaliteeti mudeli kvaliteedist. Kui vastus on vale, sest mudel eiras tõendeid, on see üks viga. Kui see on vale, sest kogumine tõmbas aegunud lehti, on see teine. Kui see on vale, sest allikas oli blokeeritud, kuid vaikselt vahele jäetud, on see kolmas. Kui see on vale, sest roomaja laadis sisselogimislehe ja kohtles seda sisuna, siis õnnitlused, olete leiutanud väga kalli viisi küpsiseteatise tsiteerimiseks.
Hea allikakogumine ei muuda kogu allavoolu tööd lihtsaks. See muudab vead diagnositavaks. See on juba suur paranemine. Tootmises võidab diagnositavus maagilisuse üle alati. Maagilised demod vananevad nagu piim.
Avatud veeb ei ole teie ladu
Palju kraapimiskultuuri käitub endiselt nii, nagu oleks veeb halva valgustusega tasuta ladu. Saada päringud, võta lehed, viska HTML maha, liigu edasi. See suhtumine oli juba niigi habras. AI-süsteemide puhul muutub see hoolimatuks. Andmeid ei lihtsalt vaadata. Neid võidakse indekseerida, kokku võtta, tsiteerida, kasutada otsuste tegemiseks või suunata töövoogudesse, mis elavad üle algse kogumise hetke.
Seega vajab kogumine pidureid. Robots-poliitika ei ole dekoratiivne tekstifail viisakatele inimestele. Päringupiirangud ei ole valikulised, sest torustikul on tähtaeg. Privaatsed võrgupiirkonnad ei ole põnev avastusvõimalus. SSRF-kaitse ei ole paranoia. See on vahe kogumistööriista ja turvaintsidendi vahel, millel on maskott.
Winnowi allikamärkused ühtivad nende kaitsereeglitega: robots vaikimisi keelduv hoiak, domeenipõhised päringupiirangud, SSRF-kaitse, struktureeritud väljund. Need ei ole kõrvalfunktsioonid. Need on toote piir. Tööriist, mis suudab internetist andmeid tuua ilma poliitikakihita, ei ole kasulikul moel võimas. See on kohustus läbilaskevõimega.
Siin muutub ka Euroopa juhtimine väga konkreetseks. Mitte loosungite mõttes. Tegelikus operatiivses mõttes. Kui organisatsioon soovib tõenduspõhist AI-d, peab ta teadma, kuidas tõendid süsteemi sisenesid. Kas kogumine oli lubatud? Kas allikaid koheldi klassiti erinevalt? Kas kirjeid toodi kohtadest, mida organisatsioonil on lubatud töödelda? Kas privaatsed aadressid olid blokeeritud? Kas operaator suudaks poliitikat selgitada ilma tõlgendavat tantsu hankijate ees esitamata?
Siin on kuiv väike iroonia. Igavad roomaja seaded on usalduse jaoks sageli olulisemad kui mudeli arhitektuur. See tundub ebaõiglane inimestele, kellele meeldivad arhitektuuriskeemid. See on siiski tõsi. Kui tõendid sisenevad halvasti, saab mudelist vaid halva sissevoolu elegantne võimendi.
Ekstraheerimine ei ole kopeerimine
Teine levinud viga on kopeerimise segiajamine ekstraheerimisega. HTML-i laadimine ei ole sama mis kasuliku sisu ekstraheerimine. Toores leht sisaldab navigatsiooni, küpsiseteatisi, reklaami, seotud linke, jaluse muda, skripte, paigutuse fragmente ja mõnikord seda, mille pärast tegelikult tulid, peidus nagu võlgu.
Winnowi väljundid on olulised, sest erinevad allavoolu ülesanded vajavad erinevaid vorme. Tekst lugemiseks. JSON või JSONL struktureeritud ridade jaoks. CSV tabelisõbralike voogude jaoks. HTML siis, kui algne struktuur on oluline. Asi pole selles, et valida üks püha väljund. Asi on selles, et muuta väljund selgesõnaliseks ja ülesandele sobivaks.
See muutub kriitiliseks, kui allikad toidavad otsingut, otsingutulemuste hankimist või teadmiste haldust. Mudel ei peaks otsustama, kas jaluse link on tõendusmaterjal. Otsingusüsteem ei peaks indekseerima iga küpsisebännerit nii, nagu see oleks poliitikaavaldus. Andmetorustik ei peaks lehekülje paigutust optimeerimise teel faktitabeliks muutma. Ekstraheerimine on koht, kus allikast saab artefakt, mida teised süsteemid saavad kasutada ilma kogu veebilehe prahti kaasa vedamata.
Kuid ekstraheerimine peab olema ka aus. Puhastamine ei ole ümberkirjutamine. Normaliseerimine ei ole väljamõtlemine. Boilerplate'i eemaldamine ei ole väite muutmine. Kui ekstraktor ei suuda vahet teha, tuleks seda kohelda sama kahtlustusega nagu müügimeest, kes kasutab sõna vaevatu. Väikestes annustes okei, eelarve lähedal ohtlik.
Miks see kuulub enne otsingutulemuste hankimist
Otsingusüsteeme süüdistatakse paljudes probleemides, mis algasid varem. Indeks tagastab nõrku kandidaate, nii et meeskond häälestab järjestust. Viited on nõrgad, nii et keegi muudab tükeldamist. Mudel kõlab ebakindlalt, nii et keegi lisab viiba juhise külmkapimagneti emotsionaalse jõuga. Mõnikord ongi otsingukiht probleem. Tihti mürgitas kogumiskiht vaikselt eine enne, kui järjestamine üldse algas.
Kui allikad saabuvad ilma ümbriketa, ei saa otsing neid hiljem selgitada. Kui ajatemplid puuduvad, muutub värskus oletuseks. Kui olekukoode eiratakse, näeb tõrge välja nagu puudumine. Kui sisuräsid puuduvad, muutub muutuste tuvastamine rahvapärimuseks. Kui ekstraheerimise kvaliteet kõigub tugevalt, muutub järjestamine signaali ja boilerplate'i vaheliseks võistluseks.
Seetõttu asetub Winnow loomulikult enne selliseid süsteeme nagu BitWeave, Spindle, Fabric või mõni muu allikapõhine AI-toode. See ei ole arutluskiht. See ei ole teadmiste graaf. See ei ole kasutajaliides. See on sissevõtu distsipliin, mis otsustab, kas hilisemad kihid saavad kaitstava materjali või kummitava pööningu veebifragmentidest.
See järjekord on oluline. Kogu esmalt poliitikaga. Mähi iga allikas kontekstiga. Ekstrakti selgeteks vormideks. Seejärel indekseeri, tsiteeri, analüüsi, sertifitseeri või kokkuvõta. Kui järjekord on vastupidine, lihvib meeskond vastuseid tundmatu sisendi peal. Nii saab kallis jama kena kasutajaliidese.
Arvud on vähem olulised kui leping
Winnowil on suur kataloog kollektoreid, otsinguintegratsioone, API-kirjeid ja saidipõhiseid ekstraheerimisvõimeid. Täpsed arvud erinevad allikapiltide lõikes, mis on aktiivselt muutuva kogumispinna puhul normaalne ja mitte midagi, mida tasuks avalikuks luuleks muuta. Oluline punkt ei ole kangelaslik number. Oluline punkt on leping.
Kas tööriist suudab koguda mitmest marsruudiklassist? Kas see suudab väljastada struktureeritud vorminguid? Kas see suudab rakendada ohutuspiire? Kas see suudab kanda allika metaandmeid? Kas seda saab kasutada teegina või käsureana? Kas meeskond saab kontrollida, kuidas allikas süsteemi sisenes? Need on küsimused, mis jäävad ellu päris juurutust.
Arvud on ahvatlevad, sest nad näivad konkreetsed. Kuid kogumisinfrastruktuuri puhul võib vale arv tõelise kindlustunde asemel tähelepanu kõrvale juhtida. Tuhat lohakat kogujat on halvem kui väiksem hulk, kus on korralik poliitika, ümbrikud ja väljundlepingud. Küps küsimus pole see, kui palju suudab kraapida. Küps küsimus on see, mida suudab pärast kraapimist kaitsta.
Õppetund
Winnowi õppetund on see, et allikate kogumine pole päris AI-süsteemi eelmäng. See on päris AI-süsteemi osa. Vastus, mida kasutaja näeb, sõltub sellest, mis sisse tuli, kuidas see sisse tuli, mis välja tõmmati, milline kontekst säilis ja millised ohtlikud teed blokeeriti. See töö väärib inseneritööd, mitte nädalavahetuse skripti, millel on kangelaslik muutujanimi.
Winnow on kasulik, sest see kohtleb kogumist kontrollitud sissevõtuna: allikateed, poliitikaväravad, ohutuspiirid, struktureeritud väljundid ja allikaümbrikud. See ei muuda iga allikat usaldusväärseks. See muudab allika tee piisavalt nähtavaks, et ülejäänud süsteem saaks käituda nagu täiskasvanu.
See on kuiv tõde enamiku maandatud AI-töö taga. Enne kui mudel tsiteerib allikat, enne kui otsingusüsteem järjestab kandidaadi, enne kui Spindle sertifitseerib aatomi, enne kui Fabric kuvab vastuse taga lehte, peab keegi materjali koguma ilma segadust tekitamata. Mitte glamuurne. Väga vajalik. Natuke nagu torutöö, välja arvatud see, et kui see lekib, nimetavad kõik seda AI hallutsinatsiooniks.
Nii et jah, koguge allikaid. Kuid ärge ajage hunnikut segamini korpusega ega roomurit valitsemisega. Kasulik küsimus pole see, kui kiiresti tööriist veebi ära süüa suudab. Kasulik küsimus on see, kas organisatsioon suudab ikka veel selgitada, mida see sõi, miks see lubatud oli, mis välja tuli ja kas järgmine süsteem peaks seda usaldama.