Winown ja lähdemateriaalin keruu ilman kaavintakaaosta

Winnow käsittelee keruuta hallittuna toimitusketjuna: käytäntö ensin, lähdekehys aina, poiminta vasta luvan jälkeen.

Winown ja lähdemateriaalin keruu ilman kaavintakaaosta

Paperipino ei ole tuote

On olemassa tietynlainen tekoälyprojekti, joka alkaa innostuksella ja päättyy kansioon nimeltä scrape-final-2-real-final. Tiimi tarvitsee pohjaa. Joku sanoo, että lähteitä pitäisi kerätä. Joku toinen löytää crawlerin. Viikkoa myöhemmin on tuhansia tiedostoja, kolme CSV-tiedostoa, notebook, joka toimii vain yhdellä läppärillä, ja pieni moraalinen kriisi siitä, saiko puolia lähteistä edes kerätä.

Tragedia on se, että kaikki tarkoittivat hyvää. Tiimi ei lähtenyt rakentamaan datasuota. He halusivat parempia vastauksia. He halusivat, että malli viittaa oikeaan materiaaliin. He halusivat, että järjestelmä lakkaa kuulostamasta konsultilta neljännen lentokenttämyöhästymisen jälkeen. Niinpä he keräsivät. Sitten he keräsivät lisää. Sitten he huomasivat, että kerääminen ei ole sama asia kuin lähteiden omistaminen.

Lähdekeräysjärjestelmän on vastattava tylsiin kysymyksiin ennen kuin fiksu työ alkaa. Mistä tämä tuli? Oliko se sallittua? Milloin se haettiin? Minkä tilan pyyntö palautti? Mitä poimittiin? Mikä oli sisällön tiiviste? Mikä keräin, hakureitti tai API tuotti sen? Voimmeko toistaa keräyspolitiikan myöhemmin? Voimmeko osoittaa, että yksityiset verkkoalueet estettiin ja nopeusrajoituksia noudatettiin? Jos nämä kysymykset puuttuvat, lähdekasa on vain kasa, jolla on luottamusongelmia.

Winnow on olemassa tätä vähemmän loistokasta, hyödyllisempää kerrosta varten. Se on Rust-pohjainen tiedonkeruualusta sekä CLI- ja kirjastotyökalu hakua, kaapimista, indeksointia, API-keräystä ja jäsenneltyä tulostetta varten. Toteutus kuvaa teksti-, JSON-, JSONL-, CSV- ja HTML-tulosteet, robots-politiikan, verkkotunnuskohtaiset nopeusrajoitukset, SSRF-suojauksen ja jäsennellyt keräystietueet. Se on oikeanlaista tylsyyttä. Crawler ei ole nälkäinen suu. Se on hallittu sisäänotto.

Keräyksen pitäisi alkaa politiikasta, ei ruokahalusta. Lähdereitti ei ole syötettä ennen kuin se läpäisee portin.

Tämä ero on tärkeä, koska tekoälyn pohja on vain yhtä hyvä kuin lähdepolku. Malli voi viitata kappaleeseen ja olla silti toiminnallisesti hyödytön, jos kukaan ei tiedä, mistä kappale tuli, oliko se ajantasainen, saiko sitä käyttää tai tuottaisiko myöhempi ajo saman materiaalin. Pohja ilman alkuperätietoja on vain kauniimman näköinen huhu.

Keräys on toimitusketju

Ihmiset ymmärtävät toimitusketjuja, kun mukana on laatikoita. Toimittaja toimittaa osia. Osilla on eränumerot. On laskuja, toimituspäiviä, laaduntarkastuksia, takaisinkutsuja ja auditointeja. Kukaan vakavasti otettava ei sano, että varasto on täynnä, joten olemme valmiita. Tiedon kanssa tiimit muuttuvat yhtäkkiä mystisiksi. Kansiossa on tiedostoja. Datajärvessä on tauluja. Vektorivarastossa on paloja. Jotenkin tämän pitäisi tarkoittaa totuutta.

