Makine öğrenimi (ML) iş yüklerini kapsayıcılarla çalıştırmak yaygın bir uygulama haline geliyor. Kapsayıcılar yalnızca eğitim kodunuzu değil, donanım kitaplıkları ve sürücülere kadar tüm bağımlılığı da tamamen kapsayabilir. Elde ettiğiniz şey tutarlı ve taşınabilir bir makine öğrenimi geliştirme ortamıdır. Kapsayıcılar sayesinde küme üzerinde ölçeklendirme çok daha kolay hale gelir.
2022'nin sonlarında AWS, şu özelliklerin genel kullanılabilirliğini duyurdu: Amazon EC2 Trn1 bulut sunucuları tarafından desteklenmektedir AWS Eğitimi Yüksek performanslı derin öğrenme eğitimi için özel olarak tasarlanmış hızlandırıcılar. Trn1 bulut sunucuları, diğer benzer bulut sunucularına göre eğitim maliyetlerinde %50'ye varan oranda tasarruf sağlar Amazon Elastik Bilgi İşlem Bulutu (Amazon EC2) örnekleri. Ayrıca AWS Nöron SDK'sı Bu hızlandırmayı geliştirmek için piyasaya sürüldü ve geliştiricilere, yüksek performanslı ve uygun maliyetli model eğitimleri elde etmek için derleme, çalışma zamanı ve profil gibi bu teknolojiyle etkileşimde bulunabilecekleri araçlar sağladı.
Amazon Elastik Konteyner Hizmeti (Amazon ECS), konteynerli uygulamaların dağıtımını, yönetimini ve ölçeklendirilmesini kolaylaştıran, tam olarak yönetilen bir konteyner düzenleme hizmetidir. Uygulamanızı ve gerekli kaynakları tanımlamanız yeterli; Amazon ECS, uygulamanızın ihtiyaç duyduğu diğer destekleyici AWS hizmetlerine otomatik entegrasyonlarla esnek bilgi işlem seçenekleri genelinde uygulamanızı başlatır, izler ve ölçeklendirir.
Bu gönderide, makine öğrenimi iş yükünüzü dağıtmak, yönetmek ve ölçeklendirmek için makine öğrenimi eğitim işlerinizi Amazon ECS kullanarak bir konteynerde nasıl çalıştıracağınızı gösteriyoruz.
Çözüme genel bakış
Aşağıdaki üst düzey adımlarda size yol gösteriyoruz:
- Trn1 bulut sunucularından oluşan bir ECS kümesini şu şekilde sağlayın: AWS CloudFormation.
- Neuron SDK ile özel bir kapsayıcı görüntüsü oluşturun ve bunu Amazon Elastik Konteyner Kayıt Defteri (Amazon ECR'si).
- Amazon ECS tarafından yürütülecek bir makine öğrenimi eğitim işini tanımlamak için bir görev tanımı oluşturun.
- ML görevini Amazon ECS'de çalıştırın.
Önkoşullar
Bunu takip etmek için, Amazon EC2 ve Amazon ECS gibi temel AWS hizmetlerine aşinalık ima edilmektedir.
Trn1 bulut sunucularından oluşan bir ECS kümesi sağlayın
Başlamak için sağlanan uygulamayı başlatın CloudFormation şablonuVPC, ECS kümesi ve EC2 Trainium bulut sunucusu gibi gerekli kaynakları sağlayacak.
Derin öğrenme iş yüklerini çalıştırmak için Neuron SDK'yı kullanıyoruz AWS Çıkarımları ve Trainium tabanlı örnekler. Yeni modeller oluşturmak, bunları optimize etmek ve ardından üretime dağıtmak için uçtan uca makine öğrenimi geliştirme yaşam döngünüzde sizi destekler. Modelinizi Trainium ile eğitmek için, ECS görevlerinin donanımla ilişkili NeuronDevice'i eşlemek üzere çalışacağı EC2 bulut sunucularına ve komutlara erişmek için Amazon ECR'ye aktarılacak Docker görüntüsüne Neuron SDK'yı yüklemeniz gerekir. Modelinizi eğitmek için.
Amazon Linux 2 veya Ubuntu 20'nin standart sürümleri, AWS Neuron sürücüleri yüklü olarak gelmez. Bu nedenle iki farklı seçeneğimiz var.
İlk seçenek, Neuron SDK'nın zaten yüklü olduğu bir Derin Öğrenme Amazon Makine Görüntüsü (DLAMI) kullanmaktır. Bir örneği şu adreste mevcuttur: GitHub repo. Aşağıdakilere göre bir DLAMI seçebilirsiniz: işletim sistemi. Ardından AMI Kimliğini almak için aşağıdaki komutu çalıştırın:
Çıktı aşağıdaki gibi olacaktır:
ami-06c40dd4f80434809
Bu AMI Kimliği zamanla değişebilir; bu nedenle doğru AMI Kimliğini almak için komutu kullandığınızdan emin olun.
Artık CloudFormation betiğinde bu AMI ID'yi değiştirebilir ve kullanıma hazır Neuron SDK'yı kullanabilirsiniz. Bunu yapmak için arayın EcsAmiId
in Parameters
:
İkinci seçenek, alanı dolduran bir örnek oluşturmaktır. userdata
Yığın oluşturma sırasında alan. Bunu kurmanıza gerek yok çünkü CloudFormation bunu ayarlayacaktır. Daha fazla bilgi için bkz. Nöron Kurulum Kılavuzu.
Bu yazı için, özel bir görsel kullanmanız gerekebileceği ihtimaline karşı 2. seçeneği kullanıyoruz. Aşağıdaki adımları tamamlayın:
- Sağlanan CloudFormation şablonunu başlatın.
- İçin AnahtarAdı, istediğiniz anahtar çiftinin adını girin; parametreler önceden yüklenecektir. Bu yazı için şunu kullanıyoruz:
trainium-key
. - Yığınınız için bir ad girin.
- Eğer koşuyorsan
us-east-1
Bölge için değerleri saklayabilirsiniz ALB Adı ve AZID'ler varsayılan olarak.
Bölgedeki hangi Erişilebilirlik Alanının Trn1'in kullanılabilir olduğunu kontrol etmek için aşağıdaki komutu çalıştırın:
- Klinik Sonraki ve yığın oluşturmayı tamamlayın.
Yığın tamamlandığında bir sonraki adıma geçebilirsiniz.
Neuron SDK ile bir ECR görüntüsü hazırlayın ve gönderin
Amazon ECR, yüksek performanslı barındırma sunan, tam olarak yönetilen bir konteyner kayıt defteridir; böylece uygulama görüntülerini ve yapıtlarını istediğiniz yere güvenilir bir şekilde dağıtabilirsiniz. Trn1 bulut sunucularında çalışan ECS işlerine sahip bir modeli eğitmek için gereken komut dosyalarımızı ve Neuron paketlerimizi içeren özel bir Docker görüntüsünü depolamak için Amazon ECR'yi kullanıyoruz. kullanarak bir ECR deposu oluşturabilirsiniz. AWS Komut Satırı Arayüzü (AWS CLI) veya AWS Yönetim Konsolu. Bu yazı için konsolu kullanıyoruz. Aşağıdaki adımları tamamlayın:
- Amazon ECR konsolunda yeni bir depo oluşturun.
- İçin Görünürlük ayarları¸ seç Özel.
- İçin depo adı, isim girin.
- Klinik Depo oluştur.
Artık bir veri havuzunuz olduğuna göre, yerel olarak (dizüstü bilgisayarınızda) veya bir dosyada oluşturulabilecek bir görüntü oluşturup aktaralım. AWS Bulut9 çevre. Çok katmanlı bir algılayıcı (MLP) modelini eğitiyoruz. Orijinal kod için bkz. Çok Katmanlı Perceptron Eğitim Eğitimi.
Zaten Neuron ile uyumludur, dolayısıyla herhangi bir kodu değiştirmenize gerek yoktur.
- 5. Oluşturmak Dockerfile Neuron SDK'yı ve eğitim komut dosyalarını yükleme komutlarına sahip olan:
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- PlatoAiStream. Web3 Veri Zekası. Bilgi Genişletildi. Buradan Erişin.
- Adryenn Ashley ile Geleceği Basmak. Buradan Erişin.
- PREIPO® ile PRE-IPO Şirketlerinde Hisse Al ve Sat. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/machine-learning/scale-your-machine-learning-workloads-on-amazon-ecs-powered-by-aws-trainium-instances/