Terapkan solusi MLOps yang menghosting titik akhir model Anda di AWS Lambda PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Terapkan solusi MLOps yang menghosting titik akhir model Anda di AWS Lambda

Pada 2019, Amazon ikut mendirikan janji iklim. Tujuan ikrar tersebut adalah untuk mencapai karbon nol bersih pada tahun 2040. Ini 10 tahun lebih awal dari garis besar perjanjian Paris. Perusahaan yang mendaftar berkomitmen untuk pelaporan rutin, penghapusan karbon, dan penyeimbangan yang kredibel. Pada saat penulisan ini, 377 perusahaan telah menandatangani ikrar iklim, dan jumlahnya masih terus bertambah.

Karena AWS berkomitmen untuk membantu Anda mencapai sasaran nol bersih melalui solusi cloud dan pembelajaran mesin (ML), banyak proyek telah dikembangkan dan diterapkan yang mengurangi emisi karbon. Manufaktur adalah salah satu industri yang dapat memperoleh manfaat besar dari proyek semacam itu. Melalui pengelolaan energi mesin yang dioptimalkan di pabrik manufaktur, seperti kompresor atau pendingin, perusahaan dapat mengurangi jejak karbon mereka dengan ML.

Beralih secara efektif dari fase eksperimen ML ke produksi merupakan tantangan. Mengotomatiskan pelatihan dan pelatihan ulang model, memiliki registri model, serta eksperimen pelacakan dan penyebaran adalah beberapa tantangan utama. Untuk perusahaan manufaktur, ada lapisan kerumitan lain, yaitu bagaimana model yang diterapkan ini dapat berjalan dengan maksimal.

Dalam postingan ini, kami mengatasi tantangan ini dengan menyediakan template operasi pembelajaran mesin (MLOps) yang menampung solusi manajemen energi berkelanjutan. Solusinya adalah agnostik untuk kasus penggunaan, yang berarti Anda dapat mengadaptasinya untuk kasus penggunaan Anda dengan mengubah model dan data. Kami tunjukkan cara mengintegrasikan model di Pipa Amazon SageMaker, alat orkestrasi alur kerja asli untuk membuat pipeline ML, yang menjalankan tugas pelatihan dan, secara opsional, tugas pemrosesan dengan Simulasi Monte Carlo. Eksperimen dilacak Eksperimen Amazon SageMaker. Model dilacak dan terdaftar di Registri model Amazon SageMaker. Terakhir, kami menyediakan kode untuk penerapan model akhir Anda di sebuah AWS Lambda fungsi.

Lambda adalah layanan komputasi yang memungkinkan Anda menjalankan kode tanpa mengelola atau menyediakan server. Penskalaan otomatis Lambda, penagihan bayar per permintaan, dan kemudahan penggunaan menjadikannya pilihan penerapan umum untuk tim ilmu data. Dengan postingan ini, ilmuwan data dapat mengubah model mereka menjadi fungsi Lambda yang hemat biaya dan dapat diskalakan. Selanjutnya, Lambda memungkinkan untuk integrasi dengan Rumput Hijau AWS IoT, yang membantu Anda membangun perangkat lunak yang memungkinkan perangkat Anda untuk bertindak secara maksimal pada data yang mereka hasilkan, seperti halnya solusi manajemen energi berkelanjutan.

Ikhtisar solusi

Arsitektur yang kami terapkan (lihat gambar berikut) adalah pendekatan yang sepenuhnya digerakkan oleh CI/CD untuk pembelajaran mesin. Elemen dipisahkan untuk menghindari satu solusi monolitik.

Mari kita mulai dengan kiri atas diagram. Itu Pemrosesan โ€“ Pembuatan gambar komponen adalah CI/CD-driven Komitmen Kode AWS repositori yang membantu membangun dan mendorong a Buruh pelabuhan wadah ke Registry Kontainer Elastis Amazon (ECR Amazon). Penampung pemrosesan ini berfungsi sebagai langkah pertama dalam pipeline ML kami, tetapi juga digunakan kembali untuk langkah pascapemrosesan. Dalam kasus kami, kami menerapkan Simulasi Monte Carlo sebagai postprocessing. Itu Pelatihan โ€“ Pembuatan gambar repositori yang diuraikan di kiri bawah memiliki mekanisme yang sama dengan Pengolahan blok di atasnya. Perbedaan utamanya adalah membangun wadah untuk pelatihan model.

Pipa utama, Model bangunan (Pipeline), adalah repositori CodeCommit lain yang mengotomatiskan menjalankan pipeline SageMaker Anda. Pipeline ini mengotomatiskan dan menghubungkan prapemrosesan data, pelatihan model, pelacakan metrik model di Eksperimen SageMaker, pascapemrosesan data, dan, pembuatan katalog model di registri model SageMaker.

Komponen terakhir ada di kanan bawah: Penerapan model. Jika Anda mengikuti contoh di Proyek Amazon SageMaker, Anda mendapatkan template yang menghosting model Anda menggunakan titik akhir SageMaker. Repositori penerapan kami sebagai gantinya menghosting model dalam fungsi Lambda. Kami menunjukkan pendekatan untuk menerapkan fungsi Lambda yang dapat menjalankan prediksi waktu nyata.

Prasyarat

Untuk menerapkan solusi kami dengan sukses, Anda memerlukan yang berikut ini:

Unduh repositori GitHub

Sebagai langkah pertama, kloning file Repositori GitHub ke mesin lokal Anda. Ini berisi struktur folder berikut:

  • penyebaran โ€“ Berisi kode yang relevan untuk penerapan
  • mllib โ€” Berisi kode ML untuk prapemrosesan, pelatihan, penyajian, dan simulasi
  • tes โ€” Berisi tes unit dan integrasi

File kunci untuk penyebaran adalah skrip shell deployment/deploy.sh. Anda menggunakan file ini untuk menerapkan sumber daya di akun Anda. Sebelum kita dapat menjalankan skrip shell, selesaikan langkah-langkah berikut:

  1. Buka deployment/app.py dan ubah bucket_name di bawah SageMakerPipelineSourceCodeStack. itu bucket_name harus unik secara global (misalnya, tambahkan nama lengkap Anda).
  2. In deployment/pipeline/assets/modelbuild/pipelines/energy_management/pipeline.py, mengubah default_bucket bawah get_pipeline dengan nama yang sama seperti yang ditentukan pada langkah 1.

Terapkan solusi dengan AWS CDK

Pertama, konfigurasikan AWS CLI Anda dengan akun dan Wilayah tempat Anda ingin menerapkan. Kemudian jalankan perintah berikut untuk mengubah ke direktori penerapan, buat lingkungan virtual, aktifkan, instal paket pip yang diperlukan yang ditentukan di setup.py, dan jalankan deploy.sh:

cd deployment
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pre-commit install
chmod u+x deploy.sh
./deploy.sh

deploy.sh melakukan tindakan berikut:

  1. Membuat lingkungan virtual dengan Python.
  2. Sumber skrip aktivasi lingkungan virtual.
  3. Instal AWS CDK dan persyaratan yang diuraikan di setup.py.
  4. Bootstrap lingkungan.
  5. Zip dan salin file yang diperlukan yang Anda kembangkan, seperti file mllib file, ke folder yang sesuai di mana aset ini diperlukan.
  6. Berjalan cdk deploy โ€”require-approval never.
  7. Membuat Formasi AWS Cloud menumpuk melalui AWS CDK.

Tahap awal penyebaran harus memakan waktu kurang dari 5 menit. Anda sekarang harus memiliki empat repositori di CodeCommit di Wilayah yang Anda tentukan melalui AWS CLI, seperti yang diuraikan dalam diagram arsitektur. Itu Pipa Kode AWS pipa dijalankan secara bersamaan. Itu modelbuild dan modeldeploy pipeline bergantung pada keberhasilan pemrosesan dan pelatihan pembangunan citra. Itu modeldeploy pipeline bergantung pada model build yang berhasil. Penyebaran model harus selesai dalam waktu kurang dari 1.5 jam.

Kloning repositori model di Studio

Untuk menyesuaikan pipeline SageMaker yang dibuat melalui penerapan AWS CDK di UI Studio, pertama-tama Anda harus mengkloning repositori ke Studio. Luncurkan terminal sistem di Studio dan jalankan perintah berikut setelah memberikan nama proyek dan ID:

git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modelbuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modeldeploy
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-processing-imagebuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-training-imagebuild

Setelah mengkloning repositori, Anda dapat mendorong komit ke repositori. Komit ini memicu proses CodePipeline untuk pipeline terkait.

Anda juga dapat mengadaptasi solusi pada mesin lokal Anda dan mengerjakan IDE pilihan Anda.

Jelajahi UI SageMaker Pipelines dan SageMaker Experiments

