Zephyrnet Logosu

Cisco, hibrit bir makine öğrenimi iş akışı oluşturmak için Amazon SageMaker ve Kubeflow'u kullanıyor

Tarih:

Bu, Teknik Ürün Müdürü Elvira Dzhuraeva, Seçkin Mühendis Debo Dutta ve Baş Mühendis Amit Saha dahil olmak üzere Cisco'nun AI/ML en iyi uygulamaları ekibinin üyelerinden gelen bir konuk gönderisidir.

Cisco, iş birimlerinin çoğunda makine öğrenimi (ML) ve yapay zeka (AI) uygulayan büyük bir kurumsal şirkettir. CTO'nun ofisindeki Cisco AI ekibi, AI ve ML kullanan iş birimleri genelinde şirketin açık kaynak (OSS) AI/ML en iyi uygulamalarından sorumludur ve aynı zamanda KubeFlow açık kaynak projesi ve MLPerf/MLCommons. Tüzüğümüz, hem Cisco iş birimlerinin hem de müşterilerimizin kullanabileceği ML'de eserler ve en iyi uygulamaları oluşturmaktır ve bu çözümleri referans mimariler olarak paylaşıyoruz.

Yerelleştirilmiş veri gereksinimleri gibi iş gereksinimleri nedeniyle Cisco, hibrit bir bulut ortamı işletmektedir. Model eğitimi kendi Cisco UCS donanımımızda yapılır, ancak ekiplerimizin çoğu ölçeklenebilirlik, coğrafi yedeklilik ve esneklikten yararlanmak için çıkarım için buluttan yararlanır. Bununla birlikte, hibrit entegrasyon, tutarlı AI/ML iş akışları oluşturmak ve desteklemek için genellikle derin uzmanlık ve bilgi gerektirdiğinden, bu tür uygulamalar müşteriler için zorlayıcı olabilir.

Bunu ele almak için, kullanarak bir ML ardışık düzeni oluşturduk. Cisco Kubeflow başlangıç ​​paketi kullanan bir hibrit bulut uygulaması için Amazon Adaçayı Yapıcı buluttaki modelleri sunmak için. Bu referans mimarisini sağlayarak, müşterilerin karşılaşabilecekleri sınırlamaları karşılamak için karmaşık altyapılarında sorunsuz ve tutarlı ML iş yükleri oluşturmalarına yardımcı olmayı amaçlıyoruz.

Kubeflow, Kubernetes'te makine öğrenimi düzenlemesi için popüler bir açık kaynaklı kitaplıktır. Hibrit bir bulut ortamında çalışıyorsanız şirket içinde ML modelleri geliştirmek, oluşturmak, eğitmek ve dağıtmak için Cisco Kubeflow başlangıç ​​paketini yükleyebilirsiniz. Başlangıç ​​paketi, Kubeflow'un en son sürümünü ve uygulama örnekleri paketini içerir.

Amazon SageMaker, verileri hazırlamanıza, verileri işlemenize, modelleri eğitmenize, model deneylerini izlemenize, modelleri barındırmanıza ve uç noktaları izlemenize yardımcı olan yönetilen bir ML hizmetidir. İle birlikte Kubeflow Boru Hatları için SageMaker Bileşenleri, hibrit ML projemiz için yaptığımız Kubeflow Pipelines'dan işleri düzenleyebilirsiniz. Bu yaklaşım, şirket içi Kubeflow kümemizden eğitim ve çıkarım için Amazon SageMaker tarafından yönetilen hizmetleri sorunsuz bir şekilde kullanmamıza olanak tanır. Amazon SageMaker'ı kullanmak, barındırılan modellerimize otomatik ölçeklendirme, çok modelli uç noktalar, model izleme, yüksek kullanılabilirlik ve güvenlik uyumluluğu gibi kurumsal özellikler sağlar.

Kullanım senaryomuzun nasıl çalıştığını göstermek için, genel kullanıma açık olanları kullanarak senaryoyu yeniden oluşturuyoruz. İç Mekan Yerelleştirme ve Navigasyon için BLE RSSI Veri Kümesi Bluetooth Düşük Enerji (BLE) Alınan Sinyal Gücü Göstergesi (RSSI) ölçümlerini içeren veri seti. Boru hattı, Bluetooth cihazlarının konumunu tahmin etmek için bir modeli eğitir ve dağıtır. Aşağıdaki adımlar, bir Kubernetes kümesinin hibrit bir çözüm için Amazon SageMaker ile nasıl etkileşime girebileceğini özetlemektedir. ML modeli, yazılı Apache MX Ağı, üzerinde çalışan Kubeflow kullanılarak eğitilmiştir Cisco UCS sunucuları yerelleştirilmiş veri gereksinimlerimizi karşılamak ve ardından Amazon SageMaker kullanılarak AWS'ye dağıtmak için.

Oluşturulan ve eğitilen model şuraya yüklenir: Amazon Basit Depolama Hizmeti (Amazon S3) ve hizmet için Amazon SageMaker uç noktalarını kullanır. Aşağıdaki şema, uçtan uca iş akışımızı göstermektedir.

Geliştirme ortamı

Başlamak için, şu anda Cisco donanımınız yoksa, Amazon Elastik Kubernetes Hizmeti (Amazon EKS) Kubeflow ile çalışıyor. Talimatlar için bkz. Amazon EKS kümesi oluşturma ve Kubeflow Boru Hatlarını Dağıtma.

Mevcut bir UCS makineniz varsa Cisco Kubeflow başlangıç ​​paketi, Kubernetes kümenizde (v15.x veya üstü) hızlı bir Kubeflow kurulumu sunar. Kubeflow'u yüklemek için INGRESS_IP makinenin IP adresiyle değişken ve çalıştırın kubeflowup.bash kurulum komut dosyası. Aşağıdaki koda bakın:

export INGRESS_IP=<UCS Machine's IP>
bash kubeflowup.bash

Kurulum hakkında daha fazla bilgi için bkz. Kurulum Talimatları GitHub deposunda.

Hibrit işlem hattının hazırlanması

Cisco UCS ve AWS arasında sorunsuz bir ML iş akışı için Kubeflow Pipelines bileşenini ve Amazon SageMaker Kubeflow bileşenlerini kullanarak hibrit bir ardışık düzen oluşturduk.

Bileşenleri kullanmaya başlamak için AWS paketi dahil Kubeflow Pipeline paketlerini içe aktarmanız gerekir:

import kfp
import kfp.dsl as dsl
from kfp import components
from kfp.aws import use_aws_secret

İşlem hattını yapılandırmak ve çalıştırmak için tam kod için bkz. GitHub repo.

The boru hattı açıklar iş akışı ve bileşenlerin bir grafik biçiminde birbirleriyle nasıl ilişkili olduğu. Boru hattı konfigürasyonu, boru hattını çalıştırmak için gereken girdilerin (parametrelerin) tanımını ve her bileşenin girdi ve çıktılarını içerir. Aşağıdaki ekran görüntüsü, bitmiş işlem hattının Kubeflow kullanıcı arabiriminde görsel temsilini gösterir.

İşlem hattı aşağıdaki üç adımı çalıştırır:

  1. Modeli eğitin
  2. Model kaynağını oluşturun
  3. Modeli dağıtın

Modelin eğitimi

Modeli yerel olarak BLE verileriyle eğitir, bir görüntü oluşturur, onu S3 klasörüne yükler ve aşağıdakileri uygulayarak modeli Amazon SageMaker'a kaydedersiniz: MXNet model yapılandırmaları .yaml dosyası.

Eğitimli model yapıları Amazon S3'e yüklendiğinde Amazon SageMaker, modeli bir barındırma uç noktasına dağıtmak için Amazon S3'te depolanan modeli kullanır. Amazon SageMaker uç noktaları, aşağı akış uygulamalarının modelleri tüketmesini kolaylaştırır ve ekibin bunları izlemesine yardımcı olur Amazon Bulut İzleme. Aşağıdaki koda bakın:

