Amazon SageMaker Feature Store'u kullanarak model serisini makine öğrenimi özelliklerini içerecek şekilde genişletin

Kaynak Düğüm: 1274480

Özellik mühendisliği pahalı ve zaman alıcıdır; bu da, özellikleri ekipler ve modeller arasında yönetmek için bir özellik deposunu benimsemenize yol açabilir. Ne yazık ki, makine öğrenimi (ML) kökenli çözümler henüz bu yeni özellik yönetimi konseptine uyum sağlayamadı. Özelliğin yeniden kullanımını etkinleştirerek bir özellik deposunun tüm avantajlarından yararlanmak için özelliklerle ilgili temel soruları yanıtlayabilmeniz gerekir. Örneğin, bu özellikler nasıl oluşturuldu? Bu özellikleri hangi modeller kullanıyor? Modelim hangi özelliklere bağlı? Bu veri kaynağıyla hangi özellikler oluşturuldu?

Amazon Adaçayı Yapıcı temel özellik köken sorularını yanıtlamayı mümkün kılmak için iki önemli yapı taşı sağlar:

  • SageMaker ML Soy Takibi Veri hazırlamadan model dağıtımına kadar bir makine öğrenimi iş akışının adımları hakkında bilgi oluşturmanıza ve saklamanıza olanak tanır. Köken izleme bilgileriyle iş akışı adımlarını yeniden oluşturabilir, modeli ve veri kümesi kökenini izleyebilir ve model yönetişimi ve denetim standartları oluşturabilirsiniz.
  • SageMaker Özellik Mağazası ML özellik yönetimi için amaca yönelik oluşturulmuş bir çözümdür. Veri bilimi ekiplerinin makine öğrenimi özelliklerini ekipler ve modeller genelinde yeniden kullanmasına, düşük gecikme süresiyle geniş ölçekte model tahminleri için özellikler sunmasına ve yeni modelleri daha hızlı ve etkili bir şekilde eğitip dağıtmasına yardımcı olur.

Bu yazıda, veri bilimi ekiplerinin özelliklerin proaktif yönetimine geçmesine yardımcı olabilecek ML özelliklerini ve özellik işlemeyi içerecek şekilde ML kökenini nasıl genişleteceğimizi açıklıyoruz. Tam bir hizmet sunuyoruz örnek dizüstü iş akışınıza soy takibini nasıl kolayca ekleyeceğinizi gösteriyor. Daha sonra bu kökeni, modellerin ve özelliklerin nasıl oluşturulduğu ve bunları hangi modellerin ve uç noktaların kullandığı hakkındaki temel soruları yanıtlamak için kullanırsınız.

Özellik kökeni neden önemlidir?

Özellik kökeni, kuruluşların ML uygulamalarını ilk birkaç başarılı modelin ötesinde, yüzlerce veya binlerce model oluşturup dağıtan birden fazla veri bilimi ekibine sahip olduklarında ortaya çıkan ihtiyaçları karşılayacak şekilde ölçeklendirmelerine yardımcı olmada önemli bir rol oynar. Küçük bir model kümesi için temel yapıların ve ilişkilerin basitleştirilmiş bir görünümünü gösteren aşağıdaki diyagramı düşünün.

Büyük bir ekip, birden fazla ekip ve hatta birden fazla iş birimi için tüm bunları manuel olarak takip etmeye çalıştığınızı hayal edin. Köken izleme ve sorgulama, bunu daha yönetilebilir hale getirmeye yardımcı olur ve kuruluşların geniş ölçekte makine öğrenimine geçmesine yardımcı olur. Aşağıda özellik kökeninin makine öğrenimi sürecini ölçeklendirmeye nasıl yardımcı olduğuna dair dört örnek verilmiştir:

  • Mevcut özelliklerin yeniden kullanımı konusunda güven oluşturun – Bir veri bilimcisi mevcut özellikleri arayabilir, ancak ham veri kaynaklarını, gerçekleştirilen dönüşümleri ve diğer modellerdeki özellikleri halihazırda başka kimlerin kullandığını kolayca belirleyemiyorsa bunları kullanmayacaktır.
  • Mevcut özelliklerle aynı ham verilere dayanan özellikleri yeniden icat etmekten kaçının – Bir veri bilimcinin belirli bir veri kaynağına dayalı yeni özellikler oluşturmayı planladığını varsayalım. Özellik kökeni, halihazırda aynı veri kaynağına bağlı olan ve üretim modelleri tarafından kullanılan tüm özellikleri kolayca bulmalarına yardımcı olabilir. Başka bir özelliği oluşturmak ve sürdürmek yerine, hemen yeniden kullanılacak özellikleri bulabilirler.
  • Modellerde ve model tahminlerinde sorun giderme ve denetim – Prodüksiyonda yanlış tahminler veya taraflı tahminler ortaya çıkabilir ve ekiplerin bunun nasıl gerçekleştiğine dair yanıtlara ihtiyacı vardır. Bu sorun giderme, düzenleyicinin, tahminleri yönlendiren tüm özellikler de dahil olmak üzere modellerin nasıl oluşturulduğuna dair kanıt araması sonucunda da ortaya çıkabilir.
  • Özellikleri proaktif bir şekilde yönetin – Merkezi özellik mağazalarında giderek daha fazla yeniden kullanılabilir özellik kullanıma sunuldukça, belirli özelliklerin sahiplerinin, özellik gruplarının geliştirilmesi ve hatta sonunda eski özelliklerin kullanımdan kaldırılması için planlama yapması gerekir. Bu özellik sahiplerinin, etkiyi ve kiminle çalışmaları gerektiğini anlamak için hangi modellerin özelliklerini kullandığını anlamaları gerekir.

