Ի՞նչ է արհեստական ​​բանականության նախնական մշակումը։

Ի՞նչ է արհեստական ​​բանականության նախնական մշակումը։

Արհեստական ​​բանականության նախնական մշակումը այն ամենն է, ինչ դուք անում եք հում տվյալների հետ՝ մարզումից կամ եզրակացությունից առաջ (և երբեմն՝ դրա ընթացքում), որպեսզի մոդելը կարողանա իրականում սովորել դրանից։ Ոչ թե պարզապես «մաքրում»։ Դա տվյալների մաքրում, ձևավորում, մասշտաբավորում, կոդավորում, լրացում և փաթեթավորում է՝ հետևողական ներկայացման մեջ, որը հետագայում աննկատ չի խափանի ձեր մոդելը։ [1]

Հոդվածներ, որոնք կարող են ձեզ դուր գալ կարդալ սրանից հետո.

🔗 Ինչպես ստուգել արհեստական ​​բանականության մոդելները իրական աշխարհի կատարողականի համար
Գործնական մեթոդներ ճշգրտությունը, կայունությունը և կողմնակալությունը արագ գնահատելու համար։.

🔗 Տեքստի խոսքի փոխակերպումը արհեստական ​​բանականություն է, և ինչպե՞ս է այն աշխատում
Բացատրում է TTS-ի հիմունքները, հիմնական կիրառությունները և այսօրվա տարածված սահմանափակումները։.

🔗 Կարո՞ղ է արդյոք արհեստական ​​բանականությունը այսօր ճշգրիտ կարդալ շեղագիր ձեռագիրը
Ներառում է ճանաչման մարտահրավերները, լավագույն գործիքները և ճշգրտության խորհուրդները։.

🔗 Որքան ճշգրիտ է արհեստական ​​բանականությունը տարածված առաջադրանքներում
Բաշխում է ճշգրտության գործոնները, չափորոշիչները և իրական աշխարհի հուսալիությունը։.


Արհեստական ​​բանականության նախնական մշակում պարզ լեզվով (և այն, ինչ այն չէ) 🤝

Արհեստական ​​բանականության նախնական մշակումը հում մուտքային տվյալների (աղյուսակներ, տեքստ, պատկերներ, գրանցամատյաններ) փոխակերպումն է մոդելի համար պատրաստ տարրերի: Եթե հում տվյալները խառնաշփոթ ավտոտնակ են, նախնական մշակումը նշանակում է, որ դուք պիտակավորում եք տուփերը, նետում կոտրված աղբը և դարսում իրերը, որպեսզի կարողանաք իրականում անցնել դրանց միջով առանց վնասվածքների:

Խնդիրը մոդելը չէ։ Խնդիրն այն է, որ մոդելը հնարավոր է դարձնում։

  • կատեգորիաները թվերի վերածելը (մեկական, կարգական և այլն) [1]

  • մեծ թվային միջակայքերի մասշտաբավորումը նորմալ միջակայքերի (ստանդարտացում, նվազագույն-առավելագույն և այլն) [1]

  • տեքստի տոկենավորում մուտքագրման ID-ների (և սովորաբար ուշադրության դիմակի) մեջ [3]

  • պատկերների չափերի փոփոխություն/կտրում և դետերմինիստական ​​ընդդեմ պատահական ձևափոխությունների համապատասխան կիրառում [4]

  • կրկնվող խողովակաշարերի կառուցում, որպեսզի ուսուցումը և «իրական կյանքի» մուտքային տվյալները չտարբերվեն աննկատելի ձևերով [2]

Մի փոքրիկ գործնական նշում. «նախնական մշակումը» ներառում է այն ամենը, ինչ տեղի է ունենում մոդելի կողմից մուտքային տվյալները տեսնելուց առաջ ։ Որոշ թիմեր սա բաժանում են «հատկանիշների ինժեներիայի» և «տվյալների մաքրման», բայց իրական կյանքում այդ սահմանները մշուշոտ են։

 

Արհեստական ​​բանականության նախնական մշակում

Ինչու է արհեստական ​​բանականության նախնական մշակումն ավելի կարևոր, քան մարդիկ խոստովանում են 😬