Pipeline SageMaker adalah serangkaian langkah yang saling berhubungan yang ditentukan menggunakan SDK Python Amazon SageMaker. Definisi pipeline ini mengkodekan pipeline menggunakan Directed Acyclic Graph (DAG) yang dapat diekspor sebagai definisi JSON. Untuk mempelajari lebih lanjut tentang struktur jaringan pipa tersebut, lihat Ikhtisar Pipeline SageMaker.

Navigasi ke Sumber daya SageMaker panel dan pilih sumber daya Pipelines untuk dilihat. Dibawah Nama, kamu harus lihat PROJECT_NAME-PROJECT_ID. Di UI proses, harus ada proses yang berhasil yang diperkirakan akan memakan waktu lebih dari 1 jam. Pipa akan terlihat seperti yang ditunjukkan pada tangkapan layar berikut.

Pipa Amazon SageMaker

Proses dijalankan secara otomatis setelah tumpukan AWS CDK diterapkan. Anda dapat menjalankan proses secara manual dengan memilih membuat eksekusi. Dari sana Anda dapat memilih parameter pipeline Anda sendiri seperti jenis instans dan jumlah instans untuk langkah pemrosesan dan pelatihan. Selanjutnya, Anda dapat memberikan nama dan deskripsi proses. Pipeline sangat dapat dikonfigurasi melalui parameter pipeline yang dapat Anda rujuk dan tentukan di seluruh definisi pipeline Anda.

Jangan ragu untuk memulai jalur pipa lain dengan parameter Anda sesuai keinginan. Setelah itu, arahkan ke Sumber daya SageMaker panel lagi dan pilih Eksperimen dan percobaan. Di sana Anda akan melihat garis lagi dengan nama seperti PROJECT_NAME-PROJECT_ID. Arahkan ke eksperimen dan pilih satu-satunya proses dengan ID acak. Dari sana, pilih tugas pelatihan SageMaker untuk mempelajari metrik yang terkait dengan Tugas pelatihan.

Sasaran Eksperimen SageMaker adalah membuatnya sesederhana mungkin untuk membuat eksperimen, mengisinya dengan uji coba, dan menjalankan analitik di seluruh uji coba dan eksperimen. SageMaker Pipeline terintegrasi erat dengan Eksperimen SageMaker, dan secara default untuk setiap proses, buat eksperimen, uji coba, dan komponen uji coba jika tidak ada.

Menyetujui penerapan Lambda di registri model

Sebagai langkah selanjutnya, navigasikan ke model registry di bawah Sumber daya SageMaker. Di sini Anda dapat menemukan lagi baris dengan nama seperti PROJECT_NAME-PROJECT_ID. Arahkan ke satu-satunya model yang ada dan setujui. Ini secara otomatis menerapkan artefak model dalam wadah di Lambda.

Setelah Anda menyetujui model Anda di registri model, sebuah Jembatan Acara Amazon aturan acara dipicu. Aturan ini menjalankan pipeline CodePipeline dengan akhiran *-modeldeploy. Di bagian ini, kami membahas bagaimana solusi ini menggunakan model yang disetujui dan menghostingnya di fungsi Lambda. CodePipeline mengambil repositori CodeCommit yang ada juga diakhiri dengan *-modeldeploy dan menggunakan kode itu untuk dijalankan di CodeBuild. Entri utama untuk CodeBuild adalah buildspec.yml mengajukan. Mari kita lihat ini dulu:

version: 0.2

env:
  shell: bash

phases:
  install:
    runtime_versions:
      python: 3.8
    commands:
      - python3 -m ensurepip --upgrade
      - python3 -m pip install --upgrade pip
      - python3 -m pip install --upgrade virtualenv
      - python3 -m venv .venv
      - source .venv/bin/activate
      - npm install -g aws-cdk@2.26.0
      - pip install -r requirements.txt
      - cdk bootstrap
  build:
    commands:
      - python build.py --model-package-group-name "$SOURCE_MODEL_PACKAGE_GROUP_NAME"
      - tar -xf model.tar.gz
      - cp model.joblib lambda/digital_twin
      - rm model.tar.gz
      - rm model.joblib
      - cdk deploy --require-approval never

Selama fase instalasi, kami memastikan bahwa pustaka Python selalu diperbarui, membuat lingkungan virtual, menginstal AWS CDK v2.26.0, dan menginstal aws-cdk Pustaka Python bersama dengan yang lain menggunakan file persyaratan. Kami juga bootstrap akun AWS. Pada fase build, kami menjalankan build.py, yang akan kita bahas selanjutnya. File itu mengunduh artefak model SageMaker terbaru yang disetujui dari Layanan Penyimpanan Sederhana Amazon (Amazon S3) ke instans CodeBuild lokal Anda. Ini .tar.gz file dibuka zipnya dan isinya disalin ke folder yang juga berisi kode Lambda utama kita. Fungsi Lambda diterapkan menggunakan AWS CDK, dan kode kehabisan wadah Docker dari Amazon ECR. Ini dilakukan secara otomatis oleh AWS CDK.