Hangi ilişkileri izlemek önemlidir?

Aşağıdaki diyagramda, bir özellik deposu kullanılırken genellikle model kökeni için gerekli olan ML yaşam döngüsü adımları, yapıları ve ilişkilerinin örnek bir kümesi gösterilmektedir.

Bu bileşenler aşağıdakileri içerir:

  • Veri kaynağı – ML özellikleri, operasyonel bir veri deposu veya bir dizi CSV dosyası gibi ham veri kaynaklarına bağlıdır. Amazon Basit Depolama Hizmeti (Amazon S3).
  • Özellik hattı – Üretime değer özellikler genellikle bir dizi ham veri kaynağı alan, özellik dönüşümleri gerçekleştiren ve ortaya çıkan özellikleri özellik deposuna alan bir özellik hattı kullanılarak oluşturulur. Köken izleme, bu işlem hatlarını veri kaynakları ve hedef özellik gruplarıyla ilişkilendirerek yardımcı olabilir.
  • Özellik setleri – Özellikler bir özellik deposunda olduğunda, veri bilimcileri model eğitimi ve doğrulama için verileri almak üzere onu sorgular. Özellik deposu sorgusunu üretilen veri kümesiyle ilişkilendirmek için köken izlemeyi kullanabilirsiniz. Bu, birden fazla özellik grubunda hangi özelliklerin kullanıldığına ve hangi özellik geçmişinin seçildiğine ilişkin ayrıntılı ayrıntılar sağlar.
  • Staj – ML yaşam döngüsü bir özellik deposunun kullanımını benimsemek için olgunlaştıkça, model kökeni, eğitimi belirli özellikler ve özellik gruplarıyla ilişkilendirebilir.
  • Model – Modelleri barındırma uç noktalarıyla ilişkilendirmenin yanı sıra, bunları ilgili eğitim işlerine ve dolaylı olarak özellik gruplarına bağlayabilirsiniz.
  • Son nokta – Son olarak, çevrimiçi modeller için, belirli uç noktaları barındırdıkları modellerle ilişkilendirebilir, veri kaynaklarından uç noktalara kadar uçtan uca zinciri tamamlayarak tahminler sağlayabilirsiniz.

Genel bir model hattına yönelik "herkese uyan tek beden" yaklaşımı yoktur. Bu sadece bir örnektir ve bunu ekiplerinizin belirli köken gereksinimlerinizi karşılamak için nasıl çalıştığını kapsayacak şekilde uyarlayabilirsiniz. Temel API'ler çok çeşitli yaklaşımları kapsayacak kadar esnektir.

Soy takibi oluştur

Bu ilişkileri kolayca yakalamak için kodunuzu nasıl ayarlayacağınızı inceleyelim. Örneğimizde bir özel sarmalayıcı kitaplığı SageMaker ML Lineage Tracking'i temel alarak geliştirdik. Bu kütüphane, Adaçayı Yapıcı SDK'sı ML yaşam döngüsü boyunca köken takibinin kolaylığını desteklemek için. Köken yapıları verileri, kodu, özellik gruplarını, bir özellik grubundaki özellikleri, özellik grubu sorgularını, eğitim işlerini ve modelleri içerir.

Öncelikle kütüphaneyi import ediyoruz:

