Ce este preprocesarea AI?

Ce este preprocesarea AI?

Răspuns scurt: Preprocesarea prin inteligență artificială este un set de pași repetabili care transformă datele brute, cu variație ridicată, în intrări consistente ale modelului, inclusiv curățarea, codificarea, scalarea, tokenizarea și transformările de imagini. Este important deoarece, dacă intrările de antrenament și intrările de producție diferă, modelele pot eșua silențios. Dacă un pas „învață” parametri, potriviți-l doar pe datele de antrenament pentru a evita scurgerile.

Preprocesarea prin inteligență artificială este tot ceea ce faceți asupra datelor brute înainte (și uneori în timpul) antrenamentului sau inferenței, astfel încât un model să poată învăța efectiv din ele. Nu doar „curățare”. Este vorba de curățare, modelare, scalare, codificare, augmentare și împachetare a datelor într-o reprezentare consistentă care nu va deranja în mod discret modelul ulterior. [1]

Concluzii cheie:

Definiție : Preprocesarea convertește tabelele, textul, imaginile și jurnalele brute în caracteristici gata de model.

Consistență : Aplicați aceleași transformări în timpul antrenamentului și inferenței pentru a preveni erorile de nepotrivire.

Scurgere : Montați scalatoarele, codificatoarele și tokenizatoarele doar pe datele de antrenament.

Reproductibilitate : Construiți conducte cu statistici inspectabile, nu secvențe de celule ad-hoc din caiet.

Monitorizarea producției : Urmăriți abaterile și deviațiile, astfel încât intrările să nu erodeze treptat performanța.

Articole pe care ți-ar putea plăcea să le citești după acesta:

🔗 Cum să testezi modelele de inteligență artificială pentru performanță în lumea reală
Metode practice pentru evaluarea rapidă a acurateței, robusteții și a erorii.

🔗 Este inteligența artificială text-vorbire și cum funcționează?
Explică elementele de bază ale TTS, utilizările cheie și limitările comune din prezent.

🔗 Poate inteligența artificială să citească corect scrisul de mână cursiv astăzi?
Acoperă provocările legate de recunoaștere, cele mai bune instrumente și sfaturi privind precizia.

🔗 Cât de precisă este inteligența artificială în sarcinile comune
Analizează factorii de precizie, testele de referință și fiabilitatea în lumea reală.


Preprocesarea inteligenței artificiale în limbaj simplu (și ce nu este) 🤝

Preprocesarea prin inteligență artificială este transformarea datelor brute (tabele, text, imagini, jurnale) în caracteristici pregătite pentru model. Dacă datele brute sunt un garaj dezordonat, preprocesarea înseamnă etichetarea cutiilor, aruncarea gunoiului stricat și stivuirea lucrurilor astfel încât să poți trece prin ele fără să te rănești.

Nu este vorba de modelul în sine. Este vorba de elementele care fac modelul posibil:

  • transformarea categoriilor în numere (unu-valoare, ordinal etc.) [1]

  • scalarea intervalelor numerice mari în intervale logice (standardizare, min-max etc.) [1]

  • tokenizarea textului în ID-uri de intrare (și de obicei o mască de atenție) [3]

  • redimensionarea/decuparea imaginilor și aplicarea corespunzătoare a transformărilor deterministe față de cele aleatorii [4]

  • construirea unor canale repetabile, astfel încât inputurile din instruire și cele din „viața reală” să nu divergă în moduri subtile [2]

O mică observație practică: „preprocesarea” include tot ceea ce se întâmplă în mod constant înainte ca modelul să vadă datele de intrare . Unele echipe împart acest proces în „inginerie de caracteristici” vs. „curățare de date”, dar în viața reală aceste granițe se estompează.

 

Preprocesare AI

De ce preprocesarea prin inteligență artificială contează mai mult decât recunosc oamenii 😬

Un model este un instrument care potrivește tipare, nu un cititor de gânduri. Dacă datele tale de intrare sunt inconsistente, modelul învață reguli inconsistente. Asta nu e filosofic, e dureros de literal.

Preprocesarea vă ajută să:

  • Îmbunătățiți stabilitatea învățării prin introducerea caracteristicilor în reprezentări pe care estimatorii le pot utiliza în mod fiabil (în special atunci când este implicată scalarea/codificarea). [1]

  • Reduceți zgomotul făcând ca realitatea dezordonată să pară ceva din care un model poate generaliza (în loc să memorați artefacte ciudate).

  • Prevenirea modurilor de defecțiune silențioase, cum ar fi scurgerile și nepotrivirile antrenament/servire (tipul care arată „uimitor” în validare și apoi se repară în producție). [2]

  • Accelerează iterația deoarece transformările repetabile sunt mai eficiente decât transformările simple în fiecare zi a săptămânii.

