Terapkan solusi pengambilan data inferensi pembelajaran mesin di AWS Lambda PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Terapkan solusi pengambilan data inferensi pembelajaran mesin di AWS Lambda

Memantau prediksi machine learning (ML) dapat membantu meningkatkan kualitas model yang diterapkan. Menangkap data dari kesimpulan yang dibuat dalam produksi dapat memungkinkan Anda memantau model yang diterapkan dan mendeteksi penyimpangan dalam kualitas model. Deteksi dini dan proaktif terhadap penyimpangan ini memungkinkan Anda mengambil tindakan korektif, seperti melatih ulang model, mengaudit sistem hulu, atau memperbaiki masalah kualitas.

AWS Lambda adalah layanan komputasi tanpa server yang dapat memberikan inferensi ML waktu nyata dalam skala besar. Dalam postingan ini, kami mendemonstrasikan fitur pengambilan data sampel yang dapat diterapkan ke beban kerja inferensi ML Lambda.

Pada Desember 2020, Lambda memperkenalkan dukungan untuk gambar kontainer sebagai format pengemasan. Fitur ini meningkatkan batas ukuran paket penerapan dari 500 MB menjadi 10 GB. Sebelum peluncuran fitur ini, batasan ukuran paket mempersulit penerapan kerangka kerja ML seperti TensorFlow atau PyTorch ke fungsi Lambda. Setelah peluncuran, peningkatan batas ukuran paket menjadikan ML sebagai beban kerja yang layak dan menarik untuk diterapkan ke Lambda. Pada tahun 2021, inferensi ML adalah salah satu jenis beban kerja yang tumbuh paling cepat di layanan Lambda.

Amazon SageMaker, layanan ML Amazon yang terkelola sepenuhnya, berisi fitur pemantauan modelnya sendiri. Namun, proyek sampel dalam postingan ini menunjukkan cara melakukan pengambilan data untuk digunakan dalam pemantauan model bagi pelanggan yang menggunakan Lambda untuk inferensi ML. Proyek ini menggunakan ekstensi Lambda untuk menangkap data inferensi untuk meminimalkan dampak pada kinerja dan latensi fungsi inferensi. Menggunakan ekstensi Lambda juga meminimalkan dampak pada pengembang fungsi. Dengan mengintegrasikan melalui ekstensi, fitur pemantauan dapat diterapkan ke beberapa fungsi dan dikelola oleh tim terpusat.

Ikhtisar solusi

Proyek ini berisi kode sumber dan file pendukung untuk aplikasi tanpa server yang menyediakan inferensi waktu nyata menggunakan model penjawab pertanyaan pra-pelatihan berbasis distilbert. Proyek ini menggunakan model tanya jawab Hugging Face pemrosesan bahasa alami (NLP) dengan PyTorch untuk melakukan tugas inferensi bahasa alami. Proyek ini juga berisi solusi untuk melakukan pengambilan data inferensi untuk prediksi model. Penulis fungsi Lambda dapat menentukan dengan tepat data mana dari input permintaan inferensi dan hasil prediksi yang akan dikirim ke ekstensi. Dalam solusi ini, kami mengirimkan input dan jawaban dari model ke ekstensi. Ekstensi kemudian secara berkala mengirimkan data ke Layanan Penyimpanan Sederhana Amazon (Amazon S3) ember. Kami membangun ekstensi pengambilan data sebagai gambar kontainer menggunakan a makefile. Kami kemudian membangun fungsi inferensi Lambda sebagai gambar wadah dan menambahkan gambar wadah ekstensi sebagai lapisan gambar wadah. Diagram berikut menunjukkan gambaran arsitektur.

Ekstensi Lambda adalah cara untuk menambah fungsi Lambda. Dalam proyek ini, kami menggunakan ekstensi Lambda eksternal untuk mencatat permintaan inferensi dan prediksi dari inferensi. Ekstensi eksternal berjalan sebagai proses terpisah di lingkungan runtime Lambda, mengurangi dampak pada fungsi inferensi. Namun, fungsi tersebut berbagi sumber daya seperti CPU, memori, dan penyimpanan dengan fungsi Lambda. Sebaiknya alokasikan memori yang cukup ke fungsi Lambda untuk memastikan ketersediaan sumber daya yang optimal. (Dalam pengujian kami, kami mengalokasikan 5 GB memori ke fungsi Lambda inferensi dan melihat ketersediaan sumber daya dan latensi inferensi yang optimal). Saat inferensi selesai, layanan Lambda segera mengembalikan respons dan tidak menunggu ekstensi selesai mencatat permintaan dan respons ke bucket S3. Dengan pola ini, ekstensi pemantauan tidak memengaruhi latensi inferensi. Untuk mempelajari lebih lanjut tentang ekstensi Lambda lihat seri video ini.

Isi proyek

Proyek ini menggunakan Model Aplikasi Tanpa Server AWS (AWS SAM) antarmuka baris perintah (CLI). Alat baris perintah ini memungkinkan pengembang untuk menginisialisasi dan mengonfigurasi aplikasi; mengemas, membangun, dan menguji secara lokal; dan terapkan ke AWS Cloud.