Se ei tarkoita. Lähdekeräys on myös toimitusketju. Raaka-aine on ulkoista tietoa. Se saapuu reittejä pitkin, joilla on erilainen luotettavuus, käyttöoikeudet, viive, formaatit ja vikatilat. Hakutulokset eivät ole samoja kuin API-tietueet. Kaavittu sivu ei ole sama kuin arkistokuva. Taulukkovienti ei ole sama kuin renderöity HTML-dokumentti. Kun kaikkea tätä käsitellään vain sisältönä, häviävät juuri ne tosiasiat, jotka tekevät sisällöstä käyttökelpoista myöhemmin.

Winnow'n hyödyllinen asenne on, että keräyksen metatiedot kulkevat poiminnan mukana. Lähde-URL on tärkeä. Aikaleima on tärkeä. Tila on tärkeä. Sisällön tiiviste on tärkeä. Keräinluokka on tärkeä. Tulostemuoto on tärkeä. Tietue ei ole vain tekstiä, joka tuli ulos. Se on kirjekuori tekstin ympärillä.

Poiminta on vasta puolet tarinasta. Envelope on se, jonka avulla tiimi voi tarkastaa, mistä poiminta on peräisin.

Tämä envelope mahdollistaa myöhemmin sen, että arvioija voi erottaa lähteen laadun mallin laadusta. Jos vastaus on väärä, koska malli jätti huomioimatta todisteet, se on yksi virhe. Jos vastaus on väärä, koska keruu haki vanhentuneita sivuja, se on toinen. Jos vastaus on väärä, koska lähde oli estetty mutta ohitettiin hiljaa, se on kolmas. Jos vastaus on väärä, koska indeksoija haki kirjautumissivun ja käsitteli sen sisältönä, onnittelut, olet keksinyt erittäin kalliin tavan lainata evästebannerin tekstiä.

Hyvä lähteiden keruu ei tee kaikesta myöhemmästä työstä helppoa. Se tekee virheistä diagnosoitavia. Se on jo iso parannus. Tuotannossa diagnosoitavuus voittaa taianomaisuuden joka kerta. Taianomaiset demonit vanhenevat kuin maito.

Avoin verkko ei ole varastosi

Moni kaavintakulttuuri toimii yhä kuin verkko olisi ilmainen varasto, jossa on huono valaistus. Lähetä pyyntöjä, hae sivuja, dumppaa HTML:ää, siirry eteenpäin. Tämä asenne oli jo ennestään hauras. AI-järjestelmissä siitä tulee holtitonta. Dataa ei pelkästään katsella. Sitä voidaan indeksoida, tiivistää, siteerata, käyttää päätösten pohjana tai syöttää työnkulkuihin, jotka elävät pidempään kuin alkuperäinen keruuhetki.

Siksi keruu tarvitsee jarruja. Robots-käytäntö ei ole koristeellinen tekstitiedosto kohteliaille ihmisille. Pyyntörajoitukset eivät ole valinnaisia siksi, että putkistolla on määräaika. Yksityiset verkkoalueet eivät ole jännittävä löytömahdollisuus. SSRF-suojaus ei ole vainoharhaisuutta. Se on ero keruutyökalun ja tietoturvapoikkeaman välillä, jolla on maskotti.

Winnowin lähdemuistiinpanot noudattavat näitä suojakaiteita: robots-oletusarvoisesti estävä asenne, toimialuekohtaiset pyyntörajoitukset, SSRF-suojaus, jäsennelty tulos. Nämä eivät ole sivutoimintoja. Ne ovat tuotteen raja. Työkalu, joka voi hakea internetistä ilman käytäntökerrosta, ei ole hyödyllisellä tavalla tehokas. Se on vastuu, jolla on läpijuoksu.

Indeksoija tarvitsee jarruja, koska tekninen ulottuvuus ei ole sama asia kuin lupa.

Tässä myös eurooppalainen hallintotapa muuttuu hyvin konkreettiseksi. Ei iskulauseen mielessä. Vaan todellisessa operatiivisessa mielessä. Jos organisaatio haluaa todisteisiin perustuvaa tekoälyä, sen on tiedettävä, miten todisteet päätyivät järjestelmään. Oliko keruu sallittua? Käsiteltiinkö lähteitä eri tavoin luokan mukaan? Haettiinko tietueita paikoista, joita organisaatio saa käsitellä? Estettiinkö yksityiset osoitteet? Pystyisikö operaattori selittämään käytännön ilman tulkitsevaa tanssia hankinnan edessä?

