Шта је претходна обрада вештачке интелигенције (AI)?

Шта је претходна обрада вештачке интелигенције (AI)?

Кратак одговор: Претходна обрада помоћу вештачке интелигенције је скуп понављајућих корака који претварају сирове податке са високом варијансом у конзистентне улазе модела, укључујући чишћење, кодирање, скалирање, токенизацију и трансформације слика. То је важно јер ако се улази за обуку и улази за производњу разликују, модели могу тихо да откажу. Ако корак „учи“ параметре, прилагодите га само подацима за обуку да бисте избегли цурење.

Претходна обрада вештачке интелигенције је све што радите са сировим подацима пре (а понекад и током) обуке или закључивања како би модел заправо могао да учи из њих. Не само „чишћење“. То је чишћење, обликовање, скалирање, кодирање, проширивање и паковање података у конзистентну репрезентацију која касније неће тихо саплести ваш модел. [1]

Кључне закључке:

Дефиниција : Претходна обрада конвертује сирове табеле, текст, слике и логове у функције спремне за модел.

Конзистентност : Примените исте трансформације током обуке и закључивања како бисте спречили грешке услед неусклађености.

Цурење : Подесите скалере, енкодере и токенизаторе само на податке за обуку.

Репродуктивност : Изградите цевоводе са статистикама које се могу проверити, а не ад хок секвенцама ћелија бележница.

Праћење производње : Праћење искривљења и померања како улази не би постепено умањивали перформансе.

Чланци које бисте можда желели да прочитате након овог:

🔗 Како тестирати вештачку интелигенцију (AI) моделе за перформансе у стварном свету
Практичне методе за брзу процену тачности, робусности и пристрасности.

🔗 Да ли је претварање текста у говор вештачка интелигенција и како функционише
Објашњава основе претварања говора у говор, кључне употребе и уобичајена ограничења данас.

🔗 Да ли вештачка интелигенција данас може тачно да чита курзивни рукопис?
Покрива изазове препознавања, најбоље алате и савете за тачност.

🔗 Колико је вештачка интелигенција прецизна у уобичајеним задацима
Рашчлањује факторе тачности, референтне вредности и поузданост у стварном свету.


Претходна обрада помоћу вештачке интелигенције једноставним језиком (и шта она није) 🤝

Претходна обрада помоћу вештачке интелигенције је трансформација сирових улазних података (табела, текста, слика, логова) у функције спремне за моделирање. Ако су сирови подаци неуредна гаража, претходна обрада је означавање кутија, бацање поломљеног смећа и слагање ствари тако да заиста можете проћи кроз њих без повреда.

Није ствар у самом моделу. То је оно што омогућава модел:

  • претварање категорија у бројеве (једнобројне, ординалне итд.) [1]

  • скалирање великих нумеричких опсега у разумне опсеге (стандардизација, мин-макс, итд.) [1]

  • токенизација текста у улазне ИД-ове (и обично маску пажње) [3]

  • промена величине/исецање слика и одговарајућа примена детерминистичких у односу на случајне трансформације [4]

  • изградња понављајућих цевовода како се обука и улази из „стварног живота“ не би суптилно разликовали [2]

Једна мала практична напомена: „претходна обрада“ обухвата све што се дешава константно пре него што модел види улаз . Неки тимови ово деле на „инжењеринг карактеристика“ наспрам „чишћења података“, али у стварном животу те границе се замагљују.

 

Претходна обрада вештачке интелигенције

Зашто је претходна обрада помоћу вештачке интелигенције важнија него што људи признају 😬

Модел је средство за упаривање образаца, а не читач мисли. Ако су ваши уноси недоследни, модел учи недоследна правила. То није филозофско, већ болно дословно.

Претходна обрада вам помаже:

  • Побољшајте стабилност учења стављањем карактеристика у репрезентације које процењивачи могу поуздано да користе (посебно када је у питању скалирање/кодирање). [1]

  • Смањите шум тако што ћете учинити да неуредну стварност изгледа као нешто из чега се модел може генерализовати (уместо памћења чудних артефаката).

  • Спречите тихе режиме отказа попут цурења и неусклађености између обука/послуживања (оних који изгледају „невероватно“ током валидације, а затим се суочавају са продукцијом). [2]

  • Убрзајте итерацију јер понављајуће трансформације побеђују шпагете од свезака сваког дана у недељи.