De asemenea, de acolo provine de fapt o mare parte din „performanța modelului”. Adică... surprinzător de mult. Uneori pare nedrept, dar asta e realitatea 🙃


Ce face ca o conductă de preprocesare AI să fie bună ✅

O „versiune bună” de preprocesare are de obicei aceste calități:

  • Reproductibil : aceeași intrare → aceeași ieșire (fără aleatorie misterioasă, cu excepția cazului în care este vorba de o augmentare intenționată).

  • Consistența serviciului de antrenament : orice acțiune se face în timpul antrenamentului se aplică în același mod în timpul inferenței (aceiași parametri ajustați, aceleași hărți de categorii, aceeași configurație a tokenizerului etc.). [2]

  • Siguranță împotriva scurgerilor : nimic din evaluare/testare nu influențează nicio de ajustare . (Mai multe despre această capcană imediat.) [2]

  • Observabil : poți inspecta ce s-a modificat (statistici ale funcțiilor, lipsuri, numărul de categorii), deci depanarea nu este inginerie bazată pe vibrații.

Dacă preprocesarea ta este o grămadă de celule de caiet numită final_v7_really_final_ok ... știi cum e. Funcționează până când nu mai funcționează 😬


Elementele constitutive de bază ale preprocesării IA 🧱

Gândește-te la preprocesare ca la un set de elemente constitutive pe care le combini într-o conductă.

1) Curățare și validare 🧼

Sarcini tipice:

  • eliminați duplicatele

  • gestionarea valorilor lipsă (eliminarea, atribuirea sau reprezentarea explicită a valorilor lipsă)

  • impune tipuri, unități și intervale

  • detectarea intrărilor incorecte

  • standardizarea formatelor de text (spații albe, reguli de scriere cu majuscule și minuscule, particularități Unicode)

Partea asta nu e plină de farmec, dar previne greșeli extrem de stupide. Spun asta cu drag.

2) Codificarea datelor categorice 🔤

Majoritatea modelelor nu pot utiliza direct șiruri de caractere brute precum „red” sau „premium_user” .

Abordări comune:

  • Codare cu o singură funcție (categorie → coloane binare) [1]

  • Codificare ordinală (categorie → ID întreg) [1]

Cheia nu este ce codificator alegi, ci ca maparea să rămână consistentă și să nu-și „schimbe forma” între antrenament și inferență. Așa obții un model care arată bine offline și se comportă ca un bântuit online. [2]

3) Scalarea și normalizarea caracteristicilor 📏

Scalarea contează atunci când caracteristicile se află pe intervale extrem de diferite.

Două clasice:

  • Standardizare : eliminarea mediei și scalarea la varianța unitară [1]

  • Scalare min-max : scalează fiecare caracteristică într-un interval specificat [1]

Chiar și atunci când utilizați modele care „în mare parte fac față”, scalarea face adesea ca pipeline-urile să fie mai ușor de abordat și mai greu de întrerupt accidental.

4) Ingineria caracteristicilor (adică trișare utilă) 🧪

Aici ușurezi munca modelului prin crearea unor semnale mai bune:

  • rapoarte (clicuri / afișări)

  • ferestre rulante (ultimele N zile)

  • număr (evenimente per utilizator)

  • transformări logaritmice pentru distribuții cu coadă grea

Există o artă aici. Uneori creezi o caracteristică, te simți mândru... și nu face nimic. Sau, mai rău, doare. E normal. Nu te atașa emoțional de caracteristici - nu te iubesc la rândul lor 😅

5) Împărțirea corectă a datelor ✂️

Sună evident până când nu mai este:

  • divizări aleatorii pentru datele iid

  • divizări bazate pe timp pentru seriile temporale

  • divizări grupate atunci când entitățile se repetă (utilizatori, dispozitive, pacienți)

Și, crucial: divizarea înainte de adaptare a preprocesării care învață din date . Dacă etapa de preprocesare „învață” parametri (cum ar fi medii, vocabulare, hărți de categorii), trebuie să îi învețe doar din antrenament. [2]


Preprocesare AI după tipul de date: tabelar, text, imagini 🎛️

Preprocesarea schimbă forma în funcție de ceea ce introduceți în model.

Date tabelare (foi de calcul, jurnale, baze de date) 📊

Pași comuni:

  • strategia valorii lipsă

  • codificare categorială [1]

  • scalarea coloanelor numerice [1]

  • gestionarea valorilor aberante (regulile domeniului depășesc „decuparea aleatorie” de cele mai multe ori)

  • caracteristici derivate (agregări, întârzieri, statistici continue)

Sfat practic: definește explicit grupurile de coloane (numerice vs. categorice vs. identificatoare). Sinele tău viitor îți va mulțumi.

Date text (NLP) 📝

Preprocesarea textului include adesea:

  • tokenizare în tokenuri/subcuvinte

  • conversie în ID-uri de intrare

  • umplutură/trunchiere

  • construirea măștilor de atenție pentru procesare în loturi [3]

O regulă mică care te scutește de probleme: pentru configurațiile bazate pe transformatoare, urmează setările de tokenizare așteptate ale modelului și nu folosi freestyle decât dacă ai un motiv. Freestyle-ul este modul în care ajungi să ai concluzia că „se antrenează, dar e ciudat”

Imagini (viziune computerizată) 🖼️

Preprocesare tipică:

  • redimensionare / decupare la forme consecvente

  • transformări deterministe pentru evaluare

  • transformări aleatorii pentru augmentarea antrenamentului (de exemplu, trunchiere aleatorie) [4]

Un detaliu pe care oamenii îl trec cu vederea: „transformările aleatorii” nu sunt doar o vibrație - ele eșantionează literalmente parametri de fiecare dată când sunt apelate. Excelente pentru antrenarea diversității, dar groaznice pentru evaluare dacă uiți să dezactivezi aleatoriul. [4]


Capcana în care cad toți: scurgerea de date 🕳️🐍

Scurgerea de informații apare atunci când informațiile din datele de evaluare se strecoară în antrenament - adesea prin preprocesare. Aceasta poate face ca modelul să pară magic în timpul validării, apoi să te dezamăgească în lumea reală.

Modele comune de scurgeri:

  • scalare folosind statistici complete ale setului de date (în loc de doar antrenament) [2]

  • construirea hărților de categorii folosind împreună train+test [2]

  • orice fit() sau fit_transform() care „vede” setul de testare [2]

Regula generală (simplu, brutal, eficient):

  • Orice articol cu ​​un potrivit ar trebui să fie în formă doar la antrenament.

  • Apoi transformarea folosind transformatorul montat. [2]

Și dacă vrei o verificare a intuiției de tipul „cât de rău poate fi?”: documentația scikit-learn prezintă un exemplu de scurgere în care o ordine incorectă de preprocesare produce o precizie de aproximativ 0,76 pe ținte aleatorii - apoi scade la ~ 0,5 odată ce scurgerea este remediată. Așa de convingător poate părea o scurgere greșită. [2]


Introducerea preprocesării în producție fără haos 🏗️

Multe modele eșuează în producție nu pentru că modelul este „rău”, ci pentru că realitatea de intrare se schimbă - sau pentru că fluxul de lucru se schimbă.

Preprocesarea orientată spre producție include de obicei:

  • Artefacte salvate (mapări ale encoderului, parametrii scalatorului, configurația tokenizerului), astfel încât inferența să utilizeze exact aceleași transformări învățate [2]

  • Contracte de intrare stricte (coloane/tipuri/intervale așteptate)

  • Monitorizarea asimetriei și a derivei , deoarece datele de producție vor rătăci [5]

Dacă doriți definiții concrete: Vertex AI Model Monitoring de la Google distinge între asimetria de servire a antrenamentului (distribuția producției deviază de la antrenament) și deriva inferenței (distribuția producției se modifică în timp) și permite monitorizarea atât a caracteristicilor categorice, cât și a celor numerice. [5]

Pentru că surprizele sunt scumpe. Și nu sunt de genul distractiv.


Tabel comparativ: instrumente comune de preprocesare + monitorizare (și pentru cine sunt acestea) 🧰

Instrument / bibliotecă Cel mai bun pentru Preţ De ce funcționează (și puțină onestitate)
preprocesare scikit-learn Conducte de învățare automată tabelare Gratuit Encodere + scalatoare solide (OneHotEncoder, StandardScaler etc.) și comportament previzibil [1]
Tokenizatoare de îmbrățișări faciale Pregătirea inputului NLP Gratuit Produce ID-uri de intrare + măști de atenție în mod consecvent pe parcursul rulărilor/modelelor [3]
transformări torchvision Transformări ale vederii + augmentare Gratuit Metodă clară de a combina transformări deterministe și aleatorii într-o singură conductă [4]
Monitorizarea modelului Vertex AI Detectarea derivei/asimetriei în produs Plătit (cloud) Monitoarele prezintă asimetrie/derivație și alerte atunci când pragurile sunt depășite [5]

(Da, cei din masă încă au opinii. Dar măcar sunt opinii sincere 😅)


O listă practică de verificare a preprocesării pe care o poți folosi 📌

Înainte de antrenament

  • Definiți o schemă de intrare (tipuri, unități, intervale permise)

  • Auditarea valorilor lipsă și a duplicatelor

  • Împărțiți datele în mod corect (aleatoriu / bazat pe timp / grupat)

  • Preprocesarea ajustării doar la antrenament ( fit / fit_transform rămâne în antrenament) [2]

  • Salvați artefactele de preprocesare, astfel încât inferența să le poată reutiliza [2]

În timpul antrenamentului

  • Aplicați augmentarea aleatorie doar acolo unde este cazul (de obicei, doar antrenamentul divizat) [4]

  • Păstrați preprocesarea evaluării deterministă [4]

  • Urmăriți modificările de preprocesare ca modificările de model (pentru că așa sunt)

Înainte de implementare

  • Asigurați-vă că inferența utilizează calea de preprocesare și artefactele identice [2]

  • Configurați monitorizarea deviațiilor/înclinărilor (chiar și verificările de bază ale distribuției caracteristicilor sunt de mare ajutor) [5]


Analiză detaliată: greșeli frecvente de preprocesare (și cum să le eviți) 🧯

Greșeala 1: „Voi normaliza rapid totul” 😵

Dacă calculezi parametrii de scalare pe întregul set de date, scapi de informații de evaluare. Potrivești pe tren, transformi restul. [2]

Greșeala 2: categoriile alunecă în haos 🧩

Dacă maparea categoriilor se schimbă între antrenament și inferență, modelul poate interpreta greșit lumea în mod silențios. Mențineți mapările fixe prin intermediul artefactelor salvate. [2]

Greșeala 3: augmentarea aleatorie strecurată în evaluare 🎲

Transformările aleatorii sunt excelente în antrenament, dar nu ar trebui să fie „activate în secret” atunci când încerci să măsori performanța. (Aleatoriu înseamnă aleatoriu.) [4]


Observații finale 🧠✨

Preprocesarea prin inteligență artificială este arta disciplinată de a transforma realitatea dezordonată în intrări de model consistente. Aceasta acoperă curățarea, codificarea, scalarea, tokenizarea, transformările de imagini și, cel mai important, conducte și artefacte repetabile.

  • Faceți preprocesarea în mod deliberat, nu întâmplător. [2]

  • Împărțiți mai întâi, potriviți transformările doar la antrenament, evitați scurgerile. [2]

  • Folosiți preprocesarea adecvată modalității (tokenizoare pentru text, transformări pentru imagini). [3][4]

  • Monitorizați abaterile/derivele de producție, astfel încât modelul dvs. să nu alunece încet în absurd. [5]

Și dacă ești vreodată blocat, întreabă-te:
„Ar mai avea sens acest pas de preprocesare dacă l-aș rula mâine pe date complet noi?”
Dacă răspunsul este „ăăă... poate?”, acesta este indiciul tău 😬


FAQ

Ce este preprocesarea AI, în termeni simpli?

Preprocesarea prin inteligență artificială este un set repetabil de pași care transformă datele brute zgomotoase și cu variație ridicată în intrări consistente din care un model poate învăța. Aceasta poate include curățarea, validarea, codificarea categoriilor, scalarea valorilor numerice, tokenizarea textului și aplicarea transformărilor de imagini. Scopul este de a se asigura că antrenamentul și inferența de producție văd „același tip” de intrare, astfel încât modelul să nu alunece ulterior într-un comportament imprevizibil.

De ce contează atât de mult preprocesarea prin inteligență artificială în producție?

Preprocesarea este importantă deoarece modelele sunt sensibile la reprezentarea intrărilor. Dacă datele de antrenament sunt scalate, codificate, tokenizate sau transformate diferit față de datele de producție, puteți întâmpina erori de nepotrivire antrenare/servire care arată bine offline, dar eșuează discret online. Conductele puternice de preprocesare reduc, de asemenea, zgomotul, îmbunătățesc stabilitatea învățării și accelerează iterația, deoarece nu trebuie să descurcați spaghetele din caiete.

Cum evit scurgerile de date la preprocesare?

O regulă simplă funcționează: orice element cu un de ajustare trebuie să fie ajustat doar pe baza datelor de antrenament. Aceasta include scalare, codificatoare și tokenizatoare care învață parametri precum medii, hărți de categorii sau vocabulare. Mai întâi se împarte, se ajustează pe baza divizării de antrenament, apoi se transformă validarea/testarea folosind transformatorul ajustat. Scurgerile pot face ca validarea să pară „magic” bună și apoi să se prăbușească în utilizarea în producție.

