Usindikaji wa awali wa AI ni kila kitu unachofanya kwa data ghafi kabla (na wakati mwingine wakati wa) mafunzo au uhitimisho ili modeli iweze kujifunza kutokana nayo. Sio "kusafisha" tu. Ni kusafisha, kuunda, kuongeza ukubwa, kusimba, kuongeza, na kufungasha data katika uwakilishi thabiti ambao hautakwamisha modeli yako kimya kimya baadaye. [1]
Makala unayoweza kupenda kusoma baada ya hii:
🔗 Jinsi ya kujaribu mifumo ya akili bandia (AI) kwa utendaji halisi
Mbinu za vitendo za kutathmini usahihi, uthabiti, na upendeleo haraka.
🔗 Je, ni AI ya maandishi-kwa-usemi na inafanyaje kazi?
Inaelezea misingi ya TTS, matumizi muhimu, na mapungufu ya kawaida leo.
🔗 Je, AI inaweza kusoma mwandiko wa herufi kwa usahihi leo?
Hushughulikia changamoto za utambuzi, zana bora, na vidokezo vya usahihi.
🔗 Je, ni sahihi kiasi gani akili bandia (AI) katika kazi za kawaida?
Huchambua vipengele vya usahihi, vipimo, na uaminifu wa ulimwengu halisi.
Usindikaji wa awali wa akili bandia kwa lugha rahisi (na sivyo ilivyo) 🤝
Usindikaji wa awali wa akili bandia (AI) ni ubadilishaji wa ingizo ghafi (majedwali, maandishi, picha, kumbukumbu) kuwa vipengele vilivyo tayari kwa modeli. Ikiwa data ghafi ni gereji chafu, usindikaji wa awali ni wewe kuweka lebo kwenye masanduku, kutupa taka zilizovunjika, na kupanga vitu ili uweze kupitia bila jeraha.
Sio mfumo wenyewe. Ni vitu vinavyowezesha mfumo:
-
kugeuza kategoria kuwa nambari (moja-moto, ordinal, n.k.) [1]
-
Kuongeza masafa makubwa ya nambari katika masafa ya akili timamu (usanifu, kiwango cha chini cha juu, n.k.) [1]
-
kuweka maandishi kwenye vitambulisho vya kuingiza (na kwa kawaida hutumika kama barakoa ya umakini) [3]
-
Kubadilisha ukubwa/kupunguza picha na kutumia mabadiliko ya kigezo dhidi ya nasibu ipasavyo [4]
-
kujenga mabomba yanayoweza kurudiwa ili mafunzo na pembejeo za "maisha halisi" zisitofautiane kwa njia fiche [2]
Dokezo moja dogo la vitendo: "usindikaji wa awali" unajumuisha chochote kinachotokea mara kwa mara kabla ya modeli kuona ingizo . Baadhi ya timu hugawanya hii katika "uhandisi wa vipengele" dhidi ya "usafishaji wa data", lakini katika maisha halisi mistari hiyo hufifia.

Kwa nini usindikaji wa akili bandia ni muhimu zaidi kuliko watu wanavyokubali 😬
Mfano ni kilinganishi cha muundo, si msomaji wa akili. Ikiwa michango yako haipatani, mfano hujifunza sheria zisizopatana. Hilo si la kifalsafa, ni la kihalisi kwa uchungu.
Usindikaji wa awali hukusaidia:
-
Boresha uthabiti wa kujifunza kwa kuweka vipengele katika uwakilishi ambavyo wakadiriaji wanaweza kutumia kwa uhakika (hasa wakati wa kuongeza/kusimba kunahusika). [1]
-
Punguza kelele kwa kufanya ukweli mchafu uonekane kama kitu ambacho modeli inaweza kujumlisha (badala ya kukariri mabaki ya ajabu).
-
Zuia hali za kutofaulu kimya kimya kama vile uvujaji na ufuate/usiolingana wa huduma (aina inayoonekana "ya kushangaza" katika uthibitishaji na kisha mimea ya uso katika uzalishaji). [2]
-
Ongeza kasi ya kurudia kwa sababu spaghetti ya daftari inayoweza kurudiwa hupiga daftari kila siku ya wiki.
Pia, ndipo "utendaji mwingi wa modeli" unapotoka. Kama ... cha kushangaza sana. Wakati mwingine huhisi si haki, lakini hiyo ndiyo hali halisi 🙃
Ni nini hufanya bomba la usindikaji wa awali wa akili bandia kuwa zuri ✅
"Toleo zuri" la usindikaji wa awali kwa kawaida huwa na sifa hizi:
-
Inaweza kuzalishwa tena : ingizo sawa → matokeo sawa (hakuna nasibu ya fumbo isipokuwa ni uongezaji wa kimakusudi).
-
Uthabiti wa huduma ya treni : chochote unachofanya wakati wa mafunzo kinatumika kwa njia ile ile wakati wa makadirio (vigezo sawa vilivyowekwa, ramani sawa za kategoria, usanidi sawa wa tokenizer, nk.). [2]
-
Salama kwa kuvuja : hakuna kitu katika tathmini/jaribio kinachoathiri hatua yoyote
ya kufaa. (Zaidi kuhusu mtego huu kwa ufupi.) [2] -
Inayoonekana : unaweza kukagua kilichobadilika (takwimu za vipengele, ukosefu, hesabu za kategoria) kwa hivyo utatuzi wa matatizo si uhandisi unaotegemea mitetemo.
Kama usindikaji wako wa awali ni rundo la seli za daftari zinazoitwa final_v7_really_final_ok … unajua jinsi ilivyo. Inafanya kazi hadi ifanye kazi 😬
Vipimo vikuu vya ujenzi wa usindikaji wa awali wa akili bandia 🧱
Fikiria usindikaji wa awali kama seti ya matofali ya ujenzi unayoyachanganya na kutengeneza bomba.
1) Kusafisha na kuthibitisha 🧼
Kazi za kawaida:
-
ondoa nakala rudufu
-
kushughulikia thamani zinazokosekana (kuacha, kuhesabu, au kuwakilisha ukosefu waziwazi)
-
kutekeleza aina, vitengo, na masafa
-
kugundua ingizo zenye hitilafu
-
sanifisha miundo ya maandishi (nafasi nyeupe, sheria za kanda, sifa za Unicode)
Sehemu hii si ya kupendeza, lakini inazuia makosa ya kipumbavu sana. Ninasema hivyo kwa upendo.
2) Kusimba data ya kategoria 🔤
Mifumo mingi haiwezi kutumia moja kwa moja nyuzi mbichi kama vile "red" au "premium_user" .
Mbinu za kawaida:
-
Usimbaji wa moja kwa moja (kikundi → safu wima za binary) [1]
-
Usimbaji wa kawaida (kitengo → Kitambulisho cha nambari kamili) [1]
Jambo la msingi si ni kipi unachochagua—ni kwamba uchoraji wa ramani ubaki thabiti na haubadilishi umbo kati ya mafunzo na hitimisho. Hivi ndivyo unavyoishia na modeli inayoonekana vizuri nje ya mtandao na inayofanya mambo ya kuvutia mtandaoni. [2]
3) Kuongeza ukubwa wa vipengele na kurekebisha 📏
Kuongeza ukubwa ni muhimu wakati vipengele vinapopatikana katika masafa tofauti sana.
Vitabu viwili vya kitambo:
-
Usanifishaji : ondoa wastani na kipimo hadi tofauti ya kitengo [1]
-
Kiwango cha chini cha upeo : panua kila kipengele katika safu maalum [1]
Hata unapotumia mifumo ambayo "hushughulikia kwa kiasi kikubwa," kuongeza ukubwa mara nyingi hufanya mabomba kuwa rahisi kufikiria - na vigumu kuvunjika kwa bahati mbaya.
4) Uhandisi wa vipengele (pia hujulikana kama udanganyifu muhimu) 🧪
Hapa ndipo unaporahisisha kazi ya modeli kwa kuunda ishara bora zaidi:
-
uwiano (mibofyo / maonyesho)
-
madirisha yanayozunguka (siku za mwisho za N)
-
hesabu (matukio kwa kila mtumiaji)
-
mabadiliko ya logi kwa usambazaji wenye mkia mzito
Kuna sanaa hapa. Wakati mwingine utaunda kipengele, ujisikie fahari… na haifanyi chochote. Au mbaya zaidi, inauma. Hiyo ni kawaida. Usijihusishe kihisia na vipengele - havikupendi pia 😅
5) Kugawanya data kwa njia sahihi ✂️
Hii inaonekana wazi hadi isiwe hivyo:
-
mgawanyiko wa nasibu kwa data ya iid
-
mgawanyiko unaotegemea wakati kwa mfululizo wa muda
-
mgawanyiko wa makundi wakati vyombo vinarudia (watumiaji, vifaa, wagonjwa)
Na muhimu zaidi: gawanya kabla ya kuweka usindikaji wa awali unaojifunza kutoka kwa data . Ikiwa hatua yako ya usindikaji wa awali "inajifunza" vigezo (kama vile njia, msamiati, ramani za kategoria), lazima ijifunze kutoka kwa mafunzo pekee. [2]
Usindikaji wa awali wa akili bandia (AI) kwa aina ya data: jedwali, maandishi, picha 🎛️
Usindikaji wa awali hubadilisha umbo kulingana na kile unacholisha modeli.
Data ya jedwali (lahajedwali, kumbukumbu, hifadhidata) 📊
Hatua za kawaida:
-
mkakati wa thamani isiyo na thamani
-
usimbaji wa kategoria [1]
-
kuongeza safu wima za nambari [1]
-
utunzaji wa nje (sheria za kikoa hushinda "kukata bila mpangilio" mara nyingi)
-
vipengele vinavyotokana (mkusanyiko, ucheleweshaji, takwimu zinazoendelea)
Ushauri wa vitendo: fafanua vikundi vya safu wima kwa uwazi (nambari dhidi ya kategoria dhidi ya vitambulisho). Ubinafsi wako wa baadaye utakushukuru.
Data ya maandishi (NLP) 📝
Utayarishaji wa maandishi mara nyingi hujumuisha:
-
uhamishaji wa tokeni kuwa tokeni/maneno madogo
-
ubadilishaji hadi vitambulisho vya kuingiza
-
pedi/mfupisho
-
kujenga barakoa za umakini kwa ajili ya kuunganishwa [3]
Sheria ndogo inayookoa maumivu: kwa mipangilio inayotegemea transfoma, fuata mipangilio inayotarajiwa ya tokenizer ya modeli na usifanye mtindo wa freestyle isipokuwa una sababu. Freestyle ndio jinsi unavyoishia na "inafunza lakini ni ya ajabu."
Picha (maono ya kompyuta) 🖼️
Usindikaji wa kawaida wa awali:
-
badilisha ukubwa/punguza hadi maumbo yanayolingana
-
mabadiliko ya kimaamuzi kwa ajili ya tathmini
-
mabadiliko nasibu kwa ajili ya kuongeza mafunzo (km, upunguzaji nasibu) [4]
Jambo moja ambalo watu hukosa: "mabadiliko ya nasibu" si tu mhemko - hupima vigezo kila wakati wanapoitwa. Nzuri kwa kufunza utofauti, mbaya kwa tathmini ikiwa utasahau kuzima nasibu. [4]
Mtego ambao kila mtu anaangukia: uvujaji wa data 🕳️🐍
Uvujaji ni wakati taarifa kutoka kwa data ya tathmini huingia kwenye mafunzo - mara nyingi kupitia usindikaji wa awali. Inaweza kufanya modeli yako ionekane ya kichawi wakati wa uthibitishaji, kisha ikakukatisha tamaa katika ulimwengu halisi.
Mifumo ya kawaida ya uvujaji:
-
kuongeza ukubwa kwa kutumia takwimu za seti kamili ya data (badala ya mafunzo pekee) [2]
-
ramani za kategoria za ujenzi kwa kutumia treni+jaribio pamoja [2]
-
yoyote
ya fit()aufit_transform()ambayo "inaona" seti ya majaribio [2]
Kanuni ya kidole gumba (rahisi, ya kikatili, na yenye ufanisi):
-
Kitu chochote chenye ya kufaa kinapaswa kuwa sawa wakati wa mafunzo pekee.
-
Kisha unabadilisha uthibitishaji/ujaribu kwa kutumia kibadilishaji kilichowekwa. [2]
Na kama unataka "inaweza kuwa mbaya kiasi gani?" gut-check: hati za scikit-learn zinaonyesha mfano wa uvujaji ambapo mpangilio usio sahihi wa usindikaji wa awali hutoa usahihi wa karibu 0.76 kwenye malengo nasibu - kisha hushuka hadi ~ 0.5 mara tu uvujaji utakaporekebishwa. Hivi ndivyo uvujaji usio sahihi unavyoweza kuonekana. [2]
Kuanzisha usindikaji wa awali katika uzalishaji bila machafuko 🏗️
Mifumo mingi hushindwa katika uzalishaji si kwa sababu mfumo ni "mbaya", bali kwa sababu uhalisia wa ingizo hubadilika-au bomba lako hushindwa.
Usindikaji wa awali unaozingatia uzalishaji kwa kawaida hujumuisha:
-
Mabaki yaliyohifadhiwa (upangiliaji wa kisimbaji, vigezo vya kipimaji, usanidi wa tokenizer) kwa hivyo hitimisho hutumia mabadiliko yaleyale yaliyojifunza [2]
-
Mikataba madhubuti ya kuingiza data (safu wima/aina/safu zinazotarajiwa)
-
Ufuatiliaji wa msukosuko na mtelezi , kwa sababu data ya uzalishaji itapotea [5]
Ukitaka ufafanuzi halisi: Ufuatiliaji wa Mfano wa AI wa Kipeo cha Google hutofautisha msuguano wa utoaji mafunzo (usambazaji wa uzalishaji hutofautiana na mafunzo) na mabadiliko ya makadirio (mabadiliko ya usambazaji wa uzalishaji baada ya muda), na inasaidia ufuatiliaji kwa vipengele vya kategoria na nambari. [5]
Kwa sababu mshangao ni ghali. Na si aina ya kufurahisha.
Jedwali la kulinganisha: usindikaji wa kawaida wa awali + zana za ufuatiliaji (na ni za nani) 🧰
| Zana / maktaba | Bora zaidi kwa | Bei | Kwa nini inafanya kazi (na uaminifu kidogo) |
|---|---|---|---|
| usindikaji wa awali wa scikit | Mabomba ya jedwali la ML | Bure | Visimbaji imara + vipimaji (OneHotEncoder, StandardScaler, n.k.) na tabia inayoweza kutabirika [1] |
| Viashiria vya Uso vya Kukumbatiana | Maandalizi ya kuingiza data ya NLP | Bure | Hutengeneza vitambulisho vya kuingiza data + barakoa za umakini mara kwa mara katika mifumo/mifumo mbalimbali [3] |
| torchvision hubadilisha | Maono hubadilisha + kuimarika | Bure | Njia safi ya kuchanganya mabadiliko ya kimakusudi na yasiyo ya kawaida katika bomba moja [4] |
| Ufuatiliaji wa Mfano wa AI ya Kipeo | Ugunduzi wa mteremko/mtelezi katika bidhaa | Imelipwa (wingu) | Vichunguzi huangazia msukosuko/mtelezi na arifa wakati vizingiti vinapozidi [5] |
(Ndiyo, meza bado ina maoni. Lakini angalau ni maoni ya kweli 😅)
Orodha ya vitendo ya usindikaji wa awali ambayo unaweza kutumia 📌
Kabla ya mafunzo
-
Bainisha mpango wa kuingiza data (aina, vitengo, masafa yanayoruhusiwa)
-
Ukaguzi wa thamani na marudio yaliyokosekana
-
Gawanya data kwa njia sahihi (nasibu / kulingana na wakati / iliyowekwa katika makundi)
-
Usindikaji wa awali wa Fit kwenye mafunzo pekee (
fit/fit_transformhubaki kwenye treni) [2] -
Hifadhi mabaki ya usindikaji wa awali ili hitimisho liweze kuyatumia tena [2]
Wakati wa mafunzo
-
Tumia uongezaji wa nasibu pekee inapobidi (kawaida mafunzo yamegawanywa pekee) [4]
-
Endelea kusindika tathmini kabla ya mchakato [4]
-
Fuatilia mabadiliko ya usindikaji wa awali kama vile mabadiliko ya modeli (kwa sababu ndivyo yalivyo)
Kabla ya kupelekwa
-
Hakikisha hitimisho linatumia njia sawa ya usindikaji wa awali na mabaki [2]
-
Weka ufuatiliaji wa kuteleza/kuteleza (hata ukaguzi wa msingi wa usambazaji wa vipengele husaidia sana) [5]
Kuzama kwa kina: makosa ya kawaida ya usindikaji wa awali (na jinsi ya kuyaepuka) 🧯
Kosa la 1: "Nitarekebisha kila kitu haraka" 😵
Ukihesabu vigezo vya upimaji kwenye seti kamili ya data, unavuja taarifa za tathmini. Inafaa kwenye treni, badilisha iliyobaki. [2]
Kosa la 2: kategoria zinazoingia katika machafuko 🧩
Ikiwa uchoraji wako wa kategoria utabadilika kati ya mafunzo na uhitimisho, mfumo wako unaweza kusoma ulimwengu vibaya kimya kimya. Weka urekebishaji wa ramani kupitia mabaki yaliyohifadhiwa. [2]
Kosa la 3: ongezeko la nasibu linaloingia kwenye tathmini 🎲
Mabadiliko ya nasibu ni mazuri katika mafunzo, lakini hayapaswi kuwa "yamewashwa kwa siri" unapojaribu kupima utendaji. (Nasibu inamaanisha nasibu.) [4]
Maelezo ya Mwisho 🧠✨
Usindikaji wa awali wa AI ni sanaa yenye nidhamu ya kugeuza uhalisia usioeleweka kuwa ingizo thabiti za modeli. Inashughulikia kusafisha, kusimba, kuongeza ukubwa, kuweka tokeni, kubadilisha picha, na - muhimu zaidi - mabomba na mabaki yanayoweza kurudiwa.
-
Fanya usindikaji wa awali kwa makusudi, si kwa njia ya kawaida. [2]
-
Gawanya kwanza, rekebisha mabadiliko kwenye mafunzo pekee, epuka kuvuja. [2]
-
Tumia usindikaji wa awali unaofaa kwa njia (tokeniza maandishi, mabadiliko ya picha). [3][4]
-
Fuatilia msukosuko/mtelezi wa uzalishaji ili modeli yako isiingie polepole kwenye upuuzi. [5]
Na ukikwama, jiulize:
“Je, hatua hii ya utayarishaji wa awali bado ingeeleweka ikiwa ningeiendesha kesho kwenye data mpya kabisa?”
Ikiwa jibu ni “uhh… labda?”, hiyo ndiyo dokezo lako 😬
Marejeleo
[1] scikit-learn API:
sklearn.preprocessing (encoders, scalers, normalization) [2] scikit-learn: Mitego ya kawaida - Uvujaji wa data na jinsi ya kuepuka
[3] Hati za Kukumbatia Transformers za Uso: Tokenizers (vitambulisho vya ingizo, barakoa za umakini)
[4] Hati za PyTorch Torchvision: Hubadilisha (Badilisha ukubwa/Normalize + mabadiliko yasiyopangwa)
[5] Hati za Google Cloud Vertex AI: Muhtasari wa Ufuatiliaji wa Mfano (mkengeuko wa vipengele na kuteleza)