Makine Öğrenmesi Yönetim Araçları

Kerim Caner TÜMKAYA
Data Runner
Published in
3 min readDec 7, 2020
Photo by Campaign Creators on Unsplash

Yeniden merhabalar, uzun bir aradan sonra yeni bir yazı ile karşınızdayım. Bu seri biraz daha analiz üzerine bir yazı olacak. Yani çok az kod yazacağız. Serinin konusu makine öğrenmesi yönetim araçları; yani WMS(workflow managment system).

Hadi başlayalım.

Öncelikle WMS nedir ve neden gereklidir onu cevaplayalım. Makine öğrenmesi süreçleri yaklaşık olarak 5 adımda tarif edilir. Takriben şu şekilde;

https://www.houseofbots.com/images/news/11493/cover.png

Tüm bu aşamaları geçerken aslında sizin bir takım soruları her daim cevaplayabilecek şekilde notlamanız gerekli. Bunlardan bir kısmını yukarıdaki adımlar için yazmam gerekirse;

1 . Veri nereden alındı? Veride hangi kolonlar var?

2. Hangi kolonlardaki bulunan kayıp veriler hangi yöntemler ile dolduruldu? Hangi encoding metotları hangi kolonlara uygulandı? Bining yapıldı mı yapıldı ise hangi kolonlara ve hangi metot ile yapıldı? Birleştirilen kolonlar var mı? Feature Selection yapıldı mı yapıldı ise hangi metot ile yapıldı ve sonuçlar nasıldı?

3. Model için hangi algoritma kullanıldı? GridSearch yapıldı mı? Kullanılan parametreler nelerdi? Veri bölme işlemi nasıl yapıldı? Cross-Validation kullanıldı mı? Validation seti kullanıldı mı?

4. Hangi metrikler üstünden başarı ölçüldü? Bu metrik değerleri nelerdir?

Sanırım bu kadar soru ile anlatmak istediğim şey anlaşılmıştır. 5. aşamada yer alan improve aşaması zaten doğrudan bu soruların cevaplarına bakıyor. Peki bu neden bu kadar önemli? Aslında unutkanız çünkü diyerek de cevaplayabilirim ama birden çok cevabı var bu sorunun. Genellikle bir makine öğrenmesi projesi ile tamamlamazsınız iş hayatınızı ki bu imkansızdır zaten. Bir modeli hazırlarsınız ve mantıklı ise yayına alır bir başka işe geçersiniz. Ancak veriniz değiştikçe modelinizi güncel tutmanız gerekir. İşte bu noktada her zaman dönüp kodlarınıza bakarak anlayamazsınız gerçekte ne yaptığınızı. En basitinden verinizde kolon sayısı olarak ya da kolon içeriği olarak değişiklikler olabilir. Veya GridSearch yapmışsınızdır ve hangi parametrelerin hangi metriklerle ne sonuçlar verdiğini aklınızda tutamazsınız.

Evet çözümlerden birisi log kütüphanesi kullanarak loglamanız. Bir diğeri de kodun başında bir Excel dosyası oluşturup ona yazmanız olabilir. Ancak ikisinin de kendi içinde dezavantajları mevcut. Log dosyasında arama yapmak vs istediğinizde ikincil bir işlem yapmanız gerekir mesela. Anlaşılır olsun isterseniz parse etmelisiniz. Excel’de ise oluşacak verinin boyutu ve düzenli olmayan veri depolaması gereksinimi başınızı ağrıtabilir. Hemen açayım, mesela metrikler dediğimiz her zaman doğrudan RMSE gibi F1 score gibi sayısal değerler olmayabilir. Bazen chart şeklinde görsel metrikler üstünden de ilerlemeniz gerekebilir ki işler burada biraz daha karışır. Bir başka özellik ise WMS sistemlerinin hepsinde olmasa da bazılarında olan, devam edebilme özelliği. Yani makine öğrenmesi adımlarından herhangi birinde hata alırsanız hatayı düzelttikten sonra sistem kaldığınız yerden çalışmaya devam edebilir.

Bu ve bunlar gibi bir çok nedenden ötürü WMS araçları çözüm olarak görülmektedir. Öncelikle tamamen makine öğrenmesine özelleşmiş araçlar da olduğu gibi daha genel kullanıma da hitap eden araçlar olduğunu belirtmem gerekiyor.

Konuya giriş yapacağım derken sanırım fazlası ile uzun yazdım. :) Neyse bugünden itibaren sizinle birlikte birkaç tane WMS aracını adım adım inceleyeceğiz. Bunlar;

  1. Kedro (https://github.com/quantumblacklabs/kedro)
  2. MLFlow (https://github.com/mlflow/mlflow)
  3. Luigi (https://github.com/spotify/luigi)
  4. GoKart (https://github.com/m3dev/gokart)
  5. PipelineX (https://github.com/Minyus/pipelinex)

Sanırım giriş için yazdığım yazı yeterince uzun oldu. Bir sonraki yazımda Kedro’yu inceliyor olacağız. Ardından MLFlow ve bu serinin son yazısında ise geri kalan üç WMS’i. Son yazıya geldiğimizde neden ilk ikisini ayrı kalanları tek yazdığımı da açıklamış olurum. Şimdilik buraya bir fragman bırakmış olalım. Bu araçlar ile ilgili sorusu olan varsa da sorarsa yazılar ilerledikçe o soruları da ekleyerek cevaplayabilirim.

Sağlıklı ve huzurlu günler.

--

--