Ukrayna için DevFest'te bize katılın 14-15 Haziran Online Şimdi kaydolun

TFX Özel Bileşenlerini Anlama

TFX işlem hatları, Apache Airflow, Apache Beam ve Kubeflow Pipelines gibi düzenleyicilerde makine öğrenimi (ML) iş akışınızı düzenlemenize olanak tanır. İşlem hatları, iş akışınızı, her bileşenin makine öğrenimi iş akışınızda bir adım gerçekleştirdiği bir dizi bileşen halinde düzenler. TFX standart bileşenleri, kolayca bir ML iş akışı oluşturmaya başlamanıza yardımcı olmak için kanıtlanmış işlevsellik sağlar. İş akışınıza özel bileşenler de ekleyebilirsiniz. Özel bileşenler, makine öğrenimi iş akışınızı şu yollarla genişletmenize olanak tanır:

  • Tescilli bir sistemden veri almak gibi ihtiyaçlarınızı karşılamak için uyarlanmış bileşenler oluşturun.
  • Veri büyütme, üst örnekleme veya alt örnekleme uygulama.
  • Güven aralıklarına veya otomatik kodlayıcı çoğaltma hatasına dayalı olarak anormallik algılaması gerçekleştirin.
  • Uyarı ve izleme için yardım masaları gibi harici sistemlerle arayüz oluşturma.
  • Etiketlenmemiş örneklere etiket uygulama.
  • R kullanarak veri analizi yapmak gibi, Python dışındaki dillerle oluşturulmuş araçları ML iş akışınıza entegre etme.

Standart bileşenleri ve özel bileşenleri karıştırarak, TFX standart bileşenlerinde yerleşik en iyi uygulamalardan yararlanırken ihtiyaçlarınızı karşılayan bir ML iş akışı oluşturabilirsiniz.

Bu kılavuz, TFX özel bileşenlerini anlamak için gereken kavramları ve özel bileşenler oluşturmanın farklı yollarını açıklar.

Bir TFX Bileşeninin Anatomisi

Bu bölüm, bir TFX bileşeninin bileşimine ilişkin üst düzey bir genel bakış sağlar. Eğer TFX boru hatları için yeni iseniz, anlayış TFX boru hatlarına rehberini okuyarak temel kavramları öğrenir .

TFX bileşenleri, bir bileşen arabirim sınıfında paketlenmiş bir bileşen belirtimi ve bir yürütücü sınıfından oluşur.

Bir bileşen özellikleri bileşenin giriş ve çıkış sözleşme tanımlar. Bu sözleşme, bileşenin girdi ve çıktı yapılarını ve bileşenin yürütülmesi için kullanılan parametreleri belirtir.

Bir bileşenin infaz sınıfı bileşeni tarafından gerçekleştirilen iş için uygulanmasını sağlar.

Bir bileşen bir arayüz sınıfı, bir TFX boru hattı bir bileşen olarak kullanım için uygulamakla ile bileşen özellikleri bir araya getirir.

Çalışma zamanında TFX bileşenleri

Bir işlem hattı bir TFX bileşeni çalıştırdığında, bileşen üç aşamada yürütülür:

  1. İlk olarak, Sürücü, gerekli yapıtları meta veri deposundan almak ve bunları bileşene iletmek için bileşen belirtimini kullanır.
  2. Ardından, Yürütücü bileşenin çalışmasını gerçekleştirir.
  3. Ardından Yayıncı, bileşenin çıktılarını meta veri deposunda depolamak için bileşen belirtimini ve yürütücünün sonuçlarını kullanır.

Bileşen Anatomisi

Çoğu özel bileşen uygulaması, Sürücü veya Yayıncıyı özelleştirmenizi gerektirmez. Tipik olarak, Sürücü ve Yayımcı üzerinde değişiklikler, yalnızca işlem hattınızın bileşenleri ile meta veri deposu arasındaki etkileşimi değiştirmek istiyorsanız gerekli olmalıdır. Yalnızca bileşen için giriş ve çıkışları ve ya parametrelerini değiştirmek isterseniz sadece bileşen şartname değiştirmeniz gerekir.

