ភាពវៃឆ្លាតទិន្នន័យជំនាន់

បង្កើនល្បឿនដំណើរការ ML ជាមួយ Amazon SageMaker Studio Local Mode និងការគាំទ្រ Docker | សេវាកម្មគេហទំព័រ Amazon

កាលបរិច្ឆេទ:

យើងមានសេចក្តីសោមនស្សរីករាយក្នុងការប្រកាសពីសមត្ថភាពថ្មីពីរនៅក្នុង ស្ទូឌីយោ Amazon SageMaker ដែលនឹងពន្លឿនការអភិវឌ្ឍន៍ដដែលៗសម្រាប់អ្នកអនុវត្តការរៀនម៉ាស៊ីន (ML)៖ របៀបក្នុងស្រុក និងការគាំទ្រ Docker ។ ការអភិវឌ្ឍន៍គំរូ ML ជារឿយៗពាក់ព័ន្ធនឹងវដ្តនៃការធ្វើឡើងវិញយឺត នៅពេលដែលអ្នកអភិវឌ្ឍន៍ប្តូររវាងការសរសេរកូដ ការបណ្តុះបណ្តាល និងការដាក់ឱ្យប្រើប្រាស់។ ជំហាននីមួយៗតម្រូវឱ្យរង់ចាំធនធានកុំព្យូទ័រពីចម្ងាយដើម្បីចាប់ផ្តើម ដែលពន្យារពេលការអនុវត្តន៍ត្រឹមត្រូវ និងទទួលបានមតិកែលម្អលើការផ្លាស់ប្តូរ។

ជាមួយនឹងមុខងារ Local Mode ឥឡូវនេះ អ្នកអភិវឌ្ឍន៍អាចបណ្តុះបណ្តាល និងសាកល្បងម៉ូដែល កូដបំបាត់កំហុស និងធ្វើឱ្យមានសុពលភាពនៃបំពង់បង្ហូរប្រេងពីចុងដល់ចុងដោយផ្ទាល់នៅលើសៀវភៅកត់ត្រា SageMaker Studio របស់ពួកគេ ដោយមិនចាំបាច់ត្រូវការបង្វិលធនធានកុំព្យូទ័រពីចម្ងាយនោះទេ។ វាកាត់បន្ថយវដ្តនៃការធ្វើឡើងវិញពីនាទីទៅវិនាទី បង្កើនផលិតភាពរបស់អ្នកអភិវឌ្ឍន៍។ ការគាំទ្រ Docker នៅក្នុងសៀវភៅកត់ត្រា SageMaker Studio អនុញ្ញាតឱ្យអ្នកអភិវឌ្ឍន៍បង្កើតធុង Docker ដោយមិនចាំបាច់ប្រឹងប្រែង និងចូលប្រើធុងដែលបានសាងសង់ជាមុន ដោយផ្តល់នូវបរិយាកាសអភិវឌ្ឍន៍ស្របគ្នានៅទូទាំងក្រុម និងជៀសវាងការដំឡើង និងការគ្រប់គ្រងភាពអាស្រ័យដែលចំណាយពេលច្រើន។

Local Mode និងការគាំទ្រ Docker ផ្តល់នូវលំហូរការងារដែលសម្រួលសម្រាប់ផ្ទៀងផ្ទាត់ការផ្លាស់ប្តូរកូដ និងគំរូគំរូដោយប្រើធុងមូលដ្ឋានដែលដំណើរការលើសៀវភៅកត់ត្រា SageMaker Studio

ឧទាហរណ៍។ នៅក្នុងការប្រកាសនេះ យើងណែនាំអ្នកតាមរយៈការដំឡើង Local Mode នៅក្នុង SageMaker Studio ដំណើរការការងារបណ្តុះបណ្តាលគំរូ និងការដាក់ពង្រាយគំរូនៅលើ ក្រុមហ៊ុន Amazon SageMaker ចំណុចបញ្ចប់ពីសៀវភៅកត់ត្រាស្ទូឌីយោ SageMaker ។

របៀបក្នុងស្រុក SageMaker Studio

SageMaker Studio ណែនាំពី Local Mode ដែលអនុញ្ញាតឱ្យអ្នកដំណើរការការបណ្តុះបណ្តាល SageMaker ការសន្និដ្ឋាន ការបំប្លែងជាបាច់ និងដំណើរការការងារដោយផ្ទាល់នៅលើ JupyterLab, Code Editor ឬ SageMaker Studio Classic សៀវភៅកត់ត្រារបស់អ្នកដោយមិនចាំបាច់ត្រូវការធនធានកុំព្យូទ័រពីចម្ងាយ។ អត្ថប្រយោជន៍នៃការប្រើប្រាស់ Local Mode រួមមាន:

  • សុពលភាពភ្លាមៗ និងការធ្វើតេស្តលំហូរការងារត្រឹមត្រូវនៅក្នុងបរិយាកាសអភិវឌ្ឍន៍រួមបញ្ចូលគ្នា (IDEs)
  • ការធ្វើម្តងទៀតកាន់តែលឿនតាមរយៈការដំណើរការក្នុងស្រុកសម្រាប់ការងារខ្នាតតូចដើម្បីត្រួតពិនិត្យលទ្ធផល និងកំណត់បញ្ហាឱ្យបានឆាប់
  • ធ្វើឱ្យប្រសើរឡើងនូវការអភិវឌ្ឍន៍ និងប្រសិទ្ធភាពបំបាត់កំហុស ដោយលុបបំបាត់ការរង់ចាំសម្រាប់ការងារបណ្តុះបណ្តាលពីចម្ងាយ
  • មតិកែលម្អភ្លាមៗអំពីការផ្លាស់ប្តូរកូដ មុនពេលដំណើរការការងារពេញលេញនៅក្នុងពពក

