You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/id/5-Data-Science-In-Cloud/19-Azure/README.md

18 KiB

Data Science di Cloud: Cara "Azure ML SDK"

 Sketchnote oleh (@sketchthedocs)
Data Science di Cloud: Azure ML SDK - Sketchnote oleh @nitya

Daftar isi:

Kuis Pra-Pelajaran

1. Pendahuluan

1.1 Apa itu Azure ML SDK?

Data scientist dan pengembang AI menggunakan Azure Machine Learning SDK untuk membangun dan menjalankan alur kerja machine learning dengan layanan Azure Machine Learning. Anda dapat berinteraksi dengan layanan ini di lingkungan Python apa pun, termasuk Jupyter Notebooks, Visual Studio Code, atau IDE Python favorit Anda.

Area utama dari SDK meliputi:

  • Mengeksplorasi, mempersiapkan, dan mengelola siklus hidup dataset yang digunakan dalam eksperimen machine learning.
  • Mengelola sumber daya cloud untuk memantau, mencatat, dan mengatur eksperimen machine learning Anda.
  • Melatih model baik secara lokal maupun menggunakan sumber daya cloud, termasuk pelatihan model yang dipercepat GPU.
  • Menggunakan machine learning otomatis, yang menerima parameter konfigurasi dan data pelatihan. Ini secara otomatis mengiterasi algoritma dan pengaturan hyperparameter untuk menemukan model terbaik untuk menjalankan prediksi.
  • Mendeploy layanan web untuk mengubah model yang telah dilatih menjadi layanan RESTful yang dapat dikonsumsi di aplikasi apa pun.

Pelajari lebih lanjut tentang Azure Machine Learning SDK

Dalam pelajaran sebelumnya, kita telah melihat cara melatih, mendeploy, dan mengonsumsi model dengan pendekatan Low code/No code. Kita menggunakan dataset Gagal Jantung untuk menghasilkan model prediksi gagal jantung. Dalam pelajaran ini, kita akan melakukan hal yang sama tetapi menggunakan Azure Machine Learning SDK.

skema-proyek

1.2 Pengantar proyek prediksi gagal jantung dan dataset

Lihat di sini untuk pengantar proyek prediksi gagal jantung dan dataset.

2. Melatih model dengan Azure ML SDK

2.1 Membuat workspace Azure ML

Untuk kemudahan, kita akan bekerja di jupyter notebook. Ini berarti Anda sudah memiliki Workspace dan compute instance. Jika Anda sudah memiliki Workspace, Anda dapat langsung melompat ke bagian 2.3 Pembuatan Notebook.

Jika belum, silakan ikuti instruksi di bagian 2.1 Membuat workspace Azure ML dalam pelajaran sebelumnya untuk membuat workspace.

2.2 Membuat compute instance

Di Azure ML workspace yang telah kita buat sebelumnya, buka menu compute dan Anda akan melihat berbagai sumber daya compute yang tersedia.

compute-instance-1

Mari kita buat compute instance untuk menyediakan jupyter notebook.

  1. Klik tombol + New.
  2. Beri nama untuk compute instance Anda.
  3. Pilih opsi Anda: CPU atau GPU, ukuran VM, dan jumlah core.
  4. Klik tombol Create.

Selamat, Anda baru saja membuat compute instance! Kita akan menggunakan compute instance ini untuk membuat Notebook di bagian Membuat Notebook.

2.3 Memuat Dataset

Lihat bagian 2.3 Memuat Dataset dalam pelajaran sebelumnya jika Anda belum mengunggah dataset.

2.4 Membuat Notebook

CATATAN: Untuk langkah berikutnya, Anda dapat membuat notebook baru dari awal, atau Anda dapat mengunggah notebook yang telah kita buat ke Azure ML Studio Anda. Untuk mengunggahnya, cukup klik menu "Notebook" dan unggah notebook.

Notebook adalah bagian yang sangat penting dari proses data science. Notebook dapat digunakan untuk melakukan Exploratory Data Analysis (EDA), memanggil cluster komputer untuk melatih model, atau memanggil cluster inferensi untuk mendeploy endpoint.

Untuk membuat Notebook, kita memerlukan compute node yang menjalankan instance jupyter notebook. Kembali ke Azure ML workspace dan klik Compute instances. Dalam daftar compute instances, Anda seharusnya melihat compute instance yang telah kita buat sebelumnya.

  1. Di bagian Applications, klik opsi Jupyter.
  2. Centang kotak "Yes, I understand" dan klik tombol Continue. notebook-1
  3. Ini akan membuka tab browser baru dengan instance jupyter notebook Anda seperti berikut. Klik tombol "New" untuk membuat notebook.

notebook-2

Sekarang kita memiliki Notebook, kita dapat mulai melatih model dengan Azure ML SDK.

