1. Giriş
Kubeflow, Kubernetes için kullanılan bir makine öğrenimi araç setidir. Projenin amacı, Kubernetes'te makine öğrenimi (ML) iş akışlarının dağıtımlarını basit, taşınabilir ve ölçeklenebilir hale getirmektir. Amaç, çeşitli altyapılara makine öğrenimi için sınıfının en iyisi açık kaynak sistemleri dağıtmanın basit bir yolunu sunmaktır. |
Kubeflow dağıtımı nasıldır?
Kubeflow dağıtımı:
- Taşınabilir: Google Cloud Platform'da (GCP), şirket içinde veya sağlayıcılar arasında bulunan tüm Kubernetes kümelerinde çalışır.
- Ölçeklenebilir: Dalgalanan kaynakları kullanabilir ve yalnızca Kubernetes kümesine ayrılan kaynak sayısıyla sınırlandırılır.
- Oluşturulabilir: Çevrimdışı veya düşük kaliteli ağlarda çalışmak için hizmet çalışanları ile geliştirildi.
Birbirine bağlı mikro hizmetleri tek bir birim olarak düzenleyip dizüstü bilgisayar veya bulut gibi çeşitli konumlara dağıtmanın bir yoludur.
Bu codelab'de MiniKF'yi kullanarak kendi Kubeflow dağıtımınızı oluşturma ve Jupyter Notebook'tan Kubeflow Pipelines iş akışı çalıştırma konularında size yol göstereceğiz.
Oluşturacaklarınız
Bu codelab'de, Kubeflow Pipelines ile herhangi bir CLI komutu veya SDK kullanmadan karmaşık bir veri bilimi ardışık düzeni derleyeceksiniz. Kubernetes veya Docker bilgisine sahip olmanız gerekmez. Bu işlemin ardından altyapınız şunları içerecektir:
- Aşağıdakileri otomatik olarak yükleyen bir MiniKF (Mini Kubeflow) sanal makinesi:
- Kubernetes (Minikube kullanan)
- Kubeflow
- Genel amaçlı Jupyter Notebooks'u Kubeflow Pipelines iş akışlarına dönüştürmek için kullanılan Kale aracı ( GitHub)
- Veri sürümü oluşturma ve yeniden oluşturulabilirlik için Arrikto Rok
Neler öğreneceksiniz?
- Kubeflow'u MiniKF ile yükleme
- CLI komutu veya SDK kullanmadan Jupyter not defterlerinizi Kubeflow Pipelines'a dönüştürme
- Tek bir düğmeye tıklayarak not defteri içinden Kubeflow Pipelines'ı çalıştırma
- Not defterinde ve her ardışık düzen adımında verilerinizi otomatik olarak sürüm oluşturma
Gerekenler
- Sahip izinlerine sahip olduğunuz etkin bir GCP projesi
Bu, Kubeflow'a odaklanan gelişmiş bir codelab'dir. Daha fazla bilgi ve platforma giriş için Introduction to Kubeflow (Kubeflow'a Giriş) belgelerine bakın. Alakalı olmayan kavramlar ve kod blokları vurgulanır ve kolayca kopyalayıp yapıştırmanız için sunulur.
2. Ortamı ayarlama
GCP proje kimliğinizi ve küme adınızı ayarlama
Proje kimliğinizi bulmak için sol üstteki hamburger menüde yer alan GCP Console ana panelini ziyaret edin. Ekran boşsa bir kontrol paneli oluşturmak için istemdeki Evet'i tıklayın.
Proje henüz seçilmemişse Select a project'i (Proje seç) tıklayın:
Ve projenizi seçin. Yalnızca bir tane olmalıdır:
3. MiniKF'yi yükle
Compute örneği oluşturma
GCP Marketplace'te "MiniKF" araması yapın.
Arrikto'nun MiniKF sanal makinesini seçin.
Compute Engine'de başlat düğmesini tıklayıp projenizi seçin.
Yapılandır ve MiniKF örneğiniz için penceresini dağıtın, ad seçin ve varsayılan seçenekleri değiştirmeden bırakın. Ardından Dağıt düğmesini tıklayın.
MiniKF Compute örneğinin yüklenmesini bekleyin.
MiniKF'ye giriş yap
MiniKF sanal makinesi kurulduktan sonra SSH düğmesini tıklayarak bağlanın ve giriş yapın. Ekrandaki talimatları uygulayarak minikf
komutunu çalıştırarak Minikube, Kubeflow ve Rok'un dağıtımını başlatın. Bu işlemin tamamlanması birkaç dakika sürer.
Kubeflow'a giriş yapın
Yükleme tamamlandığında ve tüm kapsüller hazır olduğunda MiniKF kontrol panelini ziyaret edin. MiniKF kullanıcı adı ve şifresiyle Kubeflow'a giriş yapın.
Chrome kullanıcıları şu ekranı görür:
Firefox kullanıcıları şu ekranı görür:
Safari kullanıcıları şu ekranı görür:
Rok'a giriş yapın
Kubeflow'a giriş yaptıktan sonra hamburger simgesini tıklayarak soldaki menüyü açın. Snapshot Store'a gidin ve MiniKF kullanıcı adı ve şifresiyle Rok'a giriş yapın.
Tebrikler! MiniKF'yi GCP'de başarıyla dağıttınız. Artık not defterleri oluşturabilir, makine öğrenimi kodunuzu yazabilir ve Kubeflow Ardışık Düzenlerini çalıştırabilirsiniz. Veri sürümü oluşturma ve yeniden oluşturulabilirlik için Rok'u kullanın.
4. Not Defterinizin içinden Ardışık Düzen çalıştırma
Bu bölümde, hangi yolcuların Titanic'teki gemi enkazında hayatta kaldığını tahmin eden bir Kaggle yarışması olan Titanic örneğini yürüteceksiniz.
Not Defteri Sunucusu Oluşturma
Kubeflow merkezi kontrol panelindeki Not Defteri Sunucuları bağlantısına gidin.
New Server'ı (Yeni Sunucu) tıklayın.
Not Defteri Sunucunuz için bir ad belirtin.
Şu resmi seçtiğinizden emin olun:
gcr.io/arrikto-public/tensorflow-1.14.0-notebook-cpu:kubecon-workshop
5 GB boyutunda yeni ve boş bir Veri Hacmi ekleyip veri olarak adlandırın.
Not defteri sunucusunu oluşturmak için Launch (Başlat) seçeneğini tıklayın.
Not defteri sunucusu kullanılabilir olduğunda sunucuya bağlanmak için Bağlan'ı tıklayın.
Verileri ve not defterini indirme
JupyterLab açılış sayfasıyla yeni bir sekme açılır. JupyterLab'de yeni bir Terminal oluşturun.
data (veriler) klasörüne gidip not defterini ve laboratuvarın geri kalanında kullanacağınız verileri indirmek için Terminal penceresinde aşağıdaki komutları çalıştırın.
cd data/ git clone -b kubecon-workshop https://github.com/kubeflow-kale/examples
Bu depo, veriler ve ek açıklamalı not defterleri içeren bir dizi seçilmiş örnek içerir. Kenar çubuğunda data/examples/titanic-ml-dataset/
klasörüne gidin ve titanic_dataset_ml.ipynb
not defterini açın.
Titanic yarışmasının makine öğrenimi kodunu keşfedin
Not defterini adım adım çalıştırın. Bir kitaplık eksik olduğu için kodun başarısız olduğunu unutmayın.
Terminal'e geri dönün ve eksik kitaplığı yükleyin.
pip3 install --user seaborn
Yenile simgesini tıklayarak not defteri çekirdeğini yeniden başlatın.
Doğru kitaplıkları yükleyerek hücreyi tekrar çalıştırın ve başarılı bir şekilde kontrol edin.
Not defterinizi Kubeflow ardışık düzenine dönüştürme
Sol bölmede Kubeflow simgesini tıklayarak Kale'yi etkinleştirin.
Hücre başına bağımlılıkları keşfetme. Birden fazla hücrenin nasıl tek bir ardışık düzen adımının parçası olabileceğini ve bir ardışık düzen adımının önceki adımlara nasıl bağlı olabileceğini öğrenin.
Derle ve Çalıştır düğmesini tıklayın.
Anlık görüntünün ilerleme durumunu izleyin.
Ardışık düzen çalıştırmasının ilerleme durumunu izleyin.
Kubeflow Pipelines kullanıcı arayüzüne gitmek ve çalıştırmayı görüntülemek için bağlantıyı tıklayın.
İşlemin tamamlanmasını bekleyin.
Tebrikler! Az önce not defterinizden başlayarak uçtan uca Kubeflow ardışık düzeni çalıştırdınız.
5. Birim Anlık Görüntüleriyle Yeniden Oluşturulabilirlik
Sonuçları inceleme
İkinci ve son ardışık düzen adımının günlüklerine göz atın Sonuçlar. Tüm ön göstergelerin puanının %100 olduğuna dikkat edin. Deneyimli bir veri bilimci bunu hemen şüpheli bulur. Bu, modellerimizin genelleme yapmadığını, bunun yerine eğitim veri kümesine fazla uyumlu olduğunun iyi bir göstergesidir. Bunun nedeni muhtemelen modeller tarafından tüketilen verilerle ilgili bir sorundur.
Önceki durumu yeniden oluşturma
Derle ve Çalıştır düğmesini tıkladığınız zamanda Rok, veriler için sürüm oluşturma ve tüm ortamı yeniden üretme işini halleder. Böylece, verileriniz ve kodunuz için bir zaman makineniz olur. Şimdi, modellerden birini eğitmeden önce ardışık düzenin durumunu devam ettirelim ve neler olduğuna bakalım. rastgele orman adımına göz atıp Yapılar'ı tıklayın.
Markdown'daki adımları izleyin. Örneğin, ilgili bağlantıyı tıklayarak anlık görüntüyü Rok kullanıcı arayüzünde görüntüleyin.
Rok URL'sini kopyalayın.
Not Defteri Sunucuları bağlantısına gidin.
New Server'ı (Yeni Sunucu) tıklayın.
Daha önce kopyaladığınız Rok URL'sini yapıştırın ve Otomatik Doldur düğmesini tıklayın.
Not defteriniz için bir ad belirtin.
Şu resmi seçtiğinizden emin olun:
gcr.io/arrikto-public/tensorflow-1.14.0-notebook-cpu:kubecon-workshop
Not defteri sunucusunu oluşturmak için Launch (Başlat) seçeneğini tıklayın.
Not defteri sunucusu kullanılabilir olduğunda sunucuya bağlanmak için Bağlan'ı tıklayın.
Not defterinin, oluşturduğunuz ardışık düzen adımının tam hücresinde açıldığını unutmayın.
Kale, arka planda tüm kitaplıkları içe aktarıp önceki adımlarda bulunan değişkenleri yükleyerek not defterinin durumunu devam ettirdi.
Önceki durum için hata ayıkla
Bu hücreye bir yazdırma komutu ekleyin:
print(acc_random_forest)
Rastgele ormanı yeniden eğitmek ve skoru yazdırmak için Üst Karakter + Return tuşlarına basarak etkin hücreyi çalıştırın. 100.
Şimdi sıra eğitim verilerinde bir anormallik olup olmadığına bakmaya geldi. Bu sorunu araştırmak ve düzeltmek için önceki hücreyi seçip artı simgesini (+) tıklayarak Rastgele Orman işaretinin üstüne bir hücre ekleyin.
Aşağıdaki metni ekleyin ve eğitim kümesini yazdırmak için hücreyi yürütün.
train_df
Hata! Eğitim etiketlerini ("Hayatta Kaldı") içeren sütun yanlışlıkla giriş özellikleri olarak eklenmiş. Model, “Hayatta kalmayı başaranlar”a odaklanmayı öğrendi gerisini yok sayabilir ve girdiyi kirletebilir. Bu sütun, modelin hedefiyle tam olarak eşleşir ve tahmin sırasında mevcut değildir. Bu nedenle, modelin diğer özelliklerden öğrenmesi için eğitim veri kümesinden kaldırılması gerekir.
Hata düzeltmesi ekleme
Bu sütunu kaldırmak için hücreyi düzenleyerek şu komutu ekleyin:
train_df.drop('Survived', axis=1, inplace=True) train_df
Kale'yi etkinleştirin ve survived etiketlerini kaldıran hücrenin, özellik mühendisliği ardışık düzen adımının bir parçası olduğundan emin olun (aynı dış çizgi rengine sahip olmalıdır).
Derle ve Çalıştır düğmesini tıklayarak ardışık düzeni tekrar çalıştırın.
Kubeflow Pipelines kullanıcı arayüzüne gitmek ve çalıştırmayı görüntülemek için bağlantıyı tıklayın.
Sonuçlar adımının tamamlanmasını bekleyin ve nihai sonuçları görmek için günlükleri görüntüleyin. Artık gerçekçi tahmin puanlarınız var!
6. Temizleme
MiniKF sanal makinesini kaldır
GCP Console'da Deployment Manager'a gidin ve minikf-1
dağıtımını silin.
7. Tebrikler
Tebrikler! Kubeflow (MiniKF), Kale ve Rok'u kullanarak uçtan uca veri bilimi iş akışını başarıyla çalıştırdınız.
Sırada ne var?
Kubeflow topluluğuna katılın:
- github.com/kubeflow
- Kubeflow Slack
- kubeflow-discuss@googlegroups.com
- Salı günleri yapılacak topluluk görüşmesi