រូបខាងក្រោមបង្ហាញពីដំណើរការការងារដោយប្រើ Local Mode នៅលើ SageMaker ។

លំហូរការងារដោយប្រើរបៀបមូលដ្ឋាននៅលើ SageMaker

ដើម្បីប្រើមុខងារមូលដ្ឋាន សូមកំណត់ instance_type='local' នៅពេលដំណើរការការងារ SageMaker Python SDK ដូចជាការបណ្តុះបណ្តាល និងការសន្និដ្ឋាន។ វានឹងដំណើរការពួកវាលើករណីដែលប្រើដោយ SageMaker Studio IDEs របស់អ្នកជំនួសឱ្យការផ្តល់ធនធានពពក។

ទោះបីជាសមត្ថភាពមួយចំនួនដូចជាការបណ្តុះបណ្តាលដែលចែកចាយមាននៅក្នុងពពកក៏ដោយ មុខងារ Local Mode ដកចេញនូវតម្រូវការក្នុងការប្តូរបរិបទសម្រាប់ការធ្វើម្តងទៀតរហ័ស។ នៅពេលដែលអ្នកត្រៀមខ្លួនរួចជាស្រេចដើម្បីទាញយកអត្ថប្រយោជន៍ពីថាមពល និងទំហំពេញលេញនៃ SageMaker អ្នកអាចដំណើរការលំហូរការងាររបស់អ្នកនៅក្នុងពពកបានយ៉ាងរលូន។

ការគាំទ្រ Docker នៅក្នុង SageMaker Studio

ឥឡូវនេះ ស្ទូឌីយោ SageMaker ក៏បើកដំណើរការបង្កើត និងដំណើរការធុង Docker ក្នុងតំបន់នៅលើឧទាហរណ៍សៀវភៅកត់ត្រា SageMaker Studio របស់អ្នក។ មុខងារថ្មីនេះអនុញ្ញាតឱ្យអ្នកបង្កើត និងធ្វើឱ្យរូបភាព Docker មានសុពលភាពនៅក្នុង SageMaker Studio មុនពេលប្រើពួកវាសម្រាប់ការបណ្តុះបណ្តាល និងការសន្និដ្ឋានរបស់ SageMaker ។

ដ្យាក្រាមខាងក្រោមបង្ហាញពីស្ថាបត្យកម្ម Docker orchestration កម្រិតខ្ពស់នៅក្នុង SageMaker Studio ។

ស្ថាបត្យកម្ម Docker orchestration កម្រិតខ្ពស់នៅក្នុង SageMaker Studio

ជាមួយនឹងការគាំទ្រ Docker នៅក្នុង SageMaker Studio អ្នកអាច៖

  • បង្កើតធុង Docker ជាមួយនឹងគំរូរួមបញ្ចូលគ្នា និងភាពអាស្រ័យដោយផ្ទាល់នៅក្នុង SageMaker Studio
  • លុបបំបាត់តម្រូវការសម្រាប់ដំណើរការបង្កើត Docker ខាងក្រៅ ដើម្បីសម្រួលដល់ការបង្កើតរូបភាព
  • ដំណើរការកុងតឺន័រក្នុងមូលដ្ឋានដើម្បីធ្វើសុពលភាពមុខងារមុននឹងដាក់ពង្រាយម៉ូដែលទៅផលិតកម្ម
  • ប្រើធុងមូលដ្ឋានឡើងវិញនៅពេលដាក់ពង្រាយទៅ SageMaker សម្រាប់ការបណ្តុះបណ្តាល និងបង្ហោះ

ទោះបីជាសមត្ថភាព Docker កម្រិតខ្ពស់មួយចំនួនដូចជាបណ្តាញពហុកុងតឺន័រ និងបណ្តាញផ្ទាល់ខ្លួនមិនត្រូវបានគាំទ្រដូចការសរសេរនេះក៏ដោយ មុខងារបង្កើត និងដំណើរការស្នូលគឺអាចរកបានដើម្បីពន្លឿនការអភិវឌ្ឍន៍កុងតឺន័រសម្រាប់នាំយកលំហូរការងារធុងរបស់អ្នក (BYOC) ។

តម្រូវការជាមុន

ដើម្បីប្រើ Local Mode នៅក្នុងកម្មវិធី SageMaker Studio អ្នកត្រូវតែបំពេញតម្រូវការជាមុនដូចខាងក្រោម៖

  • សម្រាប់ការទាញរូបភាពពី ការចុះបញ្ជីកុងតឺន័រអេល្យូមអេល (Amazon ECR) គណនីដែលបង្ហោះរូបភាព ECR ត្រូវតែផ្តល់សិទ្ធិចូលដំណើរការទៅកាន់អ្នកប្រើប្រាស់ អត្តសញ្ញាណនិងការគ្រប់គ្រងការគ្រប់គ្រង។ តួនាទី (IAM) ។ តួនាទីរបស់ដែនត្រូវតែអនុញ្ញាតឱ្យ Amazon ECR ចូលប្រើផងដែរ។
  • ដើម្បីបើកមុខងារ Local Mode និង Docker អ្នកត្រូវតែកំណត់ EnableDockerAccess ប៉ារ៉ាម៉ែត្រទៅពិតសម្រាប់ដែន DockerSettings ដោយប្រើ ចំណុចប្រទាក់បន្ទាត់ពាក្យបញ្ជា AWS (AWS CLI) ។ វាអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ក្នុងដែនប្រើប្រាស់មុខងារ Local Mode និង Docker។ តាមលំនាំដើម មុខងារមូលដ្ឋាន និង Docker ត្រូវបានបិទនៅក្នុង SageMaker Studio ។ កម្មវិធី SageMaker Studio ដែលមានស្រាប់ណាមួយនឹងត្រូវចាប់ផ្តើមឡើងវិញសម្រាប់ការអាប់ដេតសេវាកម្ម Docker ដើម្បីឱ្យមានប្រសិទ្ធភាព។ ខាង​ក្រោម​នេះ​ជា​ឧទាហរណ៍​ពាក្យ​បញ្ជា AWS CLI សម្រាប់​ធ្វើ​បច្ចុប្បន្នភាព​ដែន SageMaker Studio៖
