View a markdown version of this page

Langkah 3. Tentukan pipa - AWS Bimbingan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Langkah 3. Tentukan pipa

Mendefinisikan pipa ML.

Pada langkah ini, urutan dan logika tindakan yang akan dilakukan pipa ditentukan. Ini termasuk langkah-langkah diskrit serta input dan output logisnya. Misalnya, bagaimana keadaan data di awal pipa? Apakah itu berasal dari beberapa file yang berada pada tingkat granularitas yang berbeda atau dari satu file datar? Jika data berasal dari beberapa file, apakah Anda memerlukan satu langkah untuk semua file atau langkah terpisah untuk setiap file untuk menentukan logika pra-pemrosesan? Keputusan tergantung pada kompleksitas sumber data dan sejauh mana mereka diproses sebelumnya.

Dalam implementasi referensi kami, kami menggunakan AWS Step Functions, yang merupakan orkestrator fungsi tanpa server, untuk menentukan langkah-langkah alur kerja. Namun, kerangka kerja ML Max juga mendukung sistem pipeline atau state machine lainnya seperti Apache AirFlow (lihat bagian Different engine for pipeline orchestration) untuk mendorong pengembangan dan penyebaran jaringan pipa ML.

Menggunakan Step Functions SDK

Untuk mendefinisikan pipeline ML, pertama-tama kita menggunakan API Python tingkat tinggi yang disediakan oleh AWS Step Functions Data Science SDK (Step Functions SDK) untuk mendefinisikan dua komponen utama dari pipeline: langkah dan data. Jika Anda menganggap pipeline sebagai grafik asiklik terarah (DAG), langkah-langkah mewakili node pada grafik, dan data ditampilkan sebagai tepi terarah yang menghubungkan satu simpul (langkah) ke simpul berikutnya. Contoh khas langkah ML termasuk preprocessing, training, dan evaluasi. Step Functions SDK menyediakan sejumlah langkah bawaan (seperti TrainingStep) yang dapat Anda gunakan. Contoh data termasuk input, output, dan banyak dataset menengah yang dihasilkan oleh beberapa langkah dalam pipeline. Saat Anda mendesain pipeline ML, Anda tidak mengetahui nilai konkret item data. Anda dapat menentukan placeholder data yang berfungsi sebagai template (mirip dengan parameter fungsi) dan hanya berisi nama item data dan tipe data primitif. Dengan cara ini, Anda dapat merancang cetak biru pipa lengkap tanpa mengetahui nilai konkret data yang berjalan pada grafik terlebih dahulu. Untuk tujuan ini, Anda dapat menggunakan kelas placeholder di Step Functions SDK untuk memodelkan template data ini secara eksplisit.

Saluran pipa ML juga memerlukan parameter konfigurasi untuk melakukan kontrol halus atas perilaku setiap langkah ML. Placeholder data khusus ini disebut placeholder parameter. Banyak dari nilainya tidak diketahui saat Anda mendefinisikan pipeline. Contoh placeholder parameter mencakup parameter terkait infrastruktur yang Anda tentukan selama desain pipeline (misalnya, AWS Region atau URL gambar kontainer) dan parameter terkait pemodelan ML (seperti hyperparameters) yang Anda tentukan saat menjalankan pipeline.

Memperluas Step Functions SDK

Dalam implementasi referensi kami, salah satu persyaratan adalah memisahkan definisi pipa ML dari pembuatan dan penerapan pipa ML konkret dengan menggunakan pengaturan parameter tertentu. Namun, beberapa langkah bawaan di Step Functions SDK tidak memungkinkan kami untuk meneruskan semua parameter placeholder ini. Sebaliknya, nilai parameter diharapkan diperoleh secara langsung selama waktu desain pipeline melalui panggilan API konfigurasi SageMaker AI. Ini berfungsi dengan baik jika lingkungan waktu desain SageMaker AI identik dengan lingkungan runtime SageMaker AI, tetapi ini jarang terjadi dalam pengaturan dunia nyata. Kopling yang begitu erat antara waktu desain pipa dan runtime, dan asumsi bahwa infrastruktur platform ML akan tetap konstan, secara signifikan menghambat penerapan pipa yang dirancang. Faktanya, pipeline ML segera rusak ketika platform penerapan yang mendasarinya mengalami perubahan sekecil apa pun.

Untuk mengatasi tantangan ini dan menghasilkan pipeline HTML yang kuat (yang ingin kami rancang sekali dan jalankan di mana saja), kami menerapkan langkah-langkah khusus kami sendiri dengan memperluas beberapa langkah bawaan, termasuk TrainingStep, ModelStep, dan TransformerStep. Ekstensi ini disediakan dalam proyek ML Max. Antarmuka langkah-langkah khusus ini mendukung placeholder parameter yang jauh lebih banyak yang dapat diisi dengan nilai konkret selama pembuatan pipa atau saat pipa berjalan.