Grafik build.py file adalah file Python yang sebagian besar menggunakan AWS SDK untuk Python (Boto3) untuk membuat daftar paket model yang tersedia.

Fungsi get_approved_package mengembalikan URI Amazon S3 dari artefak yang kemudian diunduh, seperti yang dijelaskan sebelumnya.

Setelah berhasil menerapkan model Anda, Anda bisa uji langsung di konsol Lambda di Wilayah yang Anda pilih untuk diterapkan. Nama fungsi harus berisi DigitalTwinStack-DigitalTwin*. Buka fungsi dan arahkan ke uji tab. Anda dapat menggunakan kejadian berikut untuk menjalankan panggilan percobaan:

{
  "flow": "[280, 300]",
  "pressure": "[69, 70]",
  "simulations": "10",
  "no_of_trials": "10",
  "train_error_weight": "1.0"
}

Setelah menjalankan acara pengujian, Anda mendapatkan respons yang mirip dengan yang ditampilkan di tangkapan layar berikut.

Uji fungsi AWS Lambda

Jika Anda ingin menjalankan lebih banyak simulasi atau uji coba, Anda dapat menambah batas waktu tunggu Lambda dan bereksperimen dengan kode! Atau Anda mungkin ingin mengambil data yang dihasilkan dan memvisualisasikannya Amazon QuickSight. Di bawah ini adalah contohnya. Sekarang giliranmu!

Amazon QuickSight

Membersihkan

Untuk menghindari tagihan lebih lanjut, selesaikan langkah-langkah berikut:

  • Di konsol AWS CloudFormation, hapus EnergyOptimization tumpukan.
    Ini menghapus seluruh solusi.
  • Hapus tumpukan DigitalTwinStack, yang menerapkan fungsi Lambda Anda.

Kesimpulan

Dalam postingan ini, kami menunjukkan kepada Anda pipeline MLOps yang digerakkan oleh CI/CD dari solusi manajemen energi tempat kami memisahkan setiap langkah. Anda dapat melacak pipeline dan eksperimen ML di UI Studio. Kami juga mendemonstrasikan pendekatan penerapan yang berbeda: setelah model disetujui dalam registri model, fungsi Lambda yang menghosting model yang disetujui dibuat secara otomatis melalui CodePipeline.

Jika Anda tertarik menjelajahi alur MLOps di AWS atau solusi manajemen energi berkelanjutan, lihat Repositori GitHub dan terapkan tumpukan di lingkungan AWS Anda sendiri!


Tentang Penulis

Terapkan solusi MLOps yang menghosting titik akhir model Anda di AWS Lambda PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Laurens van der Maas adalah Ilmuwan Data di Layanan Profesional AWS. Dia bekerja sama dengan pelanggan membangun solusi pembelajaran mesin mereka di AWS, dan sangat tertarik dengan bagaimana pembelajaran mesin mengubah dunia seperti yang kita ketahui.

Terapkan solusi MLOps yang menghosting titik akhir model Anda di AWS Lambda PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Kangkang Wang adalah konsultan AI/ML dengan AWS Professional Services. Dia memiliki pengalaman yang luas dalam menerapkan solusi AI/ML dalam vertikal kesehatan dan ilmu kehidupan. Dia juga senang membantu pelanggan perusahaan membangun platform AI/ML yang dapat diskalakan untuk mempercepat perjalanan cloud ilmuwan data mereka.

Terapkan solusi MLOps yang menghosting titik akhir model Anda di AWS Lambda PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Selena Tabbara adalah Ilmuwan Data di Layanan Profesional AWS. Dia bekerja setiap hari dengan pelanggannya untuk mencapai hasil bisnis mereka dengan berinovasi di platform AWS. Di waktu senggangnya, Selena senang bermain piano, mendaki gunung, dan menonton bola basket.

Michael Wallner Michael Wallner adalah Konsultan Senior dengan fokus pada AI/ML dengan Layanan Profesional AWS. Michael bersemangat untuk memungkinkan pelanggan dalam perjalanan cloud mereka menjadi AWSome. Dia bersemangat tentang manufaktur dan senang membantu mengubah ruang manufaktur melalui data.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS