Mis on tehisintellekti eeltöötlus?

Mis on tehisintellekti eeltöötlus?

Lühike vastus: tehisintellekti eeltöötlus on korduvate sammude kogum, mis muudab töötlemata ja suure dispersiooniga andmed järjepidevateks mudeli sisenditeks, sealhulgas puhastamine, kodeerimine, skaleerimine, tokeniseerimine ja pildi teisendamine. See on oluline, sest kui treeningsisendid ja tootmissisendid erinevad, võivad mudelid märkamatult ebaõnnestuda. Kui samm „õpib“ parameetreid, sobitage see lekke vältimiseks ainult treeningandmetega.

Tehisintellekti eeltöötlus on kõik, mida teete toorandmetega enne (ja mõnikord ka ajal) treenimist või järelduste tegemist, et mudel saaks neist tegelikult õppida. Mitte ainult „puhastamine“. See on andmete puhastamine, vormimine, skaleerimine, kodeerimine, täiendamine ja pakendamine ühtseks esituseks, mis teie mudelit hiljem vaikselt ei takista. [1]

Peamised järeldused:

Definitsioon : Eeltöötlus teisendab toortabelid, teksti, pildid ja logid mudelivalmis funktsioonideks.

Järjepidevus : Rakenda treeningu ja järelduste ajal samu teisendusi, et vältida mittevastavusest tingitud vigu.

Leke : Paigalda skaleerijad, kodeerijad ja tokeniseerijad ainult treeningandmetele.

Reprodutseeritavus : Looge kontrollitava statistikaga torujuhtmeid, mitte ad-hoc märkmiku lahtrijadasid.

Tootmise jälgimine : jälgige raja kallet ja triivi, et sisendid ei vähendaks järk-järgult jõudlust.

Artiklid, mida võiksite pärast seda lugeda:

🔗 Kuidas testida tehisintellekti mudeleid reaalse toimivuse osas
Praktilised meetodid täpsuse, robustsuse ja eelarvamuste kiireks hindamiseks.

🔗 Kas tekst-kõneks on tehisintellekt ja kuidas see töötab?
Selgitab TTS-i põhitõdesid, peamisi kasutusviise ja tänapäeval levinud piiranguid.

🔗 Kas tehisintellekt suudab tänapäeval täpselt kursiivkäekirja lugeda?
Hõlmab äratundmisega seotud väljakutseid, parimaid tööriistu ja täpsuse parandamise näpunäiteid.

🔗 Kui täpne on tehisintellekt tavaliste ülesannete puhul
Jaotab täpsustegurid, võrdlusalused ja reaalse töökindluse.


Tehisintellekti eeltöötlus lihtsas keeles (ja mis see ei ole) 🤝

Tehisintellekti eeltöötlus on toorandmete (tabelid, tekst, pildid, logid) teisendamine mudelivalmis funktsioonideks. Kui toorandmed on räpane garaaž, siis eeltöötlus on kastide sildistamine, katkise rämpsu äraviskamine ja asjade virnastamine, et saaksite neist vigastusteta läbi kõndida.

Asi pole mudelis endas. Asi on selles, mis teeb mudeli võimalikuks:

  • kategooriate teisendamine numbriteks (ühekordne, järgkategooria jne) [1]

  • suurte numbriliste vahemike skaleerimine mõistlikeks vahemikeks (standardiseerimine, min-max jne) [1]

  • teksti tokeniseerimine sisend-ID-deks (ja tavaliselt tähelepanu maskiks) [3]

  • piltide suuruse muutmine/kärpimine ja deterministlike vs juhuslike teisenduste asjakohane rakendamine [4]

  • korratavate torujuhtmete loomine, et treeningu ja „päriselu” sisendid peenelt ei erineks [2]

Üks väike praktiline märkus: „eeltöötlus“ hõlmab kõike, mis toimub järjepidevalt enne, kui mudel sisendit näeb . Mõned meeskonnad jagavad selle „funktsioonide väljatöötamiseks“ ja „andmete puhastamiseks“, kuid tegelikkuses need piirid hägustuvad.

 

AI eeltöötlus

Miks tehisintellekti eeltöötlus on olulisem, kui inimesed tunnistavad 😬