Մոդելը նախշերի համապատասխանեցման միջոց է, այլ ոչ թե մտքերի ընթերցող։ Եթե ձեր մուտքային տվյալները անհամապատասխան են, մոդելը սովորում է անհամապատասխան կանոններ։ Դա փիլիսոփայական չէ, այլ ցավալիորեն բառացի։.

Նախնական մշակումը կօգնի ձեզ

  • Բարելավեք ուսուցման կայունությունը ՝ այնպիսի հատկանիշներ տեղադրելով այնպիսի ներկայացումների մեջ, որոնք գնահատողները կարող են հուսալիորեն օգտագործել (հատկապես, երբ խոսքը մասշտաբավորման/կոդավորման մասին է): [1]

  • Նվազեցրեք աղմուկը ՝ անկանոն իրականությունը ներկայացնելով այնպիսի տեսքի, որից մոդելը կարող է ընդհանրացնել (տարօրինակ արտեֆակտներ անգիր անելու փոխարեն):

  • Կանխել լուռ խափանումների ռեժիմները, ինչպիսիք են արտահոսքը և մարզման/մատուցման անհամապատասխանությունները (այն տեսակը, որը «հիանալի» է թվում վավերացման ժամանակ, ապա արտադրության ժամանակ՝ դեմքի ամրացումներ): [2]

  • Արագացրեք իտերացիան, քանի որ կրկնվող փոխակերպումները շաբաթվա ամեն օր ավելի հեշտ են, քան տետրերի վրա աշխատելը։

Բացի այդ, այստեղից է գալիս «մոդելային կատարողականի» մեծ մասը։ Օրինակ… զարմանալիորեն շատ։ Երբեմն դա անարդար է թվում, բայց դա իրականությունն է 🙃


Ի՞նչն է դարձնում արհեստական ​​բանականության նախնական մշակման խողովակաշարը լավը ✅

Նախնական մշակման «լավ տարբերակը» սովորաբար ունի հետևյալ հատկանիշները՝

  • Վերարտադրելի ՝ նույն մուտքը → նույն ելքը (առանց խորհրդավոր պատահականության, եթե դա միտումնավոր լրացում չէ):

  • Գնացքի սպասարկման հետևողականություն . մարզման ժամանակ ձեր արածը նույն կերպ է կիրառվում եզրակացության ժամանակ (նույն տեղադրված պարամետրերը, նույն կատեգորիայի քարտեզները, նույն տոկենիզատորի կոնֆիգուրացիան և այլն): [2]

  • Անվտանգ է արտահոսքի դեմ . գնահատման/փորձարկման մեջ ոչինչ չի ազդում որևէ համապատասխանության քայլի վրա: (Ավելին այս թակարդի մասին մի փոքր ուշ): [2]

  • Դիտարկելի . դուք կարող եք ստուգել, ​​թե ինչ է փոխվել (հատկանիշների վիճակագրություն, բացակայող տարրեր, կատեգորիաների քանակ), այնպես որ վրիպազերծումը vibes-ի վրա հիմնված ինժեներիա չէ։

final_v7_really_final_ok անունով տետրերի բջիջների կույտ է … դուք գիտեք, թե ինչպես է դա։ Այն աշխատում է մինչև այն դադարի աշխատել 😬


Արհեստական ​​բանականության նախնական մշակման հիմնական կառուցվածքային բլոկները 🧱

Պատկերացրեք նախնական մշակումը որպես շինարարական բլոկների ամբողջություն, որոնք դուք միավորում եք խողովակաշարի մեջ։.

1) Մաքրում և վավերացում 🧼

Տիպիկ առաջադրանքներ՝

  • հեռացնել կրկնօրինակները

  • մշակել բացակայող արժեքները (բացակայությունները հանել, վերագրել կամ ներկայացնել բացահայտորեն)

  • կիրառել տեսակներ, միավորներ և միջակայքեր

  • հայտնաբերել սխալ մուտքագրված տվյալները

  • ստանդարտացնել տեքստի ձևաչափերը (սպիտակ տարածություններ, գրատախտակի կանոններ, Յունիկոդի առանձնահատկություններ)