aws sagemaker --region <REGION> 
update-domain --domain-id <DOMAIN-ID> 
--domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}'

  • អ្នកត្រូវធ្វើបច្ចុប្បន្នភាពតួនាទី IAM SageMaker ដើម្បីអាចធ្វើបាន។ រុញរូបភាព Docker ទៅ Amazon ECR៖
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecr:CompleteLayerUpload",
        "ecr:UploadLayerPart",
        "ecr:InitiateLayerUpload",
        "ecr:BatchCheckLayerAvailability",
        "ecr:PutImage"
      ],
      "Resource": "arn:aws:ecr:us-east-2:123456789012:repository/<repositoryname>"
    },
    {
      "Effect": "Allow",
      "Action": "ecr:GetAuthorizationToken",
      "Resource": "*"
    }
  ]
}

ដំណើរការឯកសារ Python ក្នុងចន្លោះ SageMaker Studio ដោយប្រើរបៀបមូលដ្ឋាន

SageMaker Studio JupyterLab និង Code Editor (ផ្អែកលើ កូដ-OSS, Visual Studio Code - ប្រភពបើកចំហ) ពង្រីក SageMaker Studio ដូច្នេះអ្នកអាចសរសេរ សាកល្បង បំបាត់កំហុស និងដំណើរការការវិភាគ និងកូដ ML របស់អ្នកដោយប្រើ IDE ទម្ងន់ស្រាលដ៏ពេញនិយម។ សម្រាប់ព័ត៌មានលម្អិតបន្ថែមអំពីរបៀបចាប់ផ្តើមជាមួយ SageMaker Studio IDEs សូមមើល បង្កើនផលិតភាពនៅលើ Amazon SageMaker Studio៖ ការណែនាំ JupyterLab Spaces និងឧបករណ៍ AI បង្កើត និង ថ្មី - កម្មវិធីនិពន្ធកូដដោយផ្អែកលើ Code-OSS VS Code Open Source ឥឡូវនេះមាននៅក្នុង Amazon SageMaker Studio. បំពេញជំហានខាងក្រោម៖

ដំណើរការឯកសារ Python ក្នុងចន្លោះ SageMaker Studio ដោយប្រើរបៀបមូលដ្ឋាន ដំណើរការឯកសារ Python ក្នុងចន្លោះ SageMaker Studio ដោយប្រើរបៀបមូលដ្ឋាន

  • បង្កើតស្ថានីយថ្មី។  ដំណើរការឯកសារ Python ក្នុងចន្លោះ SageMaker Studio ដោយប្រើរបៀបមូលដ្ឋាន ដំណើរការឯកសារ Python ក្នុងចន្លោះ SageMaker Studio ដោយប្រើរបៀបមូលដ្ឋាន
  • ដំឡើងកម្មវិធីជំនួយ Docker CLI និង Docker Compose តាមការណែនាំខាងក្រោម GitHub repo. ប្រសិនបើពាក្យបញ្ជាជាប់ច្រវ៉ាក់បរាជ័យ សូមដំណើរការពាក្យបញ្ជាម្តងមួយៗ។

ដំណើរការឯកសារ Python ក្នុងចន្លោះ SageMaker Studio ដោយប្រើរបៀបមូលដ្ឋាន ដំណើរការឯកសារ Python ក្នុងចន្លោះ SageMaker Studio ដោយប្រើរបៀបមូលដ្ឋាន អ្នកត្រូវតែអាប់ដេត SageMaker SDK ទៅជាកំណែចុងក្រោយបំផុត។

  • រត់ pip install sagemaker -Uq នៅក្នុងស្ថានីយ។

សម្រាប់តែកម្មវិធីនិពន្ធកូដប៉ុណ្ណោះ អ្នកត្រូវកំណត់បរិស្ថាន Python ដើម្បីដំណើរការនៅក្នុងស្ថានីយបច្ចុប្បន្ន។

  • នៅក្នុង Code Editor នៅលើ ម៉ឺនុយឯកសារ¸ជ្រើសរើស ចំណង់​ចំណូល​ចិត្ត និង ការកំណត់.

ដំណើរការឯកសារ Python ក្នុងចន្លោះ SageMaker Studio ដោយប្រើរបៀបមូលដ្ឋាន

  • ស្វែងរក និងជ្រើសរើស ស្ថានីយ៖ ប្រតិបត្តិក្នុង File Dir.

ដំណើរការឯកសារ Python ក្នុងចន្លោះ SageMaker Studio ដោយប្រើរបៀបមូលដ្ឋាន

  • នៅក្នុង Code Editor ឬ JupyterLab សូមបើក scikit_learn_script_mode_local_training_and_serving ថតឯកសារហើយដំណើរការ scikit_learn_script_mode_local_training_and_serving.py ឯកសារ។