def blerssi_mxnet_train_upload_op(step_name='mxnet-train'): return dsl.ContainerOp( name='mxnet-train-upload-s3', image='ciscoai/mxnet-blerssi-train-upload:v0.2', command=['python', '/opt/mx-dnn.py', 'train'], arguments=['--bucket-name', bucket_name] ).apply(use_aws_secret(secret_name=aws_secret_name, aws_access_key_id_name='AWS_ACCESS_KEY_ID', aws_secret_access_key_name='AWS_SECRET_ACCESS_KEY'))

Model kaynağı oluşturma

MXNet modeli ve yapıları Amazon S3'e yüklendiğinde, KF Pipeline CreateModel bileşeni Bir oluşturmak için Amazon SageMaker modeli kaynağı.

Amazon SageMaker uç nokta API'si esnektir ve eğitimli bir modeli bir uç noktaya dağıtmak için çeşitli seçenekler sunar. Örneğin, varsayılan Amazon SageMaker çalışma zamanının model dağıtımını, sistem durumunu ve model çağrısını yönetmesine izin verebilirsiniz. Amazon SageMaker, özel kapsayıcılar ve algoritmalarla çalışma zamanının özelleştirilmesine de olanak tanır. Talimatlar için bkz. Amazon SageMaker için kapsayıcılara genel bakış.

Kullanım durumumuz için model durum denetimi API'si ve model çağırma API'si üzerinde bir dereceye kadar kontrol istedik. Eğitilmiş modeli dağıtmak için Amazon SageMaker çalışma zamanı için özel geçersiz kılmayı seçtik. Özel tahminci, gelen isteğin nasıl işlendiği ve tahmin için modele nasıl iletildiği konusunda esneklik sağlar. Aşağıdaki koda bakın:

sagemaker_model_op = components.load_component_from_url(model)

Modeli dağıtma

Modeli bir Amazon SageMaker uç noktasına şu şekilde dağıtırsınız: KF Pipeline CreateEndpoint bileşeni.

Çıkarım için kullanılan özel kapsayıcı, takıma modele özel durum denetimleri ve çağrılar tanımlama konusunda maksimum esneklik sağlar. Ancak özel kapsayıcı, Amazon SageMaker çalışma zamanı tarafından belirtilen API'ler için altın yolu izlemelidir. Aşağıdaki koda bakın:

sagemaker_deploy_op = components.load_component_from_url(deploy)

Boru hattının çalıştırılması

İşlem hattınızı çalıştırmak için aşağıdaki adımları tamamlayın:

  1. Amazon SageMaker bileşenleriyle hibrit ardışık düzeni tanımlayan Python kodunu yapılandırın:
    @dsl.pipeline( name='MXNet Sagemaker Hybrid Pipeline', description='Pipeline to train BLERSSI model using mxnet and save in aws s3 bucket'
    )
    def mxnet_pipeline( region="", image="", model_name="", endpoint_config_name="", endpoint_name="", model_artifact_url="", instance_type_1="", role=""
    ): train_upload_model = blerssi_mxnet_train_upload_op() create_model = sagemaker_model_op( region=region, model_name=model_name, image=image, model_artifact_url=model_artifact_url, role=role ).apply(use_aws_secret(secret_name=aws_secret_name, aws_access_key_id_name='AWS_ACCESS_KEY_ID', aws_secret_access_key_name='AWS_SECRET_ACCESS_KEY')) create_model.after(train_upload_model) sagemaker_deploy=sagemaker_deploy_op( region=region, endpoint_config_name=endpoint_config_name, endpoint_name=endpoint_name, model_name_1=create_model.output, instance_type_1=instance_type_1 ).apply(use_aws_secret(secret_name=aws_secret_name, aws_access_key_id_name='AWS_ACCESS_KEY_ID', aws_secret_access_key_name='AWS_SECRET_ACCESS_KEY')) sagemaker_deploy.after(create_model)
    

    Yapılandırma hakkında daha fazla bilgi için bkz. Boru Hatları Hızlı Başlangıç. Tam işlem hattı kodu için bkz. GitHub repo.

  2. İşlem hattını yürütmek için aşağıdaki parametreleri besleyerek işlem hattını çalıştırın:
    run = client.run_pipeline(blerssi_hybrid_experiment.id, 'blerssi-sagemaker-pipeline-'+timestamp, pipeline_package_path='mxnet_pipeline.tar.gz', params={ 'region': aws_region, 'image': inference_image, 'model_name': model_name, 'endpoint_config_name': endpoint_config_name, 'endpoint_name': endpoint_name, 'model_artifact_url': model_path, 'instance_type_1': instance_type, 'role': role_arn
    })

