Terapkan dan kelola alur pembelajaran mesin dengan Terraform menggunakan Amazon SageMaker PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Terapkan dan kelola alur pembelajaran mesin dengan Terraform menggunakan Amazon SageMaker

Pelanggan AWS mengandalkan Infrastruktur sebagai Kode (IaC) untuk merancang, mengembangkan, dan mengelola infrastruktur cloud mereka. IaC memastikan bahwa infrastruktur dan layanan pelanggan konsisten, terukur, dan dapat direproduksi, sekaligus dapat mengikuti praktik terbaik di bidang operasi pengembangan (DevOps).

Salah satu pendekatan yang mungkin untuk mengelola infrastruktur dan layanan AWS dengan IaC adalah Terraform, yang memungkinkan pengembang untuk mengatur infrastruktur mereka dalam modul kode yang dapat digunakan kembali. Aspek ini semakin penting di bidang pembelajaran mesin (ML). Mengembangkan dan mengelola pipeline ML, termasuk pelatihan dan inferensi dengan Terraform sebagai IaC, memungkinkan Anda menskalakan dengan mudah untuk beberapa kasus penggunaan ML atau Wilayah tanpa harus mengembangkan infrastruktur dari awal. Selain itu, ini memberikan konsistensi untuk infrastruktur (misalnya, jenis dan ukuran instans) untuk pelatihan dan inferensi di berbagai implementasi pipeline ML. Ini memungkinkan Anda merutekan permintaan dan lalu lintas masuk ke berbagai Amazon SageMaker titik akhir.

Dalam postingan ini, kami menunjukkan cara menerapkan dan mengelola pipeline ML menggunakan Terraform dan Amazon SageMaker.

Ikhtisar solusi

Postingan ini memberikan kode dan memandu Anda melalui langkah-langkah yang diperlukan untuk menerapkan infrastruktur AWS untuk pipeline ML dengan Terraform untuk pelatihan model dan inferensi menggunakan Amazon SageMaker. Pipeline ML dikelola melalui Fungsi Langkah AWS untuk mengatur langkah-langkah berbeda yang diterapkan dalam pipeline ML, seperti yang diilustrasikan pada gambar berikut.

Langkah Fungsi Langkah

Fungsi Langkah dimulai dan AWS Lambda fungsi, menghasilkan ID pekerjaan unik, yang kemudian digunakan saat memulai pekerjaan pelatihan SageMaker. Step Functions juga membuat model, konfigurasi titik akhir, dan titik akhir yang digunakan untuk inferensi. Sumber daya tambahan termasuk yang berikut:

Kode terkait ML untuk pelatihan dan inferensi dengan gambar Docker sebagian besar bergantung pada pekerjaan yang ada sebagai berikut: Repositori GitHub.

Diagram berikut menggambarkan arsitektur solusi:

Diagram Arsitektur

Kami memandu Anda melalui langkah-langkah tingkat tinggi berikut:

  1. Terapkan infrastruktur AWS Anda dengan Terraform.
  2. Dorong gambar Docker Anda ke Amazon ECR.
  3. Jalankan saluran ML.
  4. Panggil titik akhir Anda.

Struktur repositori

Anda dapat menemukan repositori yang berisi kode dan data yang digunakan untuk posting ini di berikut Repositori GitHub.

Repositori mencakup direktori berikut:

  • /terraform โ€“ Terdiri dari subfolder berikut:
    • ./infrastructure โ€“ Berisi file main.tf yang memanggil modul pipeline ML, selain deklarasi variabel yang kami gunakan untuk menerapkan infrastruktur
    • ./ml-pipeline-module โ€“ Berisi modul pipeline Terraform ML, yang dapat kita gunakan kembali
  • /src โ€“ Terdiri dari subfolder berikut:
    • ./container โ€“ Berisi kode contoh untuk pelatihan dan inferensi dengan definisi untuk gambar Docker
    • ./lambda_function โ€“ Berisi kode Python untuk fungsi Lambda yang menghasilkan konfigurasi, seperti ID tugas unik untuk tugas pelatihan SageMaker
  • /data โ€“ Berisi file berikut:
    • ./iris.csv โ€“ Berisi data untuk melatih model ML