អ្នកអាចដំណើរការស្គ្រីបដោយជ្រើសរើស រត់ នៅក្នុងកម្មវិធីនិពន្ធកូដ ឬប្រើ CLI នៅក្នុងស្ថានីយ JupyterLab ។ ដំណើរការឯកសារ Python ក្នុងចន្លោះ SageMaker Studio ដោយប្រើរបៀបមូលដ្ឋាន ដំណើរការឯកសារ Python ក្នុងចន្លោះ SageMaker Studio ដោយប្រើរបៀបមូលដ្ឋាន អ្នកនឹងអាចមើលឃើញពីរបៀបដែលគំរូនេះត្រូវបានបណ្តុះបណ្តាលនៅក្នុងមូលដ្ឋាន។ បន្ទាប់​មក​អ្នក​ដាក់​ពង្រាយ​គំរូ​ទៅ​ចំណុច​បញ្ចប់ SageMaker ក្នុង​មូលដ្ឋាន ហើយ​គណនា​កំហុស​ការ​ការ៉េ​មធ្យម​ឫស (RMSE). ដំណើរការឯកសារ Python ក្នុងចន្លោះ SageMaker Studio ដោយប្រើរបៀបមូលដ្ឋាន ដំណើរការឯកសារ Python ក្នុងចន្លោះ SageMaker Studio ដោយប្រើរបៀបមូលដ្ឋាន

ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode

អ្នកក៏អាចប្រើសៀវភៅកត់ត្រានៅក្នុង SageMaker Studio Classic ដើម្បីដំណើរការការងារបណ្តុះបណ្តាលខ្នាតតូចផងដែរ។ CIFAR10 ដោយប្រើរបៀបមូលដ្ឋាន ដាក់ពង្រាយគំរូក្នុងមូលដ្ឋាន និងអនុវត្តការសន្និដ្ឋាន។

ដំឡើងសៀវភៅកត់ត្រារបស់អ្នក។

ដើម្បីដំឡើងសៀវភៅកត់ត្រា សូមបំពេញជំហានខាងក្រោម៖

  • បើក SageMaker Studio Classic ហើយក្លូនដូចខាងក្រោម GitHub repo.

ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode

  • បើក pytorch_local_mode_cifar10.ipynb notebook in blog/pytorch_cnn_cifar10.

ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode

  • សម្រាប់ រូបភាពជ្រើស PyTorch 2.1.0 Python 3.10 CPU Optimized.

ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode បញ្ជាក់​ថា​សៀវភៅ​កំណត់​ត្រា​របស់​អ្នក​បង្ហាញ​ការ​ជ្រើស​រើស​វត្ថុ​និង​ខឺណែល​ត្រឹមត្រូវ។ ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode

  • បើកស្ថានីយដោយជ្រើសរើស បើកដំណើរការស្ថានីយ នៅក្នុងរូបភាព SageMaker បច្ចុប្បន្ន។

ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode

  • ដំឡើងកម្មវិធីជំនួយ Docker CLI និង Docker Compose តាមការណែនាំខាងក្រោម GitHub repo.

ដោយសារតែអ្នកកំពុងប្រើ Docker ពី SageMaker Studio Classic សូមលុប sudo នៅពេលដំណើរការពាក្យបញ្ជា ពីព្រោះស្ថានីយដំណើរការនៅក្រោម superuser រួចហើយ។ សម្រាប់ SageMaker Studio Classic ពាក្យបញ្ជាដំឡើងអាស្រ័យលើ SageMaker Studio image OS ។ ឧទាហរណ៍ រូបភាពក្របខ័ណ្ឌផ្អែកលើ DLC គឺផ្អែកលើអ៊ូប៊ុនទូ ដែលការណែនាំខាងក្រោមនឹងដំណើរការ។ ទោះយ៉ាងណាក៏ដោយ សម្រាប់រូបភាពដែលមានមូលដ្ឋានលើ Debian ដូចជា DataScience Images អ្នកត្រូវតែធ្វើតាមការណែនាំខាងក្រោម GitHub repo. ប្រសិនបើពាក្យបញ្ជាជាប់ច្រវ៉ាក់បរាជ័យ សូមដំណើរការពាក្យបញ្ជាម្តងមួយៗ។ អ្នកគួរតែឃើញកំណែ Docker បង្ហាញ។ ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode

  • ទុកឱ្យបង្អួចស្ថានីយបើក ត្រឡប់ទៅសៀវភៅកត់ត្រា ហើយចាប់ផ្តើមដំណើរការវាតាមក្រឡា។

ត្រូវប្រាកដថាដំណើរការក្រឡាជាមួយ pip install -U sagemaker ដូច្នេះអ្នកកំពុងប្រើកំណែចុងក្រោយបំផុតនៃ SageMaker Python SDK ។

ការបណ្តុះបណ្តាលក្នុងស្រុក

នៅពេលអ្នកចាប់ផ្តើមដំណើរការការងារបណ្តុះបណ្តាល SageMaker ក្នុងស្រុក អ្នកនឹងឃើញបន្ទាត់កំណត់ហេតុខាងក្រោម៖

INFO:sagemaker.local.image:'Docker Compose' found using Docker CLI.
INFO:sagemaker.local.local_session:Starting training job

នេះបង្ហាញថាការបណ្តុះបណ្តាលកំពុងដំណើរការក្នុងមូលដ្ឋានដោយប្រើ Docker ។

ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode

អត់ធ្មត់ខណៈពេលដែល pytorch-training:2.1-cpu-py310 រូបភាព Docker ត្រូវបានទាញ។ ដោយសារតែទំហំធំរបស់វា (5.2 GB) វាអាចចំណាយពេលពីរបីនាទី។

រូបភាព Docker នឹងត្រូវបានរក្សាទុកនៅក្នុងកម្រិតសំឡេង root របស់កម្មវិធី SageMaker Studio ដែលមិនអាចចូលប្រើបានសម្រាប់អ្នកប្រើប្រាស់ចុងក្រោយ។ មធ្យោបាយតែមួយគត់ដើម្បីចូលប្រើ និងធ្វើអន្តរកម្មជាមួយរូបភាព Docker គឺតាមរយៈប្រតិបត្តិការ Docker API ដែលបានបង្ហាញ។

តាមទស្សនៈនៃការសម្ងាត់របស់អ្នកប្រើ វេទិកា SageMaker Studio មិនដែលចូលប្រើ ឬរក្សាទុករូបភាពជាក់លាក់របស់អ្នកប្រើឡើយ។

នៅពេលការបណ្តុះបណ្តាលត្រូវបានបញ្ចប់ អ្នកនឹងអាចឃើញបន្ទាត់ជោគជ័យខាងក្រោម៖

8zlz1zbfta-sagemaker-local exited with code 0
Aborting on container exit...
Container 8zlz1zbfta-sagemaker-local  Stopping
Container 8zlz1zbfta-sagemaker-local  Stopped
INFO:sagemaker.local.image:===== Job Complete =====

ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode

ការសន្និដ្ឋានក្នុងស្រុក

បំពេញជំហានខាងក្រោម៖

  • ដាក់ពង្រាយចំណុចបញ្ចប់ SageMaker ដោយប្រើ SageMaker Local Mode ។

អត់ធ្មត់ខណៈពេលដែល pytorch-inference:2.1-cpu-py310 រូបភាព Docker ត្រូវបានទាញ។ ដោយសារតែទំហំធំរបស់វា (4.32 GB) វាអាចចំណាយពេលពីរបីនាទី។

ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode

  • ហៅចំណុចបញ្ចប់ SageMaker ដែលត្រូវបានដាក់ពង្រាយក្នុងមូលដ្ឋានដោយប្រើរូបភាពសាកល្បង។

ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode

អ្នក​នឹង​អាច​មើល​ឃើញ​ថ្នាក់​ដែល​បាន​ទស្សន៍ទាយ​ដូច​ជា៖ កង្កែប កប៉ាល់ រថយន្ត និង​យន្តហោះ៖

Predicted:  frog ship  car plane

ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode

  • ដោយសារតែចំណុចបញ្ចប់ SageMaker Local នៅតែដំណើរការ សូមត្រលប់ទៅបង្អួចស្ថានីយដែលបើក ហើយរាយបញ្ជីធុងដែលកំពុងដំណើរការ៖

docker ps

អ្នកនឹងអាចឃើញការរត់ pytorch-inference:2.1-cpu-py310 កុងតឺន័រដែលគាំទ្រចំណុចបញ្ចប់ SageMaker ។

ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode

  • ដើម្បីបិទចំណុចបញ្ចប់មូលដ្ឋាន SageMaker និងបញ្ឈប់កុងតឺន័រដែលកំពុងដំណើរការ ពីព្រោះអ្នកអាចដំណើរការបានតែចំណុចបញ្ចប់មូលដ្ឋានមួយក្នុងពេលតែមួយ សូមដំណើរការកូដសម្អាត។

ក្លែងធ្វើការបណ្តុះបណ្តាល និងការសន្និដ្ឋាននៅក្នុង SageMaker Studio Classic ដោយប្រើ Local Mode

  • ដើម្បីប្រាកដថា Docker container ធ្លាក់ចុះ អ្នកអាចរុករកទៅបង្អួចស្ថានីយដែលបានបើក ដំណើរការ docker ps ហើយត្រូវប្រាកដថាមិនមានកុងតឺន័រដែលកំពុងដំណើរការទេ។
  • ប្រសិនបើអ្នកឃើញកុងតឺន័រកំពុងដំណើរការ សូមរត់ docker stop <CONTAINER_ID> ដើម្បីបញ្ឈប់វា។

ព័ត៌មានជំនួយសម្រាប់ការប្រើប្រាស់ SageMaker Local Mode

ប្រសិនបើអ្នកកំពុងប្រើ SageMaker ជាលើកដំបូង សូមមើល បង្វឹកម៉ូដែលរៀនម៉ាស៊ីន. ដើម្បីស្វែងយល់បន្ថែមអំពីការដាក់ពង្រាយគំរូសម្រាប់ការសន្និដ្ឋានជាមួយ SageMaker សូមមើល ដាក់ពង្រាយគំរូសម្រាប់ការសន្និដ្ឋាន.

ចងចាំការណែនាំខាងក្រោម៖

  • បោះពុម្ព​ឯកសារ​និង​ថតឯកសារ​បញ្ចូល​និង​ចេញ​ដើម្បី​យល់​ពី​សំណុំ​ទិន្នន័យ​និង​ការ​ផ្ទុក​គំរូ
  • ប្រើ 1-2 សម័យ និងសំណុំទិន្នន័យតូចៗសម្រាប់ការធ្វើតេស្តរហ័ស
  • ដំឡើងភាពអាស្រ័យជាមុននៅក្នុង Dockerfile ដើម្បីបង្កើនប្រសិទ្ធភាពការដំឡើងបរិស្ថាន
  • ញែកកូដសៀរៀលនៅក្នុងចំណុចបញ្ចប់សម្រាប់ការកែកំហុស

កំណត់រចនាសម្ព័ន្ធការដំឡើង Docker ជា Lifecycle Configuration

អ្នកអាចកំណត់ដំណើរការដំឡើង Docker ជាស្គ្រីប Lifecycle Configuration (LCC) ដើម្បីសម្រួលការដំឡើងរាល់ពេលដែលកន្លែង SageMaker Studio ថ្មីចាប់ផ្តើម។ LCCs គឺជាស្គ្រីបដែល SageMaker ដំណើរការក្នុងអំឡុងពេលព្រឹត្តិការណ៍ដូចជាការបង្កើតលំហ។ យោងទៅ ជូទីតឡាប, កម្មវិធីនិពន្ធកូដSageMaker Studio Classic ការដំឡើង LCC (ដោយប្រើ docker ដំឡើង cli ជាឯកសារយោង) ដើម្បីស្វែងយល់បន្ថែម។

កំណត់រចនាសម្ព័ន្ធការដំឡើង Docker ជា Lifecycle Configuration

កំណត់រចនាសម្ព័ន្ធការដំឡើង Docker ជា Lifecycle Configuration

បង្កើត និងសាកល្បងរូបភាព Docker ផ្ទាល់ខ្លួននៅក្នុង SageMaker Studio spaces

នៅក្នុងជំហាននេះ អ្នកដំឡើង Docker នៅខាងក្នុងចន្លោះកម្មវិធី JupyterLab (ឬ Code Editor) ហើយប្រើ Docker ដើម្បីបង្កើត សាកល្បង និងបោះផ្សាយរូបភាព Docker ផ្ទាល់ខ្លួនជាមួយ SageMaker Studio spaces។ ចន្លោះត្រូវបានប្រើដើម្បីគ្រប់គ្រងការផ្ទុក និងតម្រូវការធនធាននៃកម្មវិធី SageMaker Studio មួយចំនួន។ ចន្លោះនីមួយៗមានទំនាក់ទំនង 1:1 ជាមួយឧទាហរណ៍នៃកម្មវិធីមួយ។ រាល់កម្មវិធីដែលគាំទ្រដែលត្រូវបានបង្កើតទទួលបានទំហំផ្ទាល់ខ្លួនរបស់វា។ ដើម្បីស្វែងយល់បន្ថែមអំពី SageMaker spaces សូមមើល បង្កើនផលិតភាពនៅលើ Amazon SageMaker Studio៖ ការណែនាំ JupyterLab Spaces និងឧបករណ៍ AI បង្កើត. ត្រូវប្រាកដថាអ្នកផ្តល់ទំហំផ្ទុកថ្មីជាមួយនឹងទំហំផ្ទុកយ៉ាងហោចណាស់ 30 GB ដើម្បីអនុញ្ញាតឱ្យមានទំហំផ្ទុកគ្រប់គ្រាន់សម្រាប់រូបភាព Docker និងវត្ថុបុរាណ។

ដំឡើង Docker នៅខាងក្នុងចន្លោះ

ដើម្បីដំឡើងកម្មវិធីជំនួយ Docker CLI និង Docker Compose នៅខាងក្នុងចន្លោះ JupyterLab សូមដំណើរការពាក្យបញ្ជាដូចខាងក្រោម GitHub repo. ស្ទូឌីយោ SageMaker គាំទ្រតែកំណែ Docker 20.10.X ប៉ុណ្ណោះ។.

បង្កើតរូបភាព Docker

ដើម្បីបញ្ជាក់ថា Docker ត្រូវបានដំឡើង និងដំណើរការនៅក្នុងចន្លោះ JupyterLab របស់អ្នក សូមដំណើរការកូដខាងក្រោម៖

# to verify docker service
sagemaker-user@default:~$ docker version
Client: Docker Engine - Community
Version:           24.0.7
API version:       1.41 (downgraded from 1.43)
Go version:        go1.20.10
Git commit:        afdd53b
Built:             Thu Oct 26 09:07:41 2023
OS/Arch:           linux/amd64
Context:           default

Server:
Engine:
Version:          20.10.25
API version:      1.41 (minimum version 1.12)
Go version:       go1.20.10
Git commit:       5df983c
Built:            Fri Oct 13 22:46:59 2023
OS/Arch:          linux/amd64
Experimental:     false
containerd:
Version:          1.7.2
GitCommit:        0cae528dd6cb557f7201036e9f43420650207b58
runc:
Version:          1.1.7
GitCommit:        f19387a6bec4944c770f7668ab51c4348d9c2f38
docker-init:
Version:          0.19.0
GitCommit:        de40ad0

ដើម្បីបង្កើតរូបភាព Docker ផ្ទាល់ខ្លួននៅក្នុងចន្លោះ JupyterLab (ឬ Code Editor) សូមបំពេញជំហានខាងក្រោម៖

  • បង្កើត Dockerfile ទទេ៖

touch Dockerfile

  • កែសម្រួល Dockerfile ដោយប្រើពាក្យបញ្ជាខាងក្រោម ដែលបង្កើតរូបភាពម៉ាស៊ីនបម្រើបណ្ដាញ flask សាមញ្ញពី python មូលដ្ឋាន៖ រូបភាព 3.10.13-bullseye ដែលបង្ហោះនៅលើ ដុកទ័រហាប់:
# Use the specified Python base image
FROM python:3.10.13-bullseye

# Create a code dir
RUN mkdir /code/

# Set the working directory in the container
WORKDIR /code