Bu noktada, BLERSSI Amazon SageMaker işlem hattı yürütülmeye başlar. Tüm bileşenler başarıyla yürütüldükten sonra, uç noktanın oluşturulduğunu doğrulamak için sagemaker-deploy bileşeninin günlüklerini kontrol edin. Aşağıdaki ekran görüntüsü, dağıtılan modelin URL'si ile son adımın günlüklerini gösterir.

Modeli doğrulama

Model AWS'de dağıtıldıktan sonra, AWS'de dağıtılan modelin uç nokta adını kullanarak bir HTTP isteği aracılığıyla modele örnek veriler göndererek modeli doğrularız. Aşağıdaki ekran görüntüsü, bir Python istemcisine sahip örnek bir Jupyter not defterinden bir pasajı ve konum tahminleriyle ilgili çıktıyı gösterir.

Sonuç

Amazon SageMaker ve Kubeflow Pipelines, tek bir hibrit ardışık düzende kolayca entegre edilebilir. Amazon SageMaker için eksiksiz blog ve eğitim seti, Kubeflow Pipelines için Amazon SageMaker bileşenleri aracılığıyla hibrit bir işlem hattı oluşturmayı kolaylaştırır. API kapsamlıydı, kullanmamız gereken tüm temel bileşenleri kapsıyordu ve özel algoritmaların geliştirilmesine ve Cisco Kubeflow Başlangıç ​​Paketi ile entegrasyona izin verdi. Amazon SageMaker ile AWS'de hizmet vermek üzere Amazon S3'e eğitimli bir makine öğrenimi modeli yükleyerek, karmaşık makine öğrenimi yaşam döngülerini yönetmenin karmaşıklığını ve TCO'sunu yaklaşık %50 oranında azalttık. Veri gizliliği konusunda en yüksek kurumsal politika standartlarına uyuyoruz ve ABD'nin her yerinde ve dünyanın her yerinde AWS'de yedekli, ölçeklenebilir bir şekilde modeller sunuyoruz.


Yazarlar Hakkında

Elvira Dzhuraeva Cisco'da bulut ve yerinde makine öğrenimi ve yapay zeka stratejisinden sorumlu Teknik Ürün Müdürüdür. Aynı zamanda Kubeflow'ta Topluluk Ürün Yöneticisi ve MLPerf topluluğunun bir üyesidir.

Debo Dutta Algoritmalar, sistemler ve makine öğreniminin kesiştiği bir teknoloji grubuna liderlik ettiği Cisco'da Seçkin Mühendistir. Debo, Cisco'dayken şu anda Stanford'da misafir öğretim üyesidir. Doktorasını Güney Kaliforniya Üniversitesi'nden Bilgisayar Bilimi alanında ve Hindistan'daki IIT Kharagpur'dan Bilgisayar Bilimi alanında lisans derecesini aldı.

Amit Saha Cisco'da sistemler ve makine öğrenimi alanındaki çalışmalara öncülük ettiği Baş Mühendistir. IIT Kharagpur'da misafir öğretim üyesidir. Houston, Rice Üniversitesi'nden Bilgisayar Bilimleri alanında doktorası ve IIT Kharagpur'dan lisans derecesi vardır. En iyi Bilgisayar Bilimleri konferansları için çeşitli program komitelerinde görev yaptı.

Kaynak: https://aws.amazon.com/blogs/machine-learning/cisco-uses-amazon-sagemaker-and-kubeflow-to-create-a-hybrid-machine-learning-workflow/

spot_img

En Son İstihbarat

spot_img