Jednotka 2 / 11

Datový kanál: shromažďování, čištění, označování a vytváření verzí

zisky:

  • Schopnost nastavit datový kanál (sběr, ověření, čištění, transformace, rozdělení, verzování) a umístění ověření schématu na začátek kanálu
  • Schopnost přijímat chybějící hodnoty a rozhodnutí o označování na základě významu a rozdělení pole, aby se zabránilo úniku dat (skupinové a časové)
  • Schopnost vytvořit reprodukovatelnou databázi opravou verze dat a semena náhodnosti

Skutečná síla každého systému strojového učení spočívá v datech, nikoli v modelu. Zkušení inženýři vědí: „odpadky dovnitř, odpadky ven“ — i ten nejpokročilejší model, který obsahuje špatná data, bude mít špatné výsledky. V této jednotce vytvoříme datový kanál (data pipeline: řetězec kroků, díky nimž jsou nezpracovaná data připravena pro trénování modelu) od začátku do konce a zjistíme, ve kterém kroku této linky můžeme bezpečně použít umělou inteligenci.

Kroky datové linky

Datová linka obvykle prochází těmito zastávkami:

  1. Shromažďování (příjem): Získávání dat ze zdrojů (databáze, rozhraní API, soubory protokolu, streamy událostí).
  2. Ověření: Kontrola, zda data odpovídají očekávanému schématu, typům a rozsahům.
  3. Čištění: Ošetření chybějících hodnot, duplicitních záznamů, odlehlých hodnot a nekonzistencí.
  4. Transformace: Přeměna nezpracovaných dat na atributy – jako je převod kategoriální proměnné na číslo, čímž se z data vytvoří „den v týdnu“.
  5. Rozdělení: Rozdělení na sady školení, ověřování a testování.
  6. Verze: Záznam, který model byl trénován s jakými daty.

Umělá inteligence šetří čas generováním návrhů kódu a nápadů, zejména v krocích 2, 3 a 4. Ale rozhodnutí, jako například který záznam zahodit, kterou chybějící hodnotu vyplnit a jak, náleží inženýrovi, který zná data; protože nesprávné čištění může vnést do modelu skryté předpětí.

Ověření dat: včasná obrana linie

Nejdražší chyby nezačínají ve výrobě, ale tam, kde se vynechá ověřovací krok. Validace schématu automaticky kontroluje, zda každá příchozí dávka dat odpovídá očekávané struktuře. Je například sloupec věku mezi 0-120, je pole e-mailu prázdné, změnil se počet sloupců?

Tip: Vložte ověření na začátek řádku. Čím dříve jsou poškozená data zachycena, tím levnější je oprava. Chyba schématu zachycená ve výrobě je mnohonásobně dražší než chyba zachycená ve fázi školení.

Napište ověřovací schéma s panderou (neboli Great Expectations) pro následující datové schéma. Sloupce a pravidla:- user_id: celé číslo, nemůže být null, jedinečné- věk: celé číslo, nemůže být od 0-120- datum_přihlášení: datum, nemůže být v budoucnosti- země: kategorické, z množiny {TR, DE, US, UK}- zůstatek: desítkové, nemůže být záporné Pro každé porušení pravidla vygenerovat smysluplnou chybovou zprávu. Ukažte test s příkladem přerušované čáry na konci kódu.

Úklid: rozhoduje člověk

Chybějící hodnoty jsou realitou každého souboru dat. Způsoby, jak zvládnout:

  • Odstranění: Zahození řádku/sloupce s velmi vysokou chybou. Existuje však riziko ztráty informací a zkreslení.
  • Imputace: Imputace s průměrem, mediánem, nejčastější hodnotou nebo predikcí na základě modelu.
  • Vlajka: Ukládání informací „chybělo“ do samostatného sloupce vlajek – někdy je signálem samotné chybějící.

Který z nich je správný, závisí na problému. V souboru lékařských údajů by informace „neměřená krevní hodnota“ měla být zachována, nikoli vymazána; Protože i odmítnutí měření lékařem je signálem. AI vám může poskytnout možnosti a kód; Vy si vyberete, který z nich odpovídá realitě oboru.

Slabá výzva / Silná výzva

Slabá výzva: "Doplňte chybějící hodnoty."