Такође, одатле заправо долази велики део „перформанси модела“. Као… изненађујуће много. Понекад се чини неправедно, али то је реалност 🙃


Шта чини добар AI процес претходне обраде ✅

„Добра верзија“ претходне обраде обично има ове квалитете:

  • Репродуцибилно : исти улаз → исти излаз (без мистериозне случајности осим ако се не ради о намерном проширењу).

  • Конзистентност у обучавању : све што радите током обучавања примењује се на исти начин током закључивања (исти подешени параметри, исте мапе категорија, иста конфигурација токенизатора итд.). [2]

  • Заштита од цурења : ништа у евалуацији/тесту не утиче на било који прилагођавања . (Више о овој замци ускоро.) [2]

  • Видљиво : можете прегледати шта се променило (статистика функција, недостајуће информације, број категорија) тако да дебаговање није инжењеринг заснован на вибрацијама.

Ако је ваша претходна обрада гомила ћелија бележнице под називом final_v7_really_final_ok ... знате како је. Ради док не престане 😬


Основни градивни блокови вештачке интелигенције претходну обраду 🧱

Замислите претходну обраду као скуп градивних блокова које комбинујете у цевовод.

1) Чишћење и валидација 🧼

Типични задаци:

  • уклони дупликате

  • руковање недостајућим вредностима (искључивање, импутирање или експлицитно представљање недостајућих вредности)

  • применити типове, јединице и опсеге

  • откривање погрешно обликованих уноса

  • стандардизовати текстуалне формате (размаци, правила за велика и мала слова, карактеристике Уникода)

Овај део није гламурозан, али спречава изузетно глупе грешке. То кажем са љубављу.

2) Кодирање категоричких података 🔤

Већина модела не може директно да користи сирове стрингове као што су „red“ или „premium_user“ .

Уобичајени приступи:

  • Једнократно кодирање (категорија → бинарне колоне) [1]

  • Ординално кодирање (категорија → цеобројни ИД) [1]

Кључна ствар није који енкодер одаберете - већ да мапирање остане конзистентно и да не „мења облик“ између тренинга и инференције. Тако ћете добити модел који изгледа добро офлајн, а понаша се као да је уклето онлајн. [2]

3) Скалирање и нормализација карактеристика 📏

Скалирање је важно када се објекти налазе на веома различитим опсезима.

Два класика:

  • Стандардизација : уклањање средње вредности и скалирање на јединичну варијансу [1]

  • Мин-макс скалирање : скалирање сваке карактеристике у одређени опсег [1]

Чак и када користите моделе који се „углавном носе са ситуацијом“, скалирање често олакшава расуђивање о цевоводима – и отежава случајно прекидање.

4) Инжењеринг карактеристика (тј. корисно варање) 🧪

Овде олакшавате моделу посао креирањем бољих сигнала:

  • односи (кликови / прикази)

  • покретни прозори (последњих N дана)

  • број догађаја (догађаји по кориснику)

  • логаритамске трансформације за дистрибуције са тешким репом

Постоји уметност у овоме. Понекад створиш неки детаљ, осећаш се поносно... а то не ради ништа. Или још горе, боли. То је нормално. Не вежи се емоционално за детаље - они те не воле 😅

5) Правилно дељење података ✂️

Ово звучи очигледно док није:

  • случајна дељења за IID податке

  • временски распореди за временске серије

  • груписане поделе када се ентитети понављају (корисници, уређаји, пацијенти)

И што је кључно: поделите пре уклапања претходну обраду која учи из података . Ако ваш корак претходне обраде „учи“ параметре (као што су средње вредности, речници, мапе категорија), мора их научити само из обуке. [2]


АИ претходна обрада по типу података: табеларни, текст, слике 🎛️

Претходна обрада мења облик у зависности од тога шта уносите у модел.

Табеларни подаци (табеле, евиденције, базе података) 📊