2.5 Melatih model

Pertama-tama, jika Anda memiliki keraguan, lihat dokumentasi Azure ML SDK. Dokumentasi ini berisi semua informasi yang diperlukan untuk memahami modul-modul yang akan kita bahas dalam pelajaran ini.

2.5.1 Menyiapkan Workspace, eksperimen, compute cluster, dan dataset

Anda perlu memuat workspace dari file konfigurasi menggunakan kode berikut:

from azureml.core import Workspace
ws = Workspace.from_config()

Ini mengembalikan objek tipe Workspace yang merepresentasikan workspace. Kemudian Anda perlu membuat experiment menggunakan kode berikut:

from azureml.core import Experiment
experiment_name = 'aml-experiment'
experiment = Experiment(ws, experiment_name)

Untuk mendapatkan atau membuat eksperimen dari workspace, Anda meminta eksperimen menggunakan nama eksperimen. Nama eksperimen harus terdiri dari 3-36 karakter, dimulai dengan huruf atau angka, dan hanya dapat berisi huruf, angka, garis bawah, dan tanda hubung. Jika eksperimen tidak ditemukan di workspace, eksperimen baru akan dibuat.

Sekarang Anda perlu membuat compute cluster untuk pelatihan menggunakan kode berikut. Perhatikan bahwa langkah ini dapat memakan waktu beberapa menit.

from azureml.core.compute import AmlCompute

aml_name = "heart-f-cluster"
try:
    aml_compute = AmlCompute(ws, aml_name)
    print('Found existing AML compute context.')
except:
    print('Creating new AML compute context.')
    aml_config = AmlCompute.provisioning_configuration(vm_size = "Standard_D2_v2", min_nodes=1, max_nodes=3)
    aml_compute = AmlCompute.create(ws, name = aml_name, provisioning_configuration = aml_config)
    aml_compute.wait_for_completion(show_output = True)

cts = ws.compute_targets
compute_target = cts[aml_name]

Anda dapat mengambil dataset dari workspace menggunakan nama dataset dengan cara berikut:

dataset = ws.datasets['heart-failure-records']
df = dataset.to_pandas_dataframe()
df.describe()

2.5.2 Konfigurasi dan pelatihan AutoML

Untuk mengatur konfigurasi AutoML, gunakan kelas AutoMLConfig.

Seperti yang dijelaskan dalam dokumentasi, ada banyak parameter yang dapat Anda eksplorasi. Untuk proyek ini, kita akan menggunakan parameter berikut:

  • experiment_timeout_minutes: Waktu maksimum (dalam menit) yang diizinkan untuk eksperimen berjalan sebelum secara otomatis dihentikan dan hasilnya tersedia.
  • max_concurrent_iterations: Jumlah maksimum iterasi pelatihan bersamaan yang diizinkan untuk eksperimen.
  • primary_metric: Metrik utama yang digunakan untuk menentukan status eksperimen.
  • compute_target: Target compute Azure Machine Learning untuk menjalankan eksperimen Automated Machine Learning.
  • task: Jenis tugas yang akan dijalankan. Nilainya bisa 'classification', 'regression', atau 'forecasting' tergantung pada jenis masalah AutoML yang akan diselesaikan.
  • training_data: Data pelatihan yang akan digunakan dalam eksperimen. Harus berisi fitur pelatihan dan kolom label (opsional kolom bobot sampel).
  • label_column_name: Nama kolom label.
  • path: Jalur lengkap ke folder proyek Azure Machine Learning.
  • enable_early_stopping: Apakah akan mengaktifkan penghentian dini jika skor tidak meningkat dalam jangka pendek.
  • featurization: Indikator apakah langkah featurization harus dilakukan secara otomatis atau tidak, atau apakah featurization yang disesuaikan harus digunakan.
  • debug_log: File log untuk menulis informasi debug.
from azureml.train.automl import AutoMLConfig

project_folder = './aml-project'

automl_settings = {
    "experiment_timeout_minutes": 20,
    "max_concurrent_iterations": 3,
    "primary_metric" : 'AUC_weighted'
}

automl_config = AutoMLConfig(compute_target=compute_target,
                             task = "classification",
                             training_data=dataset,
                             label_column_name="DEATH_EVENT",
                             path = project_folder,  
                             enable_early_stopping= True,
                             featurization= 'auto',
                             debug_log = "automl_errors.log",
                             **automl_settings
                            )

Sekarang setelah konfigurasi Anda diatur, Anda dapat melatih model menggunakan kode berikut. Langkah ini dapat memakan waktu hingga satu jam tergantung pada ukuran cluster Anda.

remote_run = experiment.submit(automl_config)

Anda dapat menjalankan widget RunDetails untuk menampilkan berbagai eksperimen.

