Pipa Ilmu Data dan gumpalan model monolitik

8

Biasanya, satu topik penting dalam DevOps adalah bagaimana kami menangani pembuatan otomatis dan pengiriman artefak perangkat lunak.

Dengan munculnya ilmu data ada jenis baru artefak - gumpalan biner monolitik mewakili jaring saraf terlatih misalnya atau model pembelajaran mesin lainnya. Gumpalan seperti itu dapat memiliki ukuran banyak GB dan pembuatannya belum standar AFAIK yang membawa organisasi kembali ke zaman pra-CI. Namun demikian, mereka memiliki versi mereka dan koleksi terkait data pelatihan (korpora) yang cenderung tumbuh dengan cepat juga.

Apa praktik terbaik untuk mengatasi tantangan baru ini menggunakan metode DevOps - jika mungkin?

Peter Muryshkin
sumber
3
Saya tidak melihat perbedaan antara gumpalan besar dan uberjar dalam konteks java. Praktek yang sama berlaku, ukuran artefak memiliki beberapa alasan untuk ikut bermain.
Tensibai
Hai - Saya pikir dengan uber-toples dari 2GB ke atas Anda akan memberi tahu mereka kisah arsitektur microservice, atau ... Tapi model gumpalan baru mulai di sana, 8gb akan segera tidak jarang.
Peter Muryshkin
1
Maksud saya snapshot dB dari 350Go bukanlah aset yang berbeda dengan toples 5Mo, bagaimanapun juga harus disimpan di suatu tempat dan repositori artefak dapat mengatasinya
Tensibai
Saya setuju - hanya karena program yang dihasilkan besar bukan berarti belum dikompilasi, versi dan disimpan seperti yang lainnya (walaupun mungkin dengan beberapa tantangan penyimpanan), jadi saya gagal melihat bagaimana ini "membawa organisasi kembali ke usia pra-CI "Jika organisasi berpikir demikian, saya tidak yakin mereka benar-benar memahami DevOps / CI.
James Shewey

Jawaban:

8

Secara pribadi saya tidak melihat alasan di mana Repositori Artefact - alat DevOps yang direkomendasikan untuk mengelola artefak - tidak akan berlaku untuk jaring saraf terlatih atau artefak lainnya.

Ukuran artefak mungkin memiliki batas atas untuk repositori artefak tertentu, tetapi dalam kasus seperti itu akan menjadi batasan teknis atau kebijakan, bukan fundamental / prinsipal.

Sedangkan untuk menerapkan metodologi DevOps untuk proses memproduksi artefak ini, saya pikir sebagian besar jika tidak semuanya dapat diterapkan dengan baik, selama artefak:

  • dihasilkan dari semacam spesifikasi yang mendukung perubahan versi (setara dengan kode sumber perangkat lunak)
  • dibangun melalui proses yang berulang dan otomatis
  • divalidasi menggunakan semacam verifikasi berulang dan dapat diautomatisasi (mirip dengan QA), akhirnya menggunakan beberapa data pendukung (data pelatihan dalam kasus ini, setara dengan snapshot DB, misalnya)

Catatan: pengiriman kode perangkat lunak monolitik masih merupakan masalah besar dan dapat dipelihara dengan sempurna dengan metodologi DevOps (dengan sedikit perhatian), tidak semuanya dapat dibagi dalam layanan-layanan microser. Ukuran tidak cukup penting untuk membuat DevOps tidak berlaku.

Dan Cornilescu
sumber
Jawaban sempurna. Saya menyimpan semua model berat saya git lfsdan menarik mereka ketika diperlukan [paradigma
serverless
@ Dawny33 tetapi apakah Anda sekarang mempertimbangkan untuk pindah dari git lfs?
Peter Muryshkin
@ J. Aduh Sejauh ini bagus dengan lfs. Mungkin akan bergerak jika saya menemukan alternatif yang lebih baik.
Dawny33
maka saya tidak mengerti mengapa Anda mengatakan jawaban tentang "sempurna" sementara itu menyarankan menggunakan repositori artefak ?! @ Dawny33
Peter Muryshkin
2
DVC dapat dianggap sebagai alternatif yang lebih baik untukgit-lfs
Shcheklein
4

Saya akan merekomendasikan untuk melihat DVC - sistem kontrol versi open source untuk proyek ilmu data.

Salah satu hal dasar yang ditangani dengan sempurna adalah mengelola file data (bersama dengan kode) - input, output (model), hasil antara. Semantik ini mirip dengan git-lfstetapi tidak seperti git-lfsitu mampu mengelola file seperti 100GB dan yang lebih penting tidak bergantung pada penyimpanan / format eksklusif. Ini sepenuhnya open-source dan kompatibel dengan penyimpanan jaringan sebagai server untuk menyimpan file data - S3, penyimpanan cloud GCP, SSH, FTP, dll.

Shcheklein
sumber