Penulis (s): Eija-Leena Koponen
Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.
DevOps
Bagaimana Menjembatani Kesenjangan antara Ilmu Data dan Teknik?
Gambar oleh penulis
Data Scientist digadang-gadang sebagai pekerjaan paling seksi di abad ke-21. Sekarang, pada tahun 2021, sebagian besar perusahaan telah mengadopsi beberapa Ilmu Data dalam proses dan tugas inti mereka, menganalisis basis pelanggan mereka atau mengoptimalkan dan mengotomatiskan beberapa proses manual. Di sisi lain, ilmuwan data masih merupakan sekelompok orang yang sangat heterogen, beberapa memiliki latar belakang Statistik, beberapa di bidang teknik mesin, dan beberapa di Fisika untuk beberapa nama. Tentu saja, ada peningkatan output dari program Master Ilmu Data aktual ke tenaga kerja, tetapi sebagian besar masih otodidak (termasuk saya).
Hambatan tampaknya tidak lagi menjadi data tetapi bagaimana membawa proyek eksplorasi ke dalam produksi. Dengan kata lain, buat Insinyur Perangkat Lunak dan Ilmuwan Data berbicara dalam bahasa yang sama untuk memperlancar proses.
Data Scientist biasanya sangat ahli dalam mengambil data, sedikit mempermasalahkannya, membuat visualisasi, beberapa model awal, dan buku catatan. Tetapi ketika sampai pada tahap produksi, benar-benar menyediakan model untuk pengguna akhir dan mengintegrasikannya ke alat (yang ada), Ilmuwan Data harus menyerahkan tongkat estafet kepada para insinyur Perangkat Lunak. Sayangnya, untuk seorang insinyur perangkat lunak, notebook dan skrip yang berantakan ini sering kali seperti model kardus yang jelek, dan menerjemahkannya ke hal yang nyata membutuhkan waktu (terlalu banyak). Jadi apa langkah pertama untuk mendorong semua orang mengambil untuk menjembatani kesenjangan?
Berikut adalah beberapa langkah yang kami sarankan!
Gambar oleh penulis
Menggunakan Git
Kontrol versi adalah sistem yang mencatat perubahan pada file atau kumpulan file dari waktu ke waktu sehingga Anda dapat melihat versi tertentu nanti. Layanan seperti Github, Bitbucket, dan lainnya memudahkan untuk melihat apa yang dilakukan dengan banyak orang yang bekerja pada satu basis kode. Ini untuk menghindari penimpaan yang tidak disengaja dan kesalahan lainnya. Anda memiliki kontrol versi untuk dokumen Anda di Google Documents, jadi mengapa tidak memilikinya untuk kode Anda juga?
Selain kontrol versi (yang sepadan bahkan ketika bekerja sendiri), kode Anda akan disimpan di cloud, dapat diakses oleh semua anggota proyek Anda dan bukan di laptop seseorang, siap untuk dilupakan. Hasilnya, rekan tim Anda dapat mengetahui apa yang sedang Anda bangun dan melanjutkan dari bagian terakhir yang Anda tinggalkan.
Ada juga efek samping — kode cenderung kurang seperti spageti ketika Anda tahu seseorang akan membacanya.
Buku catatan yang dapat direproduksi
Notebook adalah cawan suci Ilmuwan Data; mereka sangat berguna untuk menjelajahi mesin lokal Anda! Saat ini, ada banyak penyedia online juga, misalnya kernel Kaggle, Sagemaker, Google Colab untuk beberapa nama.
Notebook, bagaimanapun, memberikan cukup banyak kebebasan untuk Ilmuwan Data. Misalnya, Anda dapat menjalankan kode dalam urutan apa pun yang Anda inginkan — dan percayalah; orang melakukannya — mereka memasukkan banyak cek dan hal-hal “tidak perlu” lainnya untuk orang lain. Lalu ada kerumitan pengaturan; versi python, panda, dan pustaka lain mana yang telah Anda instal, dan pustaka dependen lainnya apa saat mencoba mereproduksi apa pun yang baru saja dilakukan DS lain. Jadi mereka jauh dari siap produksi.
Valohai telah melakukan solusi unik untuk masalah ini: Jupyhai. Anda dapat menjalankan eksekusi cloud Valohai dari notebook Jupyter lokal Anda. Ini mengharuskan seluruh notebook dijalankan secara bersamaan dan dari atas ke bawah, memaksa ilmuwan data untuk menjaga kode tetap bersih dan teratur. Anda tidak perlu Valohai untuk mengadopsi prinsip ini; setiap buku catatan akan lebih mudah dipahami jika ditulis seperti ini.
Voila! Anda selangkah lebih dekat dengan kode produksi.
Pekerjaan modular
Saat Anda perlu menggulir dan menggulir buku catatan, saatnya untuk mulai berpikir secara modular. Memisahkan pekerjaan Anda menjadi langkah-langkah yang membentuk saluran membutuhkan sedikit kerja ekstra sekarang, tetapi itu akan membuahkan hasil dalam jangka panjang.
Anda hanya dapat menjalankan satu bagian pada satu waktu, melihat di mana kemungkinan kesalahan dan bug dan hambatan proyek Anda. Bahkan mungkin menulis beberapa tes untuk memastikan perubahan di masa mendatang pada satu bagian tidak merusak keseluruhan.
Ini juga membantu agar tetap teratur dan memudahkan pemeliharaan kode. Dengan cara ini, mungkin juga lebih mudah untuk menjelaskan kepada orang baru alur pekerjaan Anda di tingkat yang lebih tinggi dan fokus pada satu hal pada satu waktu.
definisi selesai
Mudah-mudahan, banyak proyek Anda beralih ke produk; loop tanpa akhir di mana selalu ada sesuatu untuk diulang, dibuat lebih baik, dioptimalkan, dan dengan demikian definisi selesai sangat kabur.
Disini kita bisa belajar lagi dari framework seperti agile development. Tentu saja, tidak semua bagiannya berfungsi untuk Ilmu Data, tetapi mencoba merencanakan sprint, memprioritaskan masing-masing, mendefinisikan tugas dengan jelas dengan hasil dan garis waktu, dan menggunakan retrospektif dan demo mungkin membuat Anda merasa telah menyelesaikan sesuatu.
Selain itu, komunikasi dengan pengembang (dan pemangku kepentingan bisnis) lebih mudah.
Terakhir namun tidak kalah pentingnya: empati
Kita semua berbeda, semua dari berbagai latar belakang, dan keragaman adalah kekayaan. Tetapi memiliki beragam pemikiran dan cara melakukan membutuhkan kerja. Jauh lebih mudah untuk berkomunikasi dengan seseorang, misalnya dari latar belakang pendidikan yang sama pada suatu proyek, tetapi, yah, itu adalah proyek yang dilakukan hanya dengan satu set keterampilan.
Jadi, untuk semua Ilmuwan Data yang membaca ini: pengembang tidak mencoba membuat hidup Anda sengsara dengan memperkenalkan alat dan kerangka kerja yang berfungsi untuk mereka. Untuk semua pengembang: Ilmuwan Data tidak sengaja membuat kode spageti yang tidak dapat dipahami; biasanya cara berpikir yang berbeda dan kurangnya pengetahuan yang lebih baik — seluruh industri ini adalah tempat Anda berada 10-15 tahun yang lalu.
Mencoba memahami dan belajar dari orang lain, mencoba melihat perspektif orang lain, yaitu berempati, memungkinkan Anda mengerjakan hal-hal yang jauh lebih luar biasa daripada yang Anda lakukan sendiri!
rekap
Memberikan sekelompok liar Ilmuwan Data dalam kerangka kerja tim Anda dan praktik terbaik yang membantu mereka melakukan pekerjaan mereka, Anda mempromosikan membuat pekerjaan dapat dimengerti dan dapat ditransfer ke orang lain. Atasi hambatan alur kerja satu per satu dan hanya setelah mulai menangani MLOps dan perkakas.
DS ❤️ Dev
Awalnya diterbitkan di https://valohai.com.
From Notebook to Production awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.
Diterbitkan melalui Menuju AI