Այս մասը հմայիչ չէ, բայց կանխում է չափազանց հիմար սխալները։ Սիրով եմ ասում սա։.

2) Կատեգորիկ տվյալների կոդավորում 🔤

Մոդելների մեծ մասը չի կարող ուղղակիորեն օգտագործել raw տողեր, ինչպիսիք են "red" կամ "premium_user" :

Ընդհանուր մոտեցումներ

  • Միակողմանի կոդավորում (կատեգորիա → երկուական սյուներ) [1]

  • Դասային կոդավորում (կատեգորիա → ամբողջ թիվ ID) [1]

Հիմնականը այն չէ, թե որ կոդավորիչն եք ընտրում, այլ այն, որ քարտեզագրումը մնա հաստատուն և «չփոխի ձևը» մարզման և եզրակացության միջև ընկած ժամանակահատվածում։ Ահա թե ինչպես եք ստանում մի մոդել, որը լավ տեսք ունի օֆլայն ռեժիմում և գործում է որպես ուրվական առցանց։ [2]

3) Հատկանիշների մասշտաբավորում և նորմալացում 📏

Մասշտաբավորումը կարևոր է, երբ հատկանիշները գտնվում են խիստ տարբեր միջակայքերում։.

Երկու դասականներ՝

  • Ստանդարտացում . միջինի հեռացում և միավորային շեղման մասշտաբ [1]

  • Նվազագույն-առավելագույն մասշտաբավորում . մասշտաբավորել յուրաքանչյուր հատկանիշը որոշակի միջակայքում [1]

Նույնիսկ երբ դուք օգտագործում եք «հիմնականում հաղթահարող» մոդելներ, մասշտաբավորումը հաճախ խողովակաշարերի մասին դատողությունները դարձնում է ավելի հեշտ և դժվար՝ պատահաբար խափանվելը։.

4) Հատկանիշների ինժեներիա (հայտնի է նաև որպես օգտակար խաբեություն) 🧪

Ահա թե որտեղ դուք մոդելի աշխատանքը հեշտացնում եք՝ ստեղծելով ավելի լավ ազդանշաններ։

  • հարաբերակցություններ (սեղմումներ / դիտումներ)

  • շարժական պատուհաններ (վերջին N օրերը)

  • քանակ (միջոցառումների քանակը մեկ օգտատիրոջ համար)

  • լոգարիթմական ձևափոխություններ ծանր պոչավոր բաշխումների համար

Այստեղ արվեստ կա։ Երբեմն դու ստեղծում ես հոդված, հպարտանում ես… և դա ոչինչ չի տալիս։ Կամ ավելի վատը՝ ցավեցնում է։ Դա նորմալ է։ Մի՛ կապվիր հոդվածների հետ՝ դրանք քեզ չեն սիրում 😅

5) Տվյալների ճիշտ բաժանում ✂️

Սա ակնհայտ է հնչում, մինչև որ այլևս ակնհայտ չէ

  • iid տվյալների պատահական բաժանումներ

  • ժամանակային շարքերի ժամանակի վրա հիմնված բաժանումներ

  • խմբավորված բաժանումներ, երբ միավորները կրկնվում են (օգտատերեր, սարքեր, հիվանդներ)

Եվ ամենակարևորը՝ բաժանեք նախնական մշակումը, որը սովորում է տվյալներից, նախքան այն տեղավորելը ։ Եթե ձեր նախնական մշակման քայլը «սովորում է» պարամետրեր (օրինակ՝ միջոցներ, բառապաշարներ, կատեգորիաների քարտեզներ), այն պետք է սովորի դրանք միայն վարժեցման միջոցով։ [2]


Արհեստական ​​բանականության նախնական մշակում ըստ տվյալների տեսակի՝ աղյուսակային, տեքստային, պատկերային 🎛️

Նախնական մշակումը փոխում է ձևը՝ կախված նրանից, թե ինչ եք մատակարարում մոդելին։.

Աղյուսակային տվյալներ (աղյուսակներ, գրանցամատյաններ, տվյալների բազաներ) 📊

Հաճախակի քայլեր՝

  • բացակայող արժեքի ռազմավարություն

  • կատեգորիկ կոդավորում [1]

  • թվային սյուների մասշտաբավորում [1]

  • անհամապատասխանությունների մշակում (տիրույթի կանոնները մեծ մասամբ գերազանցում են «պատահական կտրմանը»)

  • ստացված հատկանիշներ (ագրեգացիաներ, լագեր, շարժվող վիճակագրություն)

Գործնական խորհուրդ. հստակ սահմանեք սյունակների խմբերը (թվային vs կատեգորիկ vs նույնականացուցիչներ): Ձեր ապագա «ես»-ը շնորհակալ կլինի ձեզ:.

Տեքստային տվյալներ (NLP) 📝

Տեքստի նախնական մշակումը հաճախ ներառում է

  • տոկենների/ենթաբառերի վերածում

  • փոխակերպում մուտքային ID-ների

  • լրացում/կրճատում

  • ուշադրության դիմակների պատրաստում խմբաքանակների համար [3]

Փոքրիկ կանոն, որը խնայում է ձեր ջանքերը. տրանսֆորմերների վրա հիմնված կարգավորումների համար հետևեք մոդելի համար նախատեսված տոկենիզատորների կարգավորումներին և մի՛ շարժվեք ազատ ոճով, եթե պատճառ չունեք: Ազատ ոճով դուք ստանում եք «մարզվում է, բայց տարօրինակ է» պատասխանը:

Պատկերներ (համակարգչային տեսողություն) 🖼️

Տիպիկ նախնական մշակում

  • չափափոխել / կտրել համապատասխան ձևերի համար

  • գնահատման համար դետերմինիստական ​​​​ձևափոխություններ

  • պատահական փոխակերպումներ մարզման ընդլայնման համար (օրինակ՝ պատահական կտրում) [4]

Մի մանրուք, որը մարդիկ անտեսում են. «պատահական փոխակերպումները» պարզապես տրամադրություն չեն. դրանք բառացիորեն նմուշառում են պարամետրերը ամեն անգամ, երբ դրանք կանչվում են: Հիանալի է բազմազանության մարզման համար, բայց սարսափելի է գնահատման համար, եթե մոռանաք անջատել պատահականությունը: [4]


Թակարդը, որի մեջ ընկնում են բոլորը. տվյալների արտահոսք 🕳️🐍

Արտահոսքը տեղի է ունենում, երբ գնահատման տվյալներից տեղեկատվությունը աննկատ անցնում է վերապատրաստման փուլ՝ հաճախ նախնական մշակման միջոցով։ Այն կարող է ձեր մոդելը կախարդական տեսք հաղորդել վավերացման ընթացքում, ապա հիասթափեցնել ձեզ իրական աշխարհում։.

Արտահոսքի տարածված ձևերը

  • մասշտաբավորում՝ օգտագործելով ամբողջական տվյալների հավաքածուի վիճակագրություն (միայն մարզման փոխարեն) [2]

  • Շենքերի կատեգորիայի քարտեզներ՝ օգտագործելով գնացք+փորձարկում միասին [2]

  • ցանկացած fit() կամ fit_transform() քայլ, որը «տեսնում է» թեստային հավաքածուն [2]

Հիմնական կանոն (պարզ, դաժան, արդյունավետ)

  • Հարմար ունեցող ցանկացած բան պետք է հարմար լինի միայն մարզումների ժամանակ։

  • Այնուհետև դուք փոխակերպման վավերացում/փորձարկում՝ օգտագործելով այդ տեղադրված տրանսֆորմատորը։ [2]

Եվ եթե ուզում եք իմանալ, թե «որքան վատ կարող է լինել», ապա scikit-learn-ի սեփական փաստաթղթերը ցույց են տալիս արտահոսքի օրինակ, որտեղ նախնական մշակման սխալ հերթականությունը պատահական թիրախների վրա տալիս է մոտ 0.76 , ապա արտահոսքը շտկելուց հետո այն կրկին նվազում է մինչև ~ 0.5 : Ահա թե որքան համոզիչ սխալ կարող է թվալ արտահոսքը: [2]


Նախամշակումը արտադրության մեջ մտցնելը առանց քաոսի 🏗️

Շատ մոդելներ արտադրության մեջ ձախողվում են ոչ թե այն պատճառով, որ մոդելը «վատ» է, այլ այն պատճառով, որ մուտքային իրականությունը փոխվում է, կամ ձեր խողովակաշարը փոխվում է։

Արտադրական նախնական մշակումը սովորաբար ներառում է

  • Պահպանված արտեֆակտներ (կոդավորիչի մապինգներ, մասշտաբավորիչի պարամետրեր, տոկենիզատորի կոնֆիգուրացիա), այնպես որ եզրակացությունը օգտագործում է ճիշտ նույն սովորած փոխակերպումները [2]

  • Խիստ մուտքագրման պայմանագրեր (սպասվող սյուներ/տեսակներ/միջակայքեր)

  • Թեքության և շեղման մոնիթորինգ , քանի որ արտադրության տվյալները կարող են թափառել [5]

Եթե ​​ցանկանում եք կոնկրետ սահմանումներ. Google-ի Vertex AI Model Monitoring-ը տարբերակում է ուսուցման-ծառայության շեղումը (արտադրության բաշխումը շեղվում է ուսուցումից) և եզրակացության շեղումը (արտադրության բաշխումը փոխվում է ժամանակի ընթացքում) և աջակցում է թե՛ կատեգորիկ, թե՛ թվային հատկանիշների մոնիթորինգը: [5]

Որովհետև անակնկալները թանկ են։ Եվ ոչ թե զվարճալի տեսակի։.


Համեմատական ​​աղյուսակ. նախնական մշակման + մոնիթորինգի տարածված գործիքներ (և ում համար են դրանք նախատեսված) 🧰

Գործիք / գրադարան Լավագույնը Գինը Ինչու է այն աշխատում (և մի փոքր անկեղծություն)
scikit-learn նախնական մշակում Աղյուսակային ML խողովակաշարեր Անվճար Solid կոդավորիչներ + սկալերներ (OneHotEncoder, StandardScaler և այլն) և կանխատեսելի վարքագիծ [1]
Գրկախառնվող դեմքի տոկենիզատորներ NLP մուտքագրման նախապատրաստում Անվճար Ստեղծում է մուտքային ID-ներ + ուշադրության դիմակներ՝ հետևողականորեն բոլոր փորձարկումներում/մոդելներում [3]
Torchvision-ը փոխակերպում է Տեսողության վերափոխում + ուժեղացում Անվճար Մաքուր եղանակ՝ դետերմինիստական ​​և պատահական ձևափոխությունները մեկ խողովակաշարում խառնելու համար [4]
Vertex AI մոդելի մոնիթորինգ Արտադրանքի շեղման/թեքության հայտնաբերում Վճարովի (ամպային) Մոնիտորները ներառում են թեքություն/շեղում և զգուշացումներ, երբ շեմերը գերազանցվում են [5]:

(Այո, սեղանին դեռ կարծիքներ կան։ Բայց գոնե դրանք անկեղծ կարծիքներ են 😅)


Գործնական նախնական մշակման ստուգաթերթիկ, որը կարող եք իրականում օգտագործել 📌

Մարզումից առաջ

  • Սահմանեք մուտքագրման սխեմա (տեսակներ, միավորներ, թույլատրելի միջակայքեր)

  • Աուդիտի բացակայող արժեքներ և կրկնօրինակներ

  • Տվյալները ճիշտ բաժանեք (պատահական / ժամանակի վրա հիմնված / խմբավորված)

  • Հարմարեցման նախնական մշակումը միայն մարզման ( fit / fit_transform մնում է մարզման ընթացքում) [2]

  • Պահպանեք նախնական մշակման արտեֆակտները, որպեսզի եզրակացությունը կարողանա վերօգտագործել դրանք [2]

Մարզման ընթացքում

  • Կիրառել պատահական լրացում միայն անհրաժեշտության դեպքում (սովորաբար միայն մարզումների բաժանում) [4]

  • Պահպանեք գնահատման նախնական մշակումը դետերմինիստական ​​[4]

  • Հետևեք նախնական մշակման փոփոխություններին, ինչպիսիք են մոդելի փոփոխությունները (քանի որ դրանք այդպիսին են)