Уобичајени кораци:

  • стратегија недостајуће вредности

  • категоричко кодирање [1]

  • скалирање нумеричких колона [1]

  • обрада одступајућих вредности (правила домена већину времена побеђују „случајно одсецање“)

  • изведене карактеристике (агрегације, кашњења, покретна статистика)

Практичан савет: експлицитно дефинишите групе колона (нумеричке наспрам категоријалних наспрам идентификаторских). Ваше будуће ја ће вам бити захвално.

Текстуални подаци (НЛП) 📝

Претходна обрада текста често укључује:

  • токенизација у токене/подречи

  • конверзија у улазне ИД-ове

  • попуњавање/скраћивање

  • израда маски пажње за групно обједињавање [3]

Мало правило које штеди муке: за подешавања заснована на трансформаторима, пратите очекивана подешавања токенизатора модела и немојте се слободно кретати осим ако немате разлог. Слободно кретање је начин на који завршавате са „тренира, али је чудно“

Слике (компјутерски вид) 🖼️

Типична претходна обрада:

  • промена величине / обрезивање до конзистентних облика

  • детерминистичке трансформације за процену

  • случајне трансформације за проширење обуке (нпр. случајно исецање) [4]

Један детаљ који људи превиђају: „случајне трансформације“ нису само вибрација - оне буквално узоркују параметре сваки пут када се позову. Одлично за разноликост тренирања, ужасно за процену ако заборавите да искључите случајност. [4]


Замка у коју сви упадају: цурење података 🕳️🐍

Цурење је када се информације из података евалуације ушуњају у обуку - често кроз претходну обраду. То може учинити да ваш модел изгледа магично током валидације, а затим вас разочарати у стварном свету.

Уобичајени обрасци цурења:

  • скалирање коришћењем статистике целог скупа података (уместо само обуке) [2]

  • изградња мапа категорија коришћењем `train+test` заједно [2]

  • било који fit() или fit_transform() који „види“ тестни скуп [2]

Правило (једноставно, брутално, ефикасно):

  • Све што има удобан корак требало би да буде у форми само на тренингу.

  • Затим трансформишете валидацију/тест користећи тај прилагођени трансформатор. [2]

А ако желите да проверите „колико лоше може бити?“: scikit-learn-ова сопствена документација показује пример цурења где погрешан редослед претходне обраде даје тачност од око 0,76 на случајним циљевима, а затим пада на ~ 0,5 када се цурење поправи. Тако убедљиво погрешно цурење може изгледати. [2]


Увођење претходне обраде у производњу без хаоса 🏗️

Много модела не успева у продукцији не зато што је модел „лош“, већ зато што улазна реалност мења - или се ваш цевовод мења.

Претходна обрада усмерена на производњу обично укључује:

  • Сачувани артефакти (мапирања енкодера, параметри скалера, конфигурација токенизатора) тако да инференција користи потпуно исте научене трансформације [2]

  • Строги уносни уговори (очекиване колоне/типови/опсези)

  • Праћење искривљења и померања , јер ће лутати [5]

Ако желите конкретне дефиниције: Google-ов Vertex AI Model Monitoring разликује одступање између обуке и сервирања (дистрибуција производње одступа од обуке) и померање закључивања (дистрибуција производње се мења током времена), и подржава праћење и категоричких и нумеричких карактеристика. [5]

Јер су изненађења скупа. И нису она забавна.


Табела за поређење: уобичајени алати за претходну обраду + праћење (и за кога су намењени) 🧰

Алат / библиотека Најбоље за Цена Зашто функционише (и мало искрености)
scikit-learn претходна обрада Табеларни машински урадни процес Бесплатно Солидни енкодери + скалери (OneHotEncoder, StandardScaler, итд.) и предвидљиво понашање [1]
Токенизатори загрљених лица Припрема за НЛП унос Бесплатно Производи улазне ИД-ове + маске пажње доследно у свим извршавањима/моделима [3]
трансформације бакљиног вида Трансформација + побољшање вида Бесплатно Чист начин комбиновања детерминистичких и случајних трансформација у једном цевоводу [4]
Праћење модела вештачке интелигенције у врховима Детекција померања/искривљења у производу Плаћено (облак) Монитори имају функције за искривљавање/померање и упозорења када се прекораче прагови [5]

(Да, за столом и даље има мишљења. Али бар су то искрена мишљења 😅)


Практична контролна листа за претходну обраду коју заправо можете користити 📌

Пре тренинга

  • Дефинишите шему уноса (типови, јединице, дозвољени опсези)

  • Ревизија недостајућих вредности и дупликата

  • Поделите податке на прави начин (насумично / временски / груписано)

  • Претходна обрада уклапања само на тренингу ( fit / fit_transform остаје на тренингу) [2]

  • Сачувајте артефакте претходне обраде како би их инференција могла поново користити [2]

Током тренинга

  • Применити случајну аугментацију само где је то прикладно (обично само подељена обука) [4]

  • Одржавајте детерминистичку претходну обраду евалуације [4]

  • Праћење промена претходних обрада као што су промене модела (јер јесу)

Пре распоређивања

  • Обезбедите да инференција користи идентичну путању претходне обраде и артефакте [2]

  • Подесите праћење померања/искривљења (чак су и основне провере расподеле карактеристика веома важне) [5]


Дубинска анализа: уобичајене грешке у претходној обради (и како их избећи) 🧯

Грешка 1: „Брзо ћу све нормализовати“ 😵

Ако израчунате параметре скалирања на целом скупу података, цурићете информације о евалуацији. Уклопите се у обуку, трансформишите остало. [2]

Грешка 2: категорије тону у хаос 🧩

Ако се ваше мапирање категорија мења између обуке и закључивања, ваш модел може неприметно погрешно тумачити свет. Одржавајте мапирања исправљеним помоћу сачуваних артефаката. [2]

Грешка 3: насумично увлачење у евалуацију 🎲

Случајне трансформације су одличне у обуци, али не би требало да буду „тајно укључене“ када покушавате да мерите перформансе. (Случајно значи насумично.) [4]


Завршне напомене 🧠✨

Претходна обрада помоћу вештачке интелигенције је дисциплинована уметност претварања неуредне стварности у конзистентне улазе модела. Она обухвата чишћење, кодирање, скалирање, токенизацију, трансформације слика и - што је најважније - понављајуће цевоводе и артефакте.

  • Урадите претходну обраду намерно, не случајно. [2]

  • Прво поделити, трансформација уклапања само на тренингу, избегавајте цурење. [2]

  • Користите претходну обраду одговарајућу модалитету (токенизаторе за текст, трансформације за слике). [3][4]

  • Пратите искривљеност/одступање у производњи како ваш модел не би полако залутао у бесмислице. [5]

А ако се икада заглавите, запитајте се:
„Да ли би овај корак претходне обраде и даље имао смисла ако бих га покренуо сутра на потпуно новим подацима?“
Ако је одговор „хм... можда?“, то је ваш траг 😬


Честа питања

Шта је претходна обрада вештачке интелигенције, једноставно речено?

Претходна обрада вештачке интелигенције је понављајући скуп корака који претвара бучне, сирове податке са великом варијансом у конзистентне улазе из којих модел може да учи. Може да укључује чишћење, валидацију, кодирање категорија, скалирање нумеричких вредности, токенизацију текста и примену трансформација слика. Циљ је осигурати да обука и производна инференција виде „исту врсту“ улаза, како модел касније не би зашао у непредвидиво понашање.

Зашто је претходна обрада помоћу вештачке интелигенције толико важна у производњи?

Претходна обрада је важна јер су модели осетљиви на репрезентацију улаза. Ако се подаци за обуку скалирају, кодирају, токенизују или трансформишу другачије од производних података, можете добити грешке неусклађености обуке/сервиса које изгледају добро офлајн, али тихо отказују онлајн. Снажни цевоводи претходне обраде такође смањују буку, побољшавају стабилност учења и убрзавају итерацију јер не распетљавате шпагете бележнице.

Како да избегнем цурење података током претходне обраде?

