Depolar ve gövde tabanlı geliştirme
Birçok veri bilim insanı, makine öğrenmesi iş yüklerini tanımlamak için Python veya R ile çalışmayı tercih eder. Verileri hazırlamak veya modeli eğitmek için Jupyter not defterleriniz veya betikleriniz olabilir.
Kaynak denetimini kullandığınızda herhangi bir kod varlığı üzerinde çalışmak daha kolay hale gelir. Kaynak denetimi , kodu yönetme ve ekibinizin kodda yaptığı değişiklikleri izleme uygulamasıdır.
Azure DevOps veya GitHub gibi DevOps araçlarıyla çalışıyorsanız kod, sözde bir depoda veya depoda depolanır.
Depo
MLOps çerçevesini ayarlarken, bir makine öğrenmesi mühendisinin depoyu oluşturması olasıdır. İster Azure DevOps'ta ister GitHub depolarında Azure Repos'u kullanmayı tercih edin, kodunuzu depolamak için git depolarını kullanın.
Depoyu kapsamanın genellikle iki yolu vardır:
- Monorepo: Tüm makine öğrenmesi iş yüklerini aynı depoda tutun.
- Birden çok depo: Her yeni makine öğrenmesi projesi için ayrı bir depo oluşturun.
Ekibinizin tercih ettiği yaklaşım, kimin hangi varlıklara erişmesi gerektiğine bağlıdır. Tüm kod varlıklarına hızlı erişim sağlamak istiyorsanız, monorepos ekibinizin gereksinimlerine daha uygun olabilir. Kişilere yalnızca etkin bir şekilde üzerinde çalıştıkları bir projeye erişim vermek istiyorsanız, ekibiniz birden çok depoyla çalışmayı tercih edebilir. Erişim denetimini yönetmenin daha fazla ek yük oluşturabileceğini unutmayın.
Deponuzu yapılandırma
Hangi yaklaşımı kullanırsanız kullanın, projeleriniz için standart üst düzey klasör yapısı üzerinde anlaşmaya varmak en iyi yöntemdir. Örneğin, tüm depolarınızda aşağıdaki klasörler olabilir:
-
.cloud: Azure Machine Learning çalışma alanı oluşturmak için şablonlar gibi buluta özgü kodlar içerir. -
.ad/.github: iş akışlarını otomatikleştirmek için YAML işlem hatları gibi Azure DevOps veya GitHub yapıtlarını içerir. -
src: verileri ön işleme veya model eğitimi gibi makine öğrenmesi iş yükleri için kullanılan tüm kodları (Python veya R betikleri) içerir. -
docs: projeyi açıklamak için kullanılan tüm Markdown dosyalarını veya diğer belgeleri içerir. -
pipelines: Azure Machine Learning işlem hattı tanımlarını içerir. -
tests: kodunuzdaki hataları ve sorunları algılamak için kullanılan birim ve tümleştirme testlerini içerir. -
notebooks: çoğunlukla deneme için kullanılan Jupyter not defterlerini içerir.
Not
Eğitim verileri deponuza dahil edilmemelidir. Veriler bir veritabanında veya veri gölünde depolanmalıdır. Azure Machine Learning, bağlantı bilgilerini veri deposu olarak depolayarak bir veritabanına veya veri gölüne doğrudan erişim sağlayabilir.
Her projenin kullandığı standart bir yapıya sahip olan veri bilimcileri ve diğer işbirlikçiler üzerinde çalışması gereken kodu bulmayı daha kolay bulabilir.
Bir veri bilimcisi olarak depolarla çalışmayı öğrenmek için gövde tabanlı geliştirme hakkında bilgi edineceksiniz.
Gövde tabanlı geliştirme
Yazılım geliştirme projelerinin çoğu Git'i hem Azure DevOps hem de GitHub tarafından kullanılan bir kaynak denetim sistemi olarak kullanır.
Git kullanmanın temel avantajı, kod üzerinde kolay işbirliği yaparken yapılan değişiklikleri izlemektir. Ayrıca, üretim kodunda yalnızca gözden geçirilmiş ve kabul edilmiş değişikliklerin yapıldığından emin olmak için onay geçitleri ekleyebilirsiniz.
Git, yukarıdaki işlemleri gerçekleştirmek için dallar oluşturmanıza olanak tanıyan gövde tabanlı geliştirmeyi kullanır.
Üretim kodu ana dalda barındırılır. Birisi değişiklik yapmak istediğinde:
- Dal oluşturarak üretim kodunun tam kopyasını oluşturursunuz.
- Oluşturduğunuz dalda herhangi bir değişiklik yapar ve bunları test edebilirsiniz.
- Dalınızdaki değişiklikler hazır olduğunda, birinin değişiklikleri gözden geçirmesini isteyebilirsiniz.
- Değişiklikler onaylanırsa, oluşturduğunuz dalı ana depoyla birleştirirsiniz ve üretim kodu değişikliklerinizi yansıtacak şekilde güncelleştirilir.