Dobici:
- Sposobnost postavljanja cjevovoda podataka (prikupljanje, provjera valjanosti, čišćenje, transformacija, razdvajanje, verzioniranje) i postavljanje provjere valjanosti sheme na početak cjevovoda
- Sposobnost donošenja nedostajuće vrijednosti i odluka o označavanju na osnovu značenja i podjele polja kako bi se spriječilo curenje podataka (grupno i vremensko)
- Sposobnost kreiranja ponovljive baze podataka fiksiranjem verzije podataka i nasumične osnove
Prava moć svakog sistema mašinskog učenja leži u podacima, a ne modelu. Iskusni inženjeri znaju: „smeće unutra, smeće napolje“ — čak i najnapredniji model sa lošim podacima će dati loše rezultate. U ovoj jedinici uspostavljamo cevovod podataka (data pipeline: lanac koraka koji sirove podatke čine spremnima za obuku modela) od kraja do kraja i učimo na kom koraku ove linije možemo bezbedno koristiti veštačku inteligenciju.
Koraci linije podataka
Linija podataka obično prolazi kroz ove stanice:
- Prikupljanje (unošenje): Povlačenje podataka iz izvora (baza podataka, API, log fajlovi, tokovi događaja).
- Validacija: Provjera da li su podaci u skladu s očekivanom shemom, tipovima i rasponima.
- Čišćenje: Rukovanje nedostajućim vrijednostima, dupliranim zapisima, odstupnicima i nedosljednostima.
- Transformacija: pretvaranje neobrađenih podataka u atribute — kao što je pretvaranje kategoričke varijable u broj, stvaranje "dana u nedelji" iz datuma.
- Podjela: Odvajanje na skupove za obuku, validaciju i testiranje.
- Versioniranje: Snimanje koji model je obučen 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 popuniti i kako, pripadaju inženjeru koji poznaje podatke; jer nepravilno čišćenje može ubrizgati skrivenu pristranost u model.
Provjera podataka: rana odbrana linije
Najskuplje greške ne počinju u proizvodnji, već kada se preskoči korak verifikacije. Provjera valjanosti sheme automatski provjerava da li je svaka dolazna serija podataka u skladu sa očekivanom strukturom. Na primjer, da li je kolona starosti između 0-120, da li je polje e-pošte prazno, da li se broj kolona promijenio?
Savjet: Stavite verifikaciju na početak reda. Što se prije otkriju oštećeni podaci, to je jeftinije popraviti. Greška sheme koja se uhvati u produkciji je mnogo puta skuplja od one uhvaćene u fazi obuke.
Napišite šemu validacije s panderom (ili Velika očekivanja) za sljedeću šemu podataka. Kolone i pravila:- user_id: cijeli broj, ne može biti null, jedinstven- age: cijeli broj, ne može biti od 0-120- signup_date: datum, ne može biti u budućnosti- zemlja: kategorički, iz skupa {TR, DE, US, UK}- stanje: decimalni, ne može biti negativan Napravite značajnu poruku o greš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 su realnost svakog skupa podataka. Načini rukovanja:
- Brisanje: Odbacivanje reda/kolone s vrlo velikom stopom nedostajanja. Ali postoji rizik od gubitka informacija i pristrasnosti.
- Imputacija: Imputacija sa srednjom, medijanom, najčešćom vrijednošću ili predviđanjem zasnovanim na modelu.
- Oznaka: Pohranjivanje informacija „nedostaje“ u zasebnu kolonu sa zastavicom — ponekad je sam nedostatak signal.
Koji je ispravan zavisi od problema. U skupu medicinskih podataka, informacije o "vrijednosti krvi nije mjerene" treba sačuvati umjesto da se brišu; Jer čak i odbijanje lekara da izvrši merenja je signal. AI vam može dati opcije i kod; Vi birate koji odgovara realnosti terena.
Slaba prompt / Jaka prompt
Slab upit: "Unesite vrijednosti koje nedostaju."
Snažan upit: "Nedostaju vrijednosti u sljedećim kolonama: prihod (12% nedostaje, distribucija iskrivljena udesno), last_login (nedostaje 30%). Predložite popunjavanje prihoda medijanom, ali objasnite zašto medijana, a ne znači. Za last_login pretpostavite da bi vrijednost koja nedostaje mogla biti značajna (korisnik se umjesto toga možda nikada nije prijavio); razmislite o generiranju zastavice nikad ne bi_log. dodati modelu."
Razlika: jak prompt daje informacije o distribuciji i značenje područja; umjetna inteligencija proizvodi podršku odlučivanju umjesto mehaničkog punjenja.
Označavanje: kvalitet se mjeri
U nadziranom učenju (učenje u kojem su primjeri dati s tačnim odgovorima), ono što model uči su oznake (oznake: tačan odgovor za svaki primjer). Kvaliteta označavanja postavlja gornju granicu - ako ljudi nedosljedno označavaju, model uči nedosljedno.
Sporazum među anotatorima mjeri stopu po kojoj različiti ljudi daju istu oznaku istom uzorku; Izražava se koeficijentom kao što je Cohenova Kappa. Niska usklađenost ukazuje na to da je zadatak nejasan ili je instrukcija slaba.
Umjetna inteligencija pomaže u označavanju na dva načina: (1) sastavljanje smjernica za napomene, (2) prethodno označavanje i omogućavanje da ih samo čovjek ispravi. Ali prethodno označavanje pomoću LLM-a ima zamku: sistematska greška modela može procuriti u cijeli set etiketa. Zato ljudi uvijek provjeravaju neke od oznaka LLM.
Pažnja: Ne smatrajte etikete koje proizvodi LLM kao "osnovnu istinu". Provjerite uzorak s čovjekom i izmjerite LLM-ljudsko uklapanje. Ako je usklađenost niska, prethodno označavanje će donijeti više štete nego koristi.
Particija podataka: spriječi curenje
Najopasnija greška pri dijeljenju podataka na obuku/validaciju/testiranje je curenje podataka: miješanje informacija o testu u obuku. primjeri:
- Zapisi istih korisnika spadaju u obuku i testiranje (grupno curenje).
- Korištenje budućnosti u obuci i prošlosti u testiranju u vremenskim serijama (vremensko curenje).
- Izračunavanje parametara skaliranja (normalizacije) iz svih podataka i zatim dijeljenje.
Vremensko razdvajanje je od suštinskog značaja za probleme koji uključuju vreme: trenirajte sa prošlošću, testirajte u budućnosti. Slučajno dijeljenje daje "buduću" korist koja se nikada neće dogoditi u proizvodnji i naduvava metriku.
Verzija podataka i reproduktivnost
"S kojim podacima smo trenirali ovaj model?" Mogućnost odgovora na pitanje mjesecima kasnije je obilježje ozbiljnog ML inženjeringa. Verzija podataka pohranjuje svaki snimak podataka s ID-om (heš ili oznaku verzije). Alati kao što su DVC (Data Version Control) podaci o verziji kao što je kod.
Da bi se reproducirao rezultat modela, tri stvari moraju biti fiksirane: verzija podataka, verzija koda i nasumično sjeme. Nije moguće reći "Isti rezultat sam dobio" bez ovog trojca. Reproducibilnost ćemo produbiti u jedinici 11; ali fiksiranje sjemena u cevovodu podataka počinje odavde.
tri mini kofera
Slučaj 1 - Validacija šeme dana je spremljena. Kada je tim konvertovao polje cena uzvodnog sistema iz penija u lire, sve cene su pale 100 puta. Validacija sheme je odbacila seriju kao "cijenu izvan raspona" i model nije bio obučen s oštećenim podacima. Bez verifikacije, greška bi se uočila samo u proizvodnji, uz netačna predviđanja.
Slučaj 2 - Pristrasnost nepravilnog punjenja. U kreditnom modelu nedostajuće vrijednosti prihoda popunjene su srednjom vrijednosti. Ali prihodi koji nedostaju bili su pretežno u grupi sa niskim prihodima; prosjek je umjetno "obogatio" ovu grupu, a model im je ponudio nepravedno visoku granicu. Riješen problem sa zastavicom medijana + nedostatak.
Slučaj 3 - Vremensko curenje. Model predviđanja potražnje izgledao je sjajno na testnom setu (95% tačnosti), ali je pao u proizvodnji. Zašto: zbog nasumične podjele, model je vidio budućnost. Prebacivanje na vremensko binning smanjilo je preciznost testa na 78% — ali to je bio pravi učinak i održao ga u proizvodnji.
Predlošci koji se mogu kopirati
Podijelite sljedeći skup podataka u tri skupa: obuka/validacija/testiranje. Ograničenje: Ovo je vremenska serija; Koristite TEMPORALNO dijeljenje (treniraj u prošlosti, testiraj u budućnosti). Spriječite curenje serije: imajte isti `customer_id` samo u jednom klasteru. Izračunajte parametre skaliranja SAMO iz skupa za obuku, a zatim primijenite na sve. Ispišite koliko je redova preostalo u kodu u svakom koraku i dodajte potvrdu koja provjerava da nema curenja.
Napišite nacrt smjernica za označavanje za ovaj zadatak označavanja. Zadatak: [npr. Označite recenziju kupaca pozitivno/negativno/neutralno]Razjasnite granične slučajeve: sarkazam, pomiješ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 konzistentnost među oznakama.
Napravite kontrolnu listu reproducibilnosti za ovaj cevovod podataka: - Kako treba popraviti verziju podataka? - Koje seme nasumice treba postaviti gdje? - Koje metapodatke (heš podataka, broj redova, datum) treba evidentirati? Moja kodna baza: [jezik/biblioteka]
Provjerite ovaj kod za čišćenje zbog curenja podataka. Posebno pogledajte ovo: da li se parametri skaliranja/kodiranja izračunavaju PRIJE razdvajanja? Da li se neka statistika izračunava iz svih podataka ili samo iz treninga? Šifra: [šifra]
Tabela odluka: strategija nedostajuće vrijednosti
Status
Preporučeni pristup
Zašto
Numerička, iskrivljena distribucija
ispuniti medijanom
Prosjek je pod utjecajem izvanrednih vrijednosti
Brojčano, simetrično
ispuniti prosjekom
Štiti informacije
Nedostatak može biti značajan
Zastava kolona + popunjavanje
Nedostatak je signal
Nedostaje stopa > 60%
Procijeni/odbaci kolonu
Buka je previše
Kategoričan
Kategorija "Nepoznato".
Ne stvara vještačku većinu
Uobičajene greške
- Preskakanje verifikacije. Bez kontrole šeme, oštećeni podaci se tiho šuljaju.
- Skaliranje prije razdvajanja. Propušta statistiku testova u obrazovanje.
- Korištenje slučajnog dijeljenja u vremenskim serijama. Proizvodi lažne visoke metrike.
- Slijepo vjerovati LLM etiketama. Sistematska greška se širi kroz podatke.
- Ne čuva se verzija podataka. Ne možete reproducirati rezultat.
- Mehaničko punjenje sa prosjekom. Ignoriše značenje polja, dodaje pristrasnost.
Ukratko
Cjevovod podataka je temelj ML sistema i zaslužuje više truda od modela. Stavite verifikaciju na vrh; donositi odluke o čišćenju i označavanju sa poznavanjem domena; spriječiti curenje (grupno i vremensko) u odjeljku; popravite verziju podataka i seme. AI generiše kod i ideje na ovoj liniji, ali na vama je da odlučite koje podatke ćete obraditi i kako — jer svaka pogrešna odluka ovdje prelazi u model kao skriveni nedostatak.
Zadatak aplikacije
Napišite šemu validacije (pandera/Great Expectations) na svom skupu podataka i namjerno dodajte loš red i pokažite da je uhvaćen. Zatim podijelite podatke vremenski ili grupno, izračunajte parametre skaliranja samo iz obuke i potvrdite da nema curenja pomoću tvrdnje. Upišite verziju podataka i broj redova u datoteku metapodataka.
kontrolna lista
- [ ] Provjera valjanosti sheme se izvodi na vrhu reda.
- [ ] Odabrao sam strategiju vrijednosti koja nedostaje na osnovu značenja polja, nisam je popunio mehanički.
- [ ] Izmjerio sam kvalitet etikete (usklađenost); Provjerio sam LLM oznake.
- [ ] Spriječio sam grupno i vremensko curenje u oknu.
- [ ] Skaliranje/kodiranje izračunato samo iz seta za obuku.
- [ ] Verzija podataka, broj redova i snimljeno sjeme.