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:
- Gyűjtemény (betöltés): Adatok lehívása forrásokból (adatbázis, API, naplófájlok, eseményfolyamok).
- Érvényesítés: Annak ellenőrzése, hogy az adatok megfelelnek-e az elvárt sémának, típusnak és tartománynak.
- Tisztítás: Hiányzó értékek, ismétlődő rekordok, kiugró értékek és következetlenségek kezelése.
- Á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.
- Felosztás: Képzési, validációs és tesztelési készletekre való felosztás.
- 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.