Տեղակայումից առաջ

  • Համոզվեք, որ եզրակացությունը օգտագործում է նույնական նախնական մշակման ուղին և արտեֆակտները [2]

  • Կարգավորեք շեղման/շեղման մոնիթորինգը (նույնիսկ հիմնական գործառույթների բաշխման ստուգումները մեծ դեր են խաղում) [5]


Խորը ուսումնասիրություն. նախնական մշակման տարածված սխալներ (և ինչպես խուսափել դրանցից) 🧯

Սխալ 1. «Ես պարզապես արագ ամեն ինչ կկարգավորեմ» 😵

Եթե ​​դուք հաշվարկում եք մասշտաբային պարամետրերը ամբողջ տվյալների բազմության վրա, ապա դուք արտահոսում եք գնահատման տեղեկատվություն: Տեղավորեք գնացքի մեջ, մնացածը վերափոխեք: [2]

Սխալ 2. կատեգորիաները քաոսի մեջ են ընկնում 🧩

Եթե ​​ձեր կատեգորիայի քարտեզագրումը տատանվում է մարզման և եզրակացության միջև, ձեր մոդելը կարող է աննկատելիորեն սխալ կարդալ աշխարհը։ Պահպանեք քարտեզագրումները շտկված պահպանված արտեֆակտների միջոցով։ [2]

Սխալ 3. պատահական լրացումը ներխուժում է գնահատման մեջ 🎲

Պատահական փոխակերպումները հիանալի են մարզումների ժամանակ, բայց դրանք չպետք է «գաղտնի միացված» լինեն, երբ փորձում եք չափել կատարողականը: (Պատահական նշանակում է պատահական): [4]


Վերջնական դիտողություններ 🧠✨

Արհեստական ​​​​ինտելեկտի նախնական մշակումը անկարգ իրականությունը հետևողական մոդելային մուտքային տվյալների վերածելու կարգապահ արվեստ է: Այն ներառում է մաքրում, կոդավորում, մասշտաբավորում, տոկենիզացիա, պատկերի ձևափոխություններ և, ամենակարևորը, կրկնվող խողովակաշարեր և արտեֆակտներ:

  • Նախնական մշակումը կատարեք միտումնավոր, այլ ոչ թե պատահականորեն։ [2]

  • Սկզբում բաժանեք, միայն մարզման ընթացքում համապատասխանեցրեք ձևափոխությունները, խուսափեք արտահոսքից։ [2]

  • Օգտագործեք մոդալությանը համապատասխան նախնական մշակում (տեքստի համար տոկենիզատորներ, պատկերների համար ձևափոխություններ): [3][4]

  • Հետևեք արտադրության շեղմանը/շեղմանը, որպեսզի ձեր մոդելը դանդաղորեն չշեղվի անիմաստության մեջ։ [5]

Եվ եթե երբևէ դժվարության մեջ հայտնվեք, ինքներդ ձեզ հարցրեք.
«Այս նախնական մշակման քայլը դեռ իմաստ կունենա՞ր, եթե վաղը այն գործարկեի նոր տվյալների վրա»։
Եթե պատասխանը «ըհը… գուցե՞» է, դա ձեր հուշումն է 😬


Հղումներ

[1] scikit-learn API:
sklearn.preprocessing (կոդավորիչներ, սկալերներ, նորմալացում) [2] scikit-learn: Տարածված թակարդներ - Տվյալների արտահոսք և դրանից խուսափելու եղանակներ
[3] Hugging Face Transformers փաստաթղթեր. Տոկենիզատորներ (մուտքագրման ID-ներ, ուշադրության դիմակներ)
[4] PyTorch Torchvision փաստաթղթեր. Փոխակերպումներ (չափափոխում/նորմալացում + պատահական փոխակերպումներ)
[5] Google Cloud Vertex AI փաստաթղթեր. Մոդելի մոնիթորինգի ակնարկ (հատկանիշների թեքություն և շեղում)

Գտեք արհեստական ​​բանականության վերջին նորույթները պաշտոնական արհեստական ​​բանականության օգնականների խանութում

Մեր մասին

Վերադառնալ բլոգ