from ml_lineage_helper import *

Daha sonra, ideal olarak soyunun, verilerinizi işlemek için kullandığınız kodu bile takip etmesini istiyorsunuz. SageMaker İşleme Modelinizi SageMaker'da eğitmek için kullanılan işler veya kod. Bu kod sürüm kontrollüyse (bunu şiddetle tavsiye ediyoruz!), GitHub veya GitLab gibi seçtiğiniz git yönetimi platformunda bu URL bağlantılarının ne olacağını yeniden yapılandırabiliriz:

processing_code_repo_url = get_repo_link(os.getcwd(), 'processing.py')
training_code_repo_url = get_repo_link(os.getcwd(), 'pytorch-model/train_deploy.py', processing_code=False)
repo_links = [processing_code_repo_url, training_code_repo_url]

Son olarak soy hattını oluşturuyoruz. Girişlerin çoğu isteğe bağlıdır ancak bu örnekte aşağıdakileri varsayıyoruz:

  1. Ham veri kaynağıyla başladınız
  2. Ham verileri işlemek ve bunları iki farklı özellik grubuna dahil etmek için SageMaker Processing'i kullandınız
  3. Eğitim ve test veri kümeleri oluşturmak için Özellik Mağazasını sorguladınız
  4. SageMaker'da eğitim ve test veri kümeleriniz üzerinde bir model eğittiniz
ml_lineage = MLLineageHelper()
lineage = ml_lineage.create_ml_lineage(estimator, model_name=model_name, query=query, sagemaker_processing_job_description=preprocessing_job_description, feature_group_names=['customers', 'claims'], repo_links=repo_links)
lineage

Aşağıdaki ekran görüntüsü sonuçlarımızı göstermektedir.

Çağrı, sizin adınıza oluşturulan ve ilişkilendirilen yapıların köken grafiğini temsil eden bir pandas veri çerçevesi döndürür. İsimleri, çağrışımları (örneğin Produced or ContributedTo), Ve ARN'ler kaynakları benzersiz şekilde tanımlayan.

Artık köken hazır olduğuna göre, bunu özellikleriniz ve modelleriniz hakkındaki önemli soruları yanıtlamak için kullanabilirsiniz. Bu köken takibinin tam faydasının, bu uygulamanın çok sayıda özellik ve modelle çalışan birçok veri bilimci tarafından benimsenmesiyle ortaya çıkacağını unutmayın.

Temel soruları yanıtlamak ve içgörü kazanmak için kökenden yararlanın

Artık soy takibi mevcut olduğuna göre soy verileriyle neler yapabileceğinize dair bazı örneklere bakalım.

Bir veri bilimci olarak belirli bir veri kaynağı kullanmayı planlıyor olabilirsiniz. Mevcut özelliklerle aynı ham verileri temel alan özellikleri yeniden icat etmekten kaçınmak için, aynı veri kaynağı kullanılarak halihazırda oluşturulmuş ve üretimde olan tüm özelliklere bakmak istersiniz. Basit bir arama size bu bilgiyi sağlayabilir:

from ml_lineage_helper.query_lineage import QueryLineage query_lineage = QueryLineage()
query_lineage.get_feature_groups_from_data_source(artifact_arn_or_s3_uri)

Aşağıdaki ekran görüntüsü sonuçlarımızı göstermektedir.

Ya da belki belirli bir özellik grubunu kullanmayı düşünüyorsunuz ve bununla hangi veri kaynaklarının ilişkili olduğunu bilmek istiyorsunuz:

query_lineage.get_data_sources_from_feature_group(artifact_or_fg_arn, max_depth=3)

Aşağıdaki sonuçları alıyoruz.

Ayrıca bir modeli veya bir dizi model tahminini denetlemeniz gerekebilir. Üretimde yanlış tahminler veya önyargılı tahminler meydana gelirse ekibinizin bunun nasıl gerçekleştiğine ilişkin yanıtlara ihtiyacı vardır. Bir model verildiğinde, modeli oluşturmak için ML yaşam döngüsünde kullanılan tüm adımları görmek üzere kökeni sorgulayabilirsiniz:

ml_lineage = MLLineageHelper(sagemaker_model_name_or_model_s3_uri='my-sagemaker-model-name')
ml_lineage.df

Aşağıdaki sonuçları alıyoruz.

