Veri bilimcileri genellikle modellerini yerel olarak eğitir ve modellerini dağıtmak için uygun bir barındırma hizmeti arar. Ne yazık ki, önceden eğitilmiş modelleri buluta dağıtmak için belirlenmiş bir mekanizma veya kılavuz yok. Bu gönderide, eğitimli modelleri aşağıdakilere dağıtmaya bakacağız: Amazon Adaçayı Yapıcı dağıtım sürenizi azaltmak için barındırma.
SageMaker, tam olarak yönetilen bir makine öğrenimi (ML) hizmetidir. SageMaker ile makine öğrenimi modellerini hızla oluşturup eğitebilir ve bunları doğrudan üretime hazır barındırılan bir ortama dağıtabilirsiniz. Ayrıca, sunucuları yönetmenize gerek yoktur. Veri kaynaklarınıza kolay erişim sağlayan entegre bir Jupyter not defteri ortamına sahip olursunuz. Veri analizi yapabilir, modellerinizi eğitebilir ve kendi algoritmalarınızı kullanarak test edebilir veya birden çok makineye yayılmış büyük veri kümelerine karşı verimli bir şekilde çalışacak şekilde optimize edilmiş SageMaker tarafından sağlanan ML algoritmalarını kullanabilirsiniz. Eğitim ve barındırma, minimum ücret ve ön taahhüt olmaksızın kullanım dakikalarına göre faturalandırılır.
Çözüme genel bakış
Veri bilimcileri bazen IDE'lerini kullanarak modelleri yerel olarak eğitir ve bu modelleri dağıtım için ML mühendislik ekibine gönderir veya yalnızca güçlü makinelerde yerel olarak tahminler yürütür. Bu gönderide, modelleri SageMaker'a dağıtma sürecini basitleştiren bir Python kitaplığı tanıtıyoruz. hosting gerçek zamanlı veya sunucusuz uç noktalarda.
Bu Python kitaplığı, veri bilimcilerine, düşük seviyeli SageMaker işlevlerinin hiçbirini bilmeye gerek kalmadan SageMaker'ı hızlı bir şekilde kullanmaya başlamaları için basit bir arabirim sağlar.
Tercih ettiğiniz IDE kullanılarak yerel olarak eğitilmiş modelleriniz varsa ve bulutun ölçeğinden yararlanmak istiyorsanız, modelinizi SageMaker'a dağıtmak için bu kitaplığı kullanabilirsiniz. SageMaker ile, bulut tabanlı bir makine öğrenimi platformunun tüm ölçeklendirme avantajlarına ek olarak, amaca yönelik eğitim araçlarına (dağıtılmış eğitim, hiperparametre ayarlama), deney yönetimi, model yönetimi, sapma algılama, model açıklanabilirliği ve diğer pek çok şeye erişebilirsiniz. makine öğrenimi yaşam döngüsünün herhangi bir alanında size yardımcı olabilecek yetenekler. Makine öğrenimi için en popüler üç çerçeveden birini seçebilirsiniz: Scikit-learn, PyTorch ve TensorFlow ve istediğiniz bilgi işlem türünü seçebilirsiniz. Bu kitaplığın kullanıcılarının karmaşık kararlar almaya veya yeni kavramlar öğrenmeye gerek kalmadan modellerini dağıtabilmeleri için yol boyunca varsayılanlar sağlanır. Bu gönderide, bu kitaplığa nasıl başlayacağınızı ve ML modellerinizi SageMaker barındırmada nasıl optimize edeceğinizi gösteriyoruz.
Kütüphane şurada bulunabilir: GitHub deposu.
SageMaker Geçiş Araç Seti
The SageMakerMigration
class, GitHub'da yayınlanan bir Python kitaplığı aracılığıyla kullanılabilir. Bu kitaplığı kurmak için talimatlar havuzda verilmiştir; ortamınızı doğru şekilde kurmak için BENİOKU'yu izlediğinizden emin olun. Bu kitaplığı kurduktan sonra, bu yazının geri kalanı onu nasıl kullanabileceğinizden bahseder.
The SageMakerMigration
sınıfı, aşağıdaki şekilde gösterildiği gibi, modelinizi SageMaker'a dağıtmak için gereken adımları önemli ölçüde azaltan SageMaker API'leri üzerinden yüksek düzeyli soyutlamalardan oluşur. Bu, geliştiricilerin hızlı bir şekilde başlayabilmeleri ve SageMaker'ı test edebilmeleri için deneme amaçlıdır. Üretim geçişleri için tasarlanmamıştır.
Scikit-learn, PyTorch ve TensorFlow modelleri için bu kitaplık, eğitilmiş modellerin bir SageMaker gerçek zamanlı uç noktasına veya sunucusuz uç noktasına dağıtılmasını destekler. SageMaker'daki çıkarım seçenekleri hakkında daha fazla bilgi edinmek için bkz. Çıkarım için Modelleri Dağıt.
Gerçek zamanlı ve sunucusuz uç noktalar
Gerçek zamanlı çıkarım, gerçek zamanlı, etkileşimli, düşük gecikme gereksinimlerinizin olduğu çıkarım iş yükleri için idealdir. Modelinizi SageMaker barındırma hizmetlerine dağıtabilir ve çıkarım için kullanılabilecek bir uç nokta elde edebilirsiniz. Bu uç noktalar tamamen yönetilir ve otomatik ölçeklendirmeyi destekler.
SageMaker Sunucusuz Çıkarım, makine öğrenimi modellerini dağıtmanızı ve ölçeklendirmenizi kolaylaştıran amaca yönelik oluşturulmuş bir çıkarım seçeneğidir. Sunucusuz Çıkarım, trafikteki sıçramalar arasında boşta kalma süreleri olan ve soğuk başlatmaları tolere edebilen iş yükleri için idealdir. Sunucusuz uç noktalar, bilgi işlem kaynaklarını otomatik olarak başlatır ve trafiğe bağlı olarak ölçeklendirerek, örnek türlerini seçme veya ölçeklendirme ilkelerini yönetme ihtiyacını ortadan kaldırır. Bu, sunucuları seçme ve yönetmenin farklılaşmamış ağır yükünü ortadan kaldırır.
Kullanım durumunuza bağlı olarak, her zaman açık olan bir örneğe sahip olmadan ve maliyete neden olmadan modelinizi SageMaker'da hızlı bir şekilde barındırmak isteyebilirsiniz; bu durumda sunucusuz bir uç nokta harika bir çözümdür.
Eğitilmiş modelinizi ve çıkarım komut dosyanızı hazırlayın
SageMaker'da dağıtmak istediğiniz modeli belirledikten sonra, modelin SageMaker'a doğru biçimde sunulduğundan emin olmalısınız. SageMaker uç noktaları genellikle iki bileşenden oluşur: eğitilmiş model yapıtı (.pth, .pkl vb.) ve bir çıkarım betiği. Çıkarım komut dosyası her zaman zorunlu değildir, ancak sağlanmazsa, kullandığınız sunum kapsayıcısının varsayılan işleyicileri uygulanır. Çıkarım için giriş/çıkış işlevselliğinizi özelleştirmeniz gerekiyorsa, bu betiği sağlamanız önemlidir.
Eğitilmiş model yapısı, yalnızca kaydedilmiş bir Scikit-learn, PyTorch veya TensorFlow modelidir. Scikit-learn için bu genellikle bir turşu dosyasıdır, PyTorch için bu bir .pt veya .pth dosyasıdır ve TensorFlow için bu, varlıklar, .pb dosyaları ve diğer değişkenleri içeren bir klasördür.
Genel olarak, modelinizin girdiyi nasıl işlediğini ve çıkarımı nasıl gerçekleştirdiğini ve yanıtınız için çıktı biçimini kontrol edebilmeniz gerekir. SageMaker ile bir çıkarım komut dosyası Bu özelleştirmeyi eklemek için SageMaker tarafından kullanılan herhangi bir çıkarım betiği, aşağıdaki dört işleyici işlevinden bir veya daha fazlasına sahip olmalıdır: model_fn
, input_fn
, predict_fn
, ve output_fn
.
Bu dört işlevin aşağıdakiler için geçerli olduğunu unutmayın: PyTorch ve Scikit-öğrenme konteynerler özellikle. TensorFlow ile entegre olduğu için biraz farklı işleyicilere sahiptir. Akış Sunumu. TensorFlow ile bir çıkarım betiği için iki model işleyicileri: input_handler ve output_handler. Yine, bunlar, birlikte çalışabileceğiniz aynı ön işleme ve son işleme amacına sahiptir, ancak bunlarla bütünleşmek için biraz farklı şekilde yapılandırılmışlardır. Akış Sunumu. PyTorch modelleri için model_fn, çıkarım betiğinde bulunması zorunlu bir işlevdir.
model_fn
Bu, SageMaker uç noktanızı çağırdığınızda ilk çağrılan işlevdir. Modeli yüklemek için kodunuzu yazdığınız yer burasıdır. Örneğin:
Çerçeveye ve modelin türüne bağlı olarak bu kod değişebilir, ancak işlevin başlatılmış bir model döndürmesi gerekir.
girdi_fn
Bu, uç noktanız çağrıldığında çağrılan ikinci işlevdir. Bu işlev, çıkarım için uç noktaya gönderilen verileri alır ve modelin bir tahmin oluşturması için gereken biçime ayrıştırır. Örneğin:
The request_body
modelden çıkarım oluşturmak için kullanılacak verileri içerir ve bu fonksiyonda gerekli formatta olması için ayrıştırılır.
tahmin_fn
Bu, modeliniz çağrıldığında çağrılan üçüncü işlevdir. Bu işlev, döndürülen önceden işlenmiş giriş verilerini alır. input_fn
ve döndürülen modeli kullanır model_fn
tahminde bulunmak için. Örneğin:
isteğe bağlı olarak ekleyebilirsiniz output_fn
çıktısını ayrıştırmak için predict_fn
müşteriye iade etmeden önce. fonksiyon imzası def output_fn(prediction, content_type)
.
Önceden eğitilmiş modelinizi SageMaker'a taşıyın
Eğitilmiş model dosyanızı ve çıkarım betiğinizi aldıktan sonra, bu dosyaları aşağıdaki gibi bir klasöre koymalısınız:
Modeliniz ve çıkarım betiğiniz hazırlanıp bu klasör yapısına kaydedildikten sonra modeliniz SageMaker üzerinde dağıtıma hazırdır. Aşağıdaki koda bakın:
Uç noktanızı dağıttıktan sonra, kullanmayacağınız kaynakları SageMaker konsolu veya konsol aracılığıyla temizlediğinizden emin olun. silme_bitiş noktası Boto3 API çağrısı.
Sonuç
SageMaker Migration Toolkit projesinin amacı, veri bilimcilerin bulut tabanlı çıkarımdan yararlanmak için modellerini SageMaker'a yerleştirmelerini kolaylaştırmaktır. Depo, iş yüklerini SageMaker'a geçirmek için daha fazla seçeneği geliştirmeye ve desteklemeye devam edecek. Kod açık kaynak kodludur ve çekme istekleri ve sorunları yoluyla topluluk katkılarını memnuniyetle karşılıyoruz.
Check out GitHub deposu SageMaker Migration Toolkit'in kullanımı hakkında daha fazlasını keşfetmek ve projeye eklemek için örnekler veya özellik istekleri eklemekten çekinmeyin!
yazarlar hakkında
Kirit Thadaka Amazon SageMaker Service SA ekibinde çalışan bir ML Çözümleri Mimarıdır. Kirit, AWS'ye katılmadan önce, erken aşamadaki yapay zeka girişimlerinde çalışarak ve ardından bir süre yapay zeka araştırması, MLOps ve teknik liderlikte çeşitli rollerde danışmanlık yaparak geçirdi.
Ram Vegiraju SageMaker Servis ekibine sahip bir ML Mimarıdır. Müşterilerin AI/ML çözümlerini Amazon SageMaker'da oluşturmasına ve optimize etmesine yardımcı olmaya odaklanıyor. Boş zamanlarında seyahat etmeyi ve yazmayı sever.
- 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
- Orta (200)
- makine öğrenme
- Platon
- plato yapay zekası
- Plato Veri Zekası
- Plato Oyunu
- PlatoVeri
- plato oyunu
- ölçek ai
- sözdizimi
- zefirnet