# Upgrade pip and install required packages
RUN python3 -m pip install --upgrade pip && 
python3 -m pip install flask

# Copy the app.py file to the container
COPY app.py /code/

# Set the command to run the app
ENTRYPOINT ["python", "app.py"]

កូដខាងក្រោមបង្ហាញពីខ្លឹមសារនៃឯកសារកម្មវិធី flask ឧទាហរណ៍ app.py:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/')
def hello():
return jsonify({"response": "Hello"})

if __name__ == '__main__':
app.run(host='0.0.0.0', port=6006)

លើសពីនេះទៀត អ្នកអាចធ្វើបច្ចុប្បន្នភាពពាក្យបញ្ជា Dockerfile ឯកសារយោង ដើម្បីរួមបញ្ចូលកញ្ចប់ និងវត្ថុបុរាណនៃជម្រើសរបស់អ្នក។

  • បង្កើតរូបភាព Docker ដោយប្រើឯកសារយោង Docker:

docker build --network sagemaker --tag myflaskapp:v1 --file ./Dockerfile .

រួមបញ្ចូលទាំង --network sagemaker នៅក្នុងពាក្យបញ្ជា docker build របស់អ្នក បើមិនដូច្នេះទេ build នឹងបរាជ័យ។ កុងតឺន័រមិនអាចដំណើរការនៅក្នុងស្ពានលំនាំដើម Docker ឬបណ្តាញ Docker ផ្ទាល់ខ្លួនទេ។ កុងតឺន័រត្រូវបានដំណើរការក្នុងបណ្តាញតែមួយជាមួយធុងផ្ទុកកម្មវិធី SageMaker Studio ។ អ្នកប្រើប្រាស់អាចប្រើតែ sagemaker សម្រាប់ឈ្មោះបណ្តាញប៉ុណ្ណោះ។

  • នៅពេលដែលការស្ថាបនារបស់អ្នកបានបញ្ចប់ សូមបញ្ជាក់ប្រសិនបើរូបភាពមាន។ ដាក់ស្លាកការស្ថាបនាឡើងវិញជារូបភាព ECR ហើយរុញ។ ប្រសិនបើអ្នកមានបញ្ហាក្នុងការអនុញ្ញាត សូមដំណើរការពាក្យបញ្ជា aws ecr get-login-password… ហើយព្យាយាមដំណើរការ Docker push/pull ឡើងវិញ៖
sagemaker-user@default:~$ docker image list
REPOSITORY      TAG       IMAGE ID       CREATED          SIZE
myflaskapp      v1        d623f1538f20   27 minutes ago   489MB

sagemaker-user@default:~$ docker tag myflaskapp:v1 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1

sagemaker-user@default:~$ docker image list
REPOSITORY                                                  TAG       IMAGE ID       CREATED          SIZE
123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp     latest    d623f1538f20   27 minutes ago   489MB
myflaskapp                                                  v1        d623f1538f20   27 minutes ago   489MB

sagemaker-user@default:~$ aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

sagemaker-user@default:~$ docker push 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:latest

សាកល្បងរូបភាព Docker

ដោយបានដំឡើង Docker នៅខាងក្នុង JupyterLab (ឬ Code Editor) Space SageMaker Studio អនុញ្ញាតឱ្យអ្នកសាកល្បងរូបភាព Docker ដែលបានបង្កើតជាមុន ឬផ្ទាល់ខ្លួនជាធុង (ឬកម្មវិធីដែលមានផ្ទុក)។ នៅក្នុងផ្នែកនេះ យើងប្រើពាក្យបញ្ជាដំណើរការ docker ដើម្បីផ្តល់ Docker containers នៅខាងក្នុង SageMaker Studio space ដើម្បីសាកល្បងផ្ទុកបន្ទុកការងារដូចជា REST web services និង Python scripts។ បំពេញជំហានខាងក្រោម៖

sagemaker-user@default:~$ docker image list
REPOSITORY                                                  TAG       IMAGE ID       CREATED       SIZE

  • ប្រសិនបើរូបភាពសាកល្បងមិនមានទេ សូមដំណើរការ docker pull ដើម្បីទាញរូបភាពចូលទៅក្នុងម៉ាស៊ីនមូលដ្ឋានរបស់អ្នក៖

sagemaker-user@default:~$ docker pull 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1

  • ប្រសិនបើអ្នកជួបប្រទះបញ្ហាការផ្ទៀងផ្ទាត់ ដំណើរការពាក្យបញ្ជាខាងក្រោម៖

aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

  • បង្កើតធុងមួយដើម្បីសាកល្បងបន្ទុកការងាររបស់អ្នក៖

docker run --network sagemaker 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1

នេះបង្វិលឡើងនូវវត្ថុផ្ទុកថ្មី ហើយដំណើរការកម្មវិធីដែលបានកំណត់ដោយប្រើ ENTRYPOINT របស់ Docker៖

sagemaker-user@default:~$ docker run --network sagemaker 905418447590.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1
* Serving Flask app 'app'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:6006
* Running on http://169.255.255.2:6006

  • ដើម្បីសាកល្បងថាតើចំណុចបញ្ចប់គេហទំព័ររបស់អ្នកសកម្មឬអត់ សូមចូលទៅកាន់ URL https://<sagemaker-space-id>.studio.us-east-2.sagemaker.aws/jupyterlab/default/proxy/6006/.

អ្នកគួរតែឃើញការឆ្លើយតប JSON ស្រដៀងនឹងរូបថតអេក្រង់ខាងក្រោម។

កំណត់រចនាសម្ព័ន្ធការដំឡើង Docker ជា Lifecycle Configuration