Anda dapat mengunduh kode sumber untuk proyek ini dari repositori GitHub.

Proyek ini mencakup file dan folder berikut:

  • aplikasi/aplikasi.py โ€“ Kode untuk fungsi Lambda aplikasi, termasuk kode untuk inferensi ML.
  • aplikasi/Dockerfile โ€“ Dockerfile untuk membangun image container yang mengemas fungsi inferensi, model yang diunduh dari Hugging Face, dan ekstensi Lambda yang dibuat sebagai layer. Berbeda dengan fungsi .zip, lapisan tidak dapat dilampirkan ke fungsi Lambda yang dikemas dalam wadah pada waktu pembuatan fungsi. Sebagai gantinya, kita membangun layer dan menyalin isinya ke dalam gambar kontainer.
  • Ekstensi โ€“ File ekstensi model monitor. Ekstensi Lambda ini digunakan untuk mencatat input ke fungsi inferensi dan prediksi yang sesuai ke bucket S3.
  • aplikasi/model โ€“ Model diunduh dari Hugging Face.
  • aplikasi/persyaratan.txt โ€“ Ketergantungan Python yang akan diinstal ke dalam wadah.
  • peristiwa โ€“ Acara pemanggilan yang dapat Anda gunakan untuk menguji fungsi.
  • template.yaml โ€“ File deskriptor yang mendefinisikan sumber daya AWS aplikasi.

Aplikasi menggunakan beberapa sumber daya AWS, termasuk fungsi Lambda dan Gerbang API Amazon API. Sumber daya ini didefinisikan dalam template.yaml file dalam proyek ini. Anda dapat memperbarui template untuk menambahkan sumber daya AWS melalui proses penerapan yang sama yang memperbarui kode aplikasi Anda.

Prasyarat

Untuk penelusuran ini, Anda harus memiliki prasyarat berikut:

Terapkan aplikasi sampel

Untuk membangun aplikasi Anda untuk pertama kalinya, selesaikan langkah-langkah berikut:

  • Jalankan kode berikut di shell Anda. (Ini akan membuat ekstensi juga):
  • Buat image Docker dari aplikasi monitor model. Konten build berada di .aws-sam direktori
docker build -t serverless-ml-model-monitor:latest .

docker tag serverless-ml-model-monitor:latest .dkr.ecr.us-east-1.amazonaws.com/serverless-ml-model-monitor:latest

  • Masuk ke Amazon ECR:
aws ecr get-login-password --region us-east-1 docker login --username AWS --password-stdin .dkr.ecr.us-east-1.amazonaws.com

  • Buat repositori di Amazon ECR:

aws ecr create-repositoryrepository-name serverless-ml-model-monitor--image-scanning-configuration scanOnPush=true--region us-east-1

  • Dorong gambar kontainer ke Amazon ECR:
docker push .dkr.ecr.us-east-1.amazonaws.com/serverless-ml-model-monitor:latest

  • Batalkan komentar pada baris #1 di aplikasi/Dockerfile dan edit untuk menunjuk ke gambar repositori ECR yang benar, lalu batalkan komentar pada baris #6 dan #7 di aplikasi/Dockerfile:
WORKDIR /opt
COPY --from=layer /opt/ .

  • Bangun aplikasi lagi:

Kami membangun lagi karena Lambda tidak mendukung lapisan Lambda secara langsung untuk jenis kemasan gambar kontainer. Pertama-tama kita perlu membangun komponen pemantauan model sebagai gambar wadah, mengunggahnya ke Amazon ECR, dan kemudian menggunakan gambar itu dalam aplikasi pemantauan model sebagai lapisan wadah.

  • Terakhir, terapkan fungsi Lambda, API Gateway, dan ekstensi:
sam deploy --guided

Perintah ini mengemas dan menerapkan aplikasi Anda ke AWS dengan serangkaian perintah:

  • Nama tumpukan : Nama yang dikerahkan Formasi AWS Cloud tumpukan. Ini harus unik untuk akun dan Wilayah Anda, dan titik awal yang baik adalah sesuatu yang cocok dengan nama proyek Anda.
  • Wilayah AWS : Wilayah AWS tempat Anda menerapkan aplikasi Anda.
  • Konfirmasikan perubahan sebelum menerapkan : Jika diatur ke yes, setiap set perubahan ditampilkan kepada Anda sebelum dijalankan untuk peninjauan manual. Jika disetel ke tidak, AWS SAM CLI secara otomatis menerapkan perubahan aplikasi.
  • Izinkan pembuatan peran AWS SAM CLI IAM : Banyak template AWS SAM, termasuk contoh ini, buat Identitas AWS dan Manajemen Akses (IAM) peran yang diperlukan untuk fungsi Lambda yang disertakan untuk mengakses layanan AWS. Secara default, ini dibatasi hingga izin minimum yang diperlukan. Untuk menerapkan tumpukan CloudFormation yang membuat atau memodifikasi peran IAM, CAPABILITY_IAM nilai untuk capabilities harus disediakan. Jika izin tidak diberikan melalui prompt ini, untuk menerapkan contoh ini, Anda harus secara eksplisit melewati --capabilities CAPABILITY_IAM ke sam deploy perintah.
  • Simpan argumen ke samconfig.toml : Jika diatur ke yes, pilihan Anda disimpan ke file konfigurasi di dalam proyek sehingga di masa mendatang, Anda bisa menjalankannya sam deploy tanpa parameter untuk menerapkan perubahan ke aplikasi Anda.