Prasyarat

Untuk penelusuran ini, Anda harus memiliki prasyarat berikut:

Terapkan infrastruktur AWS Anda dengan Terraform

Untuk menerapkan pipeline ML, Anda perlu menyesuaikan beberapa variabel dan nama sesuai dengan kebutuhan Anda. Kode untuk langkah ini ada di /terraform direktori.

Saat menginisialisasi untuk pertama kalinya, buka file terraform/infrastructure/terraform.tfvars dan sesuaikan variabel Nama Proyek dengan nama proyek Anda, selain variabel wilayah jika Anda ingin menyebarkan di Wilayah lain. Anda juga dapat mengubah variabel tambahan seperti jenis instans untuk pelatihan dan inferensi.

Kemudian gunakan perintah berikut untuk menerapkan infrastruktur dengan Terraform:

export AWS_PROFILE=<your_aws_cli_profile_name>
cd terraform/infrastructure
terraform init
terraform plan
terraform apply

Periksa output dan pastikan sumber daya yang direncanakan muncul dengan benar, dan konfirmasikan dengan ya pada tahap apply jika semuanya sudah benar. Kemudian buka konsol Amazon ECR (atau periksa output Terraform di terminal) dan dapatkan URL untuk repositori ECR yang Anda buat melalui Terraform.

Outputnya akan terlihat mirip dengan output yang ditampilkan berikut, termasuk URL repositori ECR:

Apply complete! Resources: 19 added, 0 changed, 0 destroyed. Outputs: ecr_repository_url = <account_number>.dkr.ecr.eu-west-1.amazonaws.com/ml-pipeline-terraform-demo

Dorong gambar Docker Anda ke Amazon ECR

Agar pipeline ML dan SageMaker melatih dan menyediakan titik akhir SageMaker untuk inferensi, Anda perlu menyediakan image Docker dan menyimpannya di Amazon ECR. Anda dapat menemukan contoh di direktori src/container. Jika Anda telah menerapkan infrastruktur AWS dari langkah sebelumnya, Anda dapat mendorong image Docker seperti yang dijelaskan. Setelah image Docker Anda dikembangkan, Anda dapat melakukan tindakan berikut dan mendorongnya ke Amazon ECR (menyesuaikan URL Amazon ECR sesuai dengan kebutuhan Anda):

cd src/container
export AWS_PROFILE=<your_aws_cli_profile_name>
aws ecr get-login-password --region eu-west-1 | docker login --username AWS --password-stdin <account_number>.dkr.ecr.eu-west-1.amazonaws.com
docker build -t ml-training .
docker tag ml-training:latest <account_number>.dkr.ecr.eu-west-1.amazonaws.com/<ecr_repository_name>:latest
docker push <account_number>.dkr.ecr.eu-west-1.amazonaws.com/<ecr_repository_name>

Jika Anda telah menerapkan infrastruktur AWS dengan Terraform, Anda dapat mendorong perubahan kode dan gambar Docker Anda langsung ke Amazon ECR tanpa menerapkan melalui Terraform lagi.

Jalankan saluran ML

Untuk melatih dan menjalankan pipeline ML, buka konsol Step Functions dan mulai implementasi. Anda dapat memeriksa kemajuan setiap langkah dalam visualisasi mesin negara. Anda juga dapat memeriksa kemajuan pekerjaan pelatihan SageMaker dan status titik akhir SageMaker Anda.

Mulai Fungsi Langkah

Setelah Anda berhasil menjalankan mesin status di Step Functions, Anda dapat melihat bahwa titik akhir SageMaker telah dibuat. Di konsol SageMaker, pilih Kesimpulan di panel navigasi, lalu Titik akhir. Pastikan untuk menunggu status berubah menjadi InService.

Status Titik Akhir SageMaker

Panggil titik akhir Anda

