Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Latih dan terapkan model ML kustom yang didukung GPU di Amazon SageMaker
Ankur Shukla, Amazon Web Services
Ringkasan
Pelatihan dan penerapan model machine learning (ML) yang didukung oleh unit pemrosesan grafis (GPU) memerlukan penyiapan awal dan inisialisasi variabel lingkungan tertentu untuk sepenuhnya membuka manfaat NVIDIA. GPUs Namun, menyiapkan lingkungan dapat memakan waktu dan membuatnya kompatibel dengan SageMaker arsitektur Amazon di Amazon Web Services (AWS) Cloud.
Pola ini membantu Anda melatih dan membuat model ML yang didukung GPU kustom menggunakan Amazon. SageMaker Ini menyediakan langkah-langkah untuk melatih dan menerapkan CatBoost model khusus yang dibangun di atas kumpulan data ulasan Amazon sumber terbuka. Anda kemudian dapat membandingkan kinerjanya pada instans p3.16xlarge
Amazon Elastic Compute Cloud EC2 (Amazon).
Pola ini berguna jika organisasi Anda ingin menerapkan model ML yang didukung GPU yang ada. SageMaker Ilmuwan data Anda dapat mengikuti langkah-langkah dalam pola ini untuk membuat kontainer yang didukung GPU NVIDIA dan menerapkan model ML pada kontainer tersebut.
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif.
Bucket sumber Amazon Simple Storage Service (Amazon S3) untuk menyimpan artefak dan prediksi model.
Pemahaman tentang instance SageMaker notebook dan notebook Jupyter.
Pemahaman tentang cara membuat peran AWS Identity and Access Management (IAM) dengan izin SageMaker peran dasar, akses bucket S3 dan izin pembaruan, serta izin tambahan untuk Amazon Elastic Container Registry (Amazon ECR).
Batasan
Pola ini ditujukan untuk beban kerja ML yang diawasi dengan kode train dan deploy yang ditulis dengan Python.
Arsitektur

Tumpukan teknologi
SageMaker
Amazon ECR
Alat
Alat
Amazon ECR — Amazon Elastic Container Registry (Amazon ECR) adalah layanan registri gambar kontainer terkelola AWS yang aman, terukur, dan andal.
Amazon SageMaker - SageMaker adalah layanan ML yang dikelola sepenuhnya.
Docker
— Docker adalah platform perangkat lunak untuk membangun, menguji, dan menyebarkan aplikasi dengan cepat. Python — Python
adalah bahasa pemrograman.
Kode
Kode untuk pola ini tersedia pada GitHub Menerapkan model klasifikasi tinjauan dengan Catboost dan SageMaker
Epik
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Buat peran IAM dan lampirkan kebijakan yang diperlukan. | Masuk ke AWS Management Console, buka konsol IAM, dan buat peran IAM baru. Lampirkan kebijakan berikut ke peran IAM:
Untuk informasi selengkapnya tentang ini, lihat Membuat instance buku catatan di SageMaker dokumentasi Amazon. | Ilmuwan data |
Buat instance SageMaker notebook. | Buka SageMaker konsol, pilih instance Notebook, lalu pilih Buat instance notebook. Untuk peran IAM, pilih peran IAM yang Anda buat sebelumnya. Konfigurasikan instance notebook sesuai dengan kebutuhan Anda, lalu pilih Buat instance notebook. Untuk langkah dan petunjuk mendetail, lihat Membuat instance buku catatan di SageMaker dokumentasi Amazon. | Ilmuwan data |
Kloning repositori. | Buka terminal dalam instance SageMaker notebook dan kloning model GitHub Implementing a review classification dengan Catboost dan SageMaker
| |
Mulai notebook Jupyter. | Mulai | Ilmuwan data |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Jalankan perintah di notebook Jupyter. | Buka notebook Jupyter dan jalankan perintah dari cerita berikut untuk menyiapkan data untuk melatih model ML Anda. | Ilmuwan data |
Baca data dari bucket S3. |
| Ilmuwan data |
Pra-proses data. |
catatanKode ini menggantikan nilai null di
| Ilmuwan data |
Pisahkan data menjadi kumpulan data pelatihan, validasi, dan pengujian. |
| Ilmuwan data |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Siapkan dan dorong gambar Docker. | Di notebook Jupyter, jalankan perintah dari cerita berikut untuk menyiapkan gambar Docker dan mendorongnya ke Amazon ECR. | Insinyur ML |
Buat repositori di Amazon ECR. |
| Insinyur ML |
Bangun image Docker secara lokal. |
| Insinyur ML |
Jalankan image Docker dan dorong ke Amazon ECR. |
| Insinyur ML |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Buat pekerjaan tuning SageMaker hyperparameter. | Di notebook Jupyter, jalankan perintah dari cerita berikut untuk membuat pekerjaan tuning SageMaker hyperparameter menggunakan image Docker Anda. | Ilmuwan data |
Buat SageMaker estimator. | Buat SageMaker estimator
| Ilmuwan data |
Buat pekerjaan HPO. | Buat pekerjaan penyetelan optimasi hyperparameter (HPO) dengan rentang parameter dan lewati set kereta dan validasi sebagai parameter ke fungsi.
| Ilmuwan data |
Jalankan pekerjaan HPO. |
| Ilmuwan data |
Menerima pekerjaan pelatihan berkinerja terbaik. |
| Ilmuwan data |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Buat pekerjaan transformasi SageMaker batch pada data pengujian untuk prediksi model. | Di notebook Jupyter, jalankan perintah dari cerita berikut untuk membuat model dari tugas penyetelan SageMaker hyperparameter Anda dan kirimkan pekerjaan transformasi SageMaker batch pada data pengujian untuk prediksi model. | Ilmuwan data |
Buat SageMaker modelnya. | Buat model dalam SageMaker model menggunakan pekerjaan pelatihan terbaik.
| Ilmuwan data |
Buat pekerjaan transformasi batch. | Buat pekerjaan transformasi batch pada kumpulan data pengujian.
| Ilmuwan data |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Baca hasilnya dan evaluasi kinerja model. | Di notebook Jupyter, jalankan perintah dari cerita berikut untuk membaca hasil dan mengevaluasi kinerja model pada metrik model Area Under the ROC Curve (ROC-AUC) dan Area Under the Precision Recall Curve (PR-AUC). Untuk informasi selengkapnya tentang hal ini, lihat konsep kunci Amazon Machine Learning dalam dokumentasi Amazon Machine Learning (Amazon ML). | Ilmuwan data |
Baca hasil pekerjaan transformasi batch. | Baca batch mengubah hasil pekerjaan menjadi bingkai data.
| Ilmuwan data |
Evaluasi metrik kinerja. | Mengevaluasi kinerja model pada ROC-AUC dan PR-AUC.
| Ilmuwan data |
Sumber daya terkait
Informasi tambahan
Daftar berikut menunjukkan elemen berbeda dari Dockerfile yang dijalankan di Build, run, dan push image Docker ke epik Amazon ECR.
Instal Python dengan aws-cli.
FROM amazonlinux:1 RUN yum update -y && yum install -y python36 python36-devel python36-libs python36-tools python36-pip && \ yum install gcc tar make wget util-linux kmod man sudo git -y && \ yum install wget -y && \ yum install aws-cli -y && \ yum install nginx -y && \ yum install gcc-c++.noarch -y && yum clean all
Instal paket Python
RUN pip-3.6 install --no-cache-dir --upgrade pip && \pip3 install --no-cache-dir --upgrade setuptools && \ pip3 install Cython && \ pip3 install --no-cache-dir numpy==1.16.0 scipy==1.4.1 scikit-learn==0.20.3 pandas==0.24.2 \ flask gevent gunicorn boto3 s3fs matplotlib joblib catboost==0.20.2
Instal CUDA dan cuDNN
RUN wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run \ && chmod u+x cuda_9.0.176_384.81_linux-run \ && ./cuda_9.0.176_384.81_linux-run --tmpdir=/data --silent --toolkit --override \ && wget https://custom-gpu-sagemaker-image.s3.amazonaws.com/installation/cudnn-9.0-linux-x64-v7.tgz \ && tar -xvzf cudnn-9.0-linux-x64-v7.tgz \ && cp /data/cuda/include/cudnn.h /usr/local/cuda/include \ && cp /data/cuda/lib64/libcudnn* /usr/local/cuda/lib64 \ && chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* \ && rm -rf /data/*
Buat struktur direktori yang diperlukan untuk SageMaker
RUN mkdir /opt/ml /opt/ml/input /opt/ml/input/config /opt/ml/input/data /opt/ml/input/data/training /opt/ml/model /opt/ml/output /opt/program
Mengatur variabel lingkungan NVIDIA
ENV PYTHONPATH=/opt/program ENV PYTHONUNBUFFERED=TRUE ENV PYTHONDONTWRITEBYTECODE=TRUE ENV PATH="/opt/program:${PATH}" # Set NVIDIA mount environments ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:$LD_LIBRARY_PATH ENV NVIDIA_VISIBLE_DEVICES="all" ENV NVIDIA_DRIVER_CAPABILITIES="compute,utility" ENV NVIDIA_REQUIRE_CUDA "cuda>=9.0"
Salin file pelatihan dan inferensi ke dalam gambar Docker
COPY code/* /opt/program/ WORKDIR /opt/program