In Bölüm 1 Bu seride, yeni başlatılan ModelTrainer sınıfını tanıttık Amazon Adaçayı Yapıcı Python SDK ve avantajları ve size özel bir veri kümesinde bir Meta Llama 3.1 8B modelinin nasıl ince ayar yapılacağını gösterdik. Bu gönderide, Model Oluşturucu ModelTrainer'dan SageMaker uç noktasına sorunsuz bir şekilde bir model dağıtmanıza olanak tanıyan ve birden fazla dağıtım yapılandırması için tek bir arayüz sağlayan sınıf.
Kasım 2023'te ModelBuilder sınıfını başlattık (bkz. Amazon SageMaker'daki yeni araçlar ve rehberli iş akışlarıyla modelleri daha hızlı paketleyin ve dağıtın ve Amazon SageMaker ile klasik ML ve LLM'leri kolayca paketleyin ve dağıtın, 1. bölüm: PySDK İyileştirmeleri), bir uç nokta yapılandırması oluşturma, kapsayıcıyı seçme, serileştirme ve serileştirmeyi kaldırma gibi bir SageMaker uç noktası oluşturmanın ilk kurulumunun karmaşıklığını azaltan ve tek bir adımda dağıtılabilir bir model oluşturmanıza yardımcı olan. Son güncelleme, özellikle hızla gelişen üretken AI alanında, ModelBuilder sınıfının çok çeşitli kullanım durumları için kullanılabilirliğini artırıyor. Bu gönderide, ModelBuilder sınıfında yapılan geliştirmelere derinlemesine dalıyoruz ve ince ayarlı modeli sorunsuz bir şekilde nasıl dağıtacağınızı gösteriyoruz Bölüm 1 SageMaker uç noktasına.
ModelBuilder sınıfında iyileştirmeler
ModelBuilder sınıfında aşağıdaki kullanılabilirlik iyileştirmelerini yaptık:
- Eğitimden çıkarıma sorunsuz geçiş – ModelBuilder artık en son eğitilen model eserine giden doğru dosya yolunun otomatik olarak hesaplanmasını sağlamak için doğrudan SageMaker eğitim arayüzleriyle entegre oluyor ve bu sayede model eğitiminden dağıtıma kadar iş akışı basitleşiyor.
- Birleşik çıkarım arayüzü – Daha önce SageMaker SDK, gerçek zamanlı, toplu, sunucusuz ve eşzamansız çıkarım gibi farklı çıkarım türleri için ayrı arayüzler ve iş akışları sunuyordu. Model dağıtım sürecini basitleştirmek ve tutarlı bir deneyim sağlamak için ModelBuilder'ı, birden fazla çıkarım türünü destekleyen birleşik bir arayüz olarak hizmet verecek şekilde geliştirdik.
- Geliştirme, test etme ve üretime geçiş kolaylığı – Kullanıcıların daha hızlı yerel testlerle, bir konteyner eklemeden, işleme ve çıkarım betiklerini zahmetsizce hata ayıklayabilmeleri ve test edebilmeleri için ModelBuilder ile yerel mod testi desteği ekliyoruz. Ayrıca, belirli bir çerçeve için en son konteyner görüntüsünü çıkaran yeni bir işlev ekliyoruz; böylece her yeni LMI sürümü çıktığında kodu güncellemenize gerek kalmıyor.
- Özelleştirilebilir çıkarım ön işleme ve son işleme – ModelBuilder artık çıkarım için ön işleme ve son işleme adımlarını özelleştirmenize olanak tanır. Betiklerin içeriği filtrelemesini ve kişisel olarak tanımlanabilir bilgileri (PII) kaldırmasını sağlayarak, bu entegrasyon dağıtım sürecini kolaylaştırır, belirli çıkarım gereksinimleri olan modellerin daha iyi yönetimi ve dağıtımı için gerekli adımları model yapılandırması içinde kapsüller.
- Karşılaştırmalı değerlendirme desteği – ModelBuilder'daki yeni kıyaslama desteği, gecikme ve maliyet gibi temel performans ölçütlerine göre uç noktalar ve kapsayıcılar gibi dağıtım seçeneklerini değerlendirmenizi sağlar. Bir Kıyaslama API'sinin sunulmasıyla senaryoları test edebilir ve bilinçli kararlar alabilir, üretim öncesinde modellerinizi en yüksek performans için optimize edebilirsiniz. Bu, verimliliği artırır ve uygun maliyetli dağıtımlar sağlar.
Aşağıdaki bölümlerde bu geliştirmeleri daha ayrıntılı olarak ele alıyor ve modelinizi nasıl özelleştireceğinizi, test edeceğinizi ve dağıtacağınızı gösteriyoruz.
ModelTrainer sınıfından kusursuz dağıtım
ModelBuilder, sorunsuz bir şekilde entegre olur Model Eğitmeni sınıf; modeli eğitmek için kullanılan ModelTrainer nesnesini doğrudan Model parametresindeki ModelBuilder'a geçirebilirsiniz. ModelTrainer'a ek olarak, ModelBuilder ayrıca Estimator sınıfını ve SageMaker Core'un sonucunu da destekler TrainingJob.create()
işlevi ve otomatik olarak model yapıtlarını ayrıştırarak bir SageMaker Model nesnesi oluşturur. Kaynak zincirlemeyle, aşağıdaki örnekte gösterildiği gibi modeli oluşturabilir ve dağıtabilirsiniz. Eğer takip ettiyseniz Bölüm 1 Bu seride Meta Llama 3.1 8B modelini ince ayarlamak için, model_trainer
aşağıdaki gibi nesne:
InferenceSpec kullanarak modeli özelleştirin
The InferenceSpec
sınıf, modeli yüklemek ve çağırmak için özel mantık sağlayarak modeli özelleştirmenize ve gerektiğinde herhangi bir ön işleme mantığı veya son işleme mantığını belirtmenize olanak tanır. SageMaker uç noktaları için, ön işleme ve son işleme betikleri genellikle, özellikle karmaşık iş akışları veya standart dışı modeller durumunda, veriler tahminler için modele gönderilmeden önce ve sonra gereken görevleri işlemek için çıkarım kanalının bir parçası olarak kullanılır. Aşağıdaki örnek, özel mantığı kullanarak nasıl belirtebileceğinizi gösterir InferenceSpec
:
Yerel ve işlem modunda test edin
Eğitilmiş bir modeli bir SageMaker uç noktasına dağıtmak, bir SageMaker modeli oluşturmayı ve uç noktayı yapılandırmayı içerir. Bu, çıkarım betiğini, gereken herhangi bir serileştirme veya serileştirmeyi kaldırmayı, model yapıt konumunu içerir Amazon Basit Depolama Hizmeti (Amazon S3), kapsayıcı görüntü URI'si, doğru örnek türü ve sayısı ve daha fazlası. Makine öğrenimi (ML) uygulayıcılarının, çıkarım için uç noktayı SageMaker'a dağıtmadan önce bu ayarlar üzerinde yineleme yapması gerekir. ModelBuilder, hızlı prototipleme için iki mod sunar:
- İşlem modunda – Bu durumda, çıkarımlar doğrudan aynı çıkarım süreci içinde yapılır. Bu, sağlanan çıkarım mantığını hızlı bir şekilde test etmede oldukça faydalıdır.
InferenceSpec
ve deneyler sırasında anında geri bildirim sağlar. - Yerel mod – Model yerel bir kapsayıcı olarak dağıtılır ve çalıştırılır. Bu, modun şu şekilde ayarlanmasıyla elde edilir:
LOCAL_CONTAINER
modeli oluşturduğunuzda. Bu, SageMaker uç noktasıyla aynı ortamı taklit etmek için yararlıdır. Aşağıdakilere bakın defter Örneğin.
Aşağıdaki kod, özel bir işlem modunda çıkarım çalıştırmanın bir örneğidir InferenceSpec
:
Sonraki adımlarda, aşağıdaki kodda gösterildiği gibi yerel kapsayıcı modunda test edebilirsiniz; image_uri
. Şunları eklemeniz gerekecek: model_server
argümanı eklediğinizde image_uri
.
Modeli dağıtın
Test tamamlandığında, modu güncelleyerek modeli tahminler için gerçek zamanlı bir uç noktaya dağıtabilirsiniz. mode.SAGEMAKER_ENDPOINT
ve bir örnek türü ve boyutu sağlayarak:
Gerçek zamanlı çıkarıma ek olarak, SageMaker dağıtım için sunucusuz çıkarım, eşzamansız çıkarım ve toplu çıkarım modlarını destekler. Ayrıca şunları da kullanabilirsiniz: InferenceComponents
modellerinizi soyutlamak ve model başına CPU, GPU, hızlandırıcılar ve ölçekleme politikaları atamak için. Daha fazla bilgi edinmek için bkz. Amazon SageMaker'ın en yeni özelliklerini kullanarak model dağıtım maliyetlerini ortalama %50 azaltın.
Sahip olduktan sonra ModelBuilder
nesne, modeli dağıtırken karşılık gelen çıkarım yapılandırmalarını ekleyerek bu seçeneklerden herhangi birine dağıtabilirsiniz. Varsayılan olarak, mod sağlanmazsa, model bir gerçek zaman uç nokta. Diğer yapılandırmaların örnekleri aşağıdadır:
from sagemaker.serverless.serverless_inference_config import ServerlessInferenceConfig
predictor = model_builder.deploy(
endpoint_name="serverless-endpoint",
inference_config=ServerlessInferenceConfig(memory_size_in_mb=2048))
- Dağıtın çok modelli uç nokta kullanarak
InferenceComponent
:
Temizlemek
Bu gönderiyi takip ederken herhangi bir uç nokta oluşturduysanız, yayın devam ederken ücretlendirileceksiniz. En iyi uygulama olarak, artık gerekmeyen uç noktaları silin, ya da AWS Yönetim Konsoluveya aşağıdaki kodu kullanarak:
Sonuç
Bu iki bölümlük seride, SageMaker Python SDK'daki ModelTrainer ve ModelBuilder geliştirmelerini tanıttık. Her iki sınıf da veri bilimcileri için karmaşıklığı ve bilişsel yükü azaltmayı, hem SageMaker dizüstü bilgisayarlarınızda yerel olarak hem de uzak SageMaker uç noktalarında modelleri eğitmek ve dağıtmak için basit ve sezgisel bir arayüz sağlamayı hedefliyor.
SageMaker SDK geliştirmelerini (SageMaker Core, ModelTrainer ve ModelBuilder) aşağıdakilere başvurarak denemenizi öneririz: SDK belgeleri ve örnek not defterleri GitHub repove yorumlarda geri bildirimlerinizi bize bildirin!
Yazarlar Hakkında
Durga Suri Amazon SageMaker ekibinde Kıdemli Çözüm Mimarıdır. Son 5 yıldır, SageMaker üzerine kurulu güvenli, ölçeklenebilir bir AI/ML platformu kurmak için birden fazla kurumsal müşteriyle birlikte çalıştı.
Shweta Singh AWS'deki Amazon SageMaker Makine Öğrenmesi (ML) platform ekibinde Kıdemli Ürün Yöneticisidir ve SageMaker Python SDK'ya liderlik etmektedir. 5 yıldan uzun süredir Amazon'da çeşitli ürün rollerinde çalışmıştır. New York Üniversitesi'nden Bilgisayar Mühendisliği alanında Lisans ve Finans Mühendisliği alanında Yüksek Lisans derecesine sahiptir.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- PlatoData.Network Dikey Üretken Yapay Zeka. Kendine güç ver. Buradan Erişin.
- PlatoAiStream. Web3 Zekası. Bilgi Genişletildi. Buradan Erişin.
- PlatoESG. karbon, temiz teknoloji, Enerji, Çevre, Güneş, Atık Yönetimi. Buradan Erişin.
- PlatoSağlık. Biyoteknoloji ve Klinik Araştırmalar Zekası. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/machine-learning/accelerate-your-ml-lifecycle-using-the-new-and-improved-amazon-sagemaker-python-sdk-part-2-modelbuilder/