Pembelajaran mesin (ML) telah menjadi salah satu kemampuan paling penting bagi bisnis modern untuk tumbuh dan tetap kompetitif saat ini. Dari mengotomatisasi proses internal hingga mengoptimalkan desain, pembuatan, dan proses pemasaran di balik hampir setiap produk yang dikonsumsi, model ML telah meresap ke hampir setiap aspek pekerjaan dan kehidupan pribadi kita — dan untuk bisnis, taruhannya tidak pernah setinggi ini. Gagal mengadopsi ML sebagai kompetensi inti akan mengakibatkan kerugian kompetitif utama yang akan menentukan pemimpin pasar berikutnya.
Karena itu, para pemimpin bisnis dan teknologi perlu menerapkan model ML di seluruh organisasi mereka, yang mencakup spektrum kasus penggunaan yang besar. Namun, rasa urgensi ini, dikombinasikan dengan pengawasan peraturan yang berkembang, menciptakan tantangan tata kelola baru dan unik yang saat ini sulit untuk dikelola. Misalnya:Bagaimana model saya memengaruhi layanan yang diberikan kepada pelanggan akhir? Apakah saya masih mematuhi peraturan pemerintah dan internal? Bagaimana aturan keamanan saya diterjemahkan ke model dalam produksi?
Di luar masalah peraturan atau hukum, ada sejumlah alasan untuk memiliki proses dan prosedur tata kelola untuk Pembelajaran Mesin. Contohnya termasuk cara meningkatkan produktivitas (seperti menggunakan kembali aset seperti model dan fitur), mengontrol dan memelihara model di banyak lini bisnis yang berbeda untuk memastikan aplikasi penting bisnis melakukan apa yang seharusnya mereka lakukan (atau menemukan yang tidak) , dan melihat riwayat model dan prediksi termasuk aset yang tidak digunakan lagi.
Dalam mengatasi tantangan ini, ada baiknya mendefinisikan model dan fitur apa yang secara konseptual (lihat Gambar 1). Ada banyak definisi yang berbeda, tetapi umumnya, model adalah paket mandiri yang mengambil fitur yang dihitung dari data input dan menghasilkan prediksi (atau skor) dan metadata. Paket ini dapat mengambil banyak bentuk tetapi selalu menyertakan representasi matematis, kode, logika bisnis, dan data pelatihan. Prediksi model dikonsumsi hilir oleh sistem atau pengguna.
Banyak perusahaan mengoperasikan infrastruktur model ML pada berbagai ukuran dan kematangan sehingga mereka memerlukan alat untuk membantu mereka mengatur model mereka. Pada akhirnya, kebutuhan tata kelola ML dapat disaring ke dalam area utama berikut:visibilitas; dan keterjelasan model, kemampuan interpretasi, dan reproduktifitas.
Gambar 1
Visibilitas model &fitur di dalam tim dan di seluruh organisasi
Persyaratan dasar untuk tata kelola model adalah memungkinkan tim untuk memahami bagaimana pembelajaran mesin diterapkan di organisasi mereka. Ini memerlukan katalog model dan fitur kanonik. Dengan tidak adanya katalog semacam itu, banyak organisasi tidak menyadari model dan fitur mereka, di mana mereka ditempatkan, apa yang mereka lakukan, dll. Hal ini menyebabkan pengerjaan ulang, inkonsistensi model, fitur komputasi ulang, dan inefisiensi lainnya.
Model dapat dijelaskan, dapat ditafsirkan, dan dapat direproduksi
Model sering dilihat sebagai kotak hitam:data masuk, sesuatu terjadi, dan prediksi keluar. Ketidak-transparan ini menantang pada sejumlah tingkatan dan sering direpresentasikan dalam istilah-istilah yang terkait secara longgar seperti:
- Dapat dijelaskan :deskripsi mekanisme internal model ML dalam istilah manusia
- Dapat ditafsirkan :kemampuan untuk a) memahami hubungan antara input model, fitur, dan output, dan b) memprediksi respons terhadap perubahan input.
- Reproduksibilitas :kemampuan untuk mereproduksi keluaran model secara konsisten untuk masukan yang sama.
Semua ini memerlukan fungsionalitas umum termasuk keterkaitan dengan data sumber, pemahaman yang jelas tentang internal model seperti kode dan data pelatihan, serta metode lain untuk menyelidiki dan menganalisis model itu sendiri.
Model Metadata dengan contoh
Untuk mengatasi masalah tata kelola yang didefinisikan di atas, mari kita mulai dengan memikirkan sebuah contoh. Pertimbangkan situs web pengiriman makanan. Perusahaan ingin memanfaatkan pembelajaran mesin untuk memperkirakan waktu pengiriman.
Kumpulan data pelatihan terdiri dari log peristiwa dari pengiriman sebelumnya, yang berisi waktu pengiriman untuk setiap pengiriman yang dilakukan di masa lalu. Data ini digunakan untuk melatih model untuk memperkirakan waktu pengiriman di masa mendatang.
Log peristiwa dapat terlihat seperti ini:
Pesanan dilakukan pada jam 10 pagi agar makanan diambil dari loc1 dan dikirim ke loc2. Kurir mengambilnya dari restoran pada pukul 10:15 dan mengirimkannya pada pukul 10:55, dengan total waktu 55 menit dari pemesanan hingga pengiriman
Asumsikan loc1 dan loc2 adalah alamat jalan. Ini disingkat di sini agar tetap pendek dan mudah dibaca.
Log peristiwa disimpan di HBase. Arsitektur rekayasa untuk pengembangan model adalah sebagai berikut:
- Insinyur data mengidentifikasi jendela waktu log peristiwa yang akan digunakan untuk memecahkan masalah. Tabel Hive terstruktur baru dibuat dengan menguraikan log peristiwa mentah dengan jendela waktu yang diidentifikasi.
- Insinyur fitur (ini bisa menjadi peran dalam ilmuwan data, atau insinyur ML) mengidentifikasi dan mengembangkan fitur baru:
- Fitur Jam Sibuk:Fungsi untuk mengidentifikasi apakah ada kondisi jam sibuk berdasarkan lokasi dan waktu.
- Fitur “Sibuk” Restoran:Fungsi untuk mengidentifikasi apakah restoran tertentu mengalami waktu tunggu yang tinggi berdasarkan data historis. Data historis ini dikumpulkan secara terpisah.
- Fitur yang diidentifikasi di atas kemudian dibangun sebagai pustaka python untuk digunakan kembali.
- Library ini digunakan untuk menerapkan fungsi ke tabel Hive terstruktur untuk membuat tabel baru yang akan menjadi Kumpulan Data Pelatihan terakhir. Baris dalam tabel baru terlihat seperti ini:
Asumsikan loc1 dan loc2 adalah alamat jalan. Ini disingkat di sini agar tetap pendek dan mudah dibaca.
- Ilmuwan Data menjalankan regresi linier pada Kumpulan Data Pelatihan untuk memprediksi waktu pengiriman. Pada titik ini, mereka harus menggunakan pustaka fitur yang sama dengan yang digunakan untuk mengekstrak fitur dalam kumpulan data pelatihan.
- Model ini diterapkan sebagai titik akhir Function-as-a-Service (FaaS) yang digunakan oleh aplikasi web untuk memprediksi waktu pengiriman.
Perhatikan bahwa model perlu menghitung fitur untuk prediksi secara real-time. Fitur-fitur ini adalah perpustakaan yang digunakan secara internal oleh model. Visualisasi dari berbagai aktivitas yang dilakukan dan artefak yang dihasilkan dalam contoh ini mungkin terlihat seperti ini:
Kotak biru mewakili entitas ML (kata benda) seperti kode, proyek, pembangunan, penerapan, dll. Kotak hijau mewakili proses (kata kerja) yang bertindak atas entitas dan menghasilkan entitas lain.
Visualisasi dan hubungan yang mendefinisikan transformasi pada struktur data secara kolektif disebut sebagai garis keturunan . Di dunia database, menambahkan kolom baru ke tabel akan mengubah garis keturunannya. Di dunia pembelajaran mesin, melatih ulang model dengan menggunakan fitur dan set data akan mengubah garis keturunan. Untuk situs pengiriman makanan, untuk menjawab pertanyaan:“apakah ada perbedaan antara ekstraksi fitur selama pelatihan vs penilaian”, kami memerlukan informasi garis keturunan. Ini hanyalah salah satu contoh kegunaan metadata garis keturunan di dunia pembelajaran mesin.
Apache Atlas sebagai alat tata kelola
Jelas bahwa membangun silsilah end-to-end yang lengkap untuk alur kerja ML—dari set data pelatihan hingga penerapan model—menjadi persyaratan utama untuk mengatasi masalah tata kelola yang teridentifikasi. Integrasi manajemen data dan pembelajaran mesin harus memungkinkan kemampuan menjelaskan, interpretasi, dan reproduktifitas.
Pengumpulan, penyimpanan, dan visualisasi metadata ML memerlukan sistem perangkat lunak backend standar. Definisi metadata yang terbuka dan dapat diperluas akan memungkinkan standarisasi operasi tata kelola terlepas dari di mana model dikembangkan atau dilayani. Kandidat yang jelas untuk Cloudera (dan pelanggan kami) adalah Apache Atlas.
Apache Atlas sudah menjadi seperangkat alat tata kelola yang digunakan secara luas dengan jenis metadata yang telah ditentukan sebelumnya untuk manajemen data. Dalam konteks tata kelola ML, ini sangat cocok untuk mendefinisikan dan menangkap metadata yang diperlukan untuk konsep pembelajaran mesin. Selain itu, Apache Atlas menyediakan kemampuan tingkat lanjut seperti klasifikasi, integrasi dengan Apache Ranger (untuk otorisasi dan penandaan) untuk beberapa nama, dan memiliki sistem add-on yang dapat diperluas yang memungkinkan komunitas untuk berkolaborasi dan secara bertahap menentukan integrasi ke berbagai alat lain di ML ruang angkasa. Ini menjadi latihan bagi pembaca untuk menjelajahi UI Apache Atlas dan melihat cara menggunakan kemampuan ini.
Definisi Metadata ML di Apache Atlas
Apache Atlas Type System memenuhi semua kebutuhan kita untuk mendefinisikan objek Metadata ML. Ini adalah sumber terbuka, dapat diperluas, dan memiliki fitur tata kelola yang dibuat sebelumnya. Type in Atlas adalah definisi tentang bagaimana jenis tertentu dari objek metadata disimpan dan diakses. Ini juga mewakili satu atau lebih atribut yang mendefinisikan properti untuk objek metadata. Untuk tata kelola ML, Sistem Tipe Atlas dapat digunakan untuk mendefinisikan Tipe baru, menangkap entitas dan proses ML sebagai objek metadata Atlas. Selain definisi Tipe, hubungan antara entitas dan proses juga diperlukan untuk memvisualisasikan aliran garis keturunan ujung ke ujung.
Jika kita menghubungkan ini dengan contoh situs web pengiriman makanan yang dijelaskan sebelumnya, Sistem Tipe Atlas memberikan dasar yang baik untuk menentukan garis keturunan Pembelajaran Mesin. Sistem garis keturunan ML umum divisualisasikan sebagai berikut:
Seperti yang terlihat dari diagram di atas, Definisi Metadata untuk machine learning mengikuti alur kerja machine learning yang sebenarnya. Kumpulan data pelatihan adalah titik awal untuk model aliran garis keturunan. Kumpulan data ini dapat berupa tabel dari gudang data atau file csv yang disematkan. Setelah kumpulan data diidentifikasi, garis keturunan mengikuti pelatihan, pembuatan, dan penerapan model.
Pengembangan fitur ML adalah aktivitas paralel dan khusus yang dapat disebut sebagai rekayasa fitur (berbeda dari rekayasa model). Saat ini, dalam banyak kasus, dua aktivitas (model engineering dan feature engineering) dilakukan oleh orang atau tim yang sama. Dengan demokratisasi dan industrialisasi fitur, hal ini dapat berubah di masa mendatang, dengan tim khusus untuk pengembangan model dan pengembangan fitur.
Sistem tipe ML sekarang dapat didefinisikan melalui tipe baru berikut:
“Buat Proyek Pembelajaran Mesin” dan “Proyek Pembelajaran Mesin”
Proyek Pembelajaran Mesin tunggal mewakili satu kasus penggunaan bisnis. Proyek Pembelajaran Mesin mewakili wadah file dan aset tersemat lainnya. Minimal, metadata proyek berisi:
- Daftar file yang digunakan dalam model
- Versi historis semua file
- Implementasi paling sederhana adalah mempertahankan proyek sebagai repositori git yang mengandalkan Git untuk memelihara riwayat semua file.
“Kumpulan Data Pelatihan”
Subtipe dari DataSet di Atlas yang mewakili set data pelatihan. Entitas Kumpulan Data Pelatihan digunakan dalam proses pelatihan model. Ini dapat dikaitkan dengan fitur jika data yang dihasilkan adalah hasil dari penerapan ekstraksi fitur (atau transformasi) ke kumpulan data lain.
“Latih dan Bangun”
Sebuah proses yang mewakili tindakan pelatihan dan membangun model. Termasuk menjalankan eksperimen, menyetel, dan menyelesaikan pilihan algoritme pelatihan. Proses Latih dan Bangun secara opsional dapat menggunakan output dari Pembuatan Fitur; misalnya, fungsi library yang mendefinisikan ekstraksi fitur yang digunakan secara internal oleh model.
“Pembuatan Model”
Model dikeraskan dan diversi setelah ilmuwan data selesai bereksperimen dan melatih model. Pemrosesan ini menghasilkan Model Build, yang merupakan artefak abadi yang membentuk blok penyusun untuk memproduksi model. Gambar Docker adalah contoh entitas Model Build.
“Model Penerapan” dan “Penerapan Model”
Model Build melewati proses penerapan, yang membuat Model Deployment. Model Deployment mewakili instantiasi aktif dari sebuah model. Layanan REST berbasis Kubernetes (penerapan gaya FaaS) adalah contoh entitas Model Deployment.
“Fungsi Fitur”
Fitur pembelajaran mesin memiliki dua interpretasi:1) Fungsi Fitur dan 2) Kumpulan Data yang Diubah.
Entitas Fungsi Fitur adalah fungsi kustom (dinyatakan dalam kode) yang mendefinisikan cara mengekstrak fitur yang diidentifikasi dari input. Ini mewakili kode untuk fitur, mirip dengan bagaimana ML Project mewakili wadah untuk kode ML.
Fungsi Fitur pertama kali dikemas sebagai perpustakaan (berversi dan mengeras). Pustaka tersebut kemudian dikonsumsi dan diterapkan pada DataSet yang diberikan untuk mengubahnya menjadi DataSet baru (dengan fitur yang diekstraksi). Kumpulan Data yang Diubah diwakili oleh entitas Kumpulan Data Pelatihan yang ditentukan di atas.
“Fitur Paket” dan “Pembuatan Fitur”
Kode dalam Fungsi Fitur dikemas untuk dibagikan (dengan model lain) atau untuk penilaian waktu proses. Paket-paket ini disebut Feature Builds. Misalnya, Feature Build mungkin berisi pustaka paket (dalam python) atau file jar (dalam Java). Paket ini dapat diserap selama proses model train dan build untuk memastikan bahwa fitur yang sama digunakan selama ekstraksi serta prediksi.
Cobalah dan terlibatlah dalam menentukan masa depan ML Metadata Definition
Kami telah mulai mengerjakan ATLAS-3432 yang merupakan implementasi pertama dari Sistem Jenis Pembelajaran Mesin yang memanfaatkan Cloudera Data Science Workbench (CDSW) sebagai klien percontohan. Terima kasih kepada Na Li dari tim teknik Cloudera karena telah memimpin pekerjaan dalam membangun integrasi CDSW. ATLAS-3432 akan memungkinkan metadata model dari instans CDSW untuk didorong ke instans Apache Atlas untuk menjelajahi silsilah. CDSW saat ini tidak mendukung fitur (atau toko fitur), sehingga garis keturunan yang terkait dengan fitur tidak akan tersedia.
Di Cloudera, kami tidak hanya ingin menyelesaikan masalah ini bagi pelanggan kami – kami percaya bahwa definisi metadata ML harus universal, mirip dengan bagaimana tabel, kolom, dll. sangat standar untuk struktur data. Kami berharap komunitas akan berkontribusi dalam mendefinisikan standar ini untuk membantu perusahaan mendapatkan hasil maksimal dari platform ML mereka.
Apakah Anda memiliki kasus penggunaan tata kelola pembelajaran mesin yang tidak sesuai dengan model metadata? Bergabunglah dengan percakapan dengan memposting saran Anda ke [email protected].