Postingan blog ini ditulis bersama oleh Guillermo Ribeiro, Sr. Data Scientist di Cepsa.
Pembelajaran mesin (ML) telah berkembang pesat dari menjadi tren modis yang muncul dari lingkungan akademik dan departemen inovasi menjadi sarana utama untuk memberikan nilai di seluruh bisnis di setiap industri. Transisi dari eksperimen di laboratorium ke pemecahan masalah dunia nyata di lingkungan produksi ini berjalan seiring dengan MLOps, atau adaptasi DevOps ke dunia ML.
MLOps membantu merampingkan dan mengotomatiskan siklus hidup penuh model ML, menempatkan fokusnya pada set data sumber, reproduktifitas eksperimen, kode algoritme ML, dan kualitas model.
At Cepsa, sebuah perusahaan energi global, kami menggunakan ML untuk mengatasi masalah kompleks di seluruh lini bisnis kami, mulai dari melakukan pemeliharaan prediktif untuk peralatan industri hingga memantau dan meningkatkan proses petrokimia di kilang kami.
Dalam posting ini, kami membahas bagaimana kami membangun arsitektur referensi kami untuk MLOps menggunakan layanan AWS utama berikut:
- Amazon SageMaker, layanan untuk membuat, melatih, dan menerapkan model ML
- Fungsi Langkah AWS, layanan alur kerja visual kode rendah tanpa server yang digunakan untuk mengatur dan mengotomatisasi proses
- Jembatan Acara Amazon, bus acara tanpa server
- AWS Lambda, layanan komputasi tanpa server yang memungkinkan Anda menjalankan kode tanpa menyediakan atau mengelola server
Kami juga menjelaskan bagaimana kami menerapkan arsitektur referensi ini untuk mem-bootstrap proyek ML baru di perusahaan kami.
Tantangan
Selama 4 tahun terakhir, beberapa lini bisnis di Cepsa memulai proyek ML, tetapi segera masalah dan batasan tertentu mulai muncul.
Kami tidak memiliki arsitektur referensi untuk ML, sehingga setiap proyek mengikuti jalur implementasi yang berbeda, melakukan pelatihan dan penerapan model ad hoc. Tanpa metode umum untuk menangani kode dan parameter proyek dan tanpa registri model atau sistem versi ML, kami kehilangan keterlacakan di antara kumpulan data, kode, dan model.
Kami juga mendeteksi ruang untuk perbaikan dalam cara kami mengoperasikan model dalam produksi, karena kami tidak memantau model yang diterapkan dan oleh karena itu tidak memiliki sarana untuk melacak kinerja model. Akibatnya, kami biasanya melatih ulang model berdasarkan jadwal waktu, karena kami tidak memiliki metrik yang tepat untuk membuat keputusan pelatihan ulang yang tepat.
Solusinya
Mulai dari tantangan yang harus kami atasi, kami merancang solusi umum yang bertujuan untuk memisahkan persiapan data, pelatihan model, inferensi, dan pemantauan model, dan menampilkan model registri terpusat. Dengan cara ini, kami menyederhanakan pengelolaan lingkungan di beberapa akun AWS, sambil memperkenalkan ketertelusuran model terpusat.
Ilmuwan dan pengembang data kami menggunakan AWS Cloud9 (IDE cloud untuk menulis, menjalankan, dan men-debug kode) untuk perselisihan data dan eksperimen ML dan GitHub sebagai repositori kode Git.
Alur kerja pelatihan otomatis menggunakan kode yang dibuat oleh tim ilmu data untuk melatih model di SageMaker dan untuk mendaftarkan model keluaran dalam model registri.
Alur kerja yang berbeda mengelola penerapan model: ia memperoleh referensi dari registri model dan membuat titik akhir inferensi menggunakan Fitur hosting model SageMaker.
Kami menerapkan pelatihan model dan alur kerja penerapan menggunakan Step Functions, karena menyediakan kerangka kerja fleksibel yang memungkinkan pembuatan alur kerja spesifik untuk setiap proyek dan mengatur berbagai layanan dan komponen AWS dengan cara yang mudah.
Model konsumsi data
Di Cepsa, kami menggunakan serangkaian data lake untuk memenuhi beragam kebutuhan bisnis, dan semua data lake ini berbagi model konsumsi data umum yang memudahkan insinyur data dan ilmuwan data untuk menemukan dan menggunakan data yang mereka butuhkan.
Untuk menangani biaya dan tanggung jawab dengan mudah, lingkungan data lake dipisahkan sepenuhnya dari produsen data dan aplikasi konsumen, dan diterapkan di berbagai akun AWS milik Organisasi AWS yang sama.
Data yang digunakan untuk melatih model ML dan data yang digunakan sebagai input inferensi untuk model yang dilatih tersedia dari data lake yang berbeda melalui serangkaian API yang terdefinisi dengan baik menggunakan Gerbang API Amazon, layanan untuk membuat, memublikasikan, memelihara, memantau, dan mengamankan API dalam skala besar. Backend API menggunakan Amazon Athena (layanan kueri interaktif untuk menganalisis data menggunakan SQL standar) untuk mengakses data yang sudah disimpan di Layanan Penyimpanan Sederhana Amazon (Amazon S3) dan dikatalogkan di Lem AWS Katalog Data.
Diagram berikut memberikan gambaran umum tentang arsitektur MLOps Cepsa.
Pelatihan model
Proses pelatihan independen untuk setiap model dan ditangani oleh a Langkah Fungsi alur kerja standar, yang memberi kami fleksibilitas untuk memodelkan proses berdasarkan kebutuhan proyek yang berbeda. Kami memiliki template dasar yang ditentukan yang kami gunakan kembali pada sebagian besar proyek, melakukan penyesuaian kecil bila diperlukan. Misalnya, beberapa pemilik proyek telah memutuskan untuk menambahkan gerbang manual untuk menyetujui penerapan model produksi baru, sementara pemilik proyek lain telah menerapkan mekanisme deteksi kesalahan dan coba lagi mereka sendiri.
Kami juga melakukan transformasi pada dataset input yang digunakan untuk pelatihan model. Untuk tujuan ini, kami menggunakan fungsi Lambda yang terintegrasi dalam alur kerja pelatihan. Dalam beberapa skenario di mana transformasi data yang lebih kompleks diperlukan, kami menjalankan kode kami di Layanan Kontainer Amazon Elastic (Amazon ECS) aktif Fargate AWS, mesin komputasi tanpa server untuk menjalankan container.
Tim ilmu data kami sering menggunakan algoritme khusus, jadi kami memanfaatkan kemampuan untuk gunakan wadah khusus dalam pelatihan model SageMaker, bergantung pada Registry Kontainer Elastis Amazon (Amazon ECR), registry container terkelola sepenuhnya yang memudahkan penyimpanan, pengelolaan, pembagian, dan penerapan gambar container.
Sebagian besar proyek ML kami didasarkan pada perpustakaan Scikit-learn, jadi kami telah memperluas standar SageMaker Scikit-belajar wadah untuk memasukkan variabel lingkungan yang diperlukan untuk proyek, seperti informasi repositori Git dan opsi penerapan.
Dengan pendekatan ini, ilmuwan data kami hanya perlu fokus pada pengembangan algoritme pelatihan dan menentukan pustaka yang diperlukan oleh proyek. Ketika mereka mendorong perubahan kode ke repositori Git, sistem CI/CD kami (Jenkins dihosting di AWS) membangun wadah dengan kode pelatihan dan pustaka. Wadah ini didorong ke Amazon ECR dan akhirnya diteruskan sebagai parameter ke pemanggilan pelatihan SageMaker.
Ketika proses pelatihan selesai, model yang dihasilkan disimpan di Amazon S3, referensi ditambahkan di registri model, dan semua informasi dan metrik yang dikumpulkan disimpan dalam katalog eksperimen. Ini memastikan reproduktifitas penuh karena kode algoritme dan pustaka terkait dengan model terlatih bersama dengan data yang terkait dengan eksperimen.
Diagram berikut menggambarkan model pelatihan dan proses pelatihan ulang.
Penerapan model
Arsitekturnya fleksibel dan memungkinkan penerapan model yang terlatih secara otomatis dan manual. Alur kerja penyebar model secara otomatis dipanggil melalui peristiwa yang diterbitkan pelatihan SageMaker di EventBridge setelah pelatihan selesai, tetapi juga dapat dipanggil secara manual jika diperlukan, dengan meneruskan versi model yang tepat dari registri model. Untuk informasi lebih lanjut tentang pemanggilan otomatis, lihat Mengotomatiskan Amazon SageMaker dengan Amazon EventBridge.
Alur kerja model deployer mengambil informasi model dari model registry dan menggunakan Formasi AWS Cloud, infrastruktur terkelola sebagai layanan kode, untuk menerapkan model ke titik akhir inferensi real-time atau melakukan inferensi batch dengan kumpulan data input yang tersimpan, bergantung pada persyaratan proyek.
Setiap kali model berhasil diterapkan di lingkungan apa pun, registri model diperbarui dengan tag baru yang menunjukkan di lingkungan mana model sedang berjalan. Setiap kali titik akhir dihapus, tagnya juga dihapus dari registri model.
Diagram berikut menunjukkan alur kerja untuk penerapan dan inferensi model.
Eksperimen dan registri model
Menyimpan setiap eksperimen dan versi model di satu lokasi dan memiliki repositori kode terpusat memungkinkan kami untuk memisahkan pelatihan dan penerapan model serta menggunakan akun AWS yang berbeda untuk setiap proyek dan lingkungan.
Semua entri eksperimen menyimpan ID komit dari pelatihan dan kode inferensi, sehingga kami memiliki keterlacakan lengkap dari seluruh proses eksperimen dan dapat dengan mudah membandingkan eksperimen yang berbeda. Ini mencegah kami melakukan pekerjaan duplikat pada fase eksplorasi ilmiah untuk algoritme dan model, dan memungkinkan kami untuk menerapkan model kami di mana saja, terlepas dari akun dan lingkungan tempat model dilatih. Hal ini juga berlaku untuk model yang dilatih di lingkungan eksperimen AWS Cloud9 kami.
Secara keseluruhan, kami memiliki jaringan pelatihan dan penerapan model yang sepenuhnya otomatis dan memiliki fleksibilitas untuk melakukan penerapan model manual yang cepat ketika ada sesuatu yang tidak berfungsi dengan baik atau ketika sebuah tim membutuhkan model yang diterapkan ke lingkungan yang berbeda untuk tujuan eksperimen.
Kasus penggunaan terperinci: proyek YET Dragon
Proyek YET Dragon bertujuan untuk meningkatkan kinerja produksi pabrik petrokimia Cepsa di Shanghai. Untuk mencapai tujuan ini, kami mempelajari proses produksi secara menyeluruh, mencari langkah-langkah yang kurang efisien. Target kami adalah untuk meningkatkan efisiensi hasil proses dengan menjaga konsentrasi komponen tepat di bawah ambang batas.
Untuk mensimulasikan proses ini, kami membangun empat model aditif umum atau GAM, model linier yang responsnya bergantung pada fungsi halus variabel prediktor, untuk memprediksi hasil dari dua proses oksidasi, satu proses konsentrasi, dan hasil yang disebutkan di atas. Kami juga membangun pengoptimal untuk memproses hasil keempat model GAM dan menemukan pengoptimalan terbaik yang dapat diterapkan di pabrik.
Meskipun model kami dilatih dengan data historis, pabrik terkadang dapat beroperasi dalam keadaan yang tidak terdaftar dalam kumpulan data pelatihan; kami berharap model simulasi kami tidak akan bekerja dengan baik di bawah skenario tersebut, jadi kami juga membangun dua model deteksi anomali menggunakan algoritme Hutan Isolasi, yang menentukan seberapa jauh titik data ke data lainnya untuk mendeteksi anomali. Model ini membantu kami mendeteksi situasi seperti itu untuk menonaktifkan proses pengoptimalan otomatis setiap kali hal ini terjadi.
Proses kimia industri sangat bervariasi dan model ML perlu diselaraskan dengan baik dengan operasi pabrik, sehingga pelatihan ulang yang sering diperlukan serta ketertelusuran model yang diterapkan di setiap situasi. YET Dragon adalah proyek pengoptimalan ML pertama kami yang menampilkan model registry, reproduktifitas penuh eksperimen, dan proses pelatihan otomatis yang terkelola sepenuhnya.
Sekarang, alur lengkap yang membawa model ke dalam produksi (transformasi data, pelatihan model, pelacakan eksperimen, registri model, dan penerapan model) independen untuk setiap model ML. Ini memungkinkan kami untuk meningkatkan model secara iteratif (misalnya menambahkan variabel baru atau menguji algoritme baru) dan untuk menghubungkan tahap pelatihan dan penerapan ke pemicu yang berbeda.
Hasil dan perbaikan di masa mendatang
Saat ini kami dapat melatih, menerapkan, dan melacak enam model ML yang digunakan dalam proyek YET Dragon secara otomatis, dan kami telah menerapkan lebih dari 30 versi untuk setiap model produksi. Arsitektur MLOps ini telah diperluas ke ratusan model ML di proyek lain di seluruh perusahaan.
Kami berencana untuk terus meluncurkan proyek YET baru berdasarkan arsitektur ini, yang telah mengurangi durasi rata-rata proyek sebesar 25%, berkat pengurangan waktu bootstrap dan otomatisasi pipeline ML. Kami juga memperkirakan penghematan sekitar €300,000 per tahun berkat peningkatan hasil dan konsentrasi yang merupakan akibat langsung dari proyek YET Dragon.
Evolusi jangka pendek arsitektur MLOps ini menuju pemantauan model dan pengujian otomatis. Kami berencana untuk menguji efisiensi model secara otomatis terhadap model yang diterapkan sebelumnya sebelum model baru diterapkan. Kami juga bekerja dalam implementasi pemantauan model dan pemantauan penyimpangan data inferensi dengan Monitor Model Amazon SageMaker, untuk mengotomatiskan pelatihan ulang model.
Kesimpulan
Perusahaan menghadapi tantangan untuk membawa proyek ML mereka ke produksi secara otomatis dan efisien. Mengotomatiskan siklus hidup model ML penuh membantu mengurangi waktu proyek dan memastikan kualitas model yang lebih baik serta penerapan yang lebih cepat dan lebih sering ke produksi.
Dengan mengembangkan arsitektur MLOps standar yang telah diadopsi oleh bisnis yang berbeda di seluruh perusahaan, kami di Cepsa dapat mempercepat bootstrap proyek ML dan meningkatkan kualitas model ML, menyediakan kerangka kerja yang andal dan otomatis di mana tim ilmu data kami dapat berinovasi lebih cepat .
Untuk informasi lebih lanjut tentang MLOps di SageMaker, kunjungi Amazon SageMaker untuk MLOps dan lihat kasus penggunaan pelanggan lainnya di Blog Pembelajaran Mesin AWS.
Tentang penulis
Guillermo Ribeiro Jimenez adalah Sr Data Scientist di Cepsa dengan gelar PhD. dalam Fisika Nuklir. Dia memiliki 6 tahun pengalaman dengan proyek-proyek ilmu data, terutama di industri telekomunikasi dan energi. Dia saat ini memimpin tim ilmuwan data di departemen Transformasi Digital Cepsa, dengan fokus pada penskalaan dan produksi proyek pembelajaran mesin.
Guillermo Menendez Corral adalah Arsitek Solusi di AWS Energy and Utilities. Dia memiliki lebih dari 15 tahun pengalaman merancang dan membangun aplikasi SW, dan saat ini memberikan panduan arsitektur untuk pelanggan AWS di industri energi, dengan fokus pada analitik dan pembelajaran mesin.
- Coinsmart. Pertukaran Bitcoin dan Crypto Terbaik Eropa.
- Platoblockchain. Intelijen Metaverse Web3. Pengetahuan Diperkuat. AKSES GRATIS.
- CryptoHawk. Radar Altcoin. Uji Coba Gratis.
- Sumber: https://aws.amazon.com/blogs/machine-learning/how-cepsa-used-amazon-sagemaker-and-aws-step-functions-to-industrialize-their-ml-projects-and-operate- model-mereka-pada-skala/
- "
- 000
- 100
- 15 tahun
- a
- kemampuan
- Tentang Kami
- mengakses
- Akun
- Mencapai
- di seluruh
- Ad
- menambahkan
- Keuntungan
- terhadap
- algoritma
- algoritma
- Semua
- memungkinkan
- sudah
- Amazon
- diantara
- analisis
- menganalisa
- di manapun
- api
- Lebah
- aplikasi
- terapan
- pendekatan
- menyetujui
- arsitektur
- arsitektur
- sekitar
- terkait
- mengotomatisasikan
- Otomatis
- secara otomatis
- secara otomatis
- mengotomatisasi
- Otomatisasi
- tersedia
- AWS
- karena
- menjadi
- sebelum
- makhluk
- di bawah
- TERBAIK
- Blog
- membangun
- Bangunan
- membangun
- bisnis
- bisnis
- kasus
- kasus
- terpusat
- tertentu
- menantang
- tantangan
- kimia
- awan
- kode
- melakukan
- Umum
- perusahaan
- lengkap
- sama sekali
- kompleks
- komponen
- komponen
- menghitung
- konsentrasi
- Terhubung
- memakan
- konsumen
- konsumsi
- Wadah
- Wadah
- Biaya
- bisa
- menutupi
- membuat
- menciptakan
- penciptaan
- Sekarang
- adat
- pelanggan
- pelanggan
- data
- ilmu data
- ilmuwan data
- memutuskan
- keputusan
- Tergantung
- tergantung
- menyebarkan
- dikerahkan
- penyebaran
- penyebaran
- dirancang
- merancang
- terperinci
- terdeteksi
- Deteksi
- Menentukan
- pengembang
- berkembang
- berbeda
- digital
- Transformasi digital
- langsung
- membahas
- Naga
- setiap
- mudah
- efisiensi
- efisien
- muncul
- memungkinkan
- Titik akhir
- energi
- Mesin
- Insinyur
- Lingkungan Hidup
- peralatan
- diperkirakan
- Acara
- evolusi
- persis
- contoh
- mengharapkan
- pengalaman
- eksperimen
- eksplorasi
- menghadapi
- FAST
- lebih cepat
- Fitur
- fitur
- Akhirnya
- Pertama
- keluwesan
- fleksibel
- Fokus
- berikut
- Kerangka
- dari
- penuh
- fungsi
- masa depan
- Gates
- Umum
- pergi
- GitHub
- Aksi
- tujuan
- menangani
- memiliki
- membantu
- membantu
- sangat
- historis
- memegang
- host
- tuan
- Seterpercayaapakah Olymp Trade? Kesimpulan
- HTTPS
- Ratusan
- gambar
- implementasi
- diimplementasikan
- memperbaiki
- perbaikan
- meningkatkan
- Di lain
- memasukkan
- Meningkatkan
- independen
- secara mandiri
- industri
- industri
- informasi
- informasi
- Infrastruktur
- Innovation
- memasukkan
- terpadu
- interaktif
- memperkenalkan
- isolasi
- masalah
- IT
- Menjaga
- pemeliharaan
- kunci
- peluncuran
- terkemuka
- pengetahuan
- Perpustakaan
- baris
- tempat
- mencari
- mesin
- Mesin belajar
- terbuat
- memelihara
- pemeliharaan
- membuat
- MEMBUAT
- mengelola
- berhasil
- pelaksana
- cara
- panduan
- manual
- cara
- Metrik
- ML
- model
- model
- Memantau
- pemantauan
- lebih
- paling
- beberapa
- kebutuhan
- beroperasi
- operasi
- optimasi
- Opsi
- urutan
- organisasi
- Lainnya
- sendiri
- pemilik
- Lewat
- prestasi
- melakukan
- tahap
- Fisika
- poin
- meramalkan
- masalah
- proses
- proses
- produsen
- Produksi
- proyek
- memprojeksikan
- disediakan
- menyediakan
- menyediakan
- menerbitkan
- tujuan
- tujuan
- terdorong
- kualitas
- real-time
- menurunkan
- daftar
- terdaftar
- dapat diandalkan
- gudang
- wajib
- Persyaratan
- tanggapan
- tanggung jawab
- ISTIRAHAT
- dihasilkan
- Hasil
- Run
- berjalan
- Skala
- skala
- Ilmu
- ilmuwan
- ilmuwan
- aman
- Seri
- Tanpa Server
- layanan
- Layanan
- set
- menculik
- Share
- jangka pendek
- Sederhana
- simulasi
- tunggal
- situasi
- ENAM
- So
- larutan
- Solusi
- beberapa
- sesuatu
- tertentu
- kecepatan
- magang
- standar
- mulai
- penyimpanan
- menyimpan
- mempersingkat
- berhasil
- sistem
- target
- tim
- tim
- Telco
- uji
- pengujian
- Grafik
- Sumber
- karena itu
- sepenuhnya
- ambang
- Melalui
- waktu
- kali
- terhadap
- Lacak
- jalur
- Pelacakan
- Pelatihan
- Transformasi
- transformasi
- transisi
- bawah
- us
- menggunakan
- biasanya
- keperluan
- nilai
- versi
- terdefinisi dengan baik
- sementara
- tanpa
- Kerja
- Alur kerja
- kerja
- dunia
- penulisan
- tahun
- tahun
- Menghasilkan