Cloud Computing – Menuju AI — Publikasi AI dan Teknologi Terkemuka di Dunia

Pengarang: mer zgür

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

Cara Mengotomatiskan Pemrosesan Data Dengan AWS Batch

Foto oleh Kristin Snippe di Unsplash

Saat memecahkan masalah di bidang pembelajaran mesin, kita dapat bereksperimen dengan mengubah parameter seperti model, metode augmentasi, data. Tugas penting bagi ilmuwan data adalah mengotomatiskan tugas yang berulang.

Mengotomatiskan langkah-langkah yang memakan waktu selama eksperimen ini akan membuat hidup kita lebih mudah dan proses pengembangan lebih cepat.

Arsitektur Demo

Gambar oleh penulis

Dalam demo ini, kita akan melakukan percobaan sederhana. Saat CSV diunggah ke bucket S3, kita akan melihat bagaimana CSV dapat memicu fungsi Lambda, diproses oleh AWS Batch, dan ditulis ke S3 lain. Anda dapat mengedit kode python sesuai dengan kebutuhan Anda. Dalam contoh langkah-langkah ini akan diikuti:

Mendorong buruh pelabuhan kami ke ECR Membuat Pekerjaan Batch Membuat Fungsi Lambda

Lambda vs Batch

Pada dasarnya, tujuan Lambda dan Batch adalah bekerja tanpa server untuk memenuhi tugas yang diberikan. Batch dan Lambda pada dasarnya berbeda dalam runtime, jika proses Anda memakan waktu kurang dari 15 menit, Anda harus menggunakan Lambda.

Anda juga dapat menggunakan GPU di Batch. Lambda hanya bekerja dengan CPU.

Ayo Mulai

Catatan: Fungsi Lambda Anda, ember S3, dan Batch harus berada di wilayah yang sama

Anda dapat menggunakan komputer Anda atau membuat instance Ec2 yang telah diinstal buruh pelabuhan. Kode pembuatan Docker di Linux tetapi Anda dapat menemukan versi windows di AWS.

Pertama-tama, kita perlu menginstal awscli dan mengatur kredensial.

sudo apt install awscli -y aws configure

Setelah konfigurasi, kita dapat pergi ke Elastic Container Registry dan membuat repositori baru.

Gambar oleh penulis dari AWS

Perintah di sini akan khusus untuk Anda. Pertama, mari kita autentikasi klien Docker.

aws ecr get-login-password –region us-east-2 | login buruh pelabuhan –nama pengguna AWS –kata sandi-stdin your_acct_id.dkr.ecr.us-east-2.amazonaws.com

Kami membutuhkan 3 file, file Docker, requirements.txt, main.py. Semua file saya di bawah folder pyproject.

proyek cd

File Docker kami:

DARI python:3.6 WORKDIR /script COPY requirements.txt . JALANKAN pip install -r requirements.txt COPY main.py . TITIK MASUK [ “python”, “main.py”]

Persyaratan kami.txt. Anda dapat menambahkan perpustakaan yang dibutuhkan.

tensorflow==2.4.3
numpy
panda
boto3
s3fs
Bantal == 8.0.1

Main.py dasar kami, kami dapat mengonfigurasi kredensial AWS untuk membaca tulisan dari s3. Dan itu menggunakan argumen baris perintah untuk mendapatkan jalur file.

impor saya
impor
impor panda sebagai pd
impor boto3
impor s3fs
impor sys os.environ[‘AWS_ACCESS_KEY_ID’] = ‘xxxxxxxxxxxxxxxxxxxxxxxxx’
os.environ[‘AWS_SECRET_ACCESS_KEY’] = ‘xxxxxxxxxxxxxxxxxxxxxxxxxxxx’
os.environ[‘AWS_REGION’] = ‘kita-timur-2’
os.environ[‘S3_ENDPOINT’] = ‘https://s3-us-east-2.amazonaws.com’
os.environ[‘S3_VERIFY_SSL’] = ‘0’ if __name__ == “__main__”: csv_path = sys.argv[3]
df = pd.read_csv(csv_path)
df = df[df[“Age”]>20]df.to_csv(“s3://auto_proc/processed.csv”,index=False)

Jika file kami baik-baik saja, kami dapat menjalankan untuk membangun dan mendorong buruh pelabuhan kami ke ECR:

buruh pelabuhan build -t pyproject . tag buruh pelabuhan pyproject: terbaru 7409775503.dkr.ecr.us-east-2.amazonaws.com/pyproject: Docker buruh pelabuhan terbaru 7409475503.dkr.ecr.us-east-2.amazonaws.com/pyproject:latest

Membuat Pekerjaan Batch

Gambar oleh penulis dari AWS

Bagian terpenting saat membuat Batch Job adalah memasukkan URI Gambar, yang telah kita buat ECR sebelumnya, di bagian Gambar. Kami akan menggunakan informasi jobQueue dan jobDefinition yang kami masukkan selama proses pembuatan Batch untuk memicu Lambda.

Dalam arsitektur tanpa server, kami tidak bergantung pada satu mesin. Saat tugas diberikan, Docker yang kami buat berjalan pada mesin dengan fitur yang diinginkan dan kemudian meninggalkan mesin itu.

Membuat Fungsi Lambda Dan Pemicu S3

Gambar oleh penulis dari AWS

Dalam rencana arsitektur, file csv dimuat ke s3 dan memicu Lambda. Lambda yang dipicu mengirimkan pekerjaan ke Batch dengan nama file yang diunggah. Kode lambda:

impor json
impor urllib.parse
impor boto3 s3 = boto3.client(‘s3’)
klien = boto3.client(‘batch’, ‘us-east-2’) def lambda_handler(acara, konteks): ember = acara[‘Records’][0][‘s3’][‘bucket’][‘name’]
kunci = urllib.parse.unquote_plus(event[‘Records’][0][‘s3’] [‘object’][‘key’], pengkodean=’utf-8′)
respon = s3.get_object(Bucket=bucket, Key=key)
full_path = “s3://{ubah di sini}/” +key.split(“/”)[1]
print(jalur_penuh) csv_job = klien.kirim_pekerjaan(
namapekerjaan=’contoh_pekerjaan’,
jobQueue='{ubah di sini}’,
jobDefinition='{ubah di sini}’,
containerOverride={
‘memerintah’: [“python”,”main.py”,full_path]})

Kita bisa melihat pekerjaan yang dikirimkan di Batch. Kami dapat menjalankan beberapa gambar Docker dengan memilih lebih banyak CPU di lingkungan komputasi.

Gambar oleh penulis dari AWS

Kesimpulan

Pipeline data adalah bagian tak terpisahkan dari machine learning. AWS Lambda dan Batch berguna untuk jenis kebutuhan ini. Otomatiskan, buat hidup lebih mudah!

Cloud Computing awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI