Metaflow’u Anlamak

Mert Kışlakçı
Turk Telekom Bulut Teknolojileri
3 min readApr 30, 2022

Metaflow, veri bilimcilerin kodlarını bir üretim ortamında yönetmelerine, dağıtmalarına ve çalıştırmalarına yardımcı olan bir kütüphanedir. Veri bilimcilerin yaptığı deneyleri takip ederek prototipten üretime kadar veri bilimi projelerini yürütmek için gereken altyapı yığınına birleşik bir API sağlayarak geliştirme sürecini hızlandırır. Bu tanım size biraz karmaşık gelmiş olabilir hadi o zaman daha basite indirgeyelim…

Metaflow

Albert Einstein; Eğer bir şeyi basitçe açıklayamıyorsan, onu yeterince iyi anlamamışsın demektir” sözünden yola çıkarak, Metaflow’u kavrayabilmek adına sizlere bir hikaye anlatmama izin verin. Hikayemizin kahramanı Albert, domates üretip insanlara satmak gibi bir amacı var. Domates tohumunu alıyor ve bunu kendi bahçesinde yetiştirmeye başlıyor. Albert'in yetiştirdiği domatesler olgunlaşınca pazarda satmaya başlıyor. İnsanlar domateslerini oldukça beğeniyor ve daha fazla satın almak istediklerini Albert'e iletiyorlar. Albert bu duruma çok seviniyor ve hemen daha fazla domates üretmek için bahçesine geliyor fakat büyük bir sorunla karşılaşıyor. Albert, talep edilen domatesleri yetiştirmek için yeterli bahçesi olmadığını fark ediyor. Bu durumda Albert'in bahçe satın alması gerekmekte lakin bir sorunla karşılaşıyor bahçe almaya yetecek parası yok. O an da aklına harika bir fikir geliyor. Bahçe satın almak yerine bahçe kiralıyor. Talep edilen domatesleri yetiştirip tekrar pazara götürüyor. Ancak o gün işler Albert'in istediği gibi gitmiyor ve tüm domatesleri satamıyor. Burada bir sorunla daha karşılaşan kahramanımız kalan domateslerin çürümesini engellemek amacıyla çözümü domatesleri soğuk hava deposuna yerleştirmekte buluyor. Albert artık ihtiyaç olduğunda depodan domates getirerek insanların tüketmesini sağlıyor.

Albert Einstein

Yukarıda anlattığım hikayeyi baz alarak, domates yetiştiriciliği aslında bir makine öğrenme modelidir. Modelleri ilk etapta yerel bilgisayarlarda geliştirip kullanmaya başlarız. (Albert’in kendi bahçesinde domates yetiştirmesine benzetebiliriz.) Farklı problemler için güçlü modellerin geliştirilebilmesi ve eğitilebilmesi amacıyla zamanla daha çok kaynağa gereksinim vardır. Haliyle maliyeti arttırmaktadır. Makine öğrenme modellerinin ihtiyaç duyduğu kaynakları bulut ortamı üzerinden eğitmek, fiyat / performans tarafında her zaman daha karlı hale gelmiştir. (Tıpkı Albert’te çözümü bahçe kiralayarak bulmuştur.) Geliştirilen modeli etkin ve hızlı bir şekilde dağıtmak istediğinizde ise farklı kütüphaneler kurmanız, modele özel ortamlar hazırlamanız gerekir. Bundan mütevellit modelleri konteynerlera dönüştürüp gerekli zamanda istenilen ortama entegre etme şansı tanır. (Kahramanımız Albert’in ihtiyaç duyduğu anda soğuk hava deposundan domates çıkarması olarak düşünebilirsiniz.)

İşte Metaflow, kullanıcıya kodlarını bulut üzerinde geliştirme, dağıtma ve ölçeklendirme imkanı sunmaktadır.

metaflow stages

Metaflow kullanarak bir makine öğrenme modeli geliştirmeye başladığınızda,

  • Bulutun kolay kullanımı ve arka planda paralel iş yapma imkanı tanır.
  • Tensorflow, PyTorch ve Scikit-Learn olmak üzere çoğu kütüphaneyi bünyesinde barındırarak farklı modeller için en uygun ortamı kullanıcıya sağlar.
  • Modelin geliştirilebilmesi amacıyla ilgili verilere, yerelden, veritabanından veya çok petabaytlık bir veri ambarından erişilir.
  • Eğitim anında modele ait ağırlıklar saklanarak bir sonraki eğitim sürecinde, modelin öğrendiği yerden devam etmesi sağlanır. Güçlü modellerin eğitilmesine katkı sunar.
  • Modeli dahil edeceğiniz sunuculara kolay dağıtılabilmesi adına konteyner’a dönüştürür. Modele binen yük arttığında ise yatay olarak ölçekleyerek kodun devamlı çalışması sağlanır.

Bir sonraki yazı dizisinde Metaflow’un mimarisine değinerek nasıl çalıştığını teknik olarak irdeleyeceğiz o zaman kadar esenlikle kalın…

--

--

Mert Kışlakçı
Turk Telekom Bulut Teknolojileri

#Cloud Computing #vmware #virtualization #redhat #EdgeComputing #DataScience #AI #IoT #ComputerVision #Python #OpenCV #C #Virtualization