from azureml.widgets import RunDetails
RunDetails(remote_run).show()

3. Deployment model dan konsumsi endpoint dengan Azure ML SDK

3.1 Menyimpan model terbaik

remote_run adalah objek tipe AutoMLRun. Objek ini berisi metode get_output() yang mengembalikan run terbaik dan model yang sesuai.

best_run, fitted_model = remote_run.get_output()

Anda dapat melihat parameter yang digunakan untuk model terbaik dengan mencetak fitted_model dan melihat properti model terbaik menggunakan metode get_properties().

best_run.get_properties()

Sekarang daftarkan model dengan metode register_model.

model_name = best_run.properties['model_name']
script_file_name = 'inference/score.py'
best_run.download_file('outputs/scoring_file_v_1_0_0.py', 'inference/score.py')
description = "aml heart failure project sdk"
model = best_run.register_model(model_name = model_name,
                                model_path = './outputs/',
                                description = description,
                                tags = None)

3.2 Deployment model

Setelah model terbaik disimpan, kita dapat mendeploy-nya dengan kelas InferenceConfig. InferenceConfig merepresentasikan pengaturan konfigurasi untuk lingkungan khusus yang digunakan untuk deployment. Kelas AciWebservice merepresentasikan model machine learning yang dideploy sebagai endpoint layanan web di Azure Container Instances. Layanan yang dideploy dibuat dari model, skrip, dan file terkait. Layanan web yang dihasilkan adalah endpoint HTTP yang seimbang beban dengan API REST. Anda dapat mengirim data ke API ini dan menerima prediksi yang dikembalikan oleh model.

Model dideploy menggunakan metode deploy.

from azureml.core.model import InferenceConfig, Model
from azureml.core.webservice import AciWebservice

inference_config = InferenceConfig(entry_script=script_file_name, environment=best_run.get_environment())

aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1,
                                               memory_gb = 1,
                                               tags = {'type': "automl-heart-failure-prediction"},
                                               description = 'Sample service for AutoML Heart Failure Prediction')

aci_service_name = 'automl-hf-sdk'
aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig)
aci_service.wait_for_deployment(True)
print(aci_service.state)

Langkah ini akan memakan waktu beberapa menit.

3.3 Konsumsi endpoint

Anda dapat mengonsumsi endpoint Anda dengan membuat input sampel:

data = {
    "data":
    [
        {
            'age': "60",
            'anaemia': "false",
            'creatinine_phosphokinase': "500",
            'diabetes': "false",
            'ejection_fraction': "38",
            'high_blood_pressure': "false",
            'platelets': "260000",
            'serum_creatinine': "1.40",
            'serum_sodium': "137",
            'sex': "false",
            'smoking': "false",
            'time': "130",
        },
    ],
}

test_sample = str.encode(json.dumps(data))

Kemudian Anda dapat mengirim input ini ke model Anda untuk prediksi:

response = aci_service.run(input_data=test_sample)
response

Ini seharusnya menghasilkan '{"result": [false]}'. Ini berarti bahwa input pasien yang kita kirim ke endpoint menghasilkan prediksi false, yang berarti orang ini tidak mungkin mengalami serangan jantung.

Selamat! Anda baru saja menggunakan model yang telah dilatih dan diterapkan di Azure ML dengan Azure ML SDK!

NOTE: Setelah Anda selesai dengan proyek ini, jangan lupa untuk menghapus semua sumber daya.

🚀 Tantangan

Ada banyak hal lain yang dapat Anda lakukan melalui SDK, sayangnya, kita tidak dapat membahas semuanya dalam pelajaran ini. Tapi kabar baiknya, belajar cara menjelajahi dokumentasi SDK dapat membawa Anda jauh secara mandiri. Lihat dokumentasi Azure ML SDK dan temukan kelas Pipeline yang memungkinkan Anda membuat pipeline. Pipeline adalah kumpulan langkah yang dapat dijalankan sebagai alur kerja.

PETUNJUK: Kunjungi dokumentasi SDK dan ketik kata kunci seperti "Pipeline" di bilah pencarian. Anda seharusnya menemukan kelas azureml.pipeline.core.Pipeline dalam hasil pencarian.

Kuis setelah pelajaran

Tinjauan & Studi Mandiri

Dalam pelajaran ini, Anda telah belajar cara melatih, menerapkan, dan menggunakan model untuk memprediksi risiko gagal jantung dengan Azure ML SDK di cloud. Lihat dokumentasi ini untuk informasi lebih lanjut tentang Azure ML SDK. Cobalah untuk membuat model Anda sendiri dengan Azure ML SDK.

Tugas

Proyek Data Science menggunakan Azure ML SDK


Penafian:
Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI Co-op Translator. Meskipun kami berupaya untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang berwenang. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.