Özel bileşen türleri

Üç tür özel bileşen vardır: Python işlev tabanlı bileşenler, kapsayıcı tabanlı bileşenler ve tamamen özel bileşenler. Aşağıdaki bölümlerde, farklı bileşen türleri ve her bir yaklaşımı kullanmanız gereken durumlar açıklanmaktadır.

Python işlevine dayalı bileşenler

Python işlev tabanlı bileşenlerin oluşturulması, kapsayıcı tabanlı bileşenlerden veya tamamen özel bileşenlerden daha kolaydır. Bileşen belirtimi, Python işlevinin bağımsız değişkenlerinde, bir bağımsız değişkenin bir girdi yapısı, çıktı yapısı veya bir parametre olup olmadığını açıklayan tür açıklamaları kullanılarak tanımlanır. İşlev gövdesi, bileşenin yürütücüsünü tanımlar. Bileşen arayüzü ekleyerek tanımlanır @component dekoratör fonksiyonunuza.

İle işlevini dekorasyon ile @component dekoratör ve tip ek açıklamalarla fonksiyon argümanları tanımlayan, bir bileşen şartname, bir vasisi ve bileşen arayüzü bina karmaşıklığı olmadan bir bileşen oluşturabilir.

Öğrenin Python fonksiyonu tabanlı bileşenlerini oluşturmak .

Kapsayıcı tabanlı bileşenler

Kapsayıcı tabanlı bileşenler, bu kodu bir Docker kapsayıcısında yürütebildiğiniz sürece, herhangi bir dilde yazılmış kodu işlem hattınıza entegre etme esnekliği sağlar. Kapsayıcı tabanlı bir bileşen oluşturmak için bileşeninizin yürütülebilir kodunu içeren bir Docker kapsayıcı görüntüsü oluşturmalısınız. Sonra çağırmalıdır create_container_component fonksiyonunu tanımlamak için:

  • Bileşen belirtiminizin girdileri, çıktıları ve parametreleri.
  • Bileşen yürütücüsünün çalıştırdığı kapsayıcı görüntüsü ve komutu.

Bu işlev, işlem hattı tanımınıza ekleyebileceğiniz bir bileşenin bir örneğini döndürür.

Bu yaklaşım, kodunuzu bir kapsayıcı görüntüsü olarak paketlemeyi gerektirdiğinden, Python işlevi tabanlı bir bileşen oluşturmaktan daha karmaşıktır. Bu yaklaşım, boru hattınıza Python dışı kod eklemek veya karmaşık çalışma zamanı ortamları veya bağımlılıkları olan Python bileşenleri oluşturmak için en uygundur.

Öğrenin konteyner bazlı bileşenlerin inşa .

Tamamen özel bileşenler

Tamamen özel bileşenler, bileşen belirtimi, yürütücü ve bileşen arabirimi sınıflarını tanımlayarak bileşenler oluşturmanıza olanak tanır. Bu yaklaşım, standart bir bileşeni ihtiyaçlarınıza uyacak şekilde yeniden kullanmanıza ve genişletmenize olanak tanır.

Mevcut bir bileşen, geliştirmekte olduğunuz özel bileşenle aynı giriş ve çıkışlarla tanımlanırsa, mevcut bileşenin Executor sınıfını geçersiz kılabilirsiniz. Bu, bir bileşen belirtimini yeniden kullanabileceğiniz ve mevcut bir bileşenden türetilen yeni bir yürütücü uygulayabileceğiniz anlamına gelir. Bu şekilde, mevcut bileşenlerde yerleşik olan işlevselliği yeniden kullanır ve yalnızca gerekli olan işlevselliği uygularsınız.

Girişler ve yeni bileşenin çıkışları benzersizdir Ancak varsa, tamamen yeni bir bileşen şartname tanımlayabilirsiniz.

Bu yaklaşım, mevcut bileşen belirtimlerini ve yürütücüleri yeniden kullanmak için en iyisidir.

Öğrenin tamamen özel bileşenler oluşturmak .