Kaj je predobdelava z umetno inteligenco?

Kaj je predobdelava z umetno inteligenco?

Kratek odgovor: Predobdelava z umetno inteligenco je niz ponovljivih korakov, ki surove podatke z visoko varianco pretvorijo v dosledne vhodne podatke modela, vključno s čiščenjem, kodiranjem, skaliranjem, tokenizacijo in transformacijami slik. Pomembno je, ker če se vhodni podatki za učenje in vhodni podatki za produkcijo razlikujejo, lahko modeli tiho odpovejo. Če se korak "nauči" parametrov, ga prilagodite samo učnim podatkom, da se izognete uhajanju.

Predprocesiranje umetne inteligence je vse, kar naredite s surovimi podatki pred (in včasih med) učenjem ali sklepanjem, da se model lahko dejansko uči iz njih. Ne gre le za »čiščenje«. Gre za čiščenje, oblikovanje, skaliranje, kodiranje, dopolnjevanje in pakiranje podatkov v dosledno predstavitev, ki kasneje ne bo tiho ovirala vašega modela. [1]

Ključne ugotovitve:

Definicija : Predhodna obdelava pretvori surove tabele, besedilo, slike in dnevnike v funkcije, pripravljene za model.

Doslednost : Med učenjem in sklepanjem uporabite iste transformacije, da preprečite napake zaradi neusklajenosti.

Puščanje : Skalatorje, kodirnike in tokenizatorje namestite samo na učne podatke.

Ponovljivost : Zgradite cevovode s statističnimi podatki, ki jih je mogoče pregledovati, ne z ad-hoc zaporedji celic zvezka.

Spremljanje proizvodnje : Spremljajte nagib in premik, da vhodni podatki postopoma ne zmanjšujejo učinkovitosti.

Članki, ki jih boste morda želeli prebrati po tem:

🔗 Kako preizkusiti modele umetne inteligence za delovanje v resničnem svetu
Praktične metode za hitro oceno natančnosti, robustnosti in pristranskosti.

🔗 Ali je pretvorba besedila v govor umetna inteligenca in kako deluje
Pojasnjuje osnove pretvorbe besedila v govor, ključne uporabe in pogoste omejitve danes.

🔗 Ali lahko umetna inteligenca danes natančno bere kurzivno pisavo?
Zajema izzive prepoznavanja, najboljša orodja in nasvete za natančnost.

🔗 Kako natančna je umetna inteligenca pri običajnih nalogah
Razčleni faktorje natančnosti, merila uspešnosti in zanesljivost v resničnem svetu.


Predprocesiranje z umetno inteligenco v preprostem jeziku (in kaj ni) 🤝

Predprocesiranje z umetno inteligenco je pretvorba surovih vhodnih podatkov (tabel, besedila, slik, dnevnikov) v funkcije, pripravljene za modeliranje. Če so surovi podatki neurejena garaža, je predprocesiranje označevanje škatel, odlaganje razbitih kram in zlaganje stvari, tako da lahko dejansko hodite skoznje brez poškodb.

Ne gre za model sam. Gre za stvari, ki omogočajo model:

  • pretvorba kategorij v številke (enovrstne, ordinalne itd.) [1]

  • skaliranje velikih numeričnih območij v razumna območja (standardizacija, min-max itd.) [1]

  • žetoniranje besedila v vhodne ID-je (in običajno masko pozornosti) [3]

  • spreminjanje velikosti/obrezovanje slik in ustrezna uporaba determinističnih in naključnih transformacij [4]

  • gradnja ponovljivih cevovodov, tako da se vnosi iz usposabljanja in »resničnega življenja« ne razlikujejo na subtilne načine [2]

Ena majhna praktična opomba: »predobdelava« vključuje vse, kar se dosledno zgodi, preden model prejme vhodne podatke . Nekatere ekipe to delijo na »inženiring funkcij« in »čiščenje podatkov«, vendar se v resničnem življenju te meje zabrišejo.

 

Predobdelava umetne inteligence

Zakaj je predobdelava z umetno inteligenco pomembnejša, kot si ljudje priznavajo 😬

Model je ujemač vzorcev, ne bralec misli. Če so vaši vhodni podatki nedosledni, se model nauči nedoslednih pravil. To ni filozofsko, ampak boleče dobesedno.

Predhodna obdelava vam pomaga:

  • Izboljšajte stabilnost učenja z vključitvijo značilnosti v predstavitve, ki jih lahko ocenjevalci zanesljivo uporabljajo (zlasti pri skaliranju/kodiranju). [1]

  • Zmanjšajte šum tako, da neurejeno resničnost naredite videti kot nekaj, iz česar lahko model posploši (namesto da si zapomnite čudne artefakte).

  • Preprečite tihe načine odpovedi, kot so puščanje in neskladja med učenjem in strežbo (tista, ki izgledajo »neverjetno« pri validaciji in nato v produkciji). [2]

  • Pospešite iteracijo, ker ponovljive transformacije vsak dan v tednu premagajo špagete iz zvezkov.

Poleg tega od tod dejansko izvira veliko "modelne uspešnosti". Presenetljivo veliko. Včasih se zdi nepošteno, ampak to je resničnost 🙃


Kaj naredi dober cevovod za predobdelavo umetne inteligence ✅

»Dobra različica« predobdelave ima običajno te lastnosti:

  • Ponovljivo : enak vhod → ​​enak izhod (brez skrivnostne naključnosti, razen če gre za namerno povečanje).

  • Doslednost pri streženju vlakov : karkoli naredite med učenjem, se uporabi na enak način med sklepanjem (isti prilagojeni parametri, isti zemljevidi kategorij, ista konfiguracija tokenizatorja itd.). [2]

  • Varnost pred puščanjem : nič pri ocenjevanju/preizkusu ne vpliva na noben prilagajanja . (Več o tej pasti kasneje.) [2]

  • Opazljivo : lahko pregledate, kaj se je spremenilo (statistika funkcij, manjkajoče, število kategorij), zato odpravljanje napak ni inženiring, ki temelji na vibracijah.

Če je vaša predobdelava kup celic zvezka z imenom final_v7_really_final_ok ... veste, kako je. Deluje, dokler ne preneha 😬


Osnovni gradniki predobdelave umetne inteligence 🧱

Predstavljajte si predobdelavo kot niz gradnikov, ki jih združite v cevovod.

1) Čiščenje in validacija 🧼

Tipične naloge:

  • odstranite podvojene podatke

  • obravnavanje manjkajočih vrednosti (izpuščanje, imputiranje ali eksplicitna predstavitev manjkajočih vrednosti)

  • uveljavi tipe, enote in obsege

  • zaznavanje napačno oblikovanih vnosov

  • standardizirajte besedilne formate (presledki, pravila za velike in male črke, posebnosti Unicode)

Ta del ni glamurozen, ampak preprečuje izjemno neumne napake. To povem z ljubeznijo.

2) Kodiranje kategoričnih podatkov 🔤

Večina modelov ne more neposredno uporabljati surovih nizov, kot sta "red" ali "premium_user" .

Pogosti pristopi:

  • Enkratno kodiranje (kategorija → binarni stolpci) [1]

  • Ordinalno kodiranje (kategorija → celoštevilski ID) [1]

Ključna stvar ni, kateri kodirnik izberete – temveč da preslikava ostane dosledna in ne »spremeni oblike« med učenjem in sklepanjem. Tako dobite model, ki je v resnici videti dobro, na spletu pa se obnaša kot preganjalec. [2]

3) Skaliranje in normalizacija funkcij 📏

Skaliranje je pomembno, kadar se značilnosti nahajajo na zelo različnih območjih.

Dve klasiki:

  • Standardizacija : odstranitev povprečja in skaliranje na enoto variance [1]

  • Skaliranje od minimalne do maksimalne vrednosti : prilagodi vsako značilnost določenemu obsegu [1]

Tudi če uporabljate modele, ki se »večinoma spopadajo s težavami«, skaliranje pogosto olajša sklepanje o cevovodih – in jih je težje nenamerno prekiniti.

4) Inženiring funkcij (oz. koristno goljufanje) 🧪

Tukaj olajšate delo modela z ustvarjanjem boljših signalov:

  • razmerja (kliki / prikazi)

  • tekoča okna (zadnjih N dni)

  • število (dogodki na uporabnika)

  • logaritemske transformacije za porazdelitve z močnimi repi

To je umetnost. Včasih ustvariš funkcijo, si ponosen ... in to ne naredi ničesar. Ali še huje, boli. To je normalno. Ne navezuj se čustveno na funkcije - ne ljubijo te nazaj 😅

5) Pravilna razdelitev podatkov ✂️

To se sliši očitno, dokler ni več:

  • naključne delitve za podatke IID

  • časovne razdelitve za časovne vrste

  • združene razdelitve, ko se entitete ponavljajo (uporabniki, naprave, pacienti)

In ključno: pred prilagajanjem predprocesiranje, ki se uči iz podatkov, razdelite parametre . Če se vaš korak predprocesiranja "uči" parametrov (kot so povprečja, besedišča, zemljevidi kategorij), se jih mora naučiti samo z učenjem. [2]


Predprocesiranje z umetno inteligenco po tipu podatkov: tabelarni, besedilni, slikovni 🎛️

Predobdelava spreminja obliko glede na to, kaj vnesete v model.

Tabelarni podatki (preglednice, dnevniki, baze podatkov) 📊

Pogosti koraki:

  • strategija manjkajoče vrednosti

  • kategorično kodiranje [1]

  • skaliranje numeričnih stolpcev [1]

  • obravnava izstopajočih vrednosti (pravila domene večino časa premagajo »naključno izrezovanje«)

  • izpeljane funkcije (agregacije, zamiki, tekoča statistika)

Praktični nasvet: izrecno definirajte skupine stolpcev (številske v primerjavi s kategoričnimi v primerjavi z identifikatorskimi). Vaš prihodnji jaz vam bo hvaležen.

Besedilni podatki (NLP) 📝

Predobdelava besedila pogosto vključuje:

  • tokenizacija v žetone/podbesede

  • pretvorba v vhodne ID-je

  • oblazinjenje/okrajšanje

  • izdelava mask pozornosti za paketno obdelavo [3]

Majhno pravilo, ki vam prihrani muke: pri postavitvah, ki temeljijo na transformatorjih, sledite pričakovanim nastavitvam tokenizerja modela in ne uporabljajte prostega sloga, razen če imate za to razlog. S prostim slogom na koncu pride do točke »trenira, ampak je čudno«

Slike (računalniški vid) 🖼️

Tipična predobdelava:

  • spremeni velikost/obreži v enakomerne oblike

  • deterministične transformacije za vrednotenje

  • naključne transformacije za izboljšanje učenja (npr. naključno obrezovanje) [4]

Ena podrobnost, ki jo ljudje spregledajo: »naključne transformacije« niso le vibracija – dobesedno vzorčijo parametre vsakič, ko so klicane. Odlično za učenje raznolikosti, grozno za vrednotenje, če pozabite izklopiti naključnost. [4]


Past, v katero pade vsak: uhajanje podatkov 🕳️🐍

Uhajanje je, ko se informacije iz podatkov za evalvacijo prikradejo v proces učenja – pogosto prek predobdelave. Zaradi tega je lahko vaš model med validacijo videti čaroben, nato pa vas v resničnem svetu razočara.

Pogosti vzorci puščanja:

  • skaliranje z uporabo statističnih podatkov celotnega nabora podatkov (namesto samo učenja) [2]

  • gradnja zemljevidov kategorij z uporabo sistema »train+test« [2]

  • kateri koli fit() ali fit_transform() , ki »vidi« testno množico [2]

Pravilo (preprosto, brutalno, učinkovito):

  • Vse, kar ima fit korak, bi moralo biti fit samo na treningu.

  • Nato izvedete validacijo/testiranje transformatorja. [2]

In če želite preveriti, »kako hudo je lahko?«: dokumentacija scikit-learn prikazuje primer puščanja, kjer napačen vrstni red predobdelave pri naključnih ciljih povzroči natančnost okoli 0,76 , nato pa se po odpravi puščanja spet zmanjša na ~ 0,5 . Tako prepričljivo napačno lahko izgleda puščanje. [2]


Prehod v proizvodnjo brez kaosa 🏗️

Veliko modelov v produkciji ne uspe, ne zato, ker je model "slab", ampak zato, ker vhodna realnost – ali pa se spremeni vaš cevovod.

Proizvodno usmerjena predobdelava običajno vključuje:

  • Shranjeni artefakti (preslikave kodirnika, parametri skalerja, konfiguracija tokenizatorja), tako da sklepanje uporablja popolnoma iste naučene transformacije [2]

  • Stroge vhodne pogodbe (pričakovani stolpci/tipi/obsegi)

  • Spremljanje nagiba in odmika , ker bodo tavali [5]

Če želite konkretne definicije: Googlovo spremljanje modelov umetne inteligence Vertex loči med nagibom med serviranjem in učenjem (porazdelitev produkcije odstopa od učenja) in odmikom sklepanja (porazdelitev produkcije se sčasoma spreminja) ter podpira spremljanje tako kategoričnih kot numeričnih značilnosti. [5]

Ker so presenečenja draga. In ne zabavna.


Primerjalna tabela: pogosta orodja za predobdelavo + spremljanje (in za koga so namenjena) 🧰

Orodje / knjižnica Najboljše za Cena Zakaj deluje (in kanček iskrenosti)
scikit-learn predobdelava Cevovodi tabelarnega strojnega učenja Brezplačno Trdni kodirniki + skalerji (OneHotEncoder, StandardScaler itd.) in predvidljivo vedenje [1]
Tokenizatorji objemajočih obrazov Priprava na vnos NLP Brezplačno Dosledno ustvarja vhodne ID-je + maske pozornosti v vseh izvedbah/modelih [3]
transformacije bakla Vidne transformacije + povečanje Brezplačno Čist način za mešanje determinističnih in naključnih transformacij v enem cevovodu [4]
Spremljanje modela Vertex AI Zaznavanje odmika/nagiba v izdelku Plačljivo (oblak) Monitorji imajo funkcijo zaznavanja nagiba/premika in opozarjajo, ko so preseženi pragovi [5]

(Ja, za mizo so še vedno mnenja. Ampak vsaj so iskrena mnenja 😅)


Praktičen kontrolni seznam za predobdelavo, ki ga lahko dejansko uporabite 📌

Pred treningom

  • Definirajte vhodno shemo (tipi, enote, dovoljeni obsegi)

  • Preverjanje manjkajočih vrednosti in podvojenih podatkov

  • Pravilna razdelitev podatkov (naključno / časovno / združeno)

  • Predprocesiranje prilagajanja samo med učenjem ( fit / fit_transform ostane na učenju) [2]

  • Shranite artefakte predobdelave, da jih lahko ponovno uporabite za sklepanje [2]

Med treningom

  • Naključno povečanje uporabite le, kjer je to primerno (običajno samo učni del) [4]

  • Ohranite deterministično predobdelavo vrednotenja [4]

  • Spremljajte spremembe predobdelave, kot so spremembe modela (ker to tudi so)

Pred namestitvijo

  • Zagotovite, da sklepanje uporablja identično pot predobdelave in artefakte [2]

  • Nastavitev spremljanja premika/nagiba (celo osnovni pregledi porazdelitve značilnosti so zelo učinkoviti) [5]


Poglobljen vpogled: pogoste napake pri predobdelavi (in kako se jim izogniti) 🧯

Napaka 1: »Vse bom hitro normaliziral/a« 😵

Če parametre skaliranja izračunate na celotnem naboru podatkov, boste razkrili informacije o vrednotenju. Prilagodite vlaku, ostalo pa transformirajte. [2]

Napaka 2: kategorije drsijo v kaos 🧩

Če se vaše preslikavanje kategorij premika med učenjem in sklepanjem, lahko vaš model neopazno napačno bere svet. Preslikave naj bodo fiksne s shranjenimi artefakti. [2]

Napaka 3: naključna dopolnitev se prikrade v evalvacijo 🎲

Naključne transformacije so odlične pri učenju, vendar jih ne smete "skrivaj vklopiti", ko poskušate izmeriti učinkovitost. (Naključno pomeni naključno.) [4]


Zaključne opombe 🧠✨

Predprocesiranje z umetno inteligenco je disciplinirana umetnost spreminjanja neurejene realnosti v dosledne vhodne podatke modela. Zajema čiščenje, kodiranje, skaliranje, tokenizacijo, transformacije slik in – kar je najpomembneje – ponovljive cevovode in artefakte.

  • Predobdelavo izvajajte namerno, ne mimogrede. [2]

  • Najprej razdelite, prileganje se spremeni samo med treningom, izogibajte se puščanju. [2]

  • Uporabite predobdelavo, ki je primerna za posamezno modaliteto (tokenizatorje za besedilo, transformacije za slike). [3][4]

  • Spremljajte odstopanja/premike v proizvodnji, da vaš model ne bo počasi zdrsnil v nesmisel. [5]

In če se kdaj znajdete v zadregi, se vprašajte:
»Bi bil ta korak predobdelave še vedno smiseln, če bi ga jutri izvedel na povsem novih podatkih?«
Če je odgovor »hm ... morda?«, je to vaš namig 😬


Pogosta vprašanja

Kaj je predobdelava umetne inteligence, poenostavljeno povedano?

Predprocesiranje z umetno inteligenco je ponovljiv niz korakov, ki spremeni šumne, visoko variančne surove podatke v dosledne vhodne podatke, iz katerih se lahko model uči. Vključuje lahko čiščenje, validacijo, kodiranje kategorij, skaliranje številskih vrednosti, tokenizacijo besedila in uporabo transformacij slik. Cilj je zagotoviti, da učno in produkcijsko sklepanje vidita »isto vrsto« vhodnih podatkov, da model kasneje ne zaide v nepredvidljivo vedenje.

Zakaj je predobdelava z umetno inteligenco tako pomembna v produkciji?

Predprocesiranje je pomembno, ker so modeli občutljivi na predstavitev vhodnih podatkov. Če so podatki za učenje skalirani, kodirani, tokenizirani ali transformirani drugače kot produkcijski podatki, lahko pride do napak zaradi neskladja med učenjem in strežbo, ki so videti brez povezave, a v spletu tiho odpovedo. Močni cevovodi za predprocesiranje prav tako zmanjšajo šum, izboljšajo stabilnost učenja in pospešijo iteracijo, ker ne razpletate nakopičenih podatkov v zvezku.

Kako se izognem uhajanju podatkov med predobdelavo?

Preprosto pravilo deluje: vse, kar ima prilagajanja , se mora prilagajati samo učnim podatkom. To vključuje skalatorje, kodirnike in tokenizatorje, ki se učijo parametrov, kot so povprečja, zemljevidi kategorij ali slovarji. Najprej razdelite, prilagodite učno razdelitvijo, nato pa transformirate in preizkusite z uporabo prilagojenega transformatorja. Puščanje podatkov lahko povzroči, da je validacija videti »čarobno« dobra, nato pa se v produkcijski uporabi sesuje.

Kateri so najpogostejši koraki predobdelave tabelaričnih podatkov?

Za tabelarne podatke običajni postopek vključuje čiščenje in validacijo (tipi, obsegi, manjkajoče vrednosti), kategorično kodiranje (enovrstno ali ordinalno) in numerično skaliranje (standardizacija ali min-max). Mnogi postopki dodajajo inženiring funkcij, ki jih poganja domena, kot so razmerja, drseča okna ali štetja. Praktična navada je, da skupine stolpcev izrecno definirate (numerične v primerjavi s kategoričnimi v primerjavi z identifikatorji), da vaše transformacije ostanejo dosledne.

Kako deluje predobdelava za besedilne modele?

Predhodna obdelava besedila običajno pomeni razdelitev žetonov v žetone/podbesede, njihovo pretvorbo v vhodne ID-je in obdelavo dopolnjevanja/okrajševanja za paketno obdelavo. Številni delovni tokovi preoblikovanja ustvarijo tudi masko pozornosti poleg ID-jev. Pogost pristop je uporaba pričakovane konfiguracije tokenizerja modela namesto improvizacije, saj lahko majhne razlike v nastavitvah tokenizerja vodijo do rezultatov »uči se, vendar se obnaša nepredvidljivo«.

Kakšna je razlika pri predobdelavi slik za strojno učenje?

Predhodna obdelava slik običajno zagotavlja dosledne oblike in ravnanje s slikovnimi pikami: spreminjanje velikosti/obrezovanje, normalizacija in jasna ločitev med determinističnimi in naključnimi transformacijami. Za vrednotenje morajo biti transformacije deterministične, da so metrike primerljive. Za učenje lahko naključna dopolnitev (kot so naključni obrezi) izboljša robustnost, vendar mora biti naključnost namerno omejena na učno delitev, ne pa da je med vrednotenjem pomotoma pustimo vklopljeno.

Kaj naredi predobdelavni cevovod "dober" namesto krhek?

Dober cevovod za predobdelavo umetne inteligence je ponovljiv, varen pred puščanjem in opazovan. Ponovljiv pomeni, da isti vhod ustvari enak izhod, razen če je naključnost namerno povečanje. Varen pred puščanjem pomeni, da koraki prilagajanja nikoli ne pridejo v stik z validacijo/testiranjem. Opazovan pomeni, da lahko pregledate statistiko, kot so manjkajoče vrednosti, število kategorij in porazdelitve značilnosti, zato odpravljanje napak temelji na dokazih in ne na občutku. Cevovodi vedno premagajo ad-hoc zaporedja zvezkov.

Kako ohranim doslednost med učenjem in predobdelavo sklepanja?

Ključno je, da se v času sklepanja ponovno uporabijo popolnoma enaki naučeni artefakti: parametri skalerja, preslikave kodirnika in konfiguracije tokenizatorja. Potrebujete tudi vhodno pogodbo (pričakovani stolpci, tipi in obsegi), da se produkcijski podatki ne morejo neopazno premakniti v neveljavne oblike. Doslednost ni le »naredi iste korake« – gre za »naredi iste korake z enakimi prilagojenimi parametri in preslikavami«

Kako lahko spremljam težave s predobdelavo, kot sta premik in nagibanje skozi čas?

Tudi pri zanesljivem cevovodu se produkcijski podatki spreminjajo. Pogost pristop je spremljanje sprememb v porazdelitvi značilnosti in opozarjanje na neskladje med učenjem in serviranjem (produkcija odstopa od učenja) in premik sklepanja (produkcija se sčasoma spreminja). Spremljanje je lahko preprosto (osnovni pregledi porazdelitve) ali upravljano (kot je spremljanje modela Vertex AI). Cilj je zgodaj zaznati spremembe vhodnih podatkov – preden počasi zmanjšajo delovanje modela.

Reference

[1] scikit-learn API:
sklearn.preprocessing (kodirniki, skalerji, normalizacija) [2] scikit-learn: Pogoste pasti - uhajanje podatkov in kako se mu izogniti
[3] Dokumentacija Hugging Face Transformers: Tokenizatorji (vhodni ID-ji, maske pozornosti)
[4] Dokumentacija PyTorch Torchvision: Transformacije (spreminjanje velikosti/normalizacija + naključne transformacije)
[5] Dokumentacija Google Cloud Vertex AI: Pregled spremljanja modelov (nagibanje in premik funkcij)

Poiščite najnovejšo umetno inteligenco v uradni trgovini z umetno inteligenco

O nas

Nazaj na blog