මම බොහෝ දත්ත විද්යාඥයන් හඳුනමි - සමහර විට මම ඔවුන්ගෙන් කෙනෙකි - GPU යන්ත්රවල, දේශීය හෝ අතථ්ය, වලාකුළෙහි පිහිටා ඇති, එක්කෝ Jupyter Notebook හරහා හෝ යම් ආකාරයක Python සංවර්ධන පරිසරයක් හරහා වැඩ කරන. ප්රවීණ AI/ML සංවර්ධකයෙකු ලෙස වසර 2ක් වැඩ කරමින්, මම මෙය හරියටම කළේ, සාමාන්ය සේවාදායකයක් හෝ වැඩපොළක් මත දත්ත සකස් කරමින්, සහ Azure හි GPU එකක් සහිත අතථ්ය යන්ත්රයක පුහුණුව ධාවනය කරන අතරතුරයි.
ඇත්ත වශයෙන්ම, අපි කවුරුත් අසා ඇත්තෙමු
කෙසේ වෙතත්, මම මෑතකදී මගේ කාර්යයේදී Azure ML ඵලදායී ලෙස භාවිතා කිරීම ආරම්භ කිරීමට ක්රමයක් සොයාගත්තා! විස්තර ගැන උනන්දුද?
ප්රධාන රහස වන්නේ
එසේ කිරීමෙන්, Azure ML භාවිතා කිරීමෙන් ඔබට පහත ප්රතිලාභ ලැබේ:
- ඔබට පහසු IDE එකකින් ඔබේ පරිගණකයේ බොහෝ වේලාවක් දේශීයව වැඩ කළ හැක, සහ ආදර්ශ පුහුණුව සඳහා පමණක් GPU භාවිතා කරන්න. ඒ අතරම, පුහුණු සම්පත් සංචිතය ස්වයංක්රීයව අවශ්ය බරට ගැලපිය හැකි අතර, අවම නෝඩ් ගණන 0 දක්වා සැකසීමෙන්, පුහුණු කාර්යයන් ඉදිරියේ "ඉල්ලුම මත" අථත්ය යන්ත්රය ස්වයංක්රීයව ආරම්භ කළ හැකිය.
- ඔබට පුළුවන් සියලුම ඉගෙනුම් ප්රතිඵල එක තැනක ගබඩා කරන්න, සාක්ෂාත් කර ගත් මිනුම් සහ ප්රතිඵල ආකෘති ඇතුළුව - සියලු ප්රතිඵල ගබඩා කිරීම සඳහා යම් ආකාරයක පද්ධතියක් හෝ නියෝගයක් ඉදිරිපත් කිරීම අවශ්ය නොවේ.
- ඒ සමගම එකම ව්යාපෘතියේ කිහිප දෙනෙකුට වැඩ කළ හැකිය - ඔවුන්ට එකම පරිගණක පර්ෂදයක් භාවිතා කළ හැකිය, සියලු අත්හදා බැලීම් පෝලිම් කරනු ඇත, සහ එකිනෙකාගේ අත්හදා බැලීම්වල ප්රතිඵල ද ඔවුන්ට දැක ගත හැකිය. එවැනි එක් ජවනිකාවකි ගැඹුරු ඉගෙනීම ඉගැන්වීමේදී Azure ML භාවිතා කිරීමසෑම සිසුවෙකුටම GPU එකක් සහිත අතථ්ය යන්ත්රයක් ලබා දෙනවා වෙනුවට, ඔබට මධ්යස්ථව භාවිතා කරන එක් පොකුරක් සෑදිය හැක. මීට අමතරව, ආදර්ශ නිරවද්යතාවයෙන් යුත් සාමාන්ය ප්රතිඵල වගුවක් හොඳ තරඟකාරී අංගයක් ලෙස සේවය කළ හැකිය.
- Azure ML සමඟ, ඔබට පහසුවෙන් අත්හදා බැලීම් මාලාවක් පැවැත්විය හැකිය, උදාහරණයක් ලෙස hyperparameter ප්රශස්තකරණය - මෙය කේත රේඛා කිහිපයකින් කළ හැකිය, අතින් අත්හදා බැලීම් මාලාවක් සිදු කිරීමට අවශ්ය නොවේ.
Azure ML උත්සාහ කිරීමට මම ඔබට ඒත්තු ගැන්වූ බව මම විශ්වාස කරමි! ආරම්භ කරන්නේ කෙසේද යන්න මෙන්න:
- ඔබ සවි කර ඇති බවට වග බලා ගන්න
දෘශ්ය ශබ්දාගාර කේතය , මෙන්ම දිගුAzure පුරනය වන්න иAzureML - ගබඩාව ක්ලෝන කරන්න
https://github.com/CloudAdvocacy/AzureMLStarter - MNIST දත්ත කට්ටලය මත අතින් ලියන ලද ඉලක්කම් හඳුනාගැනීමේ ආකෘතියක් පුහුණු කිරීම සඳහා යම් ආදර්ශන කේතයක් එහි අඩංගු වේ. - විෂුවල් ස්ටුඩියෝ කේතයේ ක්ලෝන කළ ගබඩාව විවෘත කරන්න.
- කියවන්න!
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 පුස්තකාලය භාවිතයෙන් සරලම රේඛීය ප්රතිගාමී ආකෘතිය පුහුණු කරමු. ඇත්ත වශයෙන්ම, ගැටලුව විසඳීමට හොඳම ක්රමය මෙය නොවන බව මට වැටහේ - අපි එය සරලම ලෙස උදාහරණයක් ලෙස භාවිතා කරමු.
ස්ක්රිප්ට් මුලින්ම OpenML වෙතින් MNIST දත්ත බාගත කර පසුව පන්තිය භාවිතා කරයි 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 විසින්ම අපගේ ස්ක්රිප්ට් වත්මන් නාමාවලියේ ඇති සියලුම ලිපිගොනු සමඟ ඩොකර් කන්ටේනරයකට ඇසුරුම් කිරීම, අවශ්ය පරායත්තතා ස්ථාපනය කිරීම සහ එය ක්රියාත්මක කිරීම සඳහා යැවීම බලා ගනී.
- Azure ML වැඩබිමක් තුළ තනි රෙජිස්ට්රියකට ප්රතිඵල ලියන්න. මෙම විශේෂාංගයෙන් ප්රයෝජන ගැනීමට, ප්රතිඵලයක් ලෙස ලැබෙන නිරවද්යතාව වාර්තා කිරීම සඳහා අපගේ ස්ක්රිප්ටයට කේත පේළි කිහිපයක් එක් කිරීමට අපට අවශ්ය වේ:
from azureml.core.run import Run
...
try:
run = Run.get_submitted_run()
run.log('accuracy', acc)
except:
pass
පිටපතෙහි අනුරූප අනුවාදය ලෙස හැඳින්වේ train_universal.py
(එය ඉහත ලියා ඇති ආකාරයට වඩා ටිකක් කපටි ය, නමුත් වැඩි නොවේ). මෙම ස්ක්රිප්ට් දේශීයව සහ දුරස්ථ පරිගණක සම්පතක් මත ධාවනය කළ හැක.
එය VS කේතයෙන් Azure ML හි ධාවනය කිරීමට, ඔබ පහත දේ කළ යුතුය:
-
Azure දිගුව ඔබගේ දායකත්වයට සම්බන්ධ කර ඇති බවට වග බලා ගන්න. වම් පස ඇති මෙනුවෙන් Azure නිරූපකය තෝරන්න. ඔබ සම්බන්ධ වී නොමැති නම්, පහළ දකුණු කෙළවරේ දැනුම්දීමක් දිස්වනු ඇත (
මෙවැනි ), ඔබට බ්රවුසරය හරහා ඇතුළු විය හැකි මත ක්ලික් කිරීමෙන්. ක්ලික් කරන්නත් පුළුවන් Ctrl-Shift-P VS Code විධාන රේඛාව ඇමතීමට, සහ ටයිප් කරන්න Azure පුරනය වන්න. -
ඊට පසු, Azure කොටසේ (වමේ ඇති අයිකනය), කොටස සොයා ගන්න යන්ත්ර ඉගෙනීම:
මෙහිදී ඔබ වැඩබිම තුළ විවිධ වස්තු කණ්ඩායම් දැකිය යුතුය: පරිගණක සම්පත්, අත්හදා බැලීම්, ආදිය.
- ගොනු ලැයිස්තුවට යන්න, ස්ක්රිප්ට් එක මත දකුණු ක්ලික් කරන්න
train_universal.py
සහ තෝරන්න Azure ML: Azure හි අත්හදා බැලීමක් ලෙස ධාවනය කරන්න.
- මෙය VS කේතයේ විධාන රේඛා ප්රදේශයේ සංවාද මාලාවක් අනුගමනය කරනු ඇත: ඔබ භාවිතා කරන දායකත්වය සහ Azure ML වැඩබිම තහවුරු කර තෝරන්න නව අත්හදා බැලීමක් සාදන්න:
-
නව පරිගණක සම්පතක් සෑදීමට තෝරන්න නව පරිගණකයක් සාදන්න:
- ගණනය කරන්න පුහුණුව සිදු කරනු ලබන පරිගණක සම්පත තීරණය කරයි. ඔබට දේශීය පරිගණකයක් හෝ AmlCompute වලාකුළු පොකුරක් තෝරාගත හැක. පරිමාණය කළ හැකි යන්ත්ර පොකුරක් නිර්මාණය කිරීමට මම නිර්දේශ කරමි
STANDARD_DS3_v2
, අවම වශයෙන් යන්ත්ර සංඛ්යාව 0 (සහ උපරිම 1 හෝ ඊට වැඩි, ඔබේ ආහාර රුචිය අනුව). මෙය VS කේත අතුරුමුහුණත හරහා හෝ මීට පෙර සිදු කළ හැකML ද්වාරය .
- ගණනය කරන්න පුහුණුව සිදු කරනු ලබන පරිගණක සම්පත තීරණය කරයි. ඔබට දේශීය පරිගණකයක් හෝ AmlCompute වලාකුළු පොකුරක් තෝරාගත හැක. පරිමාණය කළ හැකි යන්ත්ර පොකුරක් නිර්මාණය කිරීමට මම නිර්දේශ කරමි
-
ඊළඟට, ඔබට වින්යාසයක් තෝරාගත යුතුය ගණනය කිරීමේ වින්යාසය, පුහුණුව සඳහා නිර්මාණය කරන ලද බහාලුම් පරාමිතීන් නිර්වචනය කරයි, විශේෂයෙන්ම, අවශ්ය සියලු පුස්තකාල. අපගේ නඩුවේදී, අපි Scikit Learn භාවිතා කරන බැවින්, අපි තෝරා ගනිමු SkLearn, ඉන්පසු Enter එබීමෙන් යෝජිත පුස්තකාල ලැයිස්තුව තහවුරු කරන්න. ඔබ අමතර පුස්තකාල භාවිතා කරන්නේ නම්, ඒවා මෙහි සඳහන් කළ යුතුය.
-
මෙය අත්හදා බැලීම විස්තර කරන JSON ගොනුවක් සහිත කවුළුවක් විවෘත කරනු ඇත. එය තුළ, ඔබට සමහර පරාමිතීන් නිවැරදි කළ හැකිය - උදාහරණයක් ලෙස, අත්හදා බැලීමේ නම. ඊට පසු, සබැඳිය ක්ලික් කරන්න අත්හදා බැලීම ඉදිරිපත් කරන්න මෙම ගොනුව තුළම:
- VS කේතය හරහා අත්හදා බැලීමක් සාර්ථකව ඉදිරිපත් කිරීමෙන් පසුව, දැනුම්දීම් ප්රදේශයේ දකුණු පැත්තේ, ඔබට සබැඳියක් පෙනෙනු ඇත
Azure ML ද්වාරය , ඔබට අත්හදා බැලීමේ තත්ත්වය සහ ප්රතිඵල නිරීක්ෂණය කළ හැක.
පසුව, ඔබට එය සෑම විටම කොටසේ සොයාගත හැකිය අත්හදා බැලීම්
- ඉන් පසුව ඔබ කේතයට යම් නිවැරදි කිරීම් සිදු කළහොත් හෝ පරාමිති වෙනස් කළහොත්, අත්හදා බැලීම නැවත ආරම්භ කිරීම වඩා වේගවත් සහ පහසු වනු ඇත. ගොනුවක් මත දකුණු-ක්ලික් කිරීමෙන්, ඔබට නව මෙනු අයිතමයක් පෙනෙනු ඇත අවසන් ධාවනය නැවත කරන්න - එය තෝරන්න, සහ අත්හදා බැලීම වහාම ආරම්භ වනු ඇත:
Azure ML ද්වාරයෙහි සියලුම දියත් කිරීම් වලින් ඔබට ප්රමිතිකවල ප්රතිඵල සැම විටම සොයා ගත හැක, ඒවා ලිවීමට අවශ්ය නැත.
Azure ML සමඟ අත්හදා බැලීම් සරල සහ වේදනා රහිත බව දැන් ඔබ දන්නවා, එසේ කිරීමෙන් ඔබට හොඳ ප්රතිලාභ රැසක් ලැබේ.
නමුත් ඔබට අවාසි ද දැකිය හැකිය. උදාහරණයක් ලෙස, ස්ක්රිප්ට් ධාවනය කිරීමට සැලකිය යුතු කාලයක් ගත විය. ඇත්ත වශයෙන්ම, ස්ක්රිප්ට් කන්ටේනරයක ඇසුරුම් කර එය සේවාදායකයේ යෙදවීමට කාලය ගතවේ. ඒ සමඟම පොකුර 0 නෝඩ් ප්රමාණයකට කපා ඇත්නම්, අථත්ය යන්ත්රය ආරම්භ කිරීමට ඊටත් වඩා කාලයක් ගතවනු ඇති අතර, තත්පර කිහිපයකින් විසඳනු ලබන MNIST වැනි සරල කාර්යයන් අත්හදා බැලීමේදී මේ සියල්ල ඉතා කැපී පෙනේ. . කෙසේ වෙතත්, සැබෑ ජීවිතයේ දී, පුහුණුව පැය කිහිපයක් හෝ දින හෝ සති පවා පවතින විට, මෙම අතිරේක කාලය නොවැදගත් වේ, විශේෂයෙන් පරිගණක පොකුරක් සැපයිය හැකි ඉහළ කාර්ය සාධනයේ පසුබිමට එරෙහිව.
ඊළඟට කුමක්ද?
මෙම ලිපිය කියවීමෙන් පසු, ඔබට ස්ක්රිප්ට් ධාවනය කිරීමට, පරිගණක සම්පත් කළමනාකරණය කිරීමට සහ ප්රතිඵල මධ්යගතව ගබඩා කිරීමට ඔබේ කාර්යයේදී Azure ML භාවිතා කළ හැකි බව මම බලාපොරොත්තු වෙමි. කෙසේ වෙතත්, Azure ML ඔබට ඊටත් වඩා ප්රතිලාභ ලබා දිය හැකිය!
වැඩබිම තුළ, ඔබට දත්ත ගබඩා කළ හැකි අතර, එමඟින් ඔබේ සියලු කාර්යයන් සඳහා මධ්යගත ගබඩාවක් නිර්මාණය කළ හැකිය, එය පහසුවෙන් ප්රවේශ විය හැකිය. මීට අමතරව, ඔබට අත්හදා බැලීම් සිදු කළ හැක්කේ Visual Studio කේතයෙන් නොව API භාවිතයෙන් - ඔබට අධිපරිමාණ ප්රශස්තිකරණය සිදු කිරීමට අවශ්ය නම් සහ විවිධ පරාමිතීන් සමඟ ස්ක්රිප්ට් බොහෝ වාරයක් ධාවනය කිරීමට අවශ්ය නම් මෙය විශේෂයෙන් ප්රයෝජනවත් වේ. එපමණක් නොව, විශේෂ තාක්ෂණය Azure ML වෙත ගොඩනගා ඇත
ප්රයෝජනවත් සම්පත්
Azure ML ගැන වැඩිදුර දැන ගැනීමට, ඔබට පහත Microsoft Learn පාඨමාලා ප්රයෝජනවත් විය හැක:
Azure ML සේවාව සඳහා හැඳින්වීම Azure ML සේවාව සමඟින් AI විසඳුම් ගොඩනැගීම Azure ML සේවාව සමඟ දේශීය ආකෘතියක් පුහුණු කරන්න
මූලාශ්රය: www.habr.com