Důrazná výzva: "V následujících sloupcích chybí hodnoty: příjem (12 % chybí, distribuce zkosená doprava), last_login (chybí 30 %). Navrhněte vyplnění příjmu mediánem, ale vysvětlete, proč medián a ne střední hodnotu. U last_login předpokládejme, že chybějící hodnota může být významná (uživatel se možná nikdy nepřihlásil); zvažte vygenerování příznaku never_logged_in místo přístupu k odstranění by bylo možné zapsat.“

Rozdíl: silná výzva poskytuje informace o distribuci a význam oblasti; umělá inteligence produkuje podporu rozhodování namísto mechanického plnění.

Označení: kvalita se měří

Při učení pod dohledem (učení, ve kterém jsou uvedeny příklady se správnými odpověďmi) se model učí štítky (štítky: správná odpověď pro každý příklad). Kvalita štítků nastavuje strop – pokud lidé štítkují nekonzistentně, model se nekonzistentně učí.

Dohoda mezi anotátory měří míru, s jakou různí lidé dávají stejné označení stejnému vzorku; Vyjadřuje se koeficientem jako je Cohenova Kappa. Nízká shoda znamená, že úkol je nejasný nebo instrukce jsou slabé.

Umělá inteligence pomáhá při označování dvěma způsoby: (1) vypracováním anotačního pokynu, (2) předběžné označení a ponechání pouze člověku opravit. Předběžné označování pomocí LLM má však úskalí: systematická chyba modelu může proniknout do celé sady štítků. To je důvod, proč lidé vždy kontrolují některé štítky LLM.

Upozornění: Nepovažujte štítky vyrobené společností LLM za „základní pravdu“. Zkontrolujte vzorek s člověkem a změřte LLM-lidské přizpůsobení. Pokud je shoda nízká, předběžné označení nadělá více škody než užitku.

Datový oddíl: zabraňte úniku

Nejnebezpečnější chybou při rozdělování dat do školení/validace/testování je únik dat: přimíchání testovacích informací do školení. Příklady:

  • Záznamy stejného uživatele spadají jak do školení, tak do testování (skupinový únik).
  • Využití budoucnosti v tréninku a minulosti v testování v časových řadách (časový únik).
  • Výpočet škálovacích (normalizačních) parametrů ze všech dat a následné dělení.

Časové rozdělení je zásadní pro problémy týkající se času: trénujte s minulostí, testujte v budoucnosti. Náhodné dělení poskytuje „budoucí“ výhodu, která se ve výrobě nikdy nestane a nafukuje metriky.

Verze dat a reprodukovatelnost

"S jakými daty jsme tento model trénovali?" Schopnost odpovědět na otázku o měsíce později je charakteristickým znakem seriózního ML inženýrství. Správa verzí dat ukládá každý snímek dat s ID (hash nebo tag verze). Nástroje jako DVC (Data Version Control) data verze, jako je kód.

Aby bylo možné reprodukovat výsledek modelu, musí být opraveny tři věci: verze dat, verze kódu a náhodné semeno. Bez této trojky nelze říci „dosáhl jsem stejného výsledku“. Prohloubíme reprodukovatelnost v bloku 11; ale oprava semene v datovém potrubí začíná zde.

tři mini pouzdra

Případ 1 – Ověření schématu dne bylo uloženo. Když tým převedl pole cen předřazeného systému z haléřů na liry, všechny ceny stokrát klesly. Validace schématu odmítla dávku jako „cena mimo rozsah“ a model nebyl trénován s poškozenými daty. Bez ověření by byla chyba zaznamenána pouze ve výrobě, s nesprávnými předpověďmi.

Případ 2 – Předpojatost nesprávného plnění. V úvěrovém modelu byly chybějící hodnoty příjmů vyplněny průměrem. Chybějící příjmy však byly převážně v nízkopříjmové skupině; zprůměrování tuto skupinu uměle „obohatilo“ a model jim nabídl nespravedlivě vysokou hranici. Opraven problém s příznakem medián + chybějící.

Případ 3 – Dočasný únik. Model prognózy poptávky vypadal na testovací sadě skvěle (přesnost 95 %), ale ve výrobě selhal. Proč: díky náhodnému rozdělení model viděl budoucnost. Přechod na temporální binning snížil přesnost testu na 78 % – ale to byl skutečný výkon a zůstal ve výrobě.

Kopírovatelné šablony

Rozdělte následující datovou sadu do tří sad: školení/ověření/testování. Omezení: Toto je časová řada; Použijte ČASOVÉ štěpení (trénujte v minulosti, testujte v budoucnosti). Zabraňte úniku dávky: mějte stejné `customer_id` pouze v jednom clusteru. Vypočítejte parametry škálování POUZE z tréninkové sady a poté použijte pro všechny. Vytiskněte, kolik řádků zbývá v kódu v každém kroku, a přidejte tvrzení, které kontroluje, zda nedochází k únikům.

Napište návrh pokynů pro anotaci pro tento úkol označování. Úkol: [např. Označte zákaznickou recenzi pozitivní/negativní/neutrální]Objasněte hraniční případy: sarkasmus, smíšené emoce, jak označit recenzi nesouvisející s produktem? Uveďte 5 příkladů a 3 obtížné okrajové případy, které zvýší konzistenci napříč taggery.

Vytvořte kontrolní seznam reprodukovatelnosti pro tento datový kanál:- Jak by měla být opravena verze dat?- Která semena náhodnosti by měla být kde nastavena?- Jaká metadata (haš dat, počet řádků, datum) by měla být protokolována? Moje kódová základna: [jazyk/knihovna]

Zkontrolujte tento čistící kód kvůli úniku dat. Konkrétně se podívejte na toto: počítají se parametry škálování/kódování PŘED rozdělením? Jsou nějaké statistiky vypočítány ze všech dat nebo jen tréninku? Kód: [kód]

Rozhodovací tabulka: chybějící hodnotová strategie

Stav

Doporučený přístup

Proč?

Numerické, zkreslené rozdělení

vyplnit mediánem

Průměr je ovlivněn odlehlými hodnotami

Číselné, symetrické

vyplnit průměrem

Chrání informace

Nedostatek může být významný

Sloupec vlajky + výplň

Nedostatek je signál

Míra chybějících > 60 %

Vyhodnotit/zahodit sloupec

Hluku je příliš mnoho

Kategorický

Kategorie „Neznámá“.

Nevytváří umělou většinu

Časté chyby

  • Přeskočení ověření. Bez kontroly schématu se poškozená data tiše vkradou dovnitř.
  • Měřítko před dělením. Do školství uniká statistika testů.
  • Použití náhodného rozdělení v časových řadách. Vytváří falešné vysoké metriky.
  • Slepě důvěřující LLM štítkům. Systematická chyba se šíří napříč daty.
  • Datová verze se neukládá. Výsledek nemůžete reprodukovat.
  • Mechanická náplň s průměrem. Ignoruje význam pole, přidává zkreslení.

V souhrnu

Datový kanál je základem systému ML a zaslouží si více úsilí než model. Dejte ověření nahoře; dělat rozhodnutí o čištění a označování se znalostí domény; zabránit úniku (skupinovému a časovému) v oddělení; opravit verzi dat a seed. Umělá inteligence generuje kód a nápady na tomto řádku, ale je na vás, abyste se rozhodli, která data zpracujete a jak – protože každé špatné rozhodnutí zde přechází do modelu jako skrytá chyba.

Aplikační úkol

Napište ověřovací schéma (pandera/Great Expectations) na svůj vlastní datový soubor a schválně přidejte špatný řádek a ukažte, že byl zachycen. Poté data rozdělte dočasně nebo dávkově, vypočítejte parametry škálování pouze z tréninku a ověřte, že nedochází k úniku pomocí tvrzení. Zapište verzi dat a počet řádků do souboru metadat.

kontrolní seznam

  • [ ] Ověření schématu probíhá v horní části řádku.
  • [ ] Chybějící hodnotovou strategii jsem zvolil na základě polního významu, nenaplňoval jsem ji mechanicky.
  • [ ] Měřil jsem kvalitu štítku (soulad); Lidsky jsem zkontroloval LLM tagy.
  • [ ] Zabránil jsem skupinovému a dočasnému úniku v panelu.
  • [ ] Měřítko/kódování vypočítané pouze z trénovací sady.
  • [ ] Verze dat, počet zaznamenaných řádků a semeno.