Merkezi bir özellik deposunda giderek daha fazla özellik kullanıma sunuldukça, belirli özelliklerin sahiplerinin, özellik gruplarının geliştirilmesi ve hatta sonunda eski özelliklerin kullanımdan kaldırılması için planlama yapması gerekir. Bu özellik sahiplerinin, etkiyi anlamak için özelliklerini hangi modellerin kullandığını ve kiminle çalışmaları gerektiğini anlamaları gerekir. Bunu aşağıdaki kodla yapabilirsiniz:

query_lineage.get_models_from_feature_group(artifact_or_fg_arn)

Aşağıdaki ekran görüntüsü sonuçlarımızı göstermektedir.

Ayrıca soruyu tersine çevirebilir ve hangi özellik gruplarının belirli bir modelle ilişkili olduğunu da öğrenebilirsiniz:

query_lineage.get_feature_groups_from_model(artifact_arn_or_model_name)

Sonuç

Bu yazıda, ML kökenini izlemenin önemini, ML yaşam döngüsünün izlemeniz ve kökene eklemeniz gereken yönlerini ve uçtan uca ML kökenini sağlamak için SageMaker'ın nasıl kullanılacağını tartıştık. Ekipler ve modeller arasında yeniden kullanılabilir özelliklere doğru ilerlerken Özellik Mağazası'nı nasıl dahil edeceğinizi ve son olarak da Özellik Mağazası'nın nasıl kullanılacağını da ele aldık. yardımcı kitaplık uçtan uca ML köken takibini gerçekleştirmek için. Kökenle ilgili bir modül de dahil olmak üzere Özellik Mağazası'nın uçtan uca yaşam döngüsünü denemek için bunu keşfedebilirsiniz Özellik Mağazası Atölyesi ve tüm modüllere ait not defterleri GitHub. Ayrıca bu yaklaşımı benzersiz gereksinimlerinizi kapsayacak şekilde genişletebilirsiniz. ML Lineage yardımcısını ziyaret edin kütüphane inşa ettik ve denedik örnek not defteri.


Yazarlar Hakkında

Bobby Lindsey Amazon Web Services'de Makine Öğrenimi Uzmanıdır. On yılı aşkın bir süredir teknolojinin içinde, çeşitli teknolojileri ve birden çok rolü kapsıyor. Şu anda yazılım mühendisliği, DevOps ve makine öğrenimi alanındaki geçmişini birleştirerek müşterilerin makine öğrenimi iş akışlarını uygun ölçekte sunmasına yardımcı olmaya odaklanmıştır. Boş zamanlarında okumaktan, araştırmaktan, yürüyüş yapmaktan, bisiklete binmekten ve patika koşularından hoşlanır.

Mark Roy AWS için Başlıca Makine Öğrenimi Mimarıdır ve müşterilerin AI / ML çözümleri tasarlamasına ve oluşturmasına yardımcı olur. Mark'ın çalışması, temel ilgi alanı bilgisayarla görme, derin öğrenme ve kurum genelinde ML'yi ölçeklendirmeye yönelik çok çeşitli makine öğrenimi kullanım örneklerini kapsar. Sigorta, finansal hizmetler, medya ve eğlence, sağlık hizmetleri, kamu hizmetleri ve imalat dahil birçok sektördeki şirketlere yardım etti. Mark, ML Uzmanlık Sertifikası da dahil olmak üzere altı AWS sertifikasına sahiptir. Mark, AWS'ye katılmadan önce, 25 yılı finansal hizmetler dahil olmak üzere 19 yılı aşkın süredir mimar, geliştirici ve teknoloji lideriydi.

Mohan Pasappulatti San Francisco, ABD merkezli AWS'de Kıdemli Çözüm Mimarıdır. Mohan, yüksek profilli yenilikçi startup'ların ve stratejik müşterilerin, AWS'de üretimdeki makine öğrenimi iş yükleri de dahil olmak üzere dağıtılmış uygulamaları tasarlamasına ve dağıtmasına yardımcı oluyor. Mühendislik lideri, baş mimar ve baş mühendis gibi çeşitli rollerde 20 yılı aşkın iş tecrübesine sahiptir. Mohan boş zamanlarında üniversite futbol takımına (LSU Tigers!) tezahürat yapmayı, poker oynamayı, kayak yapmayı, finans piyasalarını izlemeyi, voleybol oynamayı ve açık havada vakit geçirmeyi seviyor.

Kaynak: https://aws.amazon.com/blogs/machine-learning/extend-model-lineage-to-include-ml-features-using-amazon-sagemaker-feature-store/

Zaman Damgası:

Den fazla AWS Makine Öğrenimi Blogu