Mudel on mustrite sobitaja, mitte mõtete lugeja. Kui teie sisendid on vastuolulised, õpib mudel vastuolulisi reegleid. See pole filosoofiline, see on valusalt sõnasõnaline.

Eeltöötlus aitab teil:

  • Õppimise stabiilsuse parandamiseks tuleb esitustesse lisada tunnuseid, mida hindajad saavad usaldusväärselt kasutada (eriti skaleerimise/kodeerimise korral). [1]

  • Vähenda müra, pannes segase reaalsuse välja nägema millegi sellisena, millest mudel saab üldistada (selle asemel, et veidraid artefakte meelde jätta).

  • Vältida vaikseid rikkeid, nagu lekked ja koolituse/serveerimise mittevastavused (sellised, mis valideerimisel ja seejärel tootmiskeskkonnas esialgsete testide puhul „hämmastavad“ näevad). [2]

  • Kiirenda iteratsiooni , sest korduvad teisendused edestavad märkmikus tehtavat tööd iga päev.

Ja tegelikult pärineb see suur osa „modelli sooritusest“. Üllatavalt palju. Vahel tundub see ebaõiglane, aga see on reaalsus 🙃


Mis teeb tehisintellekti eeltöötlustorustiku heaks ✅

Eeltöötluse „heal versioonil” on tavaliselt järgmised omadused:

  • Reprodutseeritav : sama sisend → sama väljund (pole mingit müstilist juhuslikkust, välja arvatud juhul, kui tegemist on tahtliku suurendamisega).

  • Rongi teenindamise järjepidevus : kõike, mida teete treeningu ajal, rakendatakse samamoodi ka järelduse ajal (samad sobitatud parameetrid, samad kategooriakaardid, sama tokeniseerija konfiguratsioon jne). [2]

  • Lekkekindel : hindamises/testimises ei mõjuta miski sobitusetappi . (Sellest lõksust lähemalt hiljem.) [2]

  • Jälgitav : saate kontrollida, mis muutus (funktsioonide statistika, puudused, kategooriate arv), seega veaotsing ei ole vibratsioonipõhine inseneritöö.

Kui sinu eeltöötlus on märkmiku lahtrite hunnik nimega final_v7_really_final_ok ... siis tead küll, kuidas see on. See töötab seni, kuni enam ei tööta 😬


Tehisintellekti eeltöötluse põhielemendid 🧱

Mõelge eeltöötlusest kui ehitusplokkide komplektist, mille ühendate torujuhtmeks.

1) Puhastamine ja valideerimine 🧼

Tüüpilised ülesanded:

  • eemalda duplikaadid

  • käsitleda puuduvaid väärtusi (eemaldada, imputeerida või esitada puuduvust otseselt)

  • jõusta tüübid, ühikud ja vahemikud

  • tuvastada vigaseid sisendeid

  • standardiseerida tekstivorminguid (tühikud, suurtähtede reeglid, Unicode'i iseärasused)

See osa pole glamuurne, aga see hoiab ära äärmiselt rumalad vead. Ma ütlen seda armastusega.

2) Kategooriliste andmete kodeerimine 🔤

Enamik mudeleid ei saa otse kasutada tooreid stringe nagu "red" või "premium_user" .

Levinud lähenemisviisid:

  • Ühekordne kodeerimine (kategooria → binaarveerud) [1]

  • Ordinaalkodeering (kategooria → täisarvuline ID) [1]

Oluline pole mitte millise kodeerija valite, vaid see, et kaardistus jääks järjepidevaks ega „muudaks kuju“ treenimise ja järeldamise vahel. Nii saategi mudeli, mis näeb võrguühenduseta hea välja, kuid käitub võrgus kummitavalt. [2]

3) Funktsioonide skaleerimine ja normaliseerimine 📏

Skaleerimine on oluline, kui objektid asuvad väga erinevates vahemikes.

Kaks klassikat:

  • Standardiseerimine : eemaldage keskmine ja skaleerige ühikdispersioonini [1]

  • Min-max skaleerimine : skaleerib iga tunnuse kindlaksmääratud vahemikku [1]

Isegi kui kasutate mudeleid, mis "enamasti saavad hakkama", muudab skaleerimine torujuhtmete üle sageli arutlemise lihtsamaks ja raskemaks kogemata purunemise.

4) Funktsioonide inseneritöö (ehk kasulik petmine) 🧪

Siin teed mudeli töö lihtsamaks, luues paremaid signaale:

  • suhtarvud (klikid / näitamised)

  • jooksvad aknad (viimased N päeva)

  • loendurid (sündmusi kasutaja kohta)

  • logaritmilised teisendused raske sabaga jaotuste jaoks

Siin on kunst. Vahel lood mõne funktsiooni, tunned uhkust... ja see ei tee midagi. Või mis veel hullem, see teeb haiget. See on normaalne. Ära kiindu funktsioonidesse emotsionaalselt - nad ei armasta sind vastu 😅

5) Andmete õige jagamine ✂️

See kõlab ilmselgelt seni, kuni see enam pole:

  • IID-andmete juhuslikud jaotused

  • ajapõhised jaotused aegridade jaoks

  • rühmitatud jaotused, kui üksused korduvad (kasutajad, seadmed, patsiendid)

Ja mis kõige tähtsam: jagage andmed enne sobitamist, kui eeltöötlus õpib andmetest . Kui teie eeltöötlusetapp „õpib” parameetreid (nt vahendeid, sõnavara, kategooriakaarte), peab see need õppima ainult treeningust. [2]


Tehisintellekti eeltöötlus andmetüübi järgi: tabel, tekst, pildid 🎛️

Eeltöötlus muudab kuju olenevalt sellest, mida mudelile ette anda.

Tabelipõhised andmed (arvutustabelid, logid, andmebaasid) 📊

Levinud sammud:

  • puuduva väärtuse strateegia

  • kategooriline kodeerimine [1]

  • numbriliste veergude skaleerimine [1]

  • kõrvalekallete käsitlemine (domeenireeglid edestavad enamasti "juhuslikku kärpimist")

  • tuletatud funktsioonid (agregatsioonid, mahajäämused, jooksvad statistikad)

Praktiline nõuanne: defineeri veerugrupid selgesõnaliselt (numbrilised vs kategoorilised vs identifikaatorid). Su tulevane mina tänab sind.

Tekstiandmed (NLP) 📝

Teksti eeltöötlus hõlmab sageli järgmist:

  • tokeniseerimine tokenite/alamsõnadeks

  • sisend-ID-deks teisendamine

  • täitmine/kärpimine

  • tähelepanumaskide loomine [3]

Väike reegel, mis vaeva säästab: transformeripõhiste seadistuste puhul järgi mudeli eeldatavaid tokeniseerija seadeid ja ära freestyle'i, kui sul pole põhjust. Freestyle'imisel saad tulemuseks „see treenib, aga on imelik“

Pildid (arvutinägemine) 🖼️

Tüüpiline eeltöötlus:

  • suuruse muutmine / kärpimine ühtlaste kujundite saavutamiseks

  • deterministlikud teisendused hindamiseks

  • juhuslikud teisendused treeningu laiendamiseks (nt juhuslik kärpimine) [4]

Üks detail, mida inimesed kahe silma vahele jätavad: „juhuslikud teisendused” pole lihtsalt näidis – need võtavad sõna otseses mõttes iga kord, kui neid kutsutakse, parameetreid. Suurepärane mitmekesisuse treenimiseks, kohutav hindamiseks, kui unustate juhuslikkuse välja lülitada. [4]


Lõks, millesse kõik langevad: andmete leke 🕳️🐍

Lekke all mõeldakse seda, kui hindamisandmetest pärit teave hiilib treeningusse – sageli eeltöötluse kaudu. See võib teie mudeli valideerimise ajal maagiliseks muuta, kuid reaalsuses pettumuse valmistada.

Levinumad lekkemustrid:

  • skaleerimine täieliku andmestiku statistika abil (ainult treenimise asemel) [2]

  • kategooriakaartide koostamine rongi ja testi abil [2]

  • iga fit() või fit_transform() samm, mis „näeb“ testikomplekti [2]

Rusikareegel (lihtne, jõhker, tõhus):

  • Kõik, millel on hea samm, peaks olema heas vormis ainult treeningul.

  • Seejärel teisendad valideerimise/testimise selle sobitatud teisendaja abil. [2]

Ja kui tahad sisetunnet vaadata ja „kui hull see ikka olla saab?”, siis scikit-learni enda dokumentatsioonis on lekke näide, kus vale eeltöötlusjärjekord annab juhuslike sihtmärkide puhul täpsuseks umbes 0,76 – seejärel langeb see pärast lekke parandamist tagasi umbes 0,5 -ni. Nii veenvalt võib vale leke välja näha. [2]


Eeltöötluse viimine tootmisse ilma kaoseta 🏗️

Paljud mudelid ebaõnnestuvad tootmises mitte sellepärast, et mudel oleks "halb", vaid seetõttu, et sisendreaalsus muutub – või teie tootevoog muutub.

Tootmisele suunatud eeltöötlus hõlmab tavaliselt järgmist:

  • Salvestatud artefaktid (kodeerija kaardistused, skaleerija parameetrid, tokeniseerija konfiguratsioon), et järeldus kasutaks täpselt samu õpitud teisendusi [2]

  • Ranged sisendlepingud (eeldatavad veerud/tüübid/vahemikud)

  • Tootmisandmete ebatäpsuste ja triivide jälgimine [ 5]

Kui soovite konkreetseid definitsioone: Google'i Vertex AI mudeli jälgimine eristab treeningut toetavat kalduvust (tootmisjaotus kaldub kõrvale treeningust) ja järelduste triivi (tootmisjaotus muutub aja jooksul) ning toetab nii kategooriliste kui ka numbriliste tunnuste jälgimist. [5]

Sest üllatused on kallid. Ja mitte sellised lõbusad.


Võrdlustabel: levinumad eeltöötlus- ja jälgimistööriistad (ja kellele need mõeldud on) 🧰

Tööriist / teek Parim Hind Miks see toimib (ja natuke ausust)
scikit-learni eeltöötlus Tabelilised ML-torustikud Tasuta Tahkete objektide kodeerijad + skaleerijad (OneHotEncoder, StandardScaler jne) ja ennustatav käitumine [1]
Kallistava Näo Tokenisaatorid NLP sisendi ettevalmistus Tasuta Loob sisend-ID-d ja tähelepanumaske järjepidevalt kõigis tsüklites/mudelites [3]
torchvisioni transformatsioonid Nägemise muutmine + suurendamine Tasuta Puhas viis deterministlike ja juhuslike teisenduste kombineerimiseks ühes torujuhtmes [4]
Vertex AI mudeli jälgimine Triivi/kalde tuvastamine tootes Tasuline (pilv) Monitorid näitavad kalduvust/triivi ja annavad alarme läviväärtuste ületamisel [5]

(Jah, tabelis on endiselt arvamusi. Aga vähemalt on need ausad arvamused 😅)


Praktiline eeltöötluse kontroll-leht, mida saate tegelikult kasutada 📌

Enne treeningut

  • Sisestusskeemi määratlemine (tüübid, ühikud, lubatud vahemikud)

  • Puuduvate väärtuste ja duplikaatide auditeerimine

  • Jaga andmed õigesti (juhuslikult / ajapõhiselt / grupeeritult)

  • Sobivuse eeltöötlus ainult treeningu ( fit / fit_transform jääb rongile) [2]

  • Salvesta eeltöötluse artefaktid, et järelduste tegemisel saaks neid uuesti kasutada [2]

Treeningu ajal

  • Rakenda juhuslikku suurendamist ainult vajaduse korral (tavaliselt ainult treeningjaotust) [4]

  • Hoidke hindamise eeltöötlus deterministlikuna [4]

  • Jälgi eeltöötluse muudatusi nagu mudeli muudatusi (sest need ongi)

Enne juurutamist

  • Veenduge, et järeldus kasutab identset eeltöötlusrada ja artefakte [2]

  • Triivi/kalduvuse jälgimine (isegi elementaarsed tunnuste jaotuse kontrollid on väga tõhusad) [5]


Põhjalik ülevaade: levinud eeltöötlusvead (ja kuidas neist mööda hiilida) 🧯

Viga 1: „Ma lihtsalt normaliseerin kõik kiiresti“ 😵

Kui arvutate skaleerimisparameetreid kogu andmestiku põhjal, lekib hindamisinfo. Sobitage moodulisse, teisendage ülejäänu. [2]

Viga 2: kategooriad triivivad kaosesse 🧩

Kui teie kategooriakaardistus nihkub treenimise ja järeldamise vahel, võib teie mudel maailma märkamatult valesti tõlgendada. Hoidke kaardistused salvestatud artefaktide abil parandatuna. [2]

Viga 3: juhuslik suurendamine hiilib hindamisse 🎲

Juhuslikud teisendused on treenimisel suurepärased, aga neid ei tohiks "salaja sisse lülitada", kui proovite tulemuslikkust mõõta. (Juhuslik tähendab juhuslikku.) [4]


Lõppsõnad 🧠✨

Tehisintellekti eeltöötlus on distsiplineeritud kunst, mis muudab segase reaalsuse järjepidevateks mudeli sisenditeks. See hõlmab puhastamist, kodeerimist, skaleerimist, tokeniseerimist, piltide teisendamist ja – mis kõige tähtsam – korduvaid torujuhtmeid ja artefakte.

  • Tehke eeltöötlust teadlikult, mitte juhuslikult. [2]

  • Jaga esmalt, sobita teisendused ainult treeningu ajal, väldi lekkeid. [2]

  • Kasutage modaalsusele vastavat eeltöötlust (teksti jaoks tokeniseerijad, piltide jaoks teisendused). [3][4]

  • Jälgi tootmises esinevat ebakõla/nihet, et sinu mudel aeglaselt mõttetusse ei kalduks. [5]

Ja kui sa kunagi hätta jääd, küsi endalt:
„Kas see eeltöötlusetapp oleks ikka veel mõttekas, kui ma selle homme täiesti uute andmetega käivitaksin?“
Kui vastus on „ee... võib-olla?“, siis see on sinu vihje 😬


KKK

Mis on tehisintellekti eeltöötlus lihtsustatult?

Tehisintellekti eeltöötlus on korratav sammude kogum, mis muudab mürarikkad ja suure dispersiooniga toorandmed järjepidevateks sisenditeks, millest mudel saab õppida. See võib hõlmata puhastamist, valideerimist, kategooriate kodeerimist, arvväärtuste skaleerimist, teksti tokeniseerimist ja pildi teisenduste rakendamist. Eesmärk on tagada, et treenimis- ja tootmisjäreldused näeksid „sama tüüpi“ sisendit, et mudel ei satuks hiljem ettearvamatusse käitumisse.

Miks on tehisintellekti eeltöötlus tootmises nii oluline?

Eeltöötlus on oluline, kuna mudelid on sisendi esituse suhtes tundlikud. Kui treeningandmeid skaleeritakse, kodeeritakse, tokeniseeritakse või teisendatakse tootmisandmetest erinevalt, võivad tekkida treeningu/serveri mittevastavuse tõrked, mis näevad võrguühenduseta head välja, kuid võrgus ebaõnnestuvad vaikselt. Tugevad eeltöötlustorustikud vähendavad ka müra, parandavad õppimise stabiilsust ja kiirendavad iteratsiooni, kuna te ei haruta lahti märkmiku sasipuntraid.

Kuidas vältida andmete lekkimist eeltöötluse ajal?

Lihtne reegel toimib: kõik, millel on sobitussamm , peab sobima ainult treeningandmetele. See hõlmab skaleerijaid, kodeerijaid ja tokeniseerijaid, mis õpivad parameetreid, nagu keskmised, kategooriakaardid või sõnavara. Esmalt jagatakse andmed, sobitatakse treeningjaotusega ja seejärel teisendatakse valideerimine/testimine sobitatud transformaatori abil. Leke võib muuta valideerimise „maagiliselt“ heaks ja seejärel tootmiskeskkonnas kokku kukkuda.

Millised on tabelina esitatud andmete kõige levinumad eeltöötlusetapid?

Tabeliandmete puhul hõlmab tavaline torujuhe puhastamist ja valideerimist (tüübid, vahemikud, puuduvad väärtused), kategoorilist kodeerimist (üks-kuum või ordinaal) ja numbrilist skaleerimist (standardiseerimine või min-max). Paljud torujuhed lisavad domeenipõhist funktsioonide insenerimist, nagu suhtarvud, veerevad aknad või arvud. Praktiline harjumus on määratleda veerurühmad selgesõnaliselt (numbrilised vs kategoorilised vs identifikaatorid), et teie teisendused jääksid järjepidevaks.