Anda dapat menemukan URL titik akhir API Gateway Anda dalam nilai keluaran yang ditampilkan setelah penerapan.

Uji aplikasinya

Untuk menguji aplikasi, gunakan Postman atau curl untuk mengirim permintaan ke titik akhir API Gateway. Sebagai contoh:

curl -X POST -H "Content-Type: text/plain" https://.execute-api.us-east-1.amazonaws.com/Prod/nlp-qa -d '{"question": "Where do you live?", "context": "My name is Clara and I live in Berkeley."}'

Anda akan melihat output seperti kode berikut. Model ML disimpulkan dari konteks dan mengembalikan jawaban untuk pertanyaan kami.

{
    "Question": "Where do you live?",
    "Answer": "Berkeley",
    "score": 0.9113729596138
}

Setelah beberapa menit, Anda akan melihat file di ember S3 nlp-qamodel-model-monitoring-modelmonitorbucket- dengan input dan inferensi dicatat.

Membersihkan

Untuk menghapus contoh aplikasi yang Anda buat, gunakan AWS CLI:

aws cloudformation delete-stack --stack-name 

Kesimpulan

Dalam postingan ini, kami menerapkan fitur pemantauan model sebagai ekstensi Lambda dan menerapkannya ke beban kerja inferensi ML Lambda. Kami menunjukkan cara membangun dan menerapkan solusi ini ke akun AWS Anda sendiri. Terakhir, kami menunjukkan cara menjalankan tes untuk memverifikasi fungsionalitas monitor.

Silakan berikan pemikiran atau pertanyaan apa pun di bagian komentar. Untuk sumber belajar tanpa server lainnya, kunjungi Tanah Tanpa Server.


Tentang Penulis

Terapkan solusi pengambilan data inferensi pembelajaran mesin di AWS Lambda PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Dan Rubah adalah Arsitek Solusi Spesialis Utama di Organisasi Spesialis Seluruh Dunia untuk Tanpa Server. Dan bekerja dengan pelanggan untuk membantu mereka memanfaatkan layanan tanpa server untuk membangun aplikasi yang skalabel, toleran terhadap kesalahan, berkinerja tinggi, dan hemat biaya. Dan bersyukur bisa tinggal dan bekerja di Boulder, Colorado yang indah.

Terapkan solusi pengambilan data inferensi pembelajaran mesin di AWS Lambda PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Newton Jain adalah Manajer Produk Senior yang bertanggung jawab untuk membangun pengalaman baru untuk pembelajaran mesin, komputasi kinerja tinggi (HPC), dan pelanggan pemrosesan media di AWS Lambda. Dia memimpin pengembangan kemampuan baru untuk meningkatkan kinerja, mengurangi latensi, meningkatkan skalabilitas, meningkatkan keandalan, dan mengurangi biaya. Dia juga membantu pelanggan AWS dalam menentukan strategi tanpa server yang efektif untuk aplikasi intensif komputasi mereka.

Terapkan solusi pengambilan data inferensi pembelajaran mesin di AWS Lambda PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Diksa Sharma adalah Arsitek Solusi dan Spesialis Pembelajaran Mesin di AWS. Dia membantu pelanggan mempercepat adopsi cloud mereka, terutama di bidang pembelajaran mesin dan teknologi tanpa server. Diksha menerapkan bukti konsep khusus yang menunjukkan kepada pelanggan nilai AWS dalam memenuhi tantangan bisnis dan TI mereka. Dia memungkinkan pelanggan dalam pengetahuan mereka tentang AWS dan bekerja bersama pelanggan untuk membangun solusi yang mereka inginkan.

Terapkan solusi pengambilan data inferensi pembelajaran mesin di AWS Lambda PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Weda Raman adalah Arsitek Solusi Spesialis Senior untuk pembelajaran mesin yang berbasis di Maryland. Veda bekerja dengan pelanggan untuk membantu mereka merancang aplikasi pembelajaran mesin yang efisien, aman, dan skalabel. Veda tertarik untuk membantu pelanggan memanfaatkan teknologi tanpa server untuk pembelajaran Mesin.

Terapkan solusi pengambilan data inferensi pembelajaran mesin di AWS Lambda PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai. Josh Kahn adalah Pemimpin Teknologi Seluruh Dunia untuk Tanpa Server dan Arsitek Solusi Utama. Dia memimpin komunitas global pakar tanpa server di AWS yang membantu pelanggan dari semua ukuran, mulai dari perusahaan baru hingga perusahaan terbesar di dunia, untuk menggunakan teknologi tanpa server AWS secara efektif.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS