Üksus 2 / 11

Andmetoru: kogumine, puhastamine, märgistamine ja versioonide koostamine

Kasu:

  • Võimalus seadistada andmekonveieri (kogumine, valideerimine, puhastamine, teisendamine, tükeldamine, versioonide loomine) ja skeemi valideerimise paigutamine konveieri algusesse
  • Võimalus teha puuduvaid väärtusi ja märgistamisotsuseid välja tähenduse ja jaotuse põhjal, et vältida andmeleket (grupi- ja ajaline)
  • Võimalus luua reprodutseeritav andmebaas, fikseerides andmete versiooni ja juhuslikkuse seemne

Iga masinõppesüsteemi tegelik jõud peitub andmetes, mitte mudelis. Kogenud insenerid teavad: "prügi sisse, prügi välja" – isegi kõige arenenum mudel, millele toidetakse halbu andmeid, annab halbu tulemusi. Selles üksuses loome andmekonveieri (andmekonveier: sammude ahel, mis valmistavad algandmed mudelikoolituseks) otsast lõpuni ja õpime, millisel selle rea etapil saame tehisintellekti ohutult kasutada.

Andmerea sammud

Andmeliin läbib tavaliselt järgmisi peatusi:

  1. Kogumine (neelamine): andmete tõmbamine allikatest (andmebaas, API, logifailid, sündmuste vood).
  2. Valideerimine: kontrollitakse, kas andmed vastavad eeldatavale skeemile, tüüpidele ja vahemikele.
  3. Puhastamine: puuduvate väärtuste, topeltkirjete, kõrvalekallete ja ebakõlade käsitlemine.
  4. Teisendus: töötlemata andmete muutmine atribuutideks – näiteks kategooria muutuja teisendamine arvuks, kuupäevast "nädalapäeva" loomine.
  5. Jagamine: eraldamine koolitus-, valideerimis- ja testimiskomplektideks.
  6. Versioonide koostamine: salvestage, millist mudelit milliste andmetega koolitati.

Tehisintellekt säästab aega, genereerides koodikavandeid ja ideid, eriti etappides 2, 3 ja 4. Kuid otsused, nagu see, milline kirje tühistada, milline puuduv väärtus täita ja kuidas, kuuluvad insenerile, kes teab andmeid; sest vale puhastamine võib mudelisse süstida varjatud eelarvamusi.

Andmete kontrollimine: liini varajane kaitsmine

Kõige kallimad vead ei alga tootmises, vaid seal, kus kontrollimise etapp jäetakse vahele. Skeemi valideerimine kontrollib automaatselt, kas iga sissetulev andmepakett vastab eeldatavale struktuurile. Näiteks kas vanuse veerg on vahemikus 0-120, kas meiliväli on tühi, kas veergude arv on muutunud?

Näpunäide. Pange kinnitus rea algusesse. Mida varem rikutud andmed tabatakse, seda odavam on neid parandada. Tootmisel tabatud skeemiviga on kordades kallim kui koolitusfaasis tabatud viga.

Kirjutage pandera (või Great Expectations) abil järgmise andmeskeemi valideerimisskeem. Veerud ja reeglid:- user_id: täisarv, ei saa olla null, unikaalne- vanus: täisarv, ei tohi olla vahemikus 0-120- registreerumise_kuupäev: kuupäev, ei tohi olla tulevikus- riik: kategooriline, komplektist {TR, DE, US, UK}- saldo: kümnend, ei saa olla negatiivne. Esitage iga reegli rikkumise kohta sisukas veateade. Näidake testi koodi lõpus oleva katkendjoonega.

Puhastamine: inimene on see, kes otsustab

Puuduvad väärtused on iga andmestiku reaalsus. Käsitsemise viisid:

  • Kustutamine: väga suure puudujäägi määraga rea/veeru kõrvalejätmine. Kuid on olemas teabe kadumise ja eelarvamuste oht.
  • Imputatsioon: arvutamine keskmise, mediaani, kõige sagedasema väärtuse või mudelipõhise prognoosiga.
  • Lipp: "puuduva" teabe salvestamine eraldi lipuveergu – mõnikord on puudujääk ise signaaliks.

Milline neist on õige, sõltub probleemist. Meditsiinilises andmekogumis tuleks teavet "vereväärtust ei mõõdetud" pigem säilitada kui kustutada; Sest isegi arsti keeldumine mõõtmistest on signaal. AI võib anda teile valikuid ja koodi; Teie valite, milline neist sobib valdkonna tegelikkusega.

Nõrk viip / Tugev viip

Nõrk viip: "Täida puuduvad väärtused."

Tugev viip: "Järgmistes veergudes on puuduvad väärtused: sissetulek (puudub 12%, jaotus paremale), last_login (puudub 30%). Soovitage sisestada sissetulek mediaaniga, kuid selgitage, miks mediaan ja mitte keskmine. Eeldage, et last_login puhul võib puuduv väärtus olla märkimisväärne (kasutaja ei pruugi olla kunagi sisse loginud); kaaluge selle asemel, et genereerida never_logged_in mudelit, mille asemel tuleks lisada bilansiline mudel W."

Erinevus: tugev viip annab leviteabe ja piirkonna tähenduse; tehisintellekt toodab mehaanilise täitmise asemel otsustustuge.

Märgistus: mõõdetakse kvaliteeti

Juhendatud õppes (õppimine, mille puhul on toodud näited koos õigete vastustega) on see, mida mudel õpib, sildid (sildid: iga näite puhul õige vastus). Sildi kvaliteet seab lae – kui inimesed märgistavad ebajärjekindlalt, õpib mudel ebajärjekindlalt.

Annotaatoritevaheline kokkulepe mõõdab kiirust, millega erinevad inimesed annavad samale valimile sama sildi; Seda väljendatakse koefitsiendiga nagu Coheni Kappa. Vähene vastavus näitab, et ülesanne on ebaselge või juhis on nõrk.

Tehisintellekt aitab märgistamisel kahel viisil: (1) koostada annotatsiooni juhend, (2) eelmärgistada ja lasta inimesel seda ainult parandada. Kuid LLM-i eelmärgistamisel on üks lõks: mudeli süstemaatiline viga võib lekkida kogu etiketikomplekti. Sellepärast kontrollivad inimesed alati mõnda LLM-i silti.

Tähelepanu: ärge pidage LLM-i toodetud silte "põhjuseks tõeks". Kontrollige proovi inimesega ja mõõtke LLM-inimese sobivust. Kui vastavus on madal, toob eelmärgistamine rohkem kahju kui kasu.

Andmete partitsioon: vältige leket

Kõige ohtlikum viga andmete jagamisel koolituseks/valideerimiseks/testimiseks on andmete leke: testiinfo segamine koolitusse. Näited:

  • Sama kasutaja kirjed langevad nii koolitusele kui ka testimisele (rühmaleke).
  • Tuleviku kasutamine koolitusel ja mineviku kasutamine aegridade testimisel (ajaline leke).
  • Skaleerimise (normaliseerimise) parameetrite arvutamine kõigist andmetest ja seejärel jagamine.

Ajaline jagunemine on ajaga seotud probleemide puhul hädavajalik: treenige minevikuga, katsetage tulevikku. Juhuslik jagamine annab "tuleviku" kasu, mida tootmises kunagi ei juhtu, ja suurendab mõõdikuid.

Andmete versioonimine ja reprodutseeritavus

"Milliste andmetega me seda mudelit koolitasime?" Võimalus vastata küsimusele kuid hiljem on tõsise ML-i inseneritöö tunnus. Andmete versioonide loomine salvestab iga andmete hetktõmmise koos ID-ga (räsi- või versioonimärgend). Tööriistad, nagu DVC (andmeversiooni juhtimine) versiooniandmed, nagu kood.

Mudeli tulemuse reprodutseerimiseks tuleb fikseerida kolm asja: andmeversioon, koodiversioon ja juhuslik seeme. Ilma selle kolmikuta ei saa öelda "sain sama tulemuse". Süvendame reprodutseeritavust üksuses 11; kuid seemne fikseerimine andmekonveieris algab siit.

kolm minikarpi

1. juhtum – päevaskeemi valideerimine on salvestatud. Kui meeskond teisendas ülesvoolu süsteemi hinnavälja pennidest liirideks, langesid kõik hinnad 100 korda. Skeemi valideerimine lükkas partii tagasi kui "hind väljaspool vahemikku" ja mudelit ei koolitatud rikutud andmetega. Ilma kontrollimiseta märgataks viga ainult tootmises, valede prognooside korral.

Juhtum 2 – ebaõige täitmine. Krediidimudelis täideti puuduvad sissetuleku väärtused keskmisega. Kuid puuduvad sissetulekud olid valdavalt madala sissetulekuga rühmas; keskmistamine "rikastas" seda rühma kunstlikult ja mudel pakkus neile ebaõiglaselt kõrget piiri. Lahendatud on mediaan + puudumislipuga probleem.

3. juhtum – ajaline leke. Nõudluse prognoosimise mudel nägi katsekomplektis suurepärane välja (95% täpsus), kuid kukkus tootmises kokku. Miks: juhusliku lõhenemise tõttu nägi mudel tulevikku. Ajalisele binningule üleminek langes testi täpsuse 78%-ni – kuid see oli tõeline jõudlus ja see jäi tootmisesse.

Kopeeritavad mallid

Jagage järgmine andmestik kolmeks: koolitus/valideerimine/testimine. Piirang: see on aegrida; Kasutage TEMPORAL-i poolitamist (treenige minevikus, testige tulevikus). Vältige partii leket: kasutage sama kliendi_id ainult ühes klastris. Arvutage skaleerimisparameetrid AINULT treeningkomplektist, seejärel rakendage kõigile. Printige igas etapis koodi ridade arv ja lisage kinnitus, mis kontrollib lekete puudumist.

Kirjutage selle märgistamisülesande jaoks annotatsiooni juhise mustand.Ülesanne: [nt. Märgistage kliendi arvustus positiivseks/negatiivseks/neutraalseks] Täpsustage piirjuhtumeid: sarkasm, segased emotsioonid, kuidas märgistada tootega mitteseotud arvustusi?Tooge viis näidet ja kolm keerulist äärmuslikku juhtumit, mis suurendavad sildistajate järjepidevust.

Koostage selle andmekonveieri jaoks reprodutseeritavuse kontroll-loend:- Kuidas tuleks andmeversiooni parandada?- Millised juhuslikkuse seemned tuleks kuhu seada?- Milliseid metaandmeid (andmete räsi, ridade arv, kuupäev) tuleks logida? Minu koodibaas: [keel/raamatukogu]

Kontrollige seda puhastuskoodi andmete lekke suhtes. Täpsemalt vaadake seda: kas skaleerimise/kodeerimise parameetrid arvutatakse ENNE poolitamist? Kas igasugune statistika arvutatakse kõigist andmetest või ainult koolitus? Kood: [kood]

Otsustabel: puudub väärtusstrateegia

Olek

Soovitatav lähenemine

Miks

Numbriline, viltune jaotus

täida mediaaniga

Keskmist mõjutavad kõrvalekalded

Numbriline, sümmeetriline

täitke keskmisega

Kaitseb teavet

Puudus võib olla märkimisväärne

Lipu veerg + täitmine

Puudumine on signaal

Puuduv määr > 60%

Hinda/viska veergu

Müra on liiga palju

Kategooriline

Kategooria "Tundmatu".

Ei loo kunstlikku häälteenamust

Levinud vead

  • Kinnitamise vahelejätmine. Ilma skeemi juhtimiseta hiilivad rikutud andmed vaikselt sisse.
  • Skaleerimine enne jagamist. See lekib testide statistika haridusse.
  • Juhusliku jaotuse kasutamine aegridades. See toodab võltsitud kõrgeid näitajaid.
  • Usaldades pimesi LLM-i silte. Süstemaatiline viga levib kogu andmetes.
  • Andmeversiooni ei salvestata. Te ei saa tulemust reprodutseerida.
  • Mehaaniline täitmine keskmisega. See ignoreerib välja tähendust, lisab eelarvamusi.

Kokkuvõttes

Andmekonveier on ML-süsteemi alus ja väärib rohkem pingutusi kui mudel. Pange kinnitus ülaossa; teha puhastus- ja märgistamisotsuseid valdkonna teadmistega; vältida lekkeid (grupi ja ajalisi) sektsioonis; parandage andmete versioon ja seeme. AI genereerib sellel real koodi ja ideid, kuid teie otsustada, milliseid andmeid ja kuidas töödelda, on teie otsustada, sest iga siin tehtud vale otsus läheb mudelisse varjatud veana.

Rakenduse ülesanne

Kirjutage oma andmekogumile valideerimisskeem (pandera/Great Expectations) ja lisage teadlikult halb rida ja näidake, et see jäi vahele. Seejärel jagage andmed ajaliselt või partiidena, arvutage skaleerimisparameetrid ainult treeningu põhjal ja veenduge, et lekkeid pole. Kirjutage andmete versioon ja ridade arv metaandmete faili.

kontrollnimekiri

  • [ ] Skeemi valideerimine jookseb rea ülaosas.
  • [ ] Puuduva väärtuse strateegia valisin välja tähenduse järgi, ma ei täitnud seda mehaaniliselt.
  • [ ] Mõõtsin etiketi kvaliteeti (vastavus); Kontrollisin LLM-i silte inimeste poolt.
  • [ ] Hoidsin ära grupi- ja ajalise lekke paanil.
  • [ ] Skaleerimine/kodeering on arvutatud ainult treeningkomplektist.
  • [ ] Registreeritud andmete versioon, ridade arv ja seeme.