Tässä on kuiva pieni ironia. Tylsät indeksointiasetukset ovat usein tärkeämpiä luottamukselle kuin mallin arkkitehtuuri. Se tuntuu epäreilulta ihmisistä, jotka pitävät arkkitehtuurikaavioista. Se on silti totta. Jos todisteet tulevat huonosti sisään, malli voi vain muuttua tyylikkääksi huonon sisäänoton vahvistimeksi.

Poiminta ei ole kopiointia

Toinen yleinen virhe on kopioinnin ja poiminnan sekoittaminen. HTML:n hakeminen ei ole sama asia kuin hyödyllisen sisällön poimiminen. Raaka sivu sisältää navigointia, evästebannereita, mainontaa, liittyviä linkkejä, alatunnistelietettä, skriptejä, asettelun osia ja joskus sen varsinaisen asian, jonka vuoksi tulit, piilossa kuin se olisi velkaa.

Winnow'n tuotokset ovat tärkeitä, koska eri jatkokäyttötarkoitukset tarvitsevat erilaisia muotoja. Tekstiä lukemista varten. JSON tai JSONL jäsenneltyjä rivejä varten. CSV taulukkoystävällisiä prosesseja varten. HTML silloin, kun alkuperäinen rakenne on olennaista. Tarkoitus ei ole valita yhtä pyhää tuotosmuotoa. Tarkoitus on tehdä tuotoksesta eksplisiittinen ja tehtävään sopiva.

Raakasivut ovat syöte. Hyödyllinen artefakti on poiminta sekä seuraavan vaiheen tarvitsema muoto.

Tämä muuttuu kriittiseksi, kun lähteet syöttävät hakua, tiedonhakua tai tiedonhallintaa. Mallin ei pitäisi joutua päättämään, onko alatunnisteen linkki todiste. Tiedonhakujärjestelmän ei pitäisi indeksoidä jokaista evästebanneria ikään kuin se olisi politiikkalausunto. Dataputken ei pitäisi muuttaa sivun asettelua faktataulukoksi pelkän optimismin voimin. Poiminta on vaihe, jossa lähteestä tulee artefakti, jota muut järjestelmät voivat käyttää ilman, että ne kantavat mukanaan jokaista web-sivun roskanmurua.

Mutta poiminnan on myös oltava rehellistä. Siivoaminen ei ole uudelleenkirjoittamista. Normalisointi ei ole keksimistä. Mainosten poistaminen ei ole väitteen muuttamista. Jos poimija ei erota näitä toisistaan, siihen pitää suhtautua yhtä epäluuloisesti kuin myyjään, joka käyttää sanaa vaivaton. Pieninä annoksina hyvä, budjetin lähellä vaarallinen.

Miksi tämä kuuluu ennen tiedonhakua

Tiedonhakujärjestelmiä syytetään monista ongelmista, jotka alkoivat aiemmin. Indeksi palauttaa huonoja ehdokkaita, joten tiimi hienosäätää rankkausta. Viittaukset ovat heikkoja, joten joku muuttaa pilkkomista. Malli kuulostaa epävarmalta, joten joku lisää kehotteen, jonka tunnepaino vastaa jääkaappimagneettia. Joskus tiedonhakukerros on todellakin ongelma. Usein keräilykerros myrkytti aterian hiljaa jo ennen kuin rankkaus alkoi.

Jos lähteet saapuvat ilman kirjekuoria, tiedonhaku ei voi selittää niitä myöhemmin. Jos aikaleimat puuttuvat, tuoreudesta tulee arvaus. Jos tilakoodeja ei huomioida, epäonnistuminen näyttää poissaololta. Jos sisältötiivisteet puuttuvat, muutoksen havaitsemisesta tulee kansanperinnettä. Jos poiminnan laatu vaihtelee villisti, rankkauksesta tulee kilpailu signaalin ja mainosten välillä.

Siksi Winnow sijoittuu luonnollisesti ennen järjestelmiä kuten BitWeave, Spindle, Fabric tai mitä tahansa lähdepohjaista tekoälytuotetta. Se ei ole päättelykerros. Se ei ole tietograafi. Se ei ole käyttöliittymä. Se on syötteen hallinnan kurinalaisuus, joka päättää, saavatko myöhemmät kerrokset puolustettavaa materiaalia vai kummittelevan ullakon verkkofragmenteista.

