Dobici:
- Sposobnost postavljanja cjevovoda podataka (prikupljanje, provjera valjanosti, čišćenje, transformacija, dijeljenje, verzija) i postavljanje provjere valjanosti sheme na početak cjevovoda
- Sposobnost donošenja odluka o nedostajućim vrijednostima i označavanju na temelju značenja polja i podjele kako bi se spriječilo curenje podataka (grupno i vremensko)
- Sposobnost stvaranja baze podataka koja se može reproducirati popravljanjem verzije podataka i sjemena slučajnosti
Prava snaga svakog sustava strojnog učenja leži u podacima, a ne u modelu. Iskusni inženjeri znaju: "smeće unutra, smeće van" — čak i najnapredniji model s lošim podacima proizvest će loše rezultate. U ovoj jedinici uspostavljamo podatkovni cjevovod (podatkovni cjevovod: lanac koraka koji čine neobrađene podatke spremnima za modeliranje) od kraja do kraja i učimo na kojem koraku ovog niza možemo sigurno koristiti umjetnu inteligenciju.
Koraci podatkovne linije
Podatkovna linija obično prolazi kroz ove stanice:
- Prikupljanje (unošenje): Povlačenje podataka iz izvora (baza podataka, API, datoteke dnevnika, tokovi događaja).
- Validacija: Provjera jesu li podaci u skladu s očekivanom shemom, vrstama i rasponima.
- Čišćenje: rukovanje nedostajućim vrijednostima, duplim zapisima, ekstremima i nedosljednostima.
- Transformacija: Pretvaranje neobrađenih podataka u atribute — kao što je pretvaranje kategoričke varijable u broj, stvaranje "dana u tjednu" iz datuma.
- Razdvajanje: Odvajanje na skupove za obuku, validaciju i testiranje.
- Versioniranje: Bilježenje modela koji je treniran s kojim podacima.
Umjetna inteligencija štedi vrijeme generiranjem nacrta koda i ideja, posebno u koracima 2, 3 i 4. Ali odluke poput toga koji zapis odbaciti, koju nedostajuću vrijednost ispuniti i kako, pripadaju inženjeru koji poznaje podatke; jer nepravilno čišćenje može unijeti skrivenu pristranost u model.
Provjera podataka: rana obrana linije
Najskuplje pogreške ne počinju u proizvodnji, već tamo gdje se preskoči korak provjere. Provjera valjanosti sheme automatski provjerava je li svaka dolazna serija podataka u skladu s očekivanom strukturom. Na primjer, je li stupac dobi između 0-120, je li polje e-pošte prazno, je li se broj stupaca promijenio?
Savjet: Stavite potvrdu na početak retka. Što se prije pokvareni podaci uhvate, to je jeftinije popraviti ih. Pogreška u shemi uhvaćena u proizvodnji višestruko je skuplja od one uhvaćene u fazi obuke.
Napišite shemu provjere valjanosti s panderom (ili Great Expectations) za sljedeću shemu podataka. Stupci i pravila:- user_id: cijeli broj, ne može biti nula, jedinstven- age: cijeli broj, ne može biti od 0-120- signup_date: datum, ne može biti u budućnosti- država: kategorički, iz skupa {TR, DE, US, UK}- stanje: decimalno, ne može biti negativno Proizvodi smislenu poruku o pogrešci za svako kršenje pravila. Prikažite test s primjerom isprekidane linije na kraju koda.
Čišćenje: čovjek je taj koji odlučuje
Vrijednosti koje nedostaju stvarnost su svakog skupa podataka. Načini rukovanja:
- Brisanje: Odbacivanje retka/stupca s vrlo visokom stopom propuštanja. Ali postoji rizik od gubitka informacija i pristranosti.
- Imputacija: Imputacija sa srednjom, medijanom, najčešćom vrijednošću ili predviđanjem na temelju modela.
- Zastavica: Pohranjivanje informacija "nedostaje" u zasebnom stupcu zastavice - ponekad je sam nedostatak signal.
Koji je ispravan ovisi o problemu. U skupu medicinskih podataka informacije o "vrijednosti krvi nisu izmjerene" trebaju se sačuvati, a ne brisati; Jer čak je i odbijanje liječnika da izvrši mjerenje signal. AI vam može dati opcije i kod; Vi birate koji odgovara stvarnosti polja.
Slab upit / Jak upit
Slab upit: "Ispunite vrijednosti koje nedostaju."
Snažan upit: "Nedostaju vrijednosti u sljedećim stupcima: prihod (nedostaje 12%, distribucija nagnuta udesno), last_login (nedostaje 30%). Predložite da prihod popunite medijanom, ali objasnite zašto medijan, a ne srednjim. Za last_login pretpostavite da bi vrijednost koja nedostaje mogla biti značajna (korisnik se možda nikada nije prijavio); razmislite o generiranju zastavice never_logged_in umjesto brisanja. Zapišite pristranost bilo koji pristup dodati modelu."
Razlika: snažan prompt daje informacije o distribuciji i značenje područja; umjetna inteligencija proizvodi podršku odlučivanju umjesto mehaničkog punjenja.
Označavanje: kvaliteta se mjeri
U nadziranom učenju (učenje u kojem se daju primjeri s točnim odgovorima), ono što model uči su oznake (oznake: točan odgovor za svaki primjer). Kvaliteta oznake postavlja gornju granicu — ako ljudi označavaju nedosljedno, model uči nedosljedno.
Sporazum između anotatora mjeri stopu kojom različiti ljudi daju istu oznaku istom uzorku; Izražava se koeficijentom kao što je Cohen's Kappa. Niska usklađenost znači da je zadatak nejasan ili je uputa slaba.
Umjetna inteligencija pomaže u označavanju na dva načina: (1) izrada smjernice za označavanje, (2) prethodno označavanje i davanje čovjeku da to samo ispravi. Ali prethodno označavanje s LLM-om ima zamku: sustavna pogreška modela može procuriti u cijeli skup oznaka. Zato ljudi uvijek provjeravaju neke od oznaka LLM-a.
Pažnja: Nemojte smatrati oznake koje je izradio LLM "osnovnom istinom". Provjerite uzorak s čovjekom i izmjerite LLM-human fit. Ako je usklađenost niska, prethodno označavanje će učiniti više štete nego koristi.
Particija podataka: spriječiti curenje
Najopasnija pogreška pri dijeljenju podataka na obuku/validaciju/testiranje je curenje podataka: miješanje testnih informacija u obuku. Primjeri:
- Zapisi istog korisnika spadaju i u obuku i u testiranje (curenje grupe).
- Korištenje budućnosti u obuci i prošlosti u testiranju u vremenskim serijama (temporalno curenje).
- Izračunavanje parametara skaliranja (normalizacije) iz svih podataka i potom dijeljenje.
Vremensko razdvajanje bitno je za probleme koji uključuju vrijeme: trenirajte s prošlošću, testirajte u budućnosti. Nasumično dijeljenje daje "buduću" korist koja se nikada neće dogoditi u proizvodnji i povećava metriku.
Verzija podataka i ponovljivost
"S kojim podacima smo trenirali ovaj model?" Biti u mogućnosti odgovoriti na pitanje mjesecima kasnije zaštitni je znak ozbiljnog ML inženjerstva. Verzija podataka pohranjuje svaku snimku podataka s ID-om (hash ili oznaka verzije). Alati kao što je DVC (Data Version Control) verzija podataka poput koda.
Da bi se reproducirao rezultat modela, moraju se popraviti tri stvari: verzija podataka, verzija koda i nasumično početno mjesto. Nije moguće reći "dobio sam isti rezultat" bez ove trojke. Produbit ćemo ponovljivost u jedinici 11; ali popravljanje sjemena u cjevovodu podataka počinje odavde.
tri mini kućišta
Slučaj 1 - Spremljena provjera valjanosti sheme dana. Kad je tim pretvorio polje cijena uzlaznog sustava iz penija u lire, sve su cijene pale 100 puta. Provjera valjanosti sheme odbacila je seriju kao "cijenu izvan raspona", a model nije bio obučen s oštećenim podacima. Bez provjere, pogreška bi se primijetila samo u proizvodnji, s netočnim predviđanjima.
Slučaj 2 - Pristranost netočnog punjenja. U kreditnom modelu nedostajuće vrijednosti prihoda popunjene su srednjom. Ali nedostajući prihodi uglavnom su bili u skupini s niskim prihodima; uprosječenje je umjetno "obogatilo" ovu skupinu, a model im je ponudio nepravedno visoku granicu. Riješen je problem s medijanom + zastavom nedostatka.
Slučaj 3 - Vremensko curenje. Model predviđanja potražnje izgledao je sjajno na testnom skupu (95% točnosti), ali se srušio u proizvodnji. Zašto: zbog nasumičnog dijeljenja, model je vidio budućnost. Prebacivanje na vremensko združivanje smanjilo je točnost testa na 78% — ali to je bila stvarna izvedba i zadržala ga je u proizvodnji.
Predlošci koji se mogu kopirati
Podijelite sljedeći skup podataka u tri skupa: obuka/provjera valjanosti/testiranje. Ograničenje: ovo je vremenska serija; Koristite VREMENSKO razdvajanje (trenirajte u prošlosti, testirajte u budućnosti). Spriječite curenje serije: imajte isti `customer_id` samo u jednom klasteru. Izračunajte parametre skaliranja SAMO iz skupa za vježbanje, a zatim ih primijenite na sve. Ispišite koliko je redaka preostalo u kodu u svakom koraku i dodajte tvrdnju koja provjerava da nema curenja.
Napišite nacrt smjernica za označavanje za ovaj zadatak označavanja. Zadatak: [npr. Označite korisničku recenziju pozitivno/negativno/neutralno]Razjasnite granične slučajeve: sarkazam, miješane emocije, kako označiti recenziju koja nije povezana s proizvodom? Navedite 5 primjera i 3 teška rubna slučaja koji će povećati dosljednost među označivačima.
Napravite popis za provjeru ponovljivosti za ovaj cjevovod podataka: - Kako treba popraviti verziju podataka? - Koje početne vrijednosti nasumičnosti gdje treba postaviti? - Koje metapodatke (raspršivanje podataka, broj redaka, datum) treba zabilježiti? Moja baza kodova: [jezik/biblioteka]
Provjerite curenje podataka u ovom kodu za čišćenje. Konkretno pogledajte ovo: izračunavaju li se parametri skaliranja/kodiranja PRIJE dijeljenja? Izračunavaju li se statistike iz svih podataka ili samo treninga? Šifra: [šifra]
Tablica odluka: nedostaje strategija vrijednosti
Status
Preporučeni pristup
zašto
Numerička, iskrivljena distribucija
ispuniti medijanom
Na prosjek utječu ekstremi
Numerički, simetrični
napuniti prosjekom
Štiti informacije
Nedostatak može biti značajan
Označite stupac + ispuna
Nedostatak je signal
Nedostajuća stopa > 60%
Procijeni/odbaci stupac
Buka je previše
Kategoričan
Kategorija "Nepoznato".
Ne stvara umjetnu većinu
Uobičajene greške
- Preskakanje provjere. Bez kontrole sheme, oštećeni podaci se tiho ušuljaju.
- Skaliranje prije cijepanja. Propušta statistiku ispita u obrazovanje.
- Korištenje slučajnog dijeljenja u vremenskim serijama. Proizvodi lažne visoke metrike.
- Slijepo vjerujući LLM oznakama. Sustavna pogreška širi se kroz podatke.
- Ne sprema podatkovnu verziju. Ne možete reproducirati rezultat.
- Mehaničko punjenje s prosjekom. Zanemaruje značenje polja, dodaje pristranost.
Ukratko
Cjevovod podataka temelj je ML sustava i zaslužuje više truda od modela. Stavite potvrdu na vrh; donositi odluke o čišćenju i označavanju sa znanjem domene; spriječiti curenje (skupno i vremensko) u odjeljku; popravite verziju podataka i seed. AI generira kod i ideje na ovoj liniji, ali na vama je da odlučite koje ćete podatke obraditi i kako — jer svaka pogrešna odluka ovdje prelazi u model kao skriveni nedostatak.
Zadatak aplikacije
Napišite shemu provjere valjanosti (pandera/Great Expectations) na vlastitom skupu podataka i namjerno dodajte loš red i pokažite da je uhvaćen. Zatim podijelite podatke privremeno ili grupno, izračunajte parametre skaliranja samo iz obuke i potvrdite da nema curenja pomoću tvrdnje. Zapišite verziju podataka i broj redaka u datoteku metapodataka.
popis za provjeru
- [ ] Provjera valjanosti sheme izvodi se na vrhu retka.
- [ ] Odabrao sam strategiju nedostajuće vrijednosti na temelju značenja polja, nisam ga mehanički ispunjavao.
- [ ] Mjerio sam kvalitetu etikete (sukladnost); LLM oznake sam provjerio ljudski.
- [ ] Spriječio sam grupno i vremensko curenje u oknu.
- [ ] Skaliranje/kodiranje izračunato samo iz skupa za obuku.
- [ ] Verzija podataka, broj redaka i zabilježeno sjeme.