Једноставно правило функционише: све што има уклапања мора бити уклопљено само на подацима за обуку. То укључује скалере, енкодере и токенизаторе који уче параметре попут средњих вредности, мапа категорија или речника. Прво се врши раздвајање, уклапање на основу поделе за обуку, а затим се трансформише валидација/тестирање користећи уклопљени трансформатор. Цурење може учинити да валидација изгледа „магично“ добро, а затим се сруши у продукцијској употреби.

Који су најчешћи кораци претходне обраде табеларних података?

За табеларне податке, уобичајени цевовод укључује чишћење и валидацију (типови, опсези, недостајуће вредности), категоријално кодирање (једнократно или ординално) и нумеричко скалирање (стандардизација или мин-макс). Многи цевоводи додају инжењеринг карактеристика вођен доменом као што су односи, покретни прозори или бројеви. Практична навика је експлицитно дефинисање група колона (нумеричке наспрам категоријалних наспрам идентификатора) како би ваше трансформације остале конзистентне.

Како функционише претходна обрада за текстуалне моделе?

Претходна обрада текста обично значи токенизацију у токене/подречи, њихово претварање у улазне ИД-ове и руковање попуњавањем/скраћивањем за групирање. Многи трансформаторски токови рада такође креирају маску пажње поред ИД-ова. Уобичајени приступ је коришћење очекиване конфигурације токенизатора модела уместо импровизације, јер мале разлике у подешавањима токенизатора могу довести до исхода „тренира, али се понаша непредвидиво“.

По чему се претходна обрада слика за машинско учење разликује?

Претходна обрада слике обично обезбеђује конзистентне облике и руковање пикселима: промена величине/исецање, нормализација и јасна подела између детерминистичких и случајних трансформација. За процену, трансформације треба да буду детерминистичке како би метрике биле упоредиве. За обуку, случајно повећање (као што су случајни исецања) може побољшати робусност, али случајност мора бити намерно ограничена на поделу за обуку, а не случајно остављена током процене.

Шта чини цевовод за претходну обраду „добрим“ уместо крхким?

Добар цевовод за претходну обраду вештачке интелигенције је репродуцибилан, безбедан од цурења и видљив. Репродуцибилан значи да исти улаз производи исти излаз, осим ако случајност није намерно повећање. Безбедан од цурења значи да кораци уклапања никада не додирују валидацију/тестирање. Видљив значи да можете прегледати статистику попут недостајућих података, броја категорија и дистрибуције карактеристика, тако да је дебаговање засновано на доказима, а не на интуицији. Цевоводи су увек бољи од ад-хок секвенци у бележницама.

Како да одржим доследност у обуци и претходној обради закључивања?

Кључно је поново користити потпуно исте научене артефакте у време закључивања: параметре скалера, мапирања енкодера и конфигурације токенизатора. Такође је потребан уговор о улазу (очекиване колоне, типови и опсези) како би се подаци о производњи спречили да тихо пређу у неважеће облике. Конзистентност није само „урадити исте кораке“ - то је „урадити исте кораке са истим подешеним параметрима и мапирањима“

Како могу да пратим проблеме претходне обраде као што су померање и искривљење током времена?

Чак и са солидним цевоводом, подаци о продукцији се мењају. Уобичајени приступ је праћење промена у дистрибуцији карактеристика и упозоравање на одступање у обради обуке (продукција одступа од обуке) и померање закључивања (продукција се мења током времена). Праћење може бити лагано (основне провере дистрибуције) или управљано (као што је праћење модела вештачке интелигенције у Vertex-у). Циљ је рано уочити промене уноса - пре него што полако наруше перформансе модела.

Референце

[1] scikit-learn API:
sklearn.preprocessing (енкодери, скалери, нормализација) [2] scikit-learn: Уобичајене замке - Цурење података и како их избећи
[3] Документација за Hugging Face Transformers: Токенизатори (улазни ИД-ови, маске пажње)
[4] PyTorch Torchvision документација: Трансформације (Промена величине/нормализација + случајне трансформације)
[5] Документација за Google Cloud Vertex AI: Преглед праћења модела (искривљење и померање карактеристика)

Пронађите најновију вештачку интелигенцију у званичној продавници вештачке интелигенције

О нама

Назад на блог