ខ្ញុំស្គាល់អ្នកវិទ្យាសាស្ត្រទិន្នន័យជាច្រើន ហើយប្រហែលជាខ្ញុំជាម្នាក់ក្នុងចំណោមពួកគេ ដែលធ្វើការលើម៉ាស៊ីន GPU ក្នុងស្រុក ឬនិម្មិត ដែលមានទីតាំងនៅក្នុងពពក ទាំងតាមរយៈ Jupyter Notebook ឬតាមរយៈប្រភេទនៃបរិស្ថានអភិវឌ្ឍន៍ Python មួយចំនួន។ ធ្វើការអស់រយៈពេល 2 ឆ្នាំជាអ្នកអភិវឌ្ឍន៍ជំនាញក្នុង AI/ML ខ្ញុំបានធ្វើរឿងនេះយ៉ាងពិតប្រាកដ ខណៈកំពុងរៀបចំទិន្នន័យនៅលើម៉ាស៊ីនមេ ឬស្ថានីយការងារធម្មតា និងដំណើរការការបណ្តុះបណ្តាលនៅលើម៉ាស៊ីននិម្មិតជាមួយ GPU នៅក្នុង Azure ។
ជាការពិតណាស់ យើងទាំងអស់គ្នាបានឮអំពី
ទោះជាយ៉ាងណាក៏ដោយថ្មីៗនេះខ្ញុំបានរកឃើញវិធីដើម្បីចាប់ផ្តើមប្រើ Azure ML ប្រកបដោយប្រសិទ្ធភាពក្នុងការងាររបស់ខ្ញុំ! ចាប់អារម្មណ៍ពត៌មានលំអិត?
អាថ៌កំបាំងសំខាន់គឺ
ក្នុងការធ្វើដូច្នេះ អ្នកទទួលបានអត្ថប្រយោជន៍ដូចខាងក្រោមពីការប្រើប្រាស់ Azure ML៖
- អ្នកអាចធ្វើការភាគច្រើនក្នុងមូលដ្ឋាននៅលើម៉ាស៊ីនរបស់អ្នកនៅក្នុង IDE ងាយស្រួល និង ប្រើ GPU សម្រាប់តែការបណ្តុះបណ្តាលគំរូប៉ុណ្ណោះ។. ក្នុងពេលជាមួយគ្នានោះ ធនធានបណ្តុះបណ្តាលអាចកែតម្រូវដោយស្វ័យប្រវត្តិទៅនឹងបន្ទុកដែលត្រូវការ ហើយដោយកំណត់ចំនួនថ្នាំងអប្បបរមាដល់ 0 អ្នកអាចបើកដំណើរការម៉ាស៊ីននិម្មិតដោយស្វ័យប្រវត្តិ "តាមតម្រូវការ" ប្រសិនបើមានកិច្ចការបណ្តុះបណ្តាល។
- អ្នកអាចធ្វើបាន រក្សាទុកលទ្ធផលសិក្សាទាំងអស់នៅកន្លែងតែមួយរួមទាំងរង្វាស់ដែលសម្រេចបាន និងគំរូលទ្ធផល - មិនចាំបាច់មានប្រព័ន្ធ ឬការបញ្ជាទិញមួយចំនួនសម្រាប់រក្សាទុកលទ្ធផលទាំងអស់នោះទេ។
- ដូច្នេះ មនុស្សជាច្រើនអាចធ្វើការលើគម្រោងមួយ។ - ពួកគេអាចប្រើចង្កោមកុំព្យូទ័រដូចគ្នា ការពិសោធន៍ទាំងអស់នឹងត្រូវបានតម្រង់ជួរ ហើយពួកគេក៏អាចឃើញលទ្ធផលនៃការពិសោធន៍របស់គ្នាទៅវិញទៅមកផងដែរ។ សេណារីយ៉ូបែបនេះគឺមួយ។ ការប្រើប្រាស់ Azure ML ក្នុងការបង្រៀន Deep Learningជំនួសឱ្យការផ្តល់ឱ្យសិស្សម្នាក់ៗនូវម៉ាស៊ីននិម្មិតជាមួយ GPU អ្នកអាចបង្កើតចង្កោមមួយដែលនឹងត្រូវបានប្រើជាកណ្តាលដោយមនុស្សគ្រប់គ្នា។ លើសពីនេះ តារាងលទ្ធផលទូទៅដែលមានភាពត្រឹមត្រូវនៃគំរូអាចបម្រើជាធាតុប្រកួតប្រជែងដ៏ល្អ។
- ដោយប្រើ Azure ML អ្នកអាចដំណើរការការពិសោធន៍ជាបន្តបន្ទាប់បានយ៉ាងងាយស្រួល ឧ. ការបង្កើនប្រសិទ្ធភាព hyperparameter - នេះអាចត្រូវបានធ្វើដោយបន្ទាត់មួយចំនួននៃកូដ; មិនចាំបាច់ធ្វើស៊េរីនៃការពិសោធន៍ដោយដៃទេ។
ខ្ញុំសង្ឃឹមថាខ្ញុំបានបញ្ចុះបញ្ចូលអ្នកឱ្យសាកល្បង Azure ML! នេះជារបៀបចាប់ផ្តើម៖
- សូមប្រាកដថាអ្នកបានដំឡើង
កូដស្ទូឌីយោដែលមើលឃើញ ក៏ដូចជាផ្នែកបន្ថែមចូល Azure иAzure ML - ក្លូនឃ្លាំង
https://github.com/CloudAdvocacy/AzureMLStarter — វាមានកូដសាកល្បងមួយចំនួនសម្រាប់ការបណ្តុះបណ្តាលគំរូនៃការទទួលស្គាល់លេខដែលសរសេរដោយដៃនៅលើសំណុំទិន្នន័យ MNIST ។ - បើកឃ្លាំងក្លូននៅក្នុង Visual Studio Code។
- អានបន្ត!
Azure ML Workspace និង Azure ML Portal
Azure ML ត្រូវបានរៀបចំនៅជុំវិញគោលគំនិត តំបន់ការងារ - កន្លែងធ្វើការ។ ទិន្នន័យអាចត្រូវបានរក្សាទុកក្នុងកន្លែងធ្វើការ ការពិសោធន៍សម្រាប់ការបណ្តុះបណ្តាលអាចត្រូវបានផ្ញើទៅវា ហើយលទ្ធផលនៃការបណ្តុះបណ្តាល-ជាម៉ែត្រ និងគំរូលទ្ធផល-ក៏ត្រូវបានរក្សាទុកនៅទីនោះផងដែរ។ អ្នកអាចឃើញអ្វីដែលនៅខាងក្នុងកន្លែងធ្វើការដោយប្រើ
អ្នកអាចបង្កើតកន្លែងធ្វើការតាមរយៈចំណុចប្រទាក់បណ្ដាញ
az extension add -n azure-cli-ml
az group create -n myazml -l northeurope
az ml workspace create -w myworkspace -g myazml
វាក៏មានមួយចំនួនដែលទាក់ទងនឹងកន្លែងធ្វើការផងដែរ។ ធនធានកុំព្យូទ័រ (គណនា) ពេលដែលអ្នកបានបង្កើតស្គ្រីបដើម្បីបង្វឹកគំរូអ្នកអាចធ្វើបាន។ ផ្ញើការពិសោធន៍សម្រាប់ការអនុវត្ត ទៅតំបន់ការងារ និងបញ្ជាក់ ការគណនាគោលដៅ - ក្នុងករណីនេះ ស្គ្រីបនឹងត្រូវបានខ្ចប់ បើកដំណើរការក្នុងបរិយាកាសកុំព្យូទ័រដែលចង់បាន ហើយបន្ទាប់មកលទ្ធផលទាំងអស់នៃការពិសោធន៍នឹងត្រូវបានរក្សាទុកក្នុងកន្លែងធ្វើការសម្រាប់ការវិភាគ និងប្រើប្រាស់បន្ថែម។
ស្គ្រីបបណ្តុះបណ្តាលសម្រាប់ MNIST
ចូរយើងពិចារណាបញ្ហាបុរាណ
មានស្គ្រីបនៅក្នុងឃ្លាំងរបស់យើង។ train_local.py
ដែលបណ្តុះបណ្តាលគំរូតំរែតំរង់លីនេអ៊ែរសាមញ្ញបំផុតដោយប្រើបណ្ណាល័យ SkLearn ។ ជាការពិតណាស់ខ្ញុំយល់ថានេះមិនមែនជាវិធីល្អបំផុតក្នុងការដោះស្រាយបញ្ហានោះទេ យើងប្រើវាជាឧទាហរណ៍មួយ ជាវិធីសាមញ្ញបំផុត។
ស្គ្រីបដំបូងទាញយកទិន្នន័យ MNIST ពី OpenML ហើយបន្ទាប់មកប្រើថ្នាក់ LogisticRegression
ដើម្បីបណ្តុះបណ្តាលគំរូ ហើយបន្ទាប់មកបោះពុម្ពលទ្ធផលភាពត្រឹមត្រូវ៖
mnist = fetch_openml('mnist_784')
mnist['target'] = np.array([int(x) for x in mnist['target']])
shuffle_index = np.random.permutation(len(mist['data']))
X, y = mnist['data'][shuffle_index], mnist['target'][shuffle_index]
X_train, X_test, y_train, y_test =
train_test_split(X, y, test_size = 0.3, random_state = 42)
lr = LogisticRegression()
lr.fit(X_train, y_train)
y_hat = lr.predict(X_test)
acc = np.average(np.int32(y_hat == y_test))
print('Overall accuracy:', acc)
អ្នកអាចដំណើរការស្គ្រីបនៅលើកុំព្យូទ័ររបស់អ្នក ហើយក្នុងរយៈពេលពីរបីវិនាទីអ្នកនឹងទទួលបានលទ្ធផល។
ដំណើរការស្គ្រីបនៅក្នុង Azure ML
ប្រសិនបើយើងដំណើរការស្គ្រីបបណ្តុះបណ្តាលតាមរយៈ Azure ML នោះយើងនឹងមានអត្ថប្រយោជន៍សំខាន់ពីរ៖
- ដំណើរការបណ្តុះបណ្តាលលើធនធានកុំព្យូទ័រតាមអំពើចិត្ត ដែលជាធម្មតាមានផលិតភាពជាងកុំព្យូទ័រក្នុងស្រុក។ ក្នុងករណីនេះ Azure ML ខ្លួនវានឹងថែរក្សាការវេចខ្ចប់ស្គ្រីបរបស់យើងជាមួយនឹងឯកសារទាំងអស់ពីថតបច្ចុប្បន្នទៅក្នុងធុង docker ដំឡើងភាពអាស្រ័យដែលត្រូវការ ហើយផ្ញើវាទៅប្រតិបត្តិ។
- សរសេរលទ្ធផលទៅបញ្ជីឈ្មោះតែមួយនៅក្នុងកន្លែងធ្វើការ Azure ML ។ ដើម្បីទាញយកអត្ថប្រយោជន៍ពីមុខងារនេះ យើងត្រូវបន្ថែមកូដពីរបីជួរទៅស្គ្រីបរបស់យើង ដើម្បីកត់ត្រាលទ្ធផលច្បាស់លាស់៖
from azureml.core.run import Run
...
try:
run = Run.get_submitted_run()
run.log('accuracy', acc)
except:
pass
កំណែដែលត្រូវគ្នានៃស្គ្រីបត្រូវបានគេហៅថា train_universal.py
(វាត្រូវបានរចនាឡើងយ៉ាងប៉ិនប្រសប់ជាងការពិពណ៌នាខាងលើ ប៉ុន្តែមិនច្រើនទេ)។ ស្គ្រីបនេះអាចដំណើរការទាំងក្នុងមូលដ្ឋាន និងនៅលើធនធានកុំព្យូទ័រពីចម្ងាយ។
ដើម្បីដំណើរការវានៅក្នុង Azure ML ពី VS Code អ្នកត្រូវធ្វើដូចខាងក្រោម៖
-
ត្រូវប្រាកដថាផ្នែកបន្ថែម Azure ត្រូវបានភ្ជាប់ទៅការជាវរបស់អ្នក។ ជ្រើសរើសរូបតំណាង Azure ពីម៉ឺនុយខាងឆ្វេង។ ប្រសិនបើអ្នកមិនបានភ្ជាប់ទេ ការជូនដំណឹងនឹងបង្ហាញនៅជ្រុងខាងស្តាំខាងក្រោម (
ដូចនេះ ), ដោយចុចលើដែលអ្នកអាចចូលតាមរយៈកម្មវិធីរុករក។ អ្នកក៏អាចចុចផងដែរ។ បញ្ជា (Ctrl) - ប្តូរ - ទំ ដើម្បីបើកបន្ទាត់ពាក្យបញ្ជា VS Code ហើយវាយ ចូល Azure. -
បន្ទាប់ពីនោះនៅក្នុងផ្នែក Azure (រូបតំណាងនៅខាងឆ្វេង) ស្វែងរកផ្នែក ម៉ាស៊ីនរៀន:
នៅទីនេះ អ្នកគួរតែឃើញក្រុមផ្សេងគ្នានៃវត្ថុនៅខាងក្នុងកន្លែងធ្វើការ៖ ធនធានកុំព្យូទ័រ ការពិសោធន៍ជាដើម។
- ចូលទៅកាន់បញ្ជីឯកសារ ចុចកណ្ដុរស្ដាំលើស្គ្រីប
train_universal.py
ហើយជ្រើសរើស Azure ML: ដំណើរការជាការពិសោធន៍នៅក្នុង Azure.
- វានឹងត្រូវបានបន្តដោយប្រអប់ជាបន្តបន្ទាប់នៅក្នុងតំបន់បន្ទាត់ពាក្យបញ្ជា VS Code៖ បញ្ជាក់ការជាវរបស់អ្នក និងកន្លែងធ្វើការ Azure ML ហើយជ្រើសរើស បង្កើតការពិសោធន៍ថ្មី។:
-
ជ្រើសរើសដើម្បីបង្កើតធនធានកុំព្យូទ័រថ្មី។ បង្កើតកុំព្យូទ័រថ្មី។:
- គណនា កំណត់ធនធានកុំព្យូទ័រដែលការបណ្តុះបណ្តាលនឹងប្រព្រឹត្តទៅ។ អ្នកអាចជ្រើសរើសកុំព្យូទ័រមូលដ្ឋាន ឬ AmlCompute cloud cluster ។ ខ្ញុំសូមណែនាំឱ្យបង្កើតចង្កោមម៉ាស៊ីនដែលអាចធ្វើមាត្រដ្ឋានបាន។
STANDARD_DS3_v2
ជាមួយនឹងចំនួនម៉ាស៊ីនអប្បបរមា 0 (ហើយអតិបរមាអាចមាន 1 ឬច្រើនជាងនេះ អាស្រ័យលើចំណង់អាហាររបស់អ្នក)។ នេះអាចត្រូវបានធ្វើតាមរយៈចំណុចប្រទាក់ VS Code ឬពីមុនតាមរយៈML Portal .
- គណនា កំណត់ធនធានកុំព្យូទ័រដែលការបណ្តុះបណ្តាលនឹងប្រព្រឹត្តទៅ។ អ្នកអាចជ្រើសរើសកុំព្យូទ័រមូលដ្ឋាន ឬ AmlCompute cloud cluster ។ ខ្ញុំសូមណែនាំឱ្យបង្កើតចង្កោមម៉ាស៊ីនដែលអាចធ្វើមាត្រដ្ឋានបាន។
-
បន្ទាប់អ្នកត្រូវជ្រើសរើសការកំណត់ ការកំណត់រចនាសម្ព័ន្ធគណនាដែលកំណត់ប៉ារ៉ាម៉ែត្រនៃកុងដង់ដែលបានបង្កើតសម្រាប់ការបណ្តុះបណ្តាល ជាពិសេសបណ្ណាល័យចាំបាច់ទាំងអស់។ ក្នុងករណីរបស់យើង ដោយសារយើងកំពុងប្រើ Scikit Learn យើងជ្រើសរើស SkLearnហើយបន្ទាប់មកគ្រាន់តែបញ្ជាក់បញ្ជីបណ្ណាល័យដែលបានស្នើឡើងដោយចុច Enter ។ ប្រសិនបើអ្នកប្រើបណ្ណាល័យបន្ថែមណាមួយ ពួកគេត្រូវតែបញ្ជាក់នៅទីនេះ។
-
បន្ទាប់ពីនេះ បង្អួចនឹងបើកជាមួយឯកសារ JSON ដែលពិពណ៌នាអំពីការពិសោធន៍។ អ្នកអាចកែតម្រូវប៉ារ៉ាម៉ែត្រមួយចំនួននៅក្នុងវា ឧទាហរណ៍ឈ្មោះនៃការពិសោធន៍។ បន្ទាប់ពីនោះចុចលើតំណ បញ្ជូនការពិសោធន៍ នៅក្នុងឯកសារនេះ៖
- បន្ទាប់ពីបញ្ជូនការពិសោធន៍ដោយជោគជ័យតាមរយៈ VS Code នៅក្នុងតំបន់ជូនដំណឹងនៅខាងស្តាំអ្នកនឹងឃើញតំណភ្ជាប់ទៅ
វិបផតថល Azure ML ដែលជាកន្លែងដែលអ្នកអាចតាមដានស្ថានភាព និងលទ្ធផលនៃការពិសោធន៍។
ជាបន្តបន្ទាប់ អ្នកតែងតែអាចស្វែងរកវានៅក្នុងផ្នែក ការពិសោធន៍
- ប្រសិនបើអ្នកបានធ្វើការកែតម្រូវមួយចំនួនជាបន្តបន្ទាប់ចំពោះកូដ ឬប៉ារ៉ាម៉ែត្រដែលបានផ្លាស់ប្តូរ ការដំណើរការការពិសោធន៍ឡើងវិញនឹងកាន់តែលឿន និងងាយស្រួលជាងមុន។ ដោយចុចខាងស្តាំលើឯកសារ អ្នកនឹងឃើញធាតុម៉ឺនុយថ្មី។ ធ្វើម្តងទៀតការរត់ចុងក្រោយ - គ្រាន់តែជ្រើសរើសវា ហើយការពិសោធន៍នឹងចាប់ផ្តើមភ្លាមៗ៖
អ្នកតែងតែអាចស្វែងរកលទ្ធផលម៉ែត្រពីការដំណើរការទាំងអស់នៅលើ Azure ML Portal មិនចាំបាច់កត់ត្រាវាទេ។
ឥឡូវនេះអ្នកដឹងថាការសាកល្បងដែលកំពុងដំណើរការដោយប្រើ Azure ML គឺងាយស្រួល គ្មានការឈឺចាប់ និងភ្ជាប់មកជាមួយអត្ថប្រយោជន៍ដ៏គួរឱ្យរំភើបមួយចំនួន។
ប៉ុន្តែអ្នកប្រហែលជាបានកត់សម្គាល់ឃើញគុណវិបត្តិមួយចំនួន។ ជាឧទាហរណ៍ វាត្រូវចំណាយពេលយូរជាងនេះដើម្បីដំណើរការស្គ្រីប។ ជាការពិតណាស់ ការវេចខ្ចប់ស្គ្រីបទៅក្នុងកុងតឺន័រ ហើយដាក់ពង្រាយវាទៅម៉ាស៊ីនមេត្រូវការពេលវេលា។ ប្រសិនបើចង្កោមត្រូវបានកាត់បន្ថយមកត្រឹមទំហំ 0 nodes វានឹងត្រូវការពេលកាន់តែច្រើនដើម្បីចាប់ផ្តើមម៉ាស៊ីននិម្មិត ហើយអ្វីៗទាំងអស់នេះគួរឱ្យកត់សម្គាល់នៅពេលយើងពិសោធន៍លើបញ្ហាសាមញ្ញដូចជា MNIST ដែលត្រូវបានដោះស្រាយក្នុងរយៈពេលពីរបីវិនាទី។ ទោះជាយ៉ាងណាក៏ដោយ នៅក្នុងជីវិតពិត នៅពេលដែលការបណ្តុះបណ្តាលមានរយៈពេលជាច្រើនម៉ោង ឬសូម្បីតែច្រើនថ្ងៃ ឬច្រើនសប្តាហ៍ ពេលវេលាបន្ថែមនេះមិនសំខាន់ ជាពិសេសប្រឆាំងនឹងផ្ទៃខាងក្រោយនៃដំណើរការខ្ពស់ជាងនេះ ដែលចង្កោមកុំព្យូទ័រអាចផ្តល់ឱ្យបាន។
តើមានអ្វីជាបន្ទាប់?
ខ្ញុំសង្ឃឹមថាបន្ទាប់ពីអានអត្ថបទនេះ អ្នកអាចប្រើ Azure ML ក្នុងការងាររបស់អ្នក ដើម្បីដំណើរការស្គ្រីប គ្រប់គ្រងធនធានកុំព្យូទ័រ និងរក្សាទុកលទ្ធផល។ ទោះជាយ៉ាងណាក៏ដោយ Azure ML អាចផ្តល់ឱ្យអ្នកនូវអត្ថប្រយោជន៍កាន់តែច្រើន!
អ្នកអាចរក្សាទុកទិន្នន័យនៅខាងក្នុងកន្លែងធ្វើការ ដោយហេតុនេះបង្កើតឃ្លាំងកណ្តាលសម្រាប់កិច្ចការទាំងអស់របស់អ្នកដែលងាយស្រួលចូលប្រើ។ លើសពីនេះទៀត អ្នកអាចដំណើរការការពិសោធន៍ដោយប្រើ API ជំនួសឱ្យ Visual Studio Code - វាអាចមានប្រយោជន៍ជាពិសេសប្រសិនបើអ្នកត្រូវអនុវត្តការបង្កើនប្រសិទ្ធភាពប៉ារ៉ាម៉ែត្រខ្ពស់ ហើយត្រូវការដំណើរការស្គ្រីបច្រើនដងជាមួយនឹងប៉ារ៉ាម៉ែត្រផ្សេងៗគ្នា។ លើសពីនេះទៅទៀតបច្ចេកវិទ្យាពិសេសត្រូវបានបង្កើតឡើងនៅក្នុង Azure ML
ធនធានមានប្រយោជន៍
ដើម្បីស្វែងយល់បន្ថែមអំពី Azure ML អ្នកអាចរកឃើញវគ្គសិក្សា Microsoft Learn ខាងក្រោមមានប្រយោជន៍៖
ការណែនាំអំពីសេវាកម្ម Azure ML បង្កើតដំណោះស្រាយ AI ជាមួយសេវាកម្ម Azure ML បណ្តុះបណ្តាលគំរូក្នុងស្រុកដោយប្រើសេវាកម្ម Azure ML
ប្រភព: www.habr.com