Care sunt cei mai comuni pași de preprocesare pentru datele tabelare?

Pentru datele tabelare, procesul obișnuit include curățarea și validarea (tipuri, intervale, valori lipsă), codificarea categorială (unul-cald sau ordinală) și scalarea numerică (standardizare sau min-max). Multe procese adaugă inginerie de caracteristici bazată pe domeniu, cum ar fi rapoarte, ferestre rulante sau numărătoare. Un obicei practic este de a defini explicit grupurile de coloane (numerice vs. categorice vs. identificatoare), astfel încât transformările să rămână consecvente.

Cum funcționează preprocesarea pentru modelele de text?

Preprocesarea textului înseamnă de obicei tokenizarea în tokenuri/subcuvinte, convertirea acestora în ID-uri de intrare și gestionarea padding-ului/trunchierii pentru procesare în lot. Multe fluxuri de lucru de tip transformator creează, de asemenea, o mască de atenție alături de ID-uri. O abordare comună este utilizarea configurației așteptate a tokenizerului de către model, în loc de improvizație, deoarece mici diferențe în setările tokenizerului pot duce la rezultate de tipul „se antrenează, dar se comportă imprevizibil”.

Ce este diferit în ceea ce privește preprocesarea imaginilor pentru învățarea automată?

Preprocesarea imaginilor asigură de obicei forme și o gestionare consistentă a pixelilor: redimensionare/decupare, normalizare și o separare clară între transformările deterministe și cele aleatorii. Pentru evaluare, transformările ar trebui să fie deterministe, astfel încât metricile să fie comparabile. Pentru antrenament, augmentarea aleatorie (cum ar fi decupările aleatorii) poate îmbunătăți robustețea, dar caracterul aleatoriu trebuie limitat intenționat la divizarea antrenamentului, nu lăsat accidental activat în timpul evaluării.

Ce face ca o conductă de preprocesare să fie „bună” în loc de fragilă?

O conductă bună de preprocesare a inteligenței artificiale este reproductibilă, sigură împotriva scurgerilor și observabilă. Reproductibilă înseamnă că aceeași intrare produce aceeași ieșire, cu excepția cazului în care aleatoriul este o augmentare intenționată. Sigură împotriva scurgerilor înseamnă că pașii de potrivire nu ating niciodată validarea/testarea. Observabilă înseamnă că puteți inspecta statistici precum lipsa datelor, numărul de categorii și distribuțiile caracteristicilor, astfel încât depanarea să se bazeze pe dovezi, nu pe intuiție. Conductele depășesc de fiecare dată secvențele ad-hoc de notebook-uri.

Cum mențin consecvența antrenării și a preprocesării inferențelor?

Cheia este să reutilizezi exact aceleași artefacte învățate în momentul inferenței: parametrii scalatorului, mapările encoderului și configurațiile tokenizerului. De asemenea, este necesar un contract de intrare (coloanele, tipurile și intervalele așteptate), astfel încât datele de producție să nu poată devia în mod silențios în forme nevalide. Consecvența nu înseamnă doar „faceți aceiași pași” - ci „faceți aceiași pași cu aceiași parametri și mapări ajustate”

Cum pot monitoriza problemele de preprocesare, cum ar fi driftul și asimetria, în timp?

Chiar și cu o rețea solidă de procese, datele de producție se modifică. O abordare comună este monitorizarea modificărilor distribuției caracteristicilor și alertarea privind abaterea de la procesul de antrenament (producția deviază de la antrenament) și deviația inferenței (modificările producției în timp). Monitorizarea poate fi ușoară (verificări de bază ale distribuției) sau gestionată (cum ar fi monitorizarea modelului Vertex AI). Scopul este de a detecta din timp modificările de intrare - înainte ca acestea să erodeze lent performanța modelului.

Referințe

[1] API scikit-learn:
sklearn.preprocessing (encodere, scalatoare, normalizare) [2] scikit-learn: Capcane comune - Scurgeri de date și cum să le evitați
[3] Documentație despre transformatoarele Hugging Face: Tokenizer-e (ID-uri de intrare, măști de atenție)
[4] Documentație despre PyTorch Torchvision: Transformări (Redimensionare/Normalizare + transformări aleatorii)
[5] Documentație despre Google Cloud Vertex AI: Prezentare generală a monitorizării modelului (asimetrie și deviație a caracteristicilor)

Găsește cea mai recentă tehnologie AI în Magazinul oficial de asistenți AI

Despre noi

Înapoi la blog