Amazon SageMaker Ardışık Düzenleri veri bilimcilerinin ve makine öğrenimi (ML) mühendislerinin eğitim iş akışlarını otomatikleştirmesine olanak tanır; bu, hızlı deneyler ve modelin yeniden eğitimi için model geliştirme adımlarını düzenlemek üzere tekrarlanabilir bir süreç oluşturmanıza yardımcı olur. Veri hazırlama, özellik mühendisliği, model eğitimi, model ayarlama ve model doğrulama da dahil olmak üzere tüm model oluşturma iş akışını otomatikleştirebilir ve bunu model kaydında kataloglayabilirsiniz. İşlem hatlarını düzenli aralıklarla veya belirli olaylar tetiklendiğinde otomatik olarak çalışacak şekilde yapılandırabilir veya bunları gerektiğinde manuel olarak çalıştırabilirsiniz.
Bu yazıda, geliştirmelerden bazılarını vurgulayacağız. Amazon Adaçayı Yapıcı SDK'yı kullanın ve Amazon SageMaker Pipelines'ın makine öğrenimi uygulayıcılarının makine öğrenimi modelleri oluşturmasını ve eğitmesini kolaylaştıran yeni özelliklerini tanıtın.
Pipelines, geliştirici deneyimini geliştirmeye devam ediyor ve bu son sürümlerle artık hizmeti daha özelleştirilmiş bir şekilde kullanabilirsiniz:
- 2.99.0, 2.101.1, 2.102.0, 2.104.0 – Güncellenen belgeler
PipelineVariable
Tahminci, işlemci, tuner, transformatör ve model temel sınıfları, Amazon modelleri ve çerçeve modelleri için kullanım. Tahmincilerin ve işlemcilerin tüm alt sınıflarını desteklemek için SDK'nın daha yeni sürümleriyle birlikte ek değişiklikler gelecektir. - 2.90.0 – Kullanılabilirliği ModelAdım entegre model kaynağı oluşturma ve kayıt görevleri için.
- 2.88.2 – Kullanılabilirliği Boru HattıOturumu SageMaker varlıkları ve kaynaklarıyla yönetilen etkileşim için.
- 2.88.2 – Alt sınıf uyumluluğu iş akışı ardışık düzeni iş adımları böylece iş soyutlamaları oluşturabilir ve işleri bir işlem hattı olmadan yaptığınız gibi yapılandırıp çalıştırabilir, eğitebilir, dönüştürebilir ve ayarlayabilirsiniz.
- 2.76.0 – Kullanılabilirliği Başarısız Adım Arıza durumundaki bir işlem hattını koşullu olarak durdurmak için.
Bu yazıda, Pipelines'ın yeni özelliklerinin nasıl uygulanacağını göstermek için model oluşturmaya ve devreye almaya odaklanan örnek bir veri kümesi kullanarak bir iş akışında size yol göstereceğiz. Sonunda, bu yeni özellikleri başarıyla kullanmak ve makine öğrenimi iş yüklerinizi basitleştirmek için yeterli bilgiye sahip olmalısınız.
Özelliklere genel bakış
Pipelines aşağıdaki yeni özellikleri sunar:
- İşlem hattı değişkeni açıklaması – Bazı yöntem parametreleri birden fazla giriş türünü kabul eder;
PipelineVariables
ve nerede olduğunu açıklığa kavuşturmak için ek belgeler eklendiPipelineVariables
hem SageMaker SDK belgelerinin en son kararlı sürümünde hem de işlevlerin başlangıç imzasında desteklenir. Örneğin, aşağıdaki TensorFlow tahmincisinde başlangıç imzası artık şunu gösteriyor:model_dir
veimage_uri
destekPipelineVariables
diğer parametrelerde ise durum böyle değildir. Daha fazla bilgi için bkz. TensorFlow Tahmincisi.- Önce:
- Sonra:
- Ardışık düzen oturumu - Boru HattıOturumu SageMaker SDK genelinde birlik sağlamak için tanıtılan yeni bir kavramdır ve işlem hattı kaynaklarının yavaş başlatılmasını sağlar (çalıştırma çağrıları yakalanır ancak işlem hattı oluşturulup çalıştırılıncaya kadar çalıştırılmaz).
PipelineSession
bağlam devralırSageMakerSession
ve diğer SageMaker varlıkları ve kaynaklarıyla (eğitim işleri, uç noktalar ve depolanan giriş veri kümeleri gibi) etkileşimde bulunmanız için uygun yöntemler uygular. Amazon Basit Depolama Hizmeti (Amazon S3). - İş akışı hattı iş adımlarıyla alt sınıf uyumluluğu – Artık iş soyutlamaları oluşturabilir ve işleri işlem hattı olmadan yaptığınız gibi yapılandırıp çalıştırabilir, eğitebilir, dönüştürebilir ve ayarlayabilirsiniz.
- Örneğin, bir işleme adımı oluşturmak
SKLearnProcessor
önceden aşağıdakileri gerektiriyordu: - Önceki kodda gördüğümüz gibi,
ProcessingStep
temelde aynı ön işleme mantığını yapması gerekir.run
, işi başlatmak için API çağrısını başlatmadan. Ancak artık iş akışı ardışık düzeni iş adımlarıyla alt sınıf uyumluluğu etkinleştirildiğinden,step_args
.run ile ön işleme mantığını alan bağımsız değişken, böylece bir iş soyutlaması oluşturabilir ve bunu Pipelines olmadan kullanacağınız şekilde yapılandırabilirsiniz. Biz de geçiyoruzpipeline_session
, Hangi bir olduğunuPipelineSession
bunun yerine nesnesagemaker_session
çalıştırma çağrılarının yakalandığından ancak ardışık düzen oluşturulup çalıştırılana kadar çağrılmadığından emin olmak için. Aşağıdaki koda bakın:
- Örneğin, bir işleme adımı oluşturmak
- Model adımı (model oluşturma ve kayıt adımlarını içeren kolaylaştırılmış bir yaklaşım) –Pipelines, SageMaker modelleriyle entegrasyon için iki adım türü sunar:
CreateModelStep
veRegisterModel
. Artık her ikisini de yalnızca kullanarak elde edebilirsiniz.ModelStep
tip. şunu unutmayın:PipelineSession
bunu başarmak için gereklidir. Bu, işlem hattı adımları ile SDK arasında benzerlik sağlar.- Önce:
-
- Sonra:
- Başarısız adım (boru hattı çalışmasının koşullu olarak durdurulması) -
FailStep
model puanının belirli bir eşiğin altında olması gibi bir koşulun karşılanması durumunda bir işlem hattının arıza durumuyla durdurulmasına olanak tanır.
Çözüme genel bakış
Bu çözümde giriş noktanız Amazon SageMaker Stüdyosu Hızlı deneyler için entegre geliştirme ortamı (IDE). Studio, uçtan uca Pipelines deneyimini yönetmek için bir ortam sunar. Studio ile şunları atlayabilirsiniz: AWS Yönetim Konsolu tüm iş akışı yönetiminiz için. Ardışık Düzenleri Studio'dan yönetme hakkında daha fazla bilgi için bkz. SageMaker Studio'da SageMaker İşlem Hatlarını Görüntüleme, İzleme ve Yürütme.
Aşağıdaki şema, yeni özellikleri kullanarak çıkarımları eğitmek ve oluşturmak için farklı adımlarla birlikte makine öğrenimi iş akışının üst düzey mimarisini göstermektedir.
Boru hattı aşağıdaki adımları içerir:
- Gerekli özellikleri oluşturmak ve verileri eğitim, doğrulama ve test veri kümelerine bölmek için verileri önceden işleyin.
- SageMaker XGBoost çerçevesiyle bir eğitim işi oluşturun.
- Test veri kümesini kullanarak eğitilen modeli değerlendirin.
- AUC puanının önceden tanımlanmış bir eşiğin üzerinde olup olmadığını kontrol edin.
- AUC puanı eşikten düşükse ardışık düzen çalışmasını durdurun ve başarısız olarak işaretleyin.
- AUC puanı eşikten büyükse bir SageMaker modeli oluşturun ve bunu SageMaker model kaydına kaydedin.
- Önceki adımda oluşturulan modeli kullanarak verilen veri kümesine toplu dönüşüm uygulayın.
Önkoşullar
Bu gönderiyi takip etmek için bir AWS hesabına ihtiyacınız var. Stüdyo alanı.
İşlem hatları doğrudan SageMaker varlıkları ve kaynaklarıyla entegre olduğundan diğer AWS hizmetleriyle etkileşim kurmanıza gerek kalmaz. Ayrıca, tam olarak yönetilen bir hizmet olduğundan herhangi bir kaynağı yönetmenize de gerek yoktur; bu, kaynakları sizin için oluşturup yönettiği anlamına gelir. Hem bağımsız Python API'leri hem de Studio'nun entegre bileşenleri olan çeşitli SageMaker bileşenleri hakkında daha fazla bilgi için bkz. SageMaker ürün sayfası.
Başlamadan önce aşağıdaki kod parçacığını kullanarak SageMaker SDK sürümünü >= 2.104.0 ve xlrd >=1.0.0'ı Studio not defterine yükleyin:
Makine öğrenimi iş akışı
Bu yazı için aşağıdaki bileşenleri kullanacaksınız:
- Veri Hazırlama
- SageMaker İşleme – SageMaker Processing, makine öğrenimi iş yükleri için özel veri dönüşümleri ve özellik mühendisliği çalıştırmanıza olanak tanıyan, tam olarak yönetilen bir hizmettir.
- Model oluşturma
- Model eğitimi ve değerlendirmesi
- Tek tıkla eğitim – SageMaker dağıtılmış eğitim özelliği. SageMaker, veri paralelliği ve model paralelliği için dağıtılmış eğitim kütüphaneleri sağlar. Kitaplıklar SageMaker eğitim ortamı için optimize edilmiştir, dağıtılmış eğitim işlerinizi SageMaker'a uyarlamanıza yardımcı olur ve eğitim hızını ve verimi artırır.
- SageMaker Deneyleri – Deneyler, SageMaker'ın makine öğrenimi yinelemelerinizi düzenlemenize, izlemenize, karşılaştırmanıza ve değerlendirmenize olanak tanıyan bir yeteneğidir.
- SageMaker toplu dönüşümü – Toplu dönüştürme veya çevrimdışı puanlama, SageMaker'da makine öğrenimi modellerinizi kullanarak daha büyük bir veri kümesi üzerinde tahmin yapmanıza olanak tanıyan yönetilen bir hizmettir.
- İş akışı düzenlemesi
SageMaker işlem hattı, JSON işlem hattı tanımıyla tanımlanan bir dizi birbirine bağlı adımdan oluşur. Yönlendirilmiş bir döngüsel olmayan grafik (DAG) kullanarak bir boru hattını kodlar. DAG, işlem hattının her adımına ilişkin gereksinimler ve bunlar arasındaki ilişkiler hakkında bilgi verir ve yapısı, adımlar arasındaki veri bağımlılıklarına göre belirlenir. Bu bağımlılıklar, bir adımın çıktısının özellikleri başka bir adıma girdi olarak aktarıldığında oluşturulur.
Aşağıdaki diyagram, adımlar arasındaki bağlantıların, adım tanımlarıyla tanımlanan giriş ve çıkışlara dayalı olarak SageMaker tarafından çıkarıldığı SageMaker hattındaki farklı adımları (bir kayıp tahmini kullanım durumu için) göstermektedir.
Sonraki bölümlerde işlem hattının her adımının oluşturulması ve oluşturulduktan sonra işlem hattının tamamının çalıştırılması açıklanmaktadır.
Proje yapısı
Proje yapısıyla başlayalım:
- /sm-boru hatları-uçtan uca-örnek – Proje adı
- / veri – Veri kümeleri
- /boru hatları – Boru hattı bileşenlerinin kod dosyaları
- /müşteri kaybı
- önişlem.py
- değerlendirmek.py
- /müşteri kaybı
- sagemaker-pipelines-project.ipynb – Pipelines'ın yeni özelliklerini kullanarak modelleme iş akışını gösteren bir not defteri
Veri kümesini indirin
Bu gönderiyi takip etmek için, indirmeniz ve kaydetmeniz gerekir. örnek veri kümesi dosyayı kaydeden proje ana dizini içindeki veri klasörü altında Amazon Elastik Dosya Sistemi (Amazon EFS) Studio ortamında.
Boru hattı bileşenlerini oluşturun
Artık boru hattı bileşenlerini oluşturmaya hazırsınız.
İfadeleri içe aktarın ve parametreleri ve sabitleri bildirin
Adlı bir Studio not defteri oluşturun sagemaker-pipelines-project.ipynb
proje ana dizini içinde. Aşağıdaki kod bloğunu bir hücreye girin ve SageMaker ve S3 istemci nesnelerini ayarlamak için hücreyi çalıştırın, PipelineSession
ve SageMaker oturumuyla birlikte gelen varsayılan klasörü kullanarak S3 klasör konumunu ayarlayın:
İşlem hatları, işlem hattı kodunuzu değiştirmeden çalışma zamanında giriş parametrelerini belirtmenize olanak tanıyan parametreleştirmeyi destekler. altında bulunan modülleri kullanabilirsiniz. sagemaker.workflow.parameters
modül, örneğin ParameterInteger
, ParameterFloat
, ve ParameterString
, çeşitli veri türlerinin ardışık düzen parametrelerini belirtmek için. Birden çok giriş parametresini ayarlamak için aşağıdaki kodu çalıştırın:
Toplu veri kümesi oluşturma
Daha sonra toplu dönüştürme adımında kullanacağınız toplu veri kümesini oluşturun:
Verileri bir S3 paketine yükleyin
Veri kümelerini Amazon S3'e yükleyin:
Bir işleme komut dosyasını ve işleme adımını tanımlayın
Bu adımda, özellik mühendisliği, bir sıcak kodlama yapmak ve model oluşturma için kullanılacak eğitim, doğrulama ve test bölümlerini düzenlemek için bir Python betiği hazırlarsınız. İşleme komut dosyanızı oluşturmak için aşağıdaki kodu çalıştırın:
Daha sonra, işlemciyi başlatmak için aşağıdaki kod bloğunu ve işleme betiğini çalıştırmak için Pipelines adımını çalıştırın. İşleme komut dosyası Pandas'ta yazıldığından, bir SKLearnİşlemci. Boru Hatları ProcessingStep
işlevi şu bağımsız değişkenleri alır: işlemci, ham veri kümeleri için giriş S3 konumları ve işlenmiş veri kümelerini kaydetmek için çıkış S3 konumları.
Bir eğitim adımı tanımlayın
SageMaker XGBoost tahmin aracını ve Pipelines'ı kullanarak model eğitimi ayarlayın TrainingStep
işlevi:
Değerlendirme komut dosyasını ve model değerlendirme adımını tanımlayın
Modeli eğittikten sonra değerlendirmek için aşağıdaki kod bloğunu çalıştırın. Bu komut dosyası, AUC puanının belirtilen eşiği karşılayıp karşılamadığını kontrol etme mantığını kapsar.
Ardından, işlemciyi başlatmak için aşağıdaki kod bloğunu ve değerlendirme betiğini çalıştırmak için İşlem Hatları adımını çalıştırın. Değerlendirme komut dosyası XGBoost paketini kullandığından, ScriptProcessor
XGBoost görüntüsüyle birlikte. Boru Hatları ProcessingStep
işlevi şu bağımsız değişkenleri alır: işlemci, ham veri kümeleri için giriş S3 konumları ve işlenmiş veri kümelerini kaydetmek için çıkış S3 konumları.
Model oluşturma adımını tanımlama
İşlem Hatları modeli adımını kullanarak bir SageMaker modeli oluşturmak için aşağıdaki kod bloğunu çalıştırın. Bu adım, modeli dağıtım için paketlemek üzere eğitim adımının çıktısını kullanır. Örnek türü bağımsız değişkeninin değerinin, gönderide daha önce tanımladığınız Pipelines parametresi kullanılarak aktarıldığını unutmayın.
Toplu dönüştürme adımı tanımlama
İlk adımda oluşturulan toplu girdiyle eğitilmiş modeli kullanarak toplu dönüştürmeyi çalıştırmak için aşağıdaki kod bloğunu çalıştırın:
Kayıt modeli adımını tanımlayın
Aşağıdaki kod, Pipelines model adımını kullanarak modeli SageMaker model kaydına kaydeder:
İşlem hattını durdurmak için başarısız bir adım tanımlayın
Aşağıdaki kod, AUC puanı tanımlanan eşiği karşılamıyorsa işlem hattı çalışmasını bir hata mesajıyla durdurmak için İşlem Hatları başarısız adımını tanımlar:
AUC puanını kontrol etmek için bir koşul adımı tanımlayın
Aşağıdaki kod, AUC puanını kontrol etmek ve koşullu olarak bir model oluşturmak ve toplu dönüşüm çalıştırmak ve model kayıt defterine bir model kaydetmek veya başarısız bir durumda işlem hattı çalıştırmasını durdurmak için bir koşul adımını tanımlar:
İşlem hattını oluşturun ve çalıştırın
Tüm bileşen adımlarını tanımladıktan sonra bunları bir Pipelines nesnesinde birleştirebilirsiniz. İşlem hattının sırasını belirtmeniz gerekmez çünkü İşlem Hatları, adımlar arasındaki bağımlılıklara göre sipariş sırasını otomatik olarak çıkarır.
Aşağıdaki kodu not defterinizdeki bir hücrede çalıştırın. İşlem hattı zaten mevcutsa kod, işlem hattını güncelleştirir. Boru hattı mevcut değilse yenisini oluşturur.
Sonuç
Bu yazıda, kayıp tahmini için bir model geliştirmek, yinelemek ve dağıtmak amacıyla diğer yerleşik SageMaker özellikleri ve XGBoost algoritmasının yanı sıra Pipelines'ta şu anda mevcut olan bazı yeni özellikleri tanıttık. Çözüm ek veri kaynaklarıyla genişletilebilir
kendi ML iş akışınızı uygulamak için. İşlem Hatları iş akışındaki mevcut adımlar hakkında daha fazla ayrıntı için bkz. Amazon SageMaker Model Oluşturma İşlem Hattı ve SageMaker İş Akışları. AWS SageMaker Örnekleri GitHub deposunda Pipelines'ın kullanıldığı çeşitli kullanım durumları hakkında daha fazla örnek var.
Yazarlar Hakkında
Jerry Peng AWS SageMaker'da yazılım geliştirme mühendisidir. Üretimde eğitimden model izlemeye kadar uçtan uca büyük ölçekli MLOps sistemi oluşturmaya odaklanıyor. Aynı zamanda MLOps kavramını daha geniş bir kitleye ulaştırma konusunda da tutkulu.
Dewen Qi'si AWS'de Yazılım Geliştirme Mühendisidir. Şu anda SageMaker Pipelines'ı geliştirmeye ve iyileştirmeye odaklanıyor. İş dışında Çello çalışmaktan hoşlanıyor.
Gayatri Ganakota AWS Professional Services ile Kıdemli Makine Öğrenimi Mühendisidir. Çeşitli alanlarda AI/ML çözümlerini geliştirme, dağıtma ve açıklama konusunda tutkulu. Bu görevden önce, finans ve perakende alanındaki en iyi küresel firmalarda veri bilimcisi ve makine öğrenimi mühendisi olarak birden fazla girişimi yönetti. Colorado Üniversitesi, Boulder'dan Veri Bilimi alanında Bilgisayar Bilimi alanında yüksek lisans derecesine sahiptir.
Ruinder Grewal AWS'li bir Kıdemli Ai/ML Uzman Çözüm Mimarıdır. Şu anda SageMaker'da modellerin ve MLO'ların sunumuna odaklanıyor. Bu görevden önce Makine Öğrenimi Mühendisi olarak model oluşturma ve barındırma konusunda çalıştı. İş dışında tenis oynamayı ve dağ yollarında bisiklet sürmeyi sever.
ray li AWS Profesyonel Hizmetlerinde Kıdemli Veri Bilimcisidir. Uzmanlık alanı, yeni kurulan şirketlerden kurumsal organizasyonlara kadar farklı boyutlardaki müşteriler için AI/ML çözümlerini oluşturmaya ve operasyonel hale getirmeye odaklanıyor. Ray, iş dışında spor yapmaktan ve seyahat etmekten hoşlanıyor.
- AI
- yapay zeka
- AI sanat üreteci
- yapay zeka robotu
- Amazon Adaçayı Yapıcı
- yapay zeka
- yapay zeka sertifikası
- bankacılıkta yapay zeka
- yapay zeka robotu
- yapay zeka robotları
- yapay zeka yazılımı
- AWS Makine Öğrenimi
- blockchain
- blockchain konferans ai
- zeka
- konuşma yapay zekası
- kripto konferans ai
- dal-e
- derin öğrenme
- google ai
- makine öğrenme
- Platon
- plato yapay zekası
- Plato Veri Zekası
- Plato Oyunu
- PlatoVeri
- plato oyunu
- ölçek ai
- sözdizimi
- zefirnet