សម្អាត។

ដើម្បីជៀសវាងការគិតថ្លៃដែលមិនចាំបាច់ សូមលុបធនធានដែលអ្នកបានបង្កើត ខណៈពេលកំពុងដំណើរការឧទាហរណ៍នៅក្នុងអត្ថបទនេះ៖

  1. នៅក្នុងដែន SageMaker Studio របស់អ្នក សូមជ្រើសរើស ស្ទូឌីយោបុរាណ នៅក្នុងផ្ទាំងរុករក បន្ទាប់មកជ្រើសរើស បញ្ឈប់.
  2. នៅក្នុងដែន SageMaker Studio របស់អ្នក សូមជ្រើសរើស ជូទីតឡាប or កម្មវិធីនិពន្ធកូដ នៅក្នុងផ្ទាំងរុករក សូមជ្រើសរើសកម្មវិធីរបស់អ្នក ហើយបន្ទាប់មកជ្រើសរើស បញ្ឈប់.

សន្និដ្ឋាន

SageMaker Studio Local Mode និង Docker គាំទ្រផ្តល់សិទ្ធិអំណាចដល់អ្នកអភិវឌ្ឍន៍ក្នុងការសាងសង់ សាកល្បង និងធ្វើម្តងទៀតលើការអនុវត្ត ML កាន់តែលឿនដោយមិនចាកចេញពីកន្លែងធ្វើការរបស់ពួកគេ។ តាមរយៈការផ្តល់នូវការចូលប្រើភ្លាមៗទៅកាន់បរិយាកាសសាកល្បង និងលទ្ធផល សមត្ថភាពទាំងនេះបង្កើនប្រសិទ្ធភាពលំហូរការងារ និងបង្កើនផលិតភាព។ សាកល្បងប្រើ SageMaker Studio Local Model និង Docker support ដោយប្រើរបស់យើង។ មុខងារ onboard រហ័សដែលអនុញ្ញាតឱ្យអ្នកបង្វិលដែនថ្មីសម្រាប់អ្នកប្រើប្រាស់តែមួយក្នុងរយៈពេលប៉ុន្មាននាទី។ ចែករំលែកគំនិតរបស់អ្នកនៅក្នុងផ្នែកមតិយោបល់!


អំពីនិពន្ធនេះ

Shweta SinghShweta Singh គឺជាអ្នកគ្រប់គ្រងផលិតផលជាន់ខ្ពស់នៅក្នុងក្រុមវេទិកា Amazon SageMaker Machine Learning (ML) នៅ AWS ដែលនាំមុខគេ SageMaker Python SDK ។ នាងបានធ្វើការនៅក្នុងតួនាទីផលិតផលជាច្រើននៅក្នុង Amazon អស់រយៈពេលជាង 5 ឆ្នាំ។ នាងមានបរិញ្ញាបត្រវិទ្យាសាស្ត្រផ្នែកវិស្វកម្មកុំព្យូទ័រ និងអនុបណ្ឌិតវិទ្យាសាស្ត្រផ្នែកវិស្វកម្មហិរញ្ញវត្ថុ ទាំងពីសាកលវិទ្យាល័យញូវយ៉ក

អ៊ីតាន់ សិលាអ៊ីតាន់ សិលា គឺជា Generative AI និង Machine Learning Specialist Solutions Architect ta AWS ។ គាត់ធ្វើការជាមួយអតិថិជន AWS ដើម្បីផ្តល់ការណែនាំ និងជំនួយបច្ចេកទេស ដោយជួយពួកគេបង្កើត និងដំណើរការដំណោះស្រាយ Generative AI និង Machine Learning នៅលើ AWS។ នៅពេលទំនេររបស់គាត់ Eitan ចូលចិត្តរត់ និងអានអត្ថបទរៀនម៉ាស៊ីនចុងក្រោយបំផុត។

Pranav MurthyPranav Murthy គឺជាស្ថាបត្យករឯកទេសដំណោះស្រាយ AI/ML នៅ AWS។ គាត់ផ្តោតលើការជួយអតិថិជនបង្កើត បណ្តុះបណ្តាល ប្រើប្រាស់ និងផ្ទេរបន្ទុកការងាររបស់ម៉ាស៊ីន (ML) ទៅកាន់ SageMaker ។ ពីមុនគាត់បានធ្វើការនៅក្នុងឧស្សាហកម្ម semiconductor ដែលកំពុងអភិវឌ្ឍចក្ខុវិស័យកុំព្យូទ័រធំ (CV) និងគំរូដំណើរការភាសាធម្មជាតិ (NLP) ដើម្បីកែលម្អដំណើរការ semiconductor ដោយប្រើបច្ចេកទេស ML ទំនើប។ ពេលទំនេរ គាត់ចូលចិត្តលេងអុក និងធ្វើដំណើរកម្សាន្ត។ អ្នកអាចស្វែងរក Pranav នៅលើ LinkedIn.

Mufaddal RohawalaMufaddal Rohawala ជា Software Engineer នៅ AWS។ គាត់ធ្វើការនៅលើបណ្ណាល័យ SageMaker Python SDK សម្រាប់ Amazon SageMaker ។ ពេលទំនេរ គាត់ចូលចិត្តការធ្វើដំណើរ សកម្មភាពក្រៅផ្ទះ និងជាអ្នកគាំទ្របាល់ទាត់។

spot_img

បញ្ញាចុងក្រោយ

spot_img

ជជែកជាមួយយើង

សួស្តី! តើខ្ញុំអាចជួយអ្នកដោយរបៀបណា?