İki yeni yeteneği duyurmaktan heyecan duyuyoruz Amazon SageMaker Stüdyosu makine öğrenimi (ML) uygulayıcıları için yinelemeli geliştirmeyi hızlandıracak: Yerel Mod ve Docker desteği. ML modeli geliştirme, geliştiricilerin kodlama, eğitim ve dağıtım arasında geçiş yapması nedeniyle genellikle yavaş yineleme döngüleri içerir. Her adım, uzak bilgi işlem kaynaklarının başlatılmasını beklemeyi gerektirir; bu da uygulamaların doğrulanmasını ve değişikliklerle ilgili geri bildirim alınmasını geciktirir.
Yerel Mod ile geliştiriciler artık uzaktan bilgi işlem kaynaklarını çalıştırmaya gerek kalmadan doğrudan SageMaker Studio dizüstü bilgisayar örneklerinde modelleri eğitebilir ve test edebilir, kodlarda hata ayıklayabilir ve uçtan uca işlem hatlarını doğrulayabilir. Bu, yineleme döngüsünü dakikalardan saniyelere indirerek geliştirici üretkenliğini artırır. SageMaker Studio dizüstü bilgisayarlarındaki Docker desteği, geliştiricilerin zahmetsizce Docker konteynerleri oluşturmasına ve önceden oluşturulmuş konteynerlere erişmesine olanak tanıyarak ekip genelinde tutarlı bir geliştirme ortamı sağlar ve zaman alıcı kurulum ve bağımlılık yönetiminden kaçınır.
Yerel Mod ve Docker desteği, SageMaker Studio dizüstü bilgisayarda çalışan yerel kapsayıcıları kullanarak kod değişikliklerini doğrulamak ve modellerin prototipini oluşturmak için kolaylaştırılmış bir iş akışı sunar
misal. Bu yazıda, SageMaker Studio'da Yerel Modu kurma, örnek bir eğitim işi çalıştırma ve modeli bir platformda dağıtma konusunda size rehberlik edeceğiz. Amazon Adaçayı Yapıcı SageMaker Studio not defterinden uç nokta.
SageMaker Studio Yerel Modu
SageMaker Studio, SageMaker eğitimini, çıkarımını, toplu dönüşümü ve işleme işlerini doğrudan JupyterLab, Code Editor veya SageMaker Studio Classic dizüstü bilgisayar örneklerinizde, uzaktan bilgi işlem kaynakları gerektirmeden çalıştırmanıza olanak tanıyan Yerel Modu sunar. Yerel Modu kullanmanın faydaları şunlardır:
- İş akışlarının doğrudan entegre geliştirme ortamlarında (IDE'ler) anında doğrulanması ve test edilmesi
- Çıktıları incelemek ve sorunları erken tespit etmek amacıyla daha küçük ölçekli işlerde yerel çalıştırmalar aracılığıyla daha hızlı yineleme
- Uzaktan eğitim işleri için beklemeyi ortadan kaldırarak geliştirilmiş geliştirme ve hata ayıklama verimliliği
- Bulutta tüm işleri çalıştırmadan önce kod değişiklikleriyle ilgili anında geri bildirim
Aşağıdaki şekil SageMaker'da Yerel Modu kullanan iş akışını göstermektedir.
Yerel Modu kullanmak için instance_type='local'
eğitim ve çıkarım gibi SageMaker Python SDK işlerini çalıştırırken. Bu, onları bulut kaynaklarını sağlamak yerine SageMaker Studio IDE'leriniz tarafından kullanılan örneklerde çalıştıracaktır.
Dağıtılmış eğitim gibi belirli özellikler yalnızca bulutta mevcut olsa da Yerel Mod, hızlı yinelemeler için bağlamları değiştirme ihtiyacını ortadan kaldırır. SageMaker'ın tüm gücünden ve ölçeğinden yararlanmaya hazır olduğunuzda iş akışınızı bulutta sorunsuz bir şekilde çalıştırabilirsiniz.
SageMaker Studio'da Docker desteği
SageMaker Studio artık SageMaker Studio dizüstü örneğinizde Docker konteynerlerinin yerel olarak oluşturulmasına ve çalıştırılmasına da olanak sağlıyor. Bu yeni özellik, Docker görüntülerini SageMaker eğitimi ve çıkarımı için kullanmadan önce SageMaker Studio'da oluşturmanıza ve doğrulamanıza olanak tanır.
Aşağıdaki şemada SageMaker Studio içindeki üst düzey Docker orkestrasyon mimarisi gösterilmektedir.
SageMaker Studio'daki Docker desteğiyle şunları yapabilirsiniz:
- Doğrudan SageMaker Studio'da entegre modeller ve bağımlılıklar içeren Docker konteynerleri oluşturun
- Görüntü oluşturmayı basitleştirmek için harici Docker derleme süreçlerine olan ihtiyacı ortadan kaldırın
- Modelleri üretime dağıtmadan önce işlevselliği doğrulamak için kapsayıcıları yerel olarak çalıştırın
- Eğitim ve barındırma için SageMaker'a dağıtım yaparken yerel konteynerleri yeniden kullanın
Her ne kadar çoklu kapsayıcı ve özel ağlar gibi bazı gelişmiş Docker yetenekleri bu yazının yazıldığı an itibariyle desteklenmiyor olsa da, kendi kapsayıcınızı (BYOC) iş akışlarınıza getirmek için kapsayıcılar geliştirmeyi hızlandırmak amacıyla temel oluşturma ve çalıştırma işlevi mevcuttur.
Önkoşullar
SageMaker Studio uygulamalarında Yerel Modu kullanmak için aşağıdaki ön koşulları tamamlamanız gerekir:
- Görüntüleri çekmek için Amazon Elastik Konteyner Kayıt Defteri (Amazon ECR), ECR görüntüsünü barındıran hesap, kullanıcının Kimlik ve Erişim Yönetimi (IAM) rolü. Etki alanının rolü aynı zamanda Amazon ECR erişimine de izin vermelidir.
- Yerel Mod ve Docker yeteneklerini etkinleştirmek için
EnableDockerAccess
etki alanı için parametreyi true olarak ayarlayınDockerSettings
ile AWS Komut Satırı Arayüzü (AWS CLI). Bu, etki alanındaki kullanıcıların Yerel Modu ve Docker özelliklerini kullanmasına olanak tanır. Varsayılan olarak, SageMaker Studio'da Yerel Mod ve Docker devre dışıdır. Docker hizmeti güncellemesinin etkili olması için mevcut SageMaker Studio uygulamalarının yeniden başlatılması gerekecektir. Aşağıda SageMaker Studio etki alanını güncellemeye yönelik örnek bir AWS CLI komutu verilmiştir:
- Bunu yapabilmek için SageMaker IAM rolünü güncellemeniz gerekir. Docker görsellerini itin Amazon ECR'ye:
Yerel Modu kullanarak Python dosyalarını SageMaker Studio alanlarında çalıştırın
SageMaker Studio JupyterLab ve Kod Düzenleyici (tabanlı) Code-OSS, Visual Studio Code – Açık Kaynak), popüler hafif IDE'yi kullanarak analizlerinizi ve makine öğrenimi kodunuzu yazabilmeniz, test edebilmeniz, hata ayıklayabilmeniz ve çalıştırabilmeniz için SageMaker Studio'yu genişletir. SageMaker Studio IDE'lerini kullanmaya nasıl başlayacağınıza ilişkin daha fazla ayrıntı için bkz. Amazon SageMaker Studio'da verimliliği artırın: JupyterLab Spaces ve üretken yapay zeka araçlarıyla tanışın ve Yeni – Code-OSS VS Code Açık Kaynak tabanlı Kod Düzenleyici artık Amazon SageMaker Studio'da mevcut. Aşağıdaki adımları tamamlayın:
- Yeni bir terminal oluşturun.
- Aşağıdaki talimatları izleyerek Docker CLI ve Docker Compose eklentisini yükleyin. GitHub repo. Zincirleme komutlar başarısız olursa komutları birer birer çalıştırın.
SageMaker SDK'yı en son sürüme güncellemelisiniz.
- koşmak
pip install sagemaker -Uq
terminalde.
Yalnızca Code Editor için Python ortamını geçerli terminalde çalışacak şekilde ayarlamanız gerekir.
- Kod Düzenleyicide, Dosya menüsüSeç Tercihler ve Ayarlar.
- Ara ve seç Terminal: Dosya Dizininde Yürüt.
- Code Editor veya JupyterLab'da şunu açın:
scikit_learn_script_mode_local_training_and_serving
klasörünü çalıştırın vescikit_learn_script_mode_local_training_and_serving.py
dosyası.
Komut dosyasını seçerek çalıştırabilirsiniz. koşmak Kod Düzenleyicide veya bir JupyterLab terminalinde CLI'yi kullanarak. Modelin yerel olarak nasıl eğitildiğini görebileceksiniz. Daha sonra modeli yerel olarak bir SageMaker uç noktasına dağıtırsınız ve ortalama karekök hatasını (RMSE
).
Yerel Modu kullanarak SageMaker Studio Classic'te eğitim ve çıkarımı simüle edin
Küçük ölçekli bir eğitim işini yürütmek için SageMaker Studio Classic'teki bir not defterini de kullanabilirsiniz. CIFAR10
Yerel Modu kullanarak modeli yerel olarak dağıtın ve çıkarımı gerçekleştirin.
not defterinizi kurun
Dizüstü bilgisayarı kurmak için aşağıdaki adımları tamamlayın:
- SageMaker Studio Classic'i açın ve aşağıdakileri kopyalayın GitHub repo.
- Açın
pytorch_local_mode_cifar10.ipynb notebook in blog/pytorch_cnn_cifar10
.
- İçin Resim, seçmek
PyTorch 2.1.0 Python 3.10 CPU Optimized
.
Dizüstü bilgisayarınızın doğru örneği ve çekirdek seçimini gösterdiğini doğrulayın.
- Seçerek bir terminal açın Terminali Başlat geçerli SageMaker görüntüsünde.
- Aşağıdaki talimatları izleyerek Docker CLI ve Docker Compose eklentisini yükleyin. GitHub repo.
SageMaker Studio Classic'ten Docker kullandığınız için, terminal zaten süper kullanıcı altında çalıştığından komutları çalıştırırken sudo'yu kaldırın. SageMaker Studio Classic için kurulum komutları, SageMaker Studio uygulama görüntüsü işletim sistemine bağlıdır. Örneğin, DLC tabanlı çerçeve görüntüleri Ubuntu tabanlıdır ve aşağıdaki talimatlar burada işe yarayacaktır. Ancak DataScience Images gibi Debian tabanlı bir imaj için aşağıdaki talimatları izlemelisiniz. GitHub repo. Zincirleme komutlar başarısız olursa komutları birer birer çalıştırın. Görüntülenen Docker sürümünü görmelisiniz.
- Terminal penceresini açık bırakın, dizüstü bilgisayara geri dönün ve onu hücre hücre çalıştırmaya başlayın.
Hücreyi çalıştırdığınızdan emin olun. pip install -U sagemaker
yani SageMaker Python SDK'nın en son sürümünü kullanıyorsunuz.
Yerel eğitim
Yerel SageMaker eğitim işini çalıştırmaya başladığınızda aşağıdaki günlük satırlarını göreceksiniz:
Bu, eğitimin Docker kullanılarak yerel olarak çalıştırıldığını gösterir.
Bu sırada sabırlı olun pytorch-training:2.1-cpu-py310
Docker görüntüsü çekilir. Büyük boyutundan (5.2 GB) dolayı birkaç dakika sürebilir.
Docker görüntüleri, son kullanıcıların erişemeyeceği SageMaker Studio uygulaması örneğinin kök biriminde depolanacaktır. Docker görüntülerine erişmenin ve bunlarla etkileşim kurmanın tek yolu, açıkta kalan Docker API işlemleridir.
Kullanıcı gizliliği açısından SageMaker Studio platformu, kullanıcıya özel görüntülere asla erişmez veya bunları saklamaz.
Eğitim tamamlandığında aşağıdaki başarı günlüğü satırlarını görebileceksiniz:
Yerel çıkarım
Aşağıdaki adımları tamamlayın:
- SageMaker Yerel Modunu kullanarak SageMaker uç noktasını dağıtın.
Bu sırada sabırlı olun pytorch-inference:2.1-cpu-py310
Docker görüntüsü çekilir. Büyük boyutundan (4.32 GB) dolayı birkaç dakika sürebilir.
- Test görüntülerini kullanarak yerel olarak dağıtılan SageMaker uç noktasını çağırın.
Tahmin edilen sınıfları görebileceksiniz: kurbağa, gemi, araba ve uçak:
- SageMaker Local uç noktası hala çalışır durumda olduğundan, açık terminal penceresine geri dönün ve çalışan kapsayıcıları listeleyin:
docker ps
Koşuyu görebileceksiniz pytorch-inference:2.1-cpu-py310
SageMaker uç noktasını destekleyen konteyner.
- Aynı anda yalnızca bir yerel uç noktayı çalıştırabileceğiniz için SageMaker yerel uç noktasını kapatmak ve çalışan kapsayıcıyı durdurmak için temizleme kodunu çalıştırın.
- Docker konteynerinin kapalı olduğundan emin olmak için açılan terminal penceresine gidebilir, docker ps'yi çalıştırabilir ve çalışan konteyner olmadığından emin olabilirsiniz.
- Çalışan bir konteyner görürseniz çalıştırın
docker stop <CONTAINER_ID>
onu durdurmak için.
SageMaker Yerel Modunu kullanma ipuçları
SageMaker'ı ilk kez kullanıyorsanız, bkz. Makine öğrenimi modellerini eğitme. SageMaker ile çıkarım için modellerin dağıtımı hakkında daha fazla bilgi edinmek için bkz. Çıkarım için modelleri dağıtma.
Aşağıdaki önerileri aklınızda bulundurun:
- Veri kümesi ve model yüklemeyi anlamak için giriş ve çıkış dosyalarını ve klasörlerini yazdırın
- Hızlı test için 1-2 dönem ve küçük veri kümeleri kullanın
- Ortam kurulumunu optimize etmek için bağımlılıkları Dockerfile'a önceden yükleyin
- Hata ayıklama için uç noktalardaki serileştirme kodunu yalıtın
Docker kurulumunu Yaşam Döngüsü Yapılandırması olarak yapılandırma
Yeni bir SageMaker Studio alanı her başlatıldığında kurulumu basitleştirmek için Docker kurulum sürecini bir Yaşam Döngüsü Yapılandırması (LCC) betiği olarak tanımlayabilirsiniz. LCC'ler, SageMaker'ın alan oluşturma gibi etkinlikler sırasında çalıştırdığı komut dosyalarıdır. Bakın JüpyterLab, Kod Düzenleyiciya da SageMaker Stüdyo Klasik LCC kurulumu (kullanarak liman işçisi yükleme klibi Daha fazla bilgi edinmek için referans olarak).
SageMaker Studio alanlarında özel Docker görüntüleri oluşturun ve test edin
Bu adımda Docker'ı JupyterLab (veya Code Editor) uygulama alanına yüklersiniz ve SageMaker Studio alanlarıyla özel Docker görüntüleri oluşturmak, test etmek ve yayınlamak için Docker'ı kullanırsınız. Alanlar, bazı SageMaker Studio uygulamalarının depolama ve kaynak ihtiyaçlarını yönetmek için kullanılır. Her alanın bir uygulamanın örneğiyle 1:1 ilişkisi vardır. Oluşturulan her desteklenen uygulamanın kendi alanı vardır. SageMaker alanları hakkında daha fazla bilgi edinmek için bkz. Amazon SageMaker Studio'da verimliliği artırın: JupyterLab Spaces ve üretken yapay zeka araçlarıyla tanışın. Docker görüntüleri ve yapıları için yeterli depolamaya izin vermek amacıyla en az 30 GB depolama alanına sahip yeni bir alan sağladığınızdan emin olun.
Docker'ı bir alanın içine yükleyin
Docker CLI ve Docker Compose eklentisini bir JupyterLab alanına kurmak için aşağıdaki komutları çalıştırın. GitHub repo. SageMaker Stüdyosu yalnızca Docker 20.10.X sürümünü destekler.
Docker görüntüleri oluşturma
Docker'ın JupyterLab alanınızda kurulu olduğunu ve çalıştığını doğrulamak için aşağıdaki kodu çalıştırın:
JupyterLab (veya Kod Düzenleyici) alanı içinde özel bir Docker görüntüsü oluşturmak için aşağıdaki adımları tamamlayın:
- Boş bir Docker dosyası oluşturun:
touch Dockerfile
- Docker dosyasını, temel python'dan basit bir flask web sunucusu görüntüsü oluşturan aşağıdaki komutlarla düzenleyin: 3.10.13-bullseye görüntüsü üzerinde barındırılıyor Docker Hub'ı:
Aşağıdaki kod örnek bir şişe uygulama dosyasının içeriğini gösterir app.py
:
Ek olarak, referans Dockerfile komutlarını seçtiğiniz paketleri ve yapıtları içerecek şekilde güncelleyebilirsiniz.
- Referans Dockerfile'ı kullanarak bir Docker görüntüsü oluşturun:
docker build --network sagemaker --tag myflaskapp:v1 --file ./Dockerfile .
Dahil --network
sagemaker'ı docker build komutunuza ekleyin, aksi halde derleme başarısız olur. Konteynerler Docker'ın varsayılan köprüsünde veya özel Docker ağlarında çalıştırılamaz. Konteynerler, SageMaker Studio uygulama konteyneriyle aynı ağda çalıştırılır. Kullanıcılar sagemaker'ı yalnızca ağ adı için kullanabilirler.
- Derlemeniz tamamlandığında görüntünün mevcut olup olmadığını doğrulayın. Yapıyı bir ECR görüntüsü olarak yeniden etiketleyin ve iletin. İzin sorunlarıyla karşılaşırsanız aws ecr get-login-password… komutunu çalıştırın ve Docker push/pull işlemini yeniden çalıştırmayı deneyin:
Docker görüntülerini test edin
Docker'ın bir JupyterLab (veya Kod Düzenleyici) SageMaker Studio alanına kurulu olması, önceden oluşturulmuş veya özel Docker görüntülerini kapsayıcılar (veya kapsayıcıya alınmış uygulamalar) olarak test etmenize olanak tanır. Bu bölümde, REST web hizmetleri ve Python komut dosyaları gibi kapsayıcıya alınmış iş yüklerini test etmek amacıyla bir SageMaker Studio alanı içindeki Docker kapsayıcılarını sağlamak için docker run komutunu kullanıyoruz. Aşağıdaki adımları tamamlayın:
- Test görüntüsü mevcut değilse, görüntüyü yerel makinenize çekmek için docker pull komutunu çalıştırın:
sagemaker-user@default:~$ docker pull 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1
- Kimlik doğrulama sorunlarıyla karşılaşırsanız aşağıdaki komutları çalıştırın:
aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
- İş yükünüzü test etmek için bir kapsayıcı oluşturun:
docker run --network sagemaker 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1
Bu, yeni bir konteyner örneğini başlatır ve Docker'ın ENTRYPOINT'i kullanılarak tanımlanan uygulamayı çalıştırır:
- Web uç noktanızın etkin olup olmadığını test etmek için URL'ye gidin
https://<sagemaker-space-id>.studio.us-east-2.sagemaker.aws/jupyterlab/default/proxy/6006/
.
Aşağıdaki ekran görüntüsüne benzer bir JSON yanıtı görmelisiniz.
Temizlemek
Gereksiz ücretlendirmelerden kaçınmak için bu yayındaki örnekleri çalıştırırken oluşturduğunuz kaynakları silin:
- SageMaker Studio alan adınızda şunu seçin: Stüdyo Klasik gezinme bölmesinde, ardından dur.
- SageMaker Studio alan adınızda şunu seçin: JüpyterLab or Kod Düzenleyici Gezinti bölmesinde uygulamanızı seçin ve ardından dur.
Sonuç
SageMaker Studio Yerel Modu ve Docker desteği, geliştiricilerin çalışma alanlarından ayrılmadan makine öğrenimi uygulamalarını daha hızlı oluşturmasına, test etmesine ve yinelemesine olanak sağlar. Test ortamlarına ve çıktılara anında erişim sağlayan bu yetenekler, iş akışlarını optimize eder ve üretkenliği artırır. SageMaker Studio Yerel Model ve Docker desteğimizi kullanarak deneyin. hızlı yerleşik özellik, dakikalar içinde tek kullanıcılar için yeni bir alan adı oluşturmanıza olanak tanır. Düşüncelerinizi yorumlar bölümünde paylaşınız!
Yazarlar Hakkında
Shweta Singh AWS'de Amazon SageMaker Machine Learning (ML) platform ekibinde Kıdemli Ürün Yöneticisidir ve SageMaker Python SDK'sına liderlik etmektedir. 5 yıldan fazla bir süredir Amazon'da çeşitli ürün rollerinde çalıştı. New York Üniversitesi'nden Bilgisayar Mühendisliği alanında Lisans derecesine ve Finans Mühendisliği alanında Yüksek Lisans derecesine sahiptir.
Eitan Sela AWS'de Üretken Yapay Zeka ve Makine Öğrenimi Uzmanı Çözüm Mimarıdır. Rehberlik ve teknik destek sağlamak için AWS müşterileriyle birlikte çalışarak onların AWS'de Üretken Yapay Zeka ve Makine Öğrenimi çözümleri oluşturmalarına ve çalıştırmalarına yardımcı oluyor. Eitan boş zamanlarında koşmaktan ve makine öğrenimi ile ilgili en son makaleleri okumaktan hoşlanıyor.
Pranav Murthy AWS'de AI/ML Uzman Çözüm Mimarıdır. Müşterilerin makine öğrenimi (ML) iş yüklerini oluşturmasına, eğitmesine, dağıtmasına ve SageMaker'a taşımasına yardımcı olmaya odaklanıyor. Daha önce yarı iletken endüstrisinde, en gelişmiş makine öğrenimi tekniklerini kullanarak yarı iletken süreçlerini iyileştirmek için büyük bilgisayarlı görüntü (CV) ve doğal dil işleme (NLP) modelleri geliştirerek çalıştı. Boş zamanlarında satranç oynamaktan ve seyahat etmekten hoşlanıyor. Pranav'ı şurada bulabilirsiniz: LinkedIn.
Mufaddal Rohawala AWS'de Yazılım Mühendisidir. Amazon SageMaker için SageMaker Python SDK kitaplığı üzerinde çalışıyor. Boş zamanlarında seyahat etmekten, açık hava aktivitelerinden hoşlanır ve futbol hayranıdır.
- 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-ml-workflows-with-amazon-sagemaker-studio-local-mode-and-docker-support/