Kuidas tekstimudelite eeltöötlus toimib?

Teksti eeltöötlus tähendab tavaliselt tokeniseerimist tokeniteks/alamsõnadeks, nende teisendamist sisend-ID-deks ja täite/kärpimise käsitlemist partiidena töötlemiseks. Paljud transformeerimistöövood loovad ID-de kõrvale ka tähelepanumaski. Levinud lähenemisviis on mudeli eeldatava tokenisaatori konfiguratsiooni kasutamine improviseerimise asemel, sest väikesed erinevused tokenisaatori sätetes võivad viia tulemusteni „see treenib, aga käitub ettearvamatult“.

Mis on piltide eeltöötlemisel masinõppe jaoks erinevat?

Kujutise eeltöötlus tagab tavaliselt järjepideva kuju ja pikslite käsitlemise: suuruse muutmine/kärpimine, normaliseerimine ning selge eristus deterministlike ja juhuslike teisenduste vahel. Hindamiseks peaksid teisendused olema deterministlikud, et mõõdikud oleksid võrreldavad. Treenimiseks võib juhuslik suurendamine (nagu juhuslikud kärpimised) parandada robustsust, kuid juhuslikkus tuleb tahtlikult treeningjaotuse ulatusse piirata, mitte hindamise ajal kogemata sisse jätta.

Mis teeb eeltöötlustorustiku "heaks" habras asemel?

Hea tehisintellekti eeltöötlustorustik on reprodutseeritav, lekkekindel ja jälgitav. Reprodutseeritavus tähendab, et sama sisend annab sama väljundi, välja arvatud juhul, kui juhuslikkus on tahtlik täiustamine. Lekkekindel tähendab, et sobivussammud ei puutu kunagi kokku valideerimise/testimisega. Jälgitav tähendab, et saate kontrollida statistikat nagu puudused, kategooriate arv ja tunnuste jaotused, seega silumine põhineb tõenditel, mitte kõhutundel. Torustikud ületavad iga kord ad-hoc märkmikujadasid.

Kuidas hoida treeningu ja järelduste eeltöötluse järjepidevust?

Peamine on järeldamise ajal täpselt samade õpitud artefaktide taaskasutamine: skaleerija parameetrid, kodeerija vastendused ja tokeniseerija konfiguratsioonid. Samuti on vaja sisendlepingut (eeldatavad veerud, tüübid ja vahemikud), et tootmisandmed ei saaks märkamatult triivida sobimatutesse kujunditesse. Järjepidevus ei tähenda lihtsalt „samade sammude tegemist” – see tähendab „samade sammude tegemist samade sobitatud parameetrite ja vastendustega”

Kuidas saan aja jooksul jälgida eeltöötlusega seotud probleeme, nagu triiv ja kalduvus?

Isegi tugeva torujuhtme korral muutuvad tootmisandmed. Levinud lähenemisviis on jälgida funktsioonide jaotuse muutusi ning hoiatada treeningust tuleneva kallutatuse (tootmine kaldub treeningust kõrvale) ja järelduste triivi (tootmine muutub aja jooksul) eest. Jälgimine võib olla kerge (põhilised jaotuskontrollid) või hallatud (nagu Vertex AI mudeli jälgimine). Eesmärk on tuvastada sisendi nihked varakult – enne, kui need aeglaselt mudeli jõudlust kahjustavad.

Viited

[1] scikit-learn API:
sklearn.preprocessing (kodeerijad, skaleerijad, normaliseerimine) [2] scikit-learn: Levinud lõksud - andmete leke ja kuidas seda vältida
[3] Hugging Face Transformersi dokumendid: Tokeniseerijad (sisend-ID-d, tähelepanumaskid)
[4] PyTorch Torchvisioni dokumendid: Teisendused (suuruse muutmine/normaliseerimine + juhuslikud teisendused)
[5] Google Cloud Vertex AI dokumendid: Mudeli jälgimise ülevaade (funktsioonide kalduvus ja triiv)

Leia uusim tehisintellekt ametlikust tehisintellekti abilise poest

Meist

Tagasi blogisse