Untuk memanggil titik akhir Anda (dalam contoh ini, untuk dataset iris), Anda dapat menggunakan skrip Python berikut dengan AWS SDK untuk Python (Boto3). Anda dapat melakukannya dari notebook SageMaker, atau menyematkan cuplikan kode berikut dalam fungsi Lambda:

import boto3
from io import StringIO
import pandas as pd client = boto3.client('sagemaker-runtime') endpoint_name = 'Your endpoint name' # Your endpoint name.
content_type = "text/csv"   # The MIME type of the input data in the request body. payload = pd.DataFrame([[1.5,0.2,4.4,2.6]])
csv_file = StringIO()
payload.to_csv(csv_file, sep=",", header=False, index=False)
payload_as_csv = csv_file.getvalue() response = client.invoke_endpoint(
EndpointName=endpoint_name,
ContentType=content_type,
Body=payload_as_csv
) label = response['Body'].read().decode('utf-8')
print(label)

Membersihkan

Anda dapat menghancurkan infrastruktur yang dibuat oleh Terraform dengan perintah terraform destroy, tetapi Anda harus menghapus data dan file di bucket S3 terlebih dahulu. Selanjutnya, titik akhir SageMaker (atau beberapa titik akhir SageMaker jika dijalankan beberapa kali) dibuat melalui Fungsi Langkah dan tidak dikelola melalui Terraform. Ini berarti penerapan terjadi saat menjalankan pipeline ML dengan Step Functions. Oleh karena itu, pastikan Anda menghapus titik akhir SageMaker atau titik akhir yang dibuat melalui pipeline Step Functions ML juga untuk menghindari biaya yang tidak perlu. Selesaikan langkah-langkah berikut:

  1. Di konsol Amazon S3, hapus dataset di keranjang pelatihan S3.
  2. Hapus semua model yang Anda latih melalui pipeline ML di bucket model S3, baik melalui konsol Amazon S3 atau AWS CLI.
  3. Hancurkan infrastruktur yang dibuat melalui Terraform:
    cd terraform/infrastructure
    terraform destroy

  4. Hapus titik akhir SageMaker, konfigurasi titik akhir, dan model yang dibuat melalui Step Functions, baik di konsol SageMaker atau melalui AWS CLI.

Kesimpulan

Selamat! Anda telah menerapkan pipeline ML menggunakan SageMaker dengan Terraform. Contoh solusi ini menunjukkan bagaimana Anda dapat dengan mudah menerapkan infrastruktur dan layanan AWS untuk pipeline ML dengan cara yang dapat digunakan kembali. Hal ini memungkinkan Anda menskalakan untuk beberapa kasus penggunaan atau Wilayah, dan memungkinkan pelatihan dan penerapan model ML dengan satu klik secara konsisten. Selanjutnya, Anda dapat menjalankan pipeline ML beberapa kali, misalnya saat data baru tersedia atau Anda ingin mengubah kode algoritme. Anda juga dapat memilih untuk merutekan permintaan atau lalu lintas ke titik akhir SageMaker yang berbeda.

Saya mendorong Anda untuk mengeksplorasi penambahan fitur keamanan dan mengadopsi praktik terbaik keamanan sesuai dengan kebutuhan Anda dan potensi standar perusahaan. Selain itu, menyematkan solusi ini ke dalam saluran CI/CD Anda akan memberi Anda kemampuan lebih lanjut dalam mengadopsi dan menetapkan praktik dan standar terbaik DevOps sesuai dengan kebutuhan Anda.


tentang Penulis

Terapkan dan kelola alur pembelajaran mesin dengan Terraform menggunakan Amazon SageMaker PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Oliver Zollikofer adalah Ilmuwan Data di Amazon Web Services. Dia memungkinkan pelanggan perusahaan global untuk membangun, melatih, dan menerapkan model pembelajaran mesin, serta mengelola siklus hidup model ML dengan MLOps. Selanjutnya, ia membangun dan merancang solusi cloud terkait.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS