Egység 2 / 11

Adatfolyam: gyűjtés, tisztítás, címkézés és verziószámítás

Nyereség:

  • Lehetőség adatfolyam beállítására (gyűjtés, érvényesítés, tisztítás, átalakítás, felosztás, verziószámítás) és sémaellenőrzés elhelyezése a folyamat elejére
  • Képes hiányzó értékre és címkézésre vonatkozó döntések meghozatalára a mező jelentése és felosztása alapján az adatszivárgás megelőzése érdekében (csoportos és időbeli)
  • Lehetőség reprodukálható adatbázis létrehozására az adatverzió és a véletlenszerűségi mag rögzítésével

Minden gépi tanulási rendszer valódi ereje az adatokban rejlik, nem a modellben. A tapasztalt mérnökök tudják: „szemet be, szemét ki” – még a rossz adatokkal táplált legfejlettebb modell is rossz eredményeket hoz. Ebben az egységben felállítjuk az adatfolyamot (data pipeline: a lépések láncolata, amelyek a nyers adatokat készen állnak a modellképzésre) a végétől a végéig, és megtanuljuk, hogy ennek a sornak melyik lépésénél használhatjuk biztonságosan a mesterséges intelligenciát.

Az adatsor lépései

Egy adatvonal általában ezeken a megállókon halad át:

  1. Gyűjtemény (betöltés): Adatok lehívása forrásokból (adatbázis, API, naplófájlok, eseményfolyamok).
  2. Érvényesítés: Annak ellenőrzése, hogy az adatok megfelelnek-e az elvárt sémának, típusnak és tartománynak.
  3. Tisztítás: Hiányzó értékek, ismétlődő rekordok, kiugró értékek és következetlenségek kezelése.
  4. Átalakítás: Nyers adatok attribútumokká alakítása – például egy kategorikus változó számmá alakítása, egy dátumból a hét napjának előállítása.
  5. Felosztás: Képzési, validációs és tesztelési készletekre való felosztás.
  6. Verziózás: rögzíti, hogy melyik modellt milyen adatokkal betanították.

A mesterséges intelligencia időt takarít meg a kódvázlatok és ötletek generálásával, különösen a 2., 3. és 4. lépésben. De az olyan döntések, mint például, hogy melyik rekordot kell elvetni, melyik hiányzó értéket kell kitölteni és hogyan, az adatokat ismerő mérnöké; mert a nem megfelelő tisztítás rejtett torzítást juttathat a modellbe.

Adatellenőrzés: a vonal korai védelme

A legdrágább hibák nem a gyártásnál kezdődnek, hanem ott, ahol az ellenőrzési lépést kihagyják. A sémaellenőrzés automatikusan ellenőrzi, hogy minden egyes bejövő adatköteg megfelel-e az elvárt struktúrának. Például a kor oszlop 0-120 között van, üres az e-mail mező, változott az oszlopok száma?

Tipp: Tegye az ellenőrzést a sor elejére. Minél hamarabb elkapják a sérült adatokat, annál olcsóbb a javítás. A gyártás során elkapott sémahiba sokszorosan drágább, mint a betanítási fázisban észlelt hiba.

Írjon érvényesítési sémát a pandera (vagy Great Expectations) segítségével a következő adatsémához. Oszlopok és szabályok:- user_id: integer, nem lehet null, egyedi- kor: egész szám, nem lehet 0-120- signup_date: date, nem lehet a jövőben- ország: kategorikus, a halmazból {TR, DE, US, UK} - egyenleg: decimális, nem lehet negatív. Minden szabálysértés esetén készítsen értelmes hibaüzenetet. Mutassa be a tesztet egy példa szaggatott vonallal a kód végén.

Takarítás: az ember dönt

A hiányzó értékek minden adatkészlet valósága. Kezelési módok:

  • Törlés: Nagyon magas hiányzó arányú sor/oszlop elvetése. De fennáll az információvesztés és az elfogultság veszélye.
  • Imputáció: Imputáció átlaggal, mediánnal, leggyakoribb értékkel vagy modellalapú előrejelzéssel.
  • Flag: A „hiányzó” információk tárolása egy külön zászlóoszlopban – néha maga a hiányzó jel a jel.

Hogy melyik a helyes, az a problémától függ. Az orvosi adatkészletben a "nem mért vérértéket" meg kell őrizni, nem pedig törölni; Mert már az is jelzés, hogy az orvos megtagadja a mérést. Az AI lehetőségeket és kódot tud adni; Ön választja ki, hogy melyik illik a terület valóságához.

Gyenge felszólítás / Erős felszólítás

Gyenge prompt: "Adja meg a hiányzó értékeket."

Erős felszólítás: "Hiányzó értékek vannak a következő oszlopokban: jövedelem (12% hiányzik, jobbra ferde eloszlás), last_login (30% hiányzik). Javasoljuk a bevétel kitöltését mediánnal, de magyarázza el, miért medián és nem átlag. A last_login esetében tegyük fel, hogy a hiányzó érték jelentős lehet (lehet, hogy a felhasználó soha nem jelentkezett be); fontolja meg a never_logged_in jelző létrehozását a W modell helyett.

Különbség: az erős felszólítás eloszlási információkat és terület jelentést ad; a mesterséges intelligencia mechanikus kitöltés helyett döntéstámogatást produkál.

Címkézés: a minőséget mérik

A felügyelt tanulás során (tanulás, amelyben a példákat a helyes válaszokkal együtt adják meg), amit a modell tanul, az címkék (címkék: minden példához a helyes válasz). A címke minősége plafont szab – ha az emberek következetlenül címkéznek, a modell következetlenül tanul.

Az annotátorok közötti megállapodás azt méri, hogy a különböző emberek milyen arányban adják ugyanazt a címkét ugyanannak a mintának; Ezt olyan együtthatóval fejezzük ki, mint például a Cohen-féle kappa. Az alacsony megfelelőség azt jelzi, hogy a feladat nem egyértelmű, vagy az utasítás gyenge.

A mesterséges intelligencia kétféleképpen segít a címkézésben: (1) az annotációs útmutató megfogalmazása, (2) előzetes címkézés, és az ember csak azt javítja ki. Az LLM-mel történő előzetes címkézésnek azonban van egy buktatója: a modell szisztematikus hibája beszivároghat a teljes címkekészletbe. Ezért az emberek mindig ellenőriznek néhány LLM címkét.

Figyelem: Az LLM által gyártott címkéket ne tekintse "alap igazságnak". Ellenőrizze a mintát egy emberrel, és mérje meg az LLM-human illeszkedést. Ha a megfelelőség alacsony, az előzetes címkézés több kárt okoz, mint használ.

Adatpartíció: megakadályozza a szivárgást

A legveszélyesebb hiba az adatok betanításra/validálásra/tesztelésre való felosztásánál az adatszivárgás: a tesztinformációk keveredése a képzésbe. Példák:

  • Ugyanazok a felhasználók rekordjai esnek a képzésbe és a tesztelésbe is (csoportos szivárgás).
  • A jövő felhasználása a képzésben és a múlt használata az idősoros tesztelésben (időbeli szivárgás).
  • Méretezési (normalizálási) paraméterek kiszámítása az összes adatból, majd osztás.

Az időbeli felosztás elengedhetetlen az idővel kapcsolatos problémákhoz: edz a múlttal, teszteld a jövőben. A véletlenszerű felosztás olyan "jövőbeli" előnyt jelent, amely soha nem fog megtörténni a termelésben, és felfújja a mutatókat.

Az adatok verziószámítása és reprodukálhatósága

"Milyen adatokkal képeztük ki ezt a modellt?" Az, hogy hónapokkal később válaszolhatok a kérdésre, a komoly ML-mérnökség jellemzője. Az adatverziókezelés minden adatpillanatképet egy azonosítóval (hash vagy verziócímke) tárol. Eszközök, például DVC (Data Version Control) verzióadatok, például kód.

A modell eredményének reprodukálásához három dolgot kell rögzíteni: az adatverziót, a kódverziót és a véletlenszerű magot. E trió nélkül nem lehet azt mondani, hogy „ugyanazt az eredményt kaptam”. A 11. egységben elmélyítjük a reprodukálhatóságot; de innen indul a mag rögzítése az adatfolyamban.

három mini tok

1. eset – A nap séma ellenőrzése mentve. Amikor egy csapat egy upstream rendszer ármezőjét fillérekről lírára konvertálta, az összes ár 100-szorosára csökkent. A sémaellenőrzés elutasította a köteget, mivel az "ár a tartományon kívül esik", és a modellt nem képezték be sérült adatokkal. Ellenőrzés nélkül a hibát csak a gyártás során, téves előrejelzések esetén lehetne észrevenni.

2. eset – Rossz töltés. Egy hitelmodellben a hiányzó jövedelemértékeket az átlaggal töltöttük ki. A hiányzó jövedelmek azonban túlnyomórészt az alacsony jövedelműek csoportjában voltak; az átlagolás mesterségesen "gazdagította" ezt a csoportot, és a modell méltánytalanul magas határt kínált számukra. Javítva a medián + hiányzó jelző problémája.

3. eset – Időbeli szivárgás. Egy kereslet-előrejelző modell remekül nézett ki a tesztkészleten (95%-os pontosság), de a gyártás során összeomlott. Miért: a véletlenszerű felosztás miatt a modell látta a jövőt. Az időbeli binningre váltás a teszt pontosságát 78%-ra csökkentette – de ez volt az igazi teljesítmény, és termelésben maradt.