Tämä järjestys on tärkeä. Kerää ensin politiikan mukaisesti. Kääri jokainen lähde kontekstiin. Poimi eksplisiittisiin muotoihin. Vasta sitten indeksoi, viittaa, analysoi, sertifioi tai tiivistä. Jos järjestys käännetään, tiimi päätyy kiillottamaan vastauksia tuntemattoman syötteen päälle. Näin kallis hölynpöly saa nätin käyttöliittymän.

Määrät ovat vähemmän tärkeitä kuin sopimus

Winnow'lla on suuri katalogi keräimiä, hakuliittymiä, API-merkintöjä ja sivustokohtaisia poimintaominaisuuksia. Tarkat määrät vaihtelevat lähdeotosten välillä, mikä on normaalia aktiivisesti muuttuvalle keräilypinnalle eikä asia, josta kannattaa tehdä julkista runoutta. Tärkeä asia ei ole sankarillinen luku. Tärkeä asia on sopimus.

Pystyykö työkalu keräämään useista reittiluokista? Pystyykö se tuottamaan jäsenneltyjä muotoja? Pystyykö se soveltamaan turvarajoja? Pystyykö se kuljettamaan lähdemetatietoa? Voiko sitä käyttää kirjastona tai komentorivityökaluna? Voiko tiimi tarkastaa, miten lähde päätyi järjestelmään? Nämä ovat kysymyksiä, jotka kestävät todellisen käyttöönoton.

Numerot houkuttelevat, koska ne näyttävät konkreettisilta. Mutta keräilyinfrastruktuurissa väärä luku voi viedä huomion pois todellisesta varmuudesta. Tuhat huolimatonta kerääjää on huonompi vaihtoehto kuin pienempi joukko, jolla on asianmukaiset käytännöt, kirjekuoret ja tuotantosopimukset. Kypsä kysymys ei ole se, kuinka paljon voit kaapia. Kypsä kysymys on se, mitä voit puolustaa sen jälkeen, kun olet kaapinut.

Opetus

Winnow'n opetus on, että lähteiden kerääminen ei ole johdanto varsinaiseen tekoälyjärjestelmään. Se on osa varsinaista tekoälyjärjestelmää. Vastaus, jonka käyttäjä näkee, riippuu siitä, mitä järjestelmään syötettiin, miten se syötettiin, mitä poimittiin, mikä konteksti säilyi ja mitkä vaaralliset reitit estettiin. Tämä työ ansaitsee insinöörityön, ei viikonloppuskriptiä sankarillisella muuttujanimellä.

Winnow on hyödyllinen, koska se käsittelee keräämistä hallittuna sisäänottoprosessina: lähdereitit, käytäntöportit, turvarajat, jäsennellyt tuotokset ja lähdekirjekuoret. Se ei tee jokaisesta lähteestä luotettavaa. Se tekee lähteen polusta riittävän näkyvän, jotta muu järjestelmä voi käyttäytyä kuin aikuinen.

Tämä on se kuiva totuus suurimman osan maadoitetun tekoälytyön taustalla. Ennen kuin malli viittaa lähteeseen, ennen kuin haku asettaa ehdokkaan järjestykseen, ennen kuin Spindle varmentaa atomin, ennen kuin Fabric näyttää sivun vastauksen takana, jonkun on kerättävä materiaali sotkematta asioita. Ei loistokasta. Hyvin välttämätöntä. Vähän kuin putkityöt, paitsi että kun ne vuotavat, kaikki kutsuvat sitä tekoälyn hallusinaatioksi.

Joten kyllä, kerää lähteitä. Mutta älä sekoita kasaa korpukseen tai indeksointirobottia hallintoon. Hyödyllinen kysymys ei ole se, kuinka nopeasti työkalu voi syödä verkon. Hyödyllinen kysymys on se, pystyykö organisaatio edelleen selittämään, mitä se söi, miksi se oli sallittua, mitä siitä tuli ja pitäisikö seuraavan järjestelmän luottaa siihen.