Müşteriler buluta geçişlerini hızlandırıp işlerini dönüştürdükçe, bazıları kendilerini çoklu bulut ortamında BT operasyonlarını yönetmek zorunda kaldıkları durumlarda buluyor. Örneğin, hâlihazırda farklı bir bulut sağlayıcısında çalışan bir şirketi satın almış olabilirsiniz veya AWS tarafından sağlanan benzersiz yeteneklerden değer üreten bir iş yükünüz olabilir. Başka bir örnek, son müşterilerine fayda sağlamak için ürünlerini ve hizmetlerini farklı bulut platformlarında kullanıma sunan bağımsız yazılım satıcılarıdır (ISV'ler). Veya bir kuruluş, birincil bulut sağlayıcısının bulunmadığı bir Bölgede faaliyet gösteriyor olabilir ve veri egemenliği veya veri yerleşimi gereksinimlerini karşılamak için ikincil bir bulut sağlayıcısı kullanabilir.
Bu senaryolarda, üretken yapay zekayı, büyük dil modellerini (LLM'ler) ve makine öğrenimi (ML) teknolojilerini işletmenizin temel bir parçası olarak benimsemeye başladığınızda, bunlardan yararlanmak için seçenekler arıyor olabilirsiniz. AWS AI ve ML Çoklu bulut ortamında AWS dışındaki yetenekler. Örneğin, kullanmak isteyebilirsiniz Amazon Adaçayı Yapıcı ML modelini oluşturmak ve eğitmek veya kullanmak için Amazon SageMaker Hızlı Başlangıç Birkaç düğmeyi tıklatarak dağıtabileceğiniz önceden oluşturulmuş temel veya üçüncü taraf makine öğrenimi modellerini dağıtmak için. Veya yararlanmak isteyebilirsiniz Amazon Ana Kayası üretken yapay zeka uygulamaları oluşturmak ve ölçeklendirmek için veya bunlardan yararlanabilirsiniz AWS'nin önceden eğitilmiş yapay zeka hizmetleri, makine öğrenimi becerilerini öğrenmenizi gerektirmez. AWS, kuruluşların istediği senaryolar için destek sağlar kendi modellerini Amazon SageMaker'a getiriyor or tahminler için Amazon SageMaker Canvas'a girin.
Bu yazıda, çoklu bulut ortamında AWS'nin en geniş ve en derin AI/ML yeteneklerinden yararlanmak için sahip olduğunuz birçok seçenekten birini gösteriyoruz. AWS'de bir makine öğrenimi modelini nasıl oluşturup eğitebileceğinizi ve modeli başka bir platformda nasıl dağıtabileceğinizi gösteriyoruz. Modeli Amazon SageMaker'ı kullanarak eğitiyoruz, model yapıtlarını Amazon Basit Depolama Hizmeti (Amazon S3) ve modeli Azure'da dağıtıp çalıştırın. Bu yaklaşım, ML için AWS hizmetlerini en kapsamlı özellikler için kullanıyorsanız faydalıdır, ancak tartıştığımız durumlardan birinde modelinizi başka bir bulut sağlayıcısında çalıştırmanız gerekir.
Anahtar kavramlar
Amazon SageMaker Stüdyosu makine öğrenimine yönelik web tabanlı, entegre bir geliştirme ortamıdır (IDE). SageMaker Studio, veri bilimcilerin, makine öğrenimi mühendislerinin ve veri mühendislerinin tek bir web arayüzünde veri hazırlamasına, makine öğrenimi modellerini oluşturmasına, eğitmesine ve dağıtmasına olanak tanır. SageMaker Studio ile veri hazırlamadan makine öğrenimi modellerinizi oluşturmaya, eğitmeye ve dağıtmaya kadar makine öğrenimi geliştirme yaşam döngüsünün her aşaması için amaca yönelik olarak oluşturulmuş araçlara erişebilir ve veri bilimi ekibinin üretkenliğini on kata kadar artırabilirsiniz. SageMaker Studio not defterleri SageMaker ve diğer AWS hizmetlerinde amaca yönelik olarak oluşturulmuş makine öğrenimi araçlarıyla entegre olan hızlı başlangıçlı, işbirliğine dayalı dizüstü bilgisayarlardır.
SageMaker, iş analistlerinin, veri bilimcilerinin ve MLOps mühendislerinin, makine öğrenimi uzmanlığından bağımsız olarak her türlü kullanım senaryosu için makine öğrenimi modelleri oluşturmasına, eğitmesine ve dağıtmasına olanak tanıyan kapsamlı bir makine öğrenimi hizmetidir.
AWS'nin sağladığı Derin Öğrenme Konteynerleri (DLC'ler), SageMaker ile eğitim ve çıkarım için kullanabileceğiniz PyTorch, TensorFlow ve Apache MXNet gibi popüler ML çerçeveleri için. DLC'ler Docker görüntüleri olarak mevcuttur Amazon Elastik Konteyner Kayıt Defteri (Amazon ECR). Docker görüntüleri, popüler derin öğrenme çerçevelerinin en son sürümlerinin yanı sıra eğitim ve çıkarım için gereken diğer bağımlılıklarla önceden yüklenmiş ve test edilmiştir. SageMaker tarafından yönetilen önceden oluşturulmuş Docker görüntülerinin tam listesi için bkz. Docker Kayıt Yolları ve Örnek Kod. Amazon ECR, güvenlik taramasını destekler ve Amazon Müfettişi kuruluşunuzun görüntü uyumluluğu güvenlik gereksinimlerini karşılamak ve güvenlik açığı değerlendirmesi taramasını otomatikleştirmek için güvenlik açığı yönetimi hizmeti. Kuruluşlar da kullanabilir AWS Eğitimi ve AWS Çıkarımları ML eğitim işlerini veya çıkarımlarını yürütmek için daha iyi fiyat-performans elde etmek için.
Çözüme genel bakış
Bu bölümde SageMaker kullanarak bir modelin nasıl oluşturulup eğitileceğini ve modelin Azure İşlevlerine nasıl dağıtılacağını açıklıyoruz. Modeli oluşturmak, eğitmek ve dağıtmak için bir SageMaker Studio dizüstü bilgisayarı kullanıyoruz. Modeli SageMaker'da PyTorch için önceden oluşturulmuş bir Docker görüntüsü kullanarak eğitiyoruz. Bu durumda eğitilen modeli Azure'a dağıtıyor olsak da, modeli şirket içi veya diğer bulut platformları gibi diğer platformlara dağıtmak için aynı yaklaşımı kullanabilirsiniz.
Bir eğitim işi oluşturduğumuzda SageMaker, ML hesaplama örneklerini başlatır ve modeli eğitmek için eğitim kodumuzu ve eğitim veri kümesini kullanır. Ortaya çıkan model yapıtlarını ve diğer çıktıları, eğitim işine girdi olarak belirlediğimiz bir S3 klasörüne kaydeder. Model eğitimi tamamlandığında, Açık Sinir Ağı Değişimi PyTorch modelini bir ONNX modeli olarak dışa aktarmak için (ONNX) çalışma zamanı kitaplığı.
Son olarak, ONNX modelini Python'da yazılmış özel bir çıkarım koduyla birlikte Azure CLI'yi kullanarak Azure İşlevlerine dağıtıyoruz. ONNX çoğu şeyi destekler yaygın olarak kullanılan makine öğrenimi çerçeveleri ve araçları. Unutulmaması gereken bir nokta, PyTorch'tan TensorFlow'a kadar farklı bir hedef dağıtım çerçevesi kullanmak istiyorsanız, bir ML modelini ONNX'e dönüştürmenin yararlı olacağıdır. Hem kaynakta hem de hedefte aynı çerçeveyi kullanıyorsanız modeli ONNX formatına dönüştürmenize gerek yoktur.
Aşağıdaki diyagram bu yaklaşımın mimarisini göstermektedir.
Birlikte bir SageMaker Studio not defteri kullanıyoruz SageMaker Python SDK'sı modelimizi oluşturmak ve eğitmek için. SageMaker Python SDK'sı, SageMaker'da makine öğrenimi modellerini eğitmek ve dağıtmak için kullanılan açık kaynaklı bir kitaplıktır. Daha fazla ayrıntı için bkz. Amazon SageMaker Studio Not Defteri Oluşturun veya Açın.
Aşağıdaki bölümlerdeki kod parçacıkları, Data Science 3.0 görüntüsü ve Python 3.0 çekirdeği kullanılarak SageMaker Studio dizüstü bilgisayar ortamında test edilmiştir.
Bu çözümde aşağıdaki adımları gösteriyoruz:
- Bir PyTorch modelini eğitin.
- PyTorch modelini ONNX modeli olarak dışa aktarın.
- Modeli ve çıkarım kodunu paketleyin.
- Modeli Azure İşlevlerine dağıtın.
Önkoşullar
Aşağıdaki ön koşullara sahip olmalısınız:
- Bir AWS hesabı.
- Bir SageMaker alanı ve SageMaker Studio kullanıcısı. Bunları oluşturmaya yönelik talimatlar için bkz. Hızlı Kurulumu Kullanarak Amazon SageMaker Etki Alanında Yerleşik.
- Azure CLI.
- Azure İşlevlerini oluşturma ve yönetme izinlerine sahip bir hizmet sorumlusunun Azure'a ve kimlik bilgilerine erişim.
PyTorch ile bir model eğitin
Bu bölümde bir PyTorch modelini eğitme adımlarını detaylandırıyoruz.
Bağımlılıkları yükle
Model eğitimi ve model dağıtımı için gerekli adımları gerçekleştirmek üzere kitaplıkları yükleyin:
pip install torchvision onnx onnxruntime
İlk kurulumu tamamlayın
İthalatla başlıyoruz Python için AWS SDK (Boto3) ve SageMaker Python SDK'sı. Kurulumun bir parçası olarak aşağıdakileri tanımlıyoruz:
- SageMaker ve kendi hesabımız bağlamında kolaylık sağlayan yöntemler sağlayan bir oturum nesnesi.
- İzinleri eğitim ve barındırma hizmetine devretmek için kullanılan bir SageMaker rolü ARN'si. Bu hizmetlerin, verilerimizin ve modelimizin depolandığı S3 klasörlerine erişebilmesi için buna ihtiyacımız var. İş ihtiyaçlarınızı karşılayan bir rol oluşturmaya ilişkin talimatlar için bkz. Adaçayı Yapıcı Rolleri. Bu yazı için Studio not defteri örneğimizle aynı yürütme rolünü kullanıyoruz. Bu rolü arayarak alıyoruz
sagemaker.get_execution_role()
. - Eğitim işimizin yürütüleceği varsayılan Bölge.
- Model çıktısını depolamak için kullandığımız varsayılan paket ve önek.
Aşağıdaki koda bakın:
import sagemaker
import boto3
import os execution_role = sagemaker.get_execution_role()
region = boto3.Session().region_name
session = sagemaker.Session()
bucket = session.default_bucket()
prefix = "sagemaker/mnist-pytorch"
Eğitim veri kümesini oluşturun
Herkese açık pakette bulunan veri kümesini kullanıyoruz sagemaker-example-files-prod-{region}
. Veri kümesi aşağıdaki dosyaları içerir:
- train-images-idx3-ubyte.gz – Eğitim seti görsellerini içerir
- tren-etiketleri-idx1-ubyte.gz – Eğitim seti etiketlerini içerir
- t10k-images-idx3-ubyte.gz – Test seti görsellerini içerir
- t10k-etiketler-idx1-ubyte.gz – Test seti etiketlerini içerir
Biz kullanıntorchvision.datasets
Verileri eğitim veri grubumuza yüklemeden önce genel paketten yerel olarak indirmek için modül. Bu kova konumunu SageMaker eğitim işine girdi olarak aktarıyoruz. Eğitim betiğimiz, eğitim verilerini indirip hazırlamak ve ardından modeli eğitmek için bu konumu kullanır. Aşağıdaki koda bakın:
MNIST.mirrors = [ f"https://sagemaker-example-files-prod-{region}.s3.amazonaws.com/datasets/image/MNIST/"
] MNIST( "data", download=True, transform=transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))] ),
)
Eğitim komut dosyasını oluşturun
SageMaker ile kendi modelinizi kullanarak getirebilirsiniz. kod modu. Komut dosyası moduyla, önceden oluşturulmuş SageMaker kapsayıcılarını kullanabilir ve özel kitaplıklar ve bağımlılıklarla birlikte model tanımına sahip kendi eğitim komut dosyanızı sağlayabilirsiniz. SageMaker Python SDK'sı senaryomuzu şu şekilde aktarır: entry_point
Modelimizi eğitmek için sağlanan komut dosyasından tren işlevini yükleyen ve çalıştıran konteynere.
Eğitim tamamlandığında SageMaker, model çıktısını eğitim işinin parametresi olarak sağladığımız S3 klasörüne kaydeder.
Eğitim kodumuz aşağıdakilerden uyarlanmıştır PyTorch örnek komut dosyası. Koddan alınan aşağıdaki alıntı model tanımını ve tren fonksiyonunu gösterir:
# define network class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(1, 32, 3, 1) self.conv2 = nn.Conv2d(32, 64, 3, 1) self.dropout1 = nn.Dropout(0.25) self.dropout2 = nn.Dropout(0.5) self.fc1 = nn.Linear(9216, 128) self.fc2 = nn.Linear(128, 10) def forward(self, x): x = self.conv1(x) x = F.relu(x) x = self.conv2(x) x = F.relu(x) x = F.max_pool2d(x, 2) x = self.dropout1(x) x = torch.flatten(x, 1) x = self.fc1(x) x = F.relu(x) x = self.dropout2(x) x = self.fc2(x) output = F.log_softmax(x, dim=1) return output
# train def train(args, model, device, train_loader, optimizer, epoch): model.train() for batch_idx, (data, target) in enumerate(train_loader): data, target = data.to(device), target.to(device) optimizer.zero_grad() output = model(data) loss = F.nll_loss(output, target) loss.backward() optimizer.step() if batch_idx % args.log_interval == 0: print('Train Epoch: {} [{}/{} ({:.0f}%)]tLoss: {:.6f}'.format( epoch, batch_idx * len(data), len(train_loader.dataset), 100. * batch_idx / len(train_loader), loss.item())) if args.dry_run: break
Modeli eğitin
Artık ortamımızı kurduğumuza ve girdi veri setimizi ve özel eğitim komut dosyamızı oluşturduğumuza göre, SageMaker kullanarak model eğitimine başlayabiliriz. SageMaker üzerinde bir eğitim işine başlamak için SageMaker Python SDK'sındaki PyTorch tahmin aracını kullanıyoruz. Gerekli parametreleri tahminciye iletiyoruz ve fit yöntemini çağırıyoruz. PyTorch tahmincisine fit adını verdiğimizde, SageMaker betiğimizi eğitim kodu olarak kullanarak bir eğitim işi başlatır:
from sagemaker.pytorch import PyTorch output_location = f"s3://{bucket}/{prefix}/output"
print(f"training artifacts will be uploaded to: {output_location}") hyperparameters={ "batch-size": 100, "epochs": 1, "lr": 0.1, "gamma": 0.9, "log-interval": 100
} instance_type = "ml.c4.xlarge"
estimator = PyTorch( entry_point="train.py", source_dir="code", # directory of your training script role=execution_role, framework_version="1.13", py_version="py39", instance_type=instance_type, instance_count=1, volume_size=250, output_path=output_location, hyperparameters=hyperparameters
) estimator.fit(inputs = { 'training': f"{inputs}", 'testing': f"{inputs}"
})
Eğitilen modeli ONNX modeli olarak dışa aktarın
Eğitim tamamlandıktan ve modelimiz Amazon S3'te önceden tanımlanmış konuma kaydedildikten sonra ONNX çalışma zamanını kullanarak modeli bir ONNX modeline aktarıyoruz.
Modelimizi ONNX'e aktaracak kodu, eğitim tamamlandıktan sonra çalıştırılmak üzere eğitim betiğimize dahil ediyoruz.
PyTorch, girdimizi kullanarak modeli çalıştırarak ve çıktıyı hesaplamak için kullanılan operatörlerin izini kaydederek modeli ONNX'e aktarır. PyTorch ile doğru tipte rastgele bir girdi kullanıyoruz torch.onnx.export
modeli ONNX'e aktarma işlevi. Modelimizin bir değişkeni kabul etmesi için girdimizdeki ilk boyutu da dinamik olarak belirtiyoruz. batch_size
çıkarım sırasında girdilerin sayısı.
def export_to_onnx(model, model_dir, device): logger.info("Exporting the model to onnx.") dummy_input = torch.randn(1, 1, 28, 28).to(device) input_names = [ "input_0" ] output_names = [ "output_0" ] path = os.path.join(model_dir, 'mnist-pytorch.onnx') torch.onnx.export(model, dummy_input, path, verbose=True, input_names=input_names, output_names=output_names, dynamic_axes={'input_0' : {0 : 'batch_size'}, # variable length axes 'output_0' : {0 : 'batch_size'}})
ONNX, PyTorch, Microsoft Bilişsel Araç Seti (CNTK) ve daha fazlası gibi derin öğrenme çerçeveleri arasında birlikte çalışabilirliği sağlayan, derin öğrenme modelleri için açık standart bir formattır. Bu, modeli eğitmek ve daha sonra önceden eğitilmiş modelleri ONNX formatında dışa aktarmak için bu çerçevelerden herhangi birini kullanabileceğiniz anlamına gelir. Modeli ONNX'e aktararak daha geniş bir dağıtım cihazı ve platform seçiminin avantajından yararlanırsınız.
Model yapıtlarını indirin ve çıkarın
Eğitim betiğimizin kaydettiği ONNX modeli, eğitim işine başladığımızda belirttiğimiz çıktı konumunda SageMaker tarafından Amazon S3'e kopyalandı. Model eserleri, adı verilen sıkıştırılmış bir arşiv dosyası olarak saklanır. model.tar.gz
. Bu arşiv dosyasını Studio not defteri örneğimizdeki yerel bir dizine indiriyoruz ve model yapıtlarını, yani ONNX modelini çıkartıyoruz.
import tarfile local_model_file = 'model.tar.gz'
model_bucket,model_key = estimator.model_data.split('/',2)[-1].split('/',1)
s3 = boto3.client("s3")
s3.download_file(model_bucket,model_key,local_model_file) model_tar = tarfile.open(local_model_file)
model_file_name = model_tar.next().name
model_tar.extractall('.')
model_tar.close()
ONNX modelini doğrulama
ONNX modeli adlı bir dosyaya aktarılır. mnist-pytorch.onnx
eğitim senaryomuzla. Bu dosyayı indirip çıkarttıktan sonra isteğe bağlı olarak ONNX modelini kullanarak doğrulayabiliriz. onnx.checker
modül. check_model
Bu modüldeki işlev bir modelin tutarlılığını kontrol eder. Test başarısız olursa bir özel durum ortaya çıkar.
import onnx onnx_model = onnx.load("mnist-pytorch.onnx")
onnx.checker.check_model(onnx_model)
Modeli ve çıkarım kodunu paketleyin
Bu gönderide Azure İşlevleri için .zip dağıtımını kullanıyoruz. Bu yöntemde modelimizi, beraberindeki kodu ve Azure Functions ayarlarımızı bir .zip dosyasında paketleyip Azure Functions’ta yayınlıyoruz. Aşağıdaki kod dağıtım paketimizin dizin yapısını gösterir:
mnist-onnx
├── function_app.py
├── model
│ └── mnist-pytorch.onnx
└── requirements.txt
Bağımlılıkları listeleme
Çıkarım kodumuzun bağımlılıklarını şu şekilde listeliyoruz: requirements.txt
Paketimizin kökündeki dosya. Bu dosya, paketi yayımladığımızda Azure İşlevleri ortamını oluşturmak için kullanılır.
azure-functions
numpy
onnxruntime
Çıkarım kodunu yaz
Modelimizi yüklemek ve çıkarımı çalıştırmak için ONNX Runtime kütüphanesini kullanarak aşağıdaki çıkarım kodunu yazmak için Python'u kullanıyoruz. Bu, Azure İşlevleri uygulamasına uç noktayı şu anda kullanılabilir hale getirme talimatını verir: /classify
göreceli yol.
import logging
import azure.functions as func
import numpy as np
import os
import onnxruntime as ort
import json app = func.FunctionApp() def preprocess(input_data_json): # convert the JSON data into the tensor input return np.array(input_data_json['data']).astype('float32') def run_model(model_path, req_body): session = ort.InferenceSession(model_path) input_data = preprocess(req_body) logging.info(f"Input Data shape is {input_data.shape}.") input_name = session.get_inputs()[0].name # get the id of the first input of the model try: result = session.run([], {input_name: input_data}) except (RuntimeError) as e: print("Shape={0} and error={1}".format(input_data.shape, e)) return result[0] def get_model_path(): d=os.path.dirname(os.path.abspath(__file__)) return os.path.join(d , './model/mnist-pytorch.onnx') @app.function_name(name="mnist_classify")
@app.route(route="classify", auth_level=func.AuthLevel.ANONYMOUS)
def main(req: func.HttpRequest) -> func.HttpResponse: logging.info('Python HTTP trigger function processed a request.') # Get the img value from the post. try: req_body = req.get_json() except ValueError: pass if req_body: # run model result = run_model(get_model_path(), req_body) # map output to integer and return result string. digits = np.argmax(result, axis=1) logging.info(type(digits)) return func.HttpResponse(json.dumps({"digits": np.array(digits).tolist()})) else: return func.HttpResponse( "This HTTP triggered function successfully.", status_code=200 )
Modeli Azure İşlevlerine dağıtma
Artık kodu gerekli .zip biçiminde paketlediğimize göre, onu Azure İşlevlerinde yayımlamaya hazırız. Bunu, Azure kaynaklarını oluşturmaya ve yönetmeye yönelik bir komut satırı yardımcı programı olan Azure CLI'yi kullanarak yapıyoruz. Azure CLI'yi aşağıdaki kodla yükleyin:
!pip install -q azure-cli
Ardından aşağıdaki adımları tamamlayın:
- Azure'da oturum açın:
!az login
- Kaynak oluşturma parametrelerini ayarlayın:
import random random_suffix = str(random.randint(10000,99999)) resource_group_name = f"multicloud-{random_suffix}-rg" storage_account_name = f"multicloud{random_suffix}" location = "ukwest" sku_storage = "Standard_LRS" functions_version = "4" python_version = "3.9" function_app = f"multicloud-mnist-{random_suffix}"
- Azure İşlevleri uygulamasını önkoşul kaynaklarla birlikte oluşturmak için aşağıdaki komutları kullanın:
!az group create --name {resource_group_name} --location {location} !az storage account create --name {storage_account_name} --resource-group {resource_group_name} --location {location} --sku {sku_storage} !az functionapp create --name {function_app} --resource-group {resource_group_name} --storage-account {storage_account_name} --consumption-plan-location "{location}" --os-type Linux --runtime python --runtime-version {python_version} --functions-version {functions_version}
- Azure İşlevlerini, İşlevler paketini dağıttığımızda,
requirements.txt
dosya uygulama bağımlılıklarımızı oluşturmak için kullanılır:!az functionapp config appsettings set --name {function_app} --resource-group {resource_group_name} --settings @./functionapp/settings.json
- İşlevler uygulamasını Python v2 modelini çalıştıracak ve .zip dağıtımından sonra aldığı kod üzerinde bir derleme gerçekleştirecek şekilde yapılandırın:
{ "AzureWebJobsFeatureFlags": "EnableWorkerIndexing", "SCM_DO_BUILD_DURING_DEPLOYMENT": true }
- Kaynak grubunu, depolama kapsayıcısını ve İşlevler uygulamasını doğru yapılandırmaya sahip hale getirdikten sonra kodu İşlevler uygulamasında yayınlayın:
!az functionapp deployment source config-zip -g {resource_group_name} -n {function_app} --src {function_archive} --build-remote true
Modeli test edin
ML modelini Azure İşlevlerine bir HTTP tetikleyicisi olarak dağıttık; bu, işlevi çağırmak ve modeli çalıştırmak üzere işleve bir HTTP isteği göndermek için İşlevler uygulama URL'sini kullanabileceğimiz anlamına gelir.
Girişi hazırlamak için SageMaker örnek dosyalar grubundan test görüntüleri dosyalarını indirin ve modelin gerektirdiği formatta bir dizi örnek hazırlayın:
from torch.utils.data import DataLoader
from torchvision import datasets, transforms
import matplotlib.pyplot as plt transform=transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))]
) test_dataset = datasets.MNIST(root='../data', download=True, train=False, transform=transform)
test_loader = DataLoader(test_dataset, batch_size=16, shuffle=True) test_features, test_labels = next(iter(test_loader))
Örnek girişlerle çıkarım uç noktasına bir gönderi isteği göndermek için istek kitaplığını kullanın. Çıkarım uç noktası aşağıdaki kodda gösterilen biçimi alır:
import requests, json def to_numpy(tensor): return tensor.detach().cpu().numpy() if tensor.requires_grad else tensor.cpu().numpy() url = f"https://{function_app}.azurewebsites.net/api/classify"
response = requests.post(url, json.dumps({"data":to_numpy(test_features).tolist()}) )
predictions = json.loads(response.text)['digits']
Temizlemek
Modeli test etmeyi tamamladığınızda kaynak grubunu, depolama kapsayıcısı ve İşlevler uygulaması da dahil olmak üzere içerilen kaynaklarla birlikte silin:
!az group delete --name {resource_group_name} --yes
Ayrıca maliyetleri azaltmak için SageMaker Studio'da boşta kalan kaynakların kapatılması önerilir. Daha fazla bilgi için bkz. Amazon SageMaker Studio'da atıl kaynakları otomatik olarak kapatarak maliyetlerden tasarruf edin.
Sonuç
Bu yazıda, SageMaker ile bir makine öğrenimi modelini nasıl oluşturup eğitebileceğinizi ve bunu başka bir bulut sağlayıcısına nasıl dağıtabileceğinizi gösterdik. Çözümde SageMaker Studio dizüstü bilgisayarı kullandık ancak üretim iş yükleri için şunu kullanmanızı öneririz: MLO'lar Model geliştirmeyi ve devreye almayı hızlandırmak için tekrarlanabilir eğitim iş akışları oluşturmak.
Bu gönderi, bir modeli çoklu bulut ortamında dağıtmanın ve çalıştırmanın olası tüm yollarını göstermedi. Örneğin, modeli herhangi bir platformda kapsayıcıya alınmış bir uygulama olarak çalıştırmak için modelinizi çıkarım kodu ve bağımlılık kitaplıklarıyla birlikte bir kapsayıcı görüntüsüne de paketleyebilirsiniz. Bu yaklaşım hakkında daha fazla bilgi için bkz. Amazon CodeCatalyst'i kullanarak konteyner uygulamalarını çoklu bulut ortamında dağıtın. Gönderinin amacı, kuruluşların AWS AI/ML özelliklerini çoklu bulut ortamında nasıl kullanabileceğini göstermektir.
yazarlar hakkında
Raja Vaidyanathan AWS'de küresel finansal hizmet müşterilerini destekleyen bir Çözüm Mimarıdır. Raja, karmaşık sorunlara, işleri üzerinde uzun vadeli olumlu etki yaratacak çözümler tasarlamak için müşterilerle birlikte çalışır. BT stratejisi, kurumsal veri yönetimi ve uygulama mimarisi konularında yetenekli, analitik ve makine öğrenimi konularına özel ilgi duyan güçlü bir mühendislik uzmanıdır.
Amandeep Bajwa AWS'de finansal hizmet kuruluşlarını destekleyen Kıdemli Çözüm Mimarıdır. Sektör eğilimlerine ve kurumsal önceliklere göre uygun bulut dönüşüm stratejisini belirleyerek kuruluşların iş sonuçlarına ulaşmalarına yardımcı olur. Amandeep'in danışmanlık yaptığı alanlardan bazıları bulut geçişi, bulut stratejisi (hibrit ve çoklu bulut dahil), dijital dönüşüm, veri ve analiz ve genel olarak teknolojidir.
Prema Iyer AWS Enterprise Support Kıdemli Teknik Hesap Yöneticisidir. Çeşitli projelerde harici müşterilerle birlikte çalışarak onların AWS kullanırken çözümlerinin değerini artırmalarına yardımcı oluyor.
- 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/train-and-deploy-ml-models-in-a-multicloud-environment-using-amazon-sagemaker/
- :vardır
- :dır-dir
- :olumsuzluk
- :Neresi
- $UP
- 1
- 10
- 100
- 13
- 25
- 28
- 32
- 7
- 9
- a
- Hakkımızda
- hızlandırmak
- Kabul eder
- erişim
- Hesap
- Başarmak
- edinilen
- avantaj
- Sonra
- AI
- AI / ML
- Türkiye
- veriyor
- boyunca
- zaten
- Ayrıca
- Rağmen
- Amazon
- Amazon Adaçayı Yapıcı
- Amazon SageMaker Tuval
- Amazon SageMaker Stüdyosu
- Amazon Web Servisleri
- an
- Analistler
- analytics
- ve
- Anonim
- Başka
- herhangi
- Apache
- uygulamayı yükleyeceğiz
- Uygulama
- uygulamaları
- yaklaşım
- uygun
- mimari
- Arşiv
- ARE
- alanlar
- AS
- değerlendirme
- At
- otomatikleştirmek
- otomatik olarak
- mevcut
- AWS
- EKSENLER
- masmavi
- merkezli
- BE
- olmuştur
- önce
- başlamak
- faydalı
- yarar
- Daha iyi
- arasında
- her ikisi de
- getirmek
- Daha geniş
- inşa etmek
- bina
- iş
- fakat
- by
- çağrı
- denilen
- çağrı
- CAN
- tuval
- yetenekleri
- taşımak
- dava
- Çekler
- sınıf
- sınıflandırmak
- tıklayın
- bulut
- kod
- bilişsel
- işbirlikçi
- şirket
- tamamlamak
- karmaşık
- uyma
- kapsamlı
- hesaplamak
- yapılandırma
- içerdiği
- Konteyner
- Konteynerler
- içeren
- bağlam
- kolaylık
- dönüştürmek
- dönüştürme
- çekirdek
- maliyetler
- olabilir
- yaratmak
- çevrimiçi kurslar düzenliyorlar.
- Oluşturma
- oluşturma
- Tanıtım
- görenek
- Müşteriler
- veri
- veri yönetimi
- Veri Hazırlama
- veri bilimi
- veri kümeleri
- derin
- derin öğrenme
- en derin
- Varsayılan
- tanımlamak
- tanım
- göstermek
- bağımlılıklar
- Bağımlılık
- dağıtmak
- konuşlandırılmış
- dağıtma
- açılma
- tanımlamak
- ayrıntı
- ayrıntılar
- gelişme
- cihaz
- Cihaz
- farklı
- dijital
- dijital Dönüşüm
- basamak
- Boyut
- tartışılan
- do
- liman işçisi
- domain
- yapılmış
- Dont
- aşağı
- indir
- sırasında
- dinamik
- e
- başka
- kucaklamak
- sağlar
- etkinleştirme
- son
- Son nokta
- Mühendislik
- Mühendisler
- kuruluş
- işletmelerin
- çevre
- çağ
- devirler
- Her
- örnek
- Dışında
- istisna
- infaz
- Uzmanlık
- ihracat
- ihracat
- dış
- çıkarmak
- başarısız
- Özellikler
- az
- fileto
- dosyalar
- mali
- finansal hizmetler
- bulmak
- Ad
- uygun
- takip etme
- İçin
- biçim
- vakıf
- iskelet
- çerçeveler
- itibaren
- işlev
- fonksiyonlar
- genel
- üretir
- üretken
- üretken yapay zeka
- almak
- Küresel
- küresel finans
- grup
- Var
- he
- yardım
- yardımcı olur
- hosting
- Ne kadar
- Nasıl Yapılır
- HTML
- http
- HTTPS
- melez
- ID
- belirlenmesi
- boş
- if
- göstermektedir
- görüntü
- görüntüleri
- darbe
- ithalat
- ithal
- iyileştirmek
- geliştirme
- in
- dahil
- Dahil olmak üzere
- bağımsız
- sanayi
- bilgi
- ilk
- giriş
- girişler
- kurmak
- örnek
- talimatlar
- entegre
- entegre
- niyet
- ilgi alanları
- arayüzey
- Birlikte çalışabilirlik
- içine
- IT
- ONUN
- İş
- Mesleki Öğretiler
- jpg
- json
- dil
- büyük
- son
- başlattı
- ÖĞRENİN
- öğrenme
- uzunluk
- Kaldıraç
- kütüphaneler
- Kütüphane
- yaşam döngüsü
- çizgi
- linux
- Liste
- yük
- yükler
- yerel
- lokal olarak
- yer
- günlüğü
- uzun süreli
- bakıyor
- kayıp
- makine
- makine öğrenme
- yapmak
- yönetmek
- yönetilen
- yönetim
- müdür
- çok
- harita
- matplotlib
- Mayıs..
- anlamına geliyor
- Neden
- Toplandı
- yöntem
- yöntemleri
- Microsoft
- olabilir
- göç
- ML
- MLO'lar
- Moda
- model
- modelleri
- modül
- Daha
- çoğu
- isim
- adlı
- yani
- gerek
- gerekli
- ihtiyaçlar
- net
- ağ
- sinir
- sinir ağı
- defter
- dizi
- nesne
- of
- on
- ONE
- açık
- açık kaynak
- işletme
- Operasyon
- operatörler
- Opsiyonlar
- or
- sipariş
- kuruluşlar
- örgütsel
- organizasyonlar
- OS
- Diğer
- bizim
- dışarı
- sonuçlar
- çıktı
- dışında
- kendi
- paket
- paketlenmiş
- parametre
- parametreler
- Bölüm
- belirli
- Parti
- geçmek
- geçer
- yol
- Yapmak
- izinleri
- platform
- Platformlar
- Platon
- Plato Veri Zekası
- PlatoVeri
- Popüler
- pozitif
- mümkün
- Çivi
- Tahminler
- hazırlık
- Hazırlamak
- önkoşullar
- birincil
- Anapara
- sorunlar
- İşlenmiş
- üretim
- verimlilik
- Ürünler
- profesyonel
- Projeler
- sağlamak
- sağlanan
- sağlayan
- sağlar
- halka açık
- yayınlamak
- Python
- pytorch
- Hızlı
- yükseltilmiş
- rasgele
- hazır
- alır
- Tavsiye edilen
- kayıt
- azaltmak
- başvurmak
- Ne olursa olsun
- bölge
- kayıt
- bağıl
- tekrarlanabilir
- talep
- isteklerinizi
- gerektirir
- gereklidir
- Yer Alan Kurallar
- kaynak
- Kaynaklar
- yanıt
- sonuç
- Ortaya çıkan
- dönüş
- krallar gibi yaşamaya
- Rol
- kök
- koşmak
- koşu
- ishal
- sagemaker
- aynı
- kaydedilmiş
- ölçek
- tarama
- senaryolar
- Bilim
- bilim adamları
- senaryo
- sdk
- ikincil
- Bölüm
- bölümler
- güvenlik
- görmek
- seçim
- SELF
- göndermek
- kıdemli
- hizmet
- Hizmetler
- Oturum
- set
- ayarlar
- kurulum
- Shape
- o
- meli
- şov
- gösterdi
- gösterilen
- Gösteriler
- kapatmak
- kapanıyor
- Basit
- durumlar
- yetenekli
- becerileri
- So
- Yazılım
- çözüm
- Çözümler
- biraz
- Kaynak
- egemenlik
- Belirtilen
- Aşama
- standart
- başlama
- başladı
- başlar
- Basamaklar
- hafızası
- mağaza
- saklı
- Stratejileri
- dizi
- güçlü
- yapı
- stüdyo
- Daha sonra
- Başarılı olarak
- böyle
- destek
- Destek
- Destekler
- Bizi daha iyi tanımak için
- alır
- Hedef
- takım
- Teknik
- Teknolojileri
- Teknoloji
- on
- tensorflow
- test
- test edilmiş
- Test yapmak
- metin
- o
- The
- Kaynak
- ve bazı Asya
- Onları
- kendilerini
- sonra
- Bunlar
- onlar
- şey
- Üçüncü
- Re-Tweet
- zamanlar
- için
- araç
- araçlar
- meşale
- Torchvizyon
- Iz
- Tren
- eğitilmiş
- Eğitim
- Dönüştürmek
- Dönüşüm
- Dönüşüm Stratejisi
- dönüşümler
- Trendler
- tetikleyebilir
- tetiklenir
- gerçek
- denemek
- tip
- benzersiz
- Yüklenen
- Yükleme
- URL
- kullanım
- kullanım durumu
- Kullanılmış
- kullanıcı
- kullanım
- kullanma
- yarar
- DOĞRULA
- değer
- değişken
- çeşitlilik
- satıcıları
- sürümler
- güvenlik açığı
- istemek
- oldu
- yolları
- we
- ağ
- web hizmetleri
- Web tabanlı
- İYİ
- ne zaman
- hangi
- irade
- ile
- içinde
- iş akışları
- çalışır
- yazmak
- yazılı
- X
- henüz
- Sen
- zefirnet
- zip