Másolható sablonok

Osszuk fel a következő adatkészletet három halmazra: képzés/validáció/tesztelés.Korlátozás: Ez egy idősor; Használja a TEMPORAL felosztást (tanulás a múltban, tesztelés a jövőben). Kötegszivárgás megelőzése: csak egy fürtben legyen ugyanaz a "customer_id" paraméter. A skálázási paramétereket CSAK a betanítókészletből számítsa ki, majd alkalmazza az összesre. Nyomtassa ki, hány sor maradt a kódban minden lépésnél, és adjon hozzá egy állítást, amely ellenőrzi, hogy nincs-e szivárgás.

Írjon annotációs útmutató vázlatát ehhez a címkézési feladathoz.Feladat: [pl. Pozitív/negatív/semleges vásárlói vélemény címkézése] Tisztázza a határeseteket: szarkazmus, vegyes érzelmek, hogyan címkézzünk fel olyan véleményeket, amelyek nem kapcsolódnak a termékhez? Mondjon 5 példát és 3 nehéz szélső esetet, amelyek növelik a címkézők közötti konzisztenciát.

Készítsen reprodukálhatósági ellenőrzőlistát ehhez az adatfolyamhoz:- Hogyan kell rögzíteni az adatverziót?- Mely véletlenszerűségi magokat hol kell beállítani?- Milyen metaadatokat (adatkivonat, sorszám, dátum) kell naplózni? Saját kódbázis: [nyelv/könyvtár]

Ellenőrizze ezt a tisztító kódot adatszivárgás szempontjából. Konkrétan ezt nézd meg: a skálázási/kódolási paramétereket felosztás ELŐTT számítják ki? Minden adatból számítanak ki statisztikát, vagy csak edzés? Kód: [kód]

Döntési táblázat: hiányzó értékstratégia

Állapot

Ajánlott megközelítés

Miért

Numerikus, ferde eloszlás

töltse ki mediánnal

Az átlagot a kiugró értékek befolyásolják

Numerikus, szimmetrikus

átlaggal töltse fel

Védi az információkat

A hiány jelentős lehet

Jelzőoszlop + kitöltés

A hiány egy jel

Hiányzó arány > 60%

Az oszlop értékelése/elvetése

A zaj túl sok

Kategorikus

"Ismeretlen" kategória

Nem hoz létre mesterséges többséget

Gyakori hibák

  • Ellenőrzés kihagyása. Sémavezérlés nélkül a sérült adatok csendben besurrannak.
  • Méretezés felosztás előtt. A tesztstatisztikát kiszivárogtatja az oktatásba.
  • Véletlenszerű felosztás használata idősorokban. Hamis magas mutatókat állít elő.
  • Vakon bízva az LLM-címkékben. A szisztematikus hiba az adatokon keresztül terjed.
  • Nem menti az adatverziót. Az eredményt nem lehet reprodukálni.
  • Mechanikus töltés átlaggal. Figyelmen kívül hagyja a mező jelentését, és torzítást ad hozzá.

Összefoglalva

Az adatfolyam az ML rendszer alapja, és több erőfeszítést érdemel, mint a modell. Helyezze az ellenőrzést a tetejére; szakterületi ismeretek birtokában hozzon tisztítási és címkézési döntéseket; megakadályozza a szivárgást (csoportos és időbeli) a rekeszben; rögzítse az adatverziót és a magot. A mesterséges intelligencia kódokat és ötleteket generál ezen a vonalon, de Ön dönti el, hogy mely adatokat és hogyan dolgozza fel – mert itt minden rossz döntés rejtett hibaként száll át a modellbe.

Pályázati feladat

Írjon egy érvényesítési sémát (pandera/Great Expectations) a saját adatkészletére, és szándékosan adjon hozzá egy rossz sort, és mutassa meg, hogy elkapták. Ezután ossza fel az adatokat ideiglenesen vagy kötegenként, számítsa ki a skálázási paramétereket csak a képzésből, és egy állítással ellenőrizze, hogy nincs-e szivárgás. Írja be az adatverziót és a sorok számát egy metaadatfájlba.

ellenőrző lista

  • [ ] A sémaellenőrzés a sor tetején fut.
  • [ ] A hiányzó érték stratégiát mezőjelentés alapján választottam, nem mechanikusan töltöttem ki.
  • [ ] Címkeminőséget (megfelelőséget) mértem; Ember által ellenőrzött LLM-címkéket.
  • [ ] Megakadályoztam a csoportos és időbeli szivárgást az ablaktáblában.
  • [ ] Méretezés/kódolás csak az oktatókészletből számítva.
  • [ ] Az adatok verziója, a sorok száma és a vetőmag rögzítése.