Լավ, ուրեմն դուք հետաքրքրված եք «արհեստական բանականություն» կառուցելով։ Ոչ թե Հոլիվուդյան իմաստով, որտեղ այն դիտարկում է գոյությունը, այլ այնպիսին, որը կարող եք աշխատեցնել ձեր նոութբուքի վրա և որը կանխատեսումներ է անում, տեսակավորում է իրերը, գուցե նույնիսկ մի փոքր զրուցում է։ Այս ուղեցույցը՝ « Ինչպես ստեղծել արհեստական բանականություն ձեր համակարգչում» , իմ փորձն է ձեզ ոչնչից տանել դեպի այն, ինչը իրականում աշխատում է տեղական մակարդակով ։ Ակնկալեք կարճ ճանապարհներ, անկեղծ կարծիքներ և երբեմն շեղումներ, քանի որ, եկեք իրատես լինենք, մանրուքներ մշակելը երբեք մաքուր չէ։
Հոդվածներ, որոնք կարող են ձեզ դուր գալ կարդալ սրանից հետո
🔗 Ինչպես ստեղծել արհեստական բանականության մոդել. ամբողջական քայլերի բացատրություն
Արհեստական բանականության մոդելի ստեղծման հստակ վերլուծություն՝ սկզբից մինչև վերջ։
🔗 Ի՞նչ է խորհրդանշական արհեստական բանականությունը. ամեն ինչ, ինչ դուք պետք է իմանաք
Սովորեք խորհրդանշական արհեստական բանականության հիմունքները, պատմությունը և ժամանակակից կիրառությունները։
🔗 Արհեստական բանականության տվյալների պահպանման պահանջները. ինչ է ձեզ անհրաժեշտ
Հասկացեք արդյունավետ և մասշտաբային արհեստական բանականության համակարգերի համար պահեստավորման կարիքները։
Ինչո՞ւ հիմա անհանգստանալ։ 🧭
Որովհետև «միայն Google-ի մասշտաբի լաբորատորիաները կարող են արհեստական ինտելեկտով զբաղվել» դարաշրջանն անցել է։ Այսօր, սովորական նոութբուքի, որոշ բաց կոդով գործիքների և համառության շնորհիվ, դուք կարող եք ստեղծել փոքր մոդելներ, որոնք դասակարգում են էլեկտրոնային նամակները, ամփոփում տեքստը կամ պիտակավորում պատկերները։ Տվյալների կենտրոնի կարիք չկա։ Ձեզ պարզապես անհրաժեշտ է.
-
մի ծրագիր,
-
մաքուր կարգավորում,
-
և նպատակ, որը կարող եք ավարտել առանց մեքենան պատուհանից դուրս նետելու ցանկության։
Ի՞նչն է դարձնում սա արժանի հետևելու ✅
«Ինչպե՞ս ստեղծել արհեստական ինտելեկտ ձեր համակարգչում» հարցնող մարդիկ սովորաբար չեն ուզում դոկտորի աստիճան։ Նրանք ուզում են մի բան, որը կարող են իրականում աշխատեցնել։ Լավ պլանը մի քանի բան է պարունակում.
-
Սկսեք փոքրից. դասակարգեք զգացմունքները, այլ ոչ թե «լուծեք ինտելեկտը»։
-
Վերարտադրելիություն՝
կոնդակամվենվ, որպեսզի կարողանաք վաղը վերակառուցել առանց խուճապի։ -
Սարքավորումների ճշգրտություն. պրոցեսորները հարմար են scikit-learn-ի համար, գրաֆիկական պրոցեսորները՝ խորը ցանցերի համար (եթե բախտավոր լինեք) [2][3]:
-
Մաքուր տվյալներ՝ սխալ պիտակավորված անպետք տվյալներ չկան, միշտ բաժանված են train/valid/test տարբերակների։
-
Ինչ-որ բան նշանակող չափանիշներ՝ ճշգրտություն, ճշգրտություն, հետկանչ, F1: Անհավասարակշռության համար՝ ROC-AUC/PR-AUC [1]:
-
Կիսվելու միջոց՝ փոքրիկ API, CLI կամ ցուցադրական հավելված։
-
Անվտանգություն. կասկածելի տվյալների հավաքածուներ չկան, անձնական տեղեկատվության արտահոսքեր չկան, հստակ նշեք ռիսկերը [4]:
Ճիշտ արեք դրանք, և նույնիսկ ձեր «փոքր» մոդելը իրական կլինի։
Ճանապարհային քարտեզ, որը վախեցնող չի թվում 🗺️
-
Ընտրեք փոքր խնդիր + մեկ չափանիշ։
-
Տեղադրեք Python-ը և մի քանի հիմնական գրադարաններ։
-
Ստեղծեք մաքուր միջավայր (հետագայում ինքներդ ձեզ շնորհակալ կլինեք):
-
Բեռնեք ձեր տվյալների բազմությունը, ճիշտ բաժանեք։
-
Մարզեք հիմար, բայց ազնիվ բազային գիծ։
-
Փորձեք նեյրոնային ցանցը միայն այն դեպքում, եթե այն արժեք է ավելացնում։
-
Փաթեթավորեք դեմո տարբերակը։
-
Հետագայում մի քանի նշումներ պահեք, դուք շնորհակալ կլինեք։
Նվազագույն հավաքածու. չափազանց մի՛ բարդացրեք 🧰
-
Python: վերցրեք python.org կայքից։
-
Միջավայր՝ Կոնդա կամ
վենվ՝ կորիզով։ -
Նոթատետրեր՝ Յուպիտեր խաղի համար։
-
Խմբագիր՝ VS Code, բարեկամական և հզոր։
-
Հիմնական գրադարաններ
-
պանդաներ + NumPy (տվյալների հավաքագրում)
-
scikit-learn (դասական մեքենայական ուսուցում)
-
PyTorch կամ TensorFlow (խորը ուսուցում, գրաֆիկական պրոցեսորների կառուցվածքները կարևոր են) [2][3]
-
Գրկախառնվող դեմքի տրանսֆորմերներ, spaCy, OpenCV (NLP + տեսողություն)
-
-
Արագացում (ըստ ցանկության)
-
NVIDIA → CUDA կառուցվածքներ [2]
-
AMD → ROCm կառուցվածքներ [2]
-
Apple → PyTorch մետաղական backend-ով (MPS) [2]
-
⚡ Նշում. «Տեղադրման հետ կապված դժվարությունների» մեծ մասը կանհետանա, եթե պարզապես թույլ տաք պաշտոնական տեղադրողներին տալ ձեզ տեղադրման ճշգրիտ հրամանը: Պատճենեք, տեղադրեք, պատրաստ է [2][3]:
Հիմնական կանոն՝ նախ սողալ պրոցեսորի վրա, ապա՝ գրաֆիկական պրոցեսորի վրա։
Ընտրելով ձեր կույտը. դիմադրեք փայլուն իրերին 🧪
-
Աղյուսակային տվյալներ → scikit-learn: Լոգիստիկ ռեգրեսիա, պատահական անտառներ, գրադիենտային ուժեղացում:
-
Տեքստ կամ պատկերներ → PyTorch կամ TensorFlow: Տեքստի համար փոքր Transformer-ի նուրբ կարգավորումը մեծ հաղթանակ է:
-
Չաթբոտի նման →
llama.cpp-ըկարող է փոքր LLM-ներ աշխատեցնել նոութբուքերի վրա: Մի սպասեք հրաշքների, բայց այն աշխատում է նշումների և ամփոփագրերի համար [5]:
Մաքուր միջավայրի կազմակերպում 🧼
# Conda way conda create -n localai python=3.11 conda activate localai # OR venv python -m venv .venv source .venv/bin/activate # Windows՝ .venv\Scripts\activate
Այնուհետև տեղադրեք անհրաժեշտ բաղադրիչները՝
pip install numpy pandas scikit-learn jupyter pip install torch torchvision torchaudio # կամ tensorflow pip install transformers տվյալների հավաքածուներ
(GPU-ի համադրությունների համար, լրջորեն, պարզապես օգտագործեք պաշտոնական ընտրիչը [2][3]:)
Առաջին աշխատող մոդելը՝ պահեք այն փոքրիկ 🏁
Առաջինը բազային գիծն է։ CSV → հատկանիշներ + պիտակներ → լոգիստիկ ռեգրեսիա։
sklearn.linear_model ներմուծումից՝ ԼոգիստիկՌեգրեսիա ... print("Ճշգրտություն:", accuracy_score(y_test, preds)) print(classification_report(y_test, preds))
Եթե սա գերազանցում է պատահականությանը, դուք տոնում եք։ Սուրճ, թե թխվածքաբլիթ, ձեր որոշումն է ☕։
Անհավասարակշիռ դասերի համար ուշադրություն դարձրեք ճշգրտության/հիշողության + ROC/PR կորերին՝ հում ճշգրտության փոխարեն [1]:
Նեյրոնային ցանցեր (միայն եթե օգնում են) 🧠
Տեքստ ունե՞ք և ցանկանում եք դասակարգել տրամադրությունները: Կարգավորեք փոքրիկ, նախապես պատրաստված Transformer-ը: Արագ, հարմար, չի այրում ձեր սարքը:
տրանսֆորմերների ներմուծումից AutoModelForSequenceClassification ... trainer.train() print(trainer.evaluate())
Մասնագիտական խորհուրդ. սկսեք փոքր նմուշներից: Տվյալների 1%-ի վրիպազերծումը խնայում է ժամեր:
Տվյալներ. հիմունքներ, որոնք չեք կարող անտեսել 📦
-
Հանրային տվյալների հավաքածուներ՝ Kaggle, Hugging Face, ակադեմիական պահոցներ (ստուգեք լիցենզիաները):
-
Էթիկա՝ անձնական տվյալների մաքրում, իրավունքների հարգում։
-
Բաժանումներ՝ մարզում, վավերացում, փորձարկում։ Երբեք մի՛ նայեք։
-
Պիտակներ՝ հետևողականությունն ավելի կարևոր է, քան շքեղ մոդելները։
Ճշմարտության ռումբ. արդյունքների 60%-ը մաքուր պիտակներից են, այլ ոչ թե ճարտարապետական կախարդանքից։
Չափանիշներ, որոնք ձեզ ազնիվ կպահեն 🎯
-
Դասակարգում → ճշգրտություն, ճշգրտություն, հիշելիություն, F1.
-
Անհավասարակշիռ բազմություններ → ROC-AUC, PR-AUC-ն ավելի կարևոր են։
-
Ռեգրեսիա → MAE, RMSE, R²։
-
Իրականության ստուգում → աչքի մի քանի արդյունք. թվերը կարող են ստել։
Հարմար հղում՝ scikit-learn չափանիշների ուղեցույց [1]:
Արագացման խորհուրդներ 🚀
-
NVIDIA → PyTorch CUDA կառուցվածք [2]
-
AMD → ROCm [2]
-
Apple → MPS ներքին համակարգ [2]
-
TensorFlow → հետևեք GPU-ի պաշտոնական տեղադրմանը + հաստատեք [3]
Բայց մի՛ օպտիմալացրեք նախքան ձեր բազային գիծը գործարկվի։ Դա նույնն է, թե անվահեծերը փայլեցնել նախքան մեքենան անվահեծեր կունենա։
Տեղական գեներատիվ մոդելներ՝ փոքրիկ վիշապներ 🐉
-
Լեզու → քվանտացված իրավունքի կառավարման դասընթացներ
llama.cpp[5] ֆայլի միջոցով: Հարմար է նշումների կամ կոդի հուշումների համար, այլ ոչ թե խորը զրույցի համար: -
Պատկերներ → Կայուն դիֆուզիայի տարբերակներ գոյություն ունեն. ուշադիր կարդացեք լիցենզիաները։
Երբեմն փոքր սարքավորումների վրա ստեղծված, որոշակի առաջադրանքի համար հատուկ կարգավորված Transformer-ը գերազանցում է գերծանրաբեռնված LLM-ին։
Փաթեթավորման ցուցադրություններ. թող մարդիկ սեղմեն 🖥️
-
Gradio → ամենահեշտ ինտերֆեյսը։
-
FastAPI → մաքուր API։
-
Ֆլասկ → արագ սկրիպտներ։
ներմուծել gradio որպես gr clf = pipeline("զգացմունքների վերլուծություն") ... demo.launch()
Կախարդական զգացողություն է, երբ ձեր զննարկիչը ցույց է տալիս այն։
Սովորություններ, որոնք փրկում են բանականությունը 🧠
-
Git-ը՝ տարբերակի կառավարման համար։
-
MLflow կամ տետրեր՝ փորձերի հետևման համար։
-
Տվյալների տարբերակում DVC-ի կամ հեշերի միջոցով։
-
Docker-ը միացրեք, եթե ուրիշները պետք է աշխատեցնեն ձեր տվյալները։
-
Կախվածությունները ամրացնել (
requirements.txt):
Հավատացեք ինձ, ապագա, դուք շնորհակալ կլինեք։
Խնդիրների լուծում. հաճախակի «ուֆ» պահեր 🧯
-
Տեղադրման սխալներ՞։ Պարզապես մաքրեք միջավայրը և վերակառուցեք այն։
-
Գրաֆիկական պրոցեսորը չի՞ հայտնաբերվել։ Դրայվերների անհամապատասխանություն, ստուգեք տարբերակները [2][3]:
-
Մոդելը չի՞ սովորում։ Նվազեցրեք ուսուցման մակարդակը, պարզեցրեք կամ մաքրեք պիտակները։
-
Չափից շատ տվյալներ՞։ Կանոնավորե՞լ, դուրս մղե՞լ, թե՞ պարզապես ավելի շատ տվյալներ։
-
Չափազանց լավ չափանիշներ են՞։ Դուք արտահոսեցիք թեստային հավաքածուն (դա տեղի է ունենում ավելի հաճախ, քան դուք կարծում եք)։
Անվտանգություն + պատասխանատվություն 🛡️
-
Անձնական տվյալների պաշտպանության մասին տեղեկատվությունը (PII) հեռացնելը։
-
Հարգեք լիցենզիաները։
-
Տեղականը նախ = գաղտնիություն + վերահսկողություն, բայց հաշվողական սահմանափակումներով։
-
Փաստաթղթավորեք ռիսկերը (արդարություն, անվտանգություն, դիմադրողականություն և այլն) [4]:
Հարմար համեմատական աղյուսակ 📊
| Գործիք | Լավագույնը | Ինչու՞ օգտագործել այն |
|---|---|---|
| scikit-learn | Աղյուսակային տվյալներ | Արագ հաղթանակներ, մաքուր API 🙂 |
| PyTorch | Պատվերով պատրաստված խորը ցանցեր | Ճկուն, հսկայական համայնք |
| TensorFlow | Արտադրական խողովակաշարեր | Էկոհամակարգ + մատուցման տարբերակներ |
| Տրանսֆորմերներ | Տեքստային առաջադրանքներ | Նախապես պատրաստված մոդելները խնայում են հաշվարկները |
| ՍպաՍի | NLP խողովակաշարեր | Արդյունաբերական հզորություն, պրագմատիկ |
| Գրադիո | Դեմոներ/Օպերատորներ | 1 ֆայլ → UI |
| Արագ API | API-ներ | Արագություն + ավտոմատ փաստաթղթեր |
| ONNX-ի աշխատանքային ժամանակ | Խաչաձև շրջանակների օգտագործումը | Փոխադրելի + արդյունավետ |
| լամա.cpp | Փոքր տեղական իրավունքի մագիստրոսներ | Պրոցեսորի համար հարմար քվանտացում [5] |
| Դոկեր | Համօգտագործման միջավայրեր | «Աշխատում է ամենուր» |
Երեք ավելի խորը սուզում (դուք իրականում կօգտագործեք) 🏊
-
Աղյուսակների համար հատկանիշների ինժեներիա → նորմալացում, մեկանգամյա օգտագործում, ծառի մոդելների փորձարկում, խաչաձև վավերացում [1]:
-
Տեքստի համար ուսուցման փոխանցում → փոքր տրանսֆորմերների նուրբ կարգավորում, հաջորդականության երկարությունը պահպանել համեստ, F1՝ հազվագյուտ դասերի համար [1]:
-
Տեղական եզրակացության օպտիմալացում → քվանտացում, ONNX-ի արտահանում, քեշավորման տոկենիզատորներ։
Դասական թակարդներ 🪤
-
Շինարարությունը չափազանց մեծ է, չափազանց վաղ։
-
Անտեսելով տվյալների որակը։
-
Թեստի բաժանումը բաց թողնելը։
-
Կույր պատճեն-տեղադրման կոդավորում։
-
Ոչինչ չփաստաթղթավորելով։
Նույնիսկ README-ն խնայում է ժամեր անց։
Ժամանակի արժանի ուսումնական ռեսուրսներ 📚
-
Պաշտոնական փաստաթղթեր (PyTorch, TensorFlow, scikit-learn, Transformers):
-
Google ML արագացված դասընթաց, DeepLearning.AI։
-
OpenCV փաստաթղթեր տեսողության հիմունքների համար։
-
spaCy-ի օգտագործման ուղեցույց NLP խողովակաշարերի համար։
Փոքրիկ կյանքի հնարք. ձեր GPU տեղադրման հրամանը ստեղծող պաշտոնական տեղադրողները կյանք փրկողներ են [2][3]:
Ամբողջը միասին հավաքելով 🧩
-
Նպատակ → դասակարգել աջակցության տոմսերը 3 տեսակի։
-
Տվյալներ → CSV արտահանում, անանունացում, բաժանում։
-
Բազային → scikit-learn TF-IDF + լոգիստիկ ռեգրեսիա։
-
Թարմացում → Տրանսֆորմատորի նուրբ կարգավորում, եթե բազային գիծը կանգ է առնում։
-
Դեմո → Gradio տեքստային տուփի հավելված։
-
Նավ → Docker + README։
-
Իտերատ → սխալների ուղղում, վերանվանում, կրկնություն:
-
Պաշտպանություն → փաստաթղթերի ռիսկեր [4]:
Դա ձանձրալիորեն արդյունավետ է։
Անկեղծ ասած 🎂
Սովորեք, թե ինչպես ստեղծել արհեստական բանականություն ձեր համակարգչի վրա = ընտրեք մեկ փոքրիկ խնդիր, կառուցեք սկզբնական գիծ, զարգացրեք միայն այն դեպքում, երբ դա կօգնի, և պահպանեք ձեր կարգավորումը վերարտադրելի։ Կատարեք դա երկու անգամ, և դուք ձեզ կզգաք կոմպետենտ։ Կատարեք դա հինգ անգամ, և մարդիկ կսկսեն ձեզանից օգնություն խնդրել, ինչը գաղտնիորեն զվարճալի մասն է։
Եվ այո, երբեմն դա նման է տոստերին բանաստեղծություն գրել սովորեցնելուն։ Ոչինչ։ Շարունակեք փորձել։ 🔌📝
Հղումներ
[1] scikit-learn — Չափորոշիչներ և մոդելի գնահատում. հղում
[2] PyTorch — Տեղական տեղադրման ընտրիչ (CUDA/ROCm/Mac MPS). հղում
[3] TensorFlow — Տեղադրում + GPU ստուգում. հղում
[4] NIST — Արհեստական բանականության ռիսկերի կառավարման շրջանակ. հղում
[5] llama.cpp — Տեղական LLM պահոց. հղում