از آنجایی که مشتریان مهاجرت خود به ابر را تسریع می کنند و کسب و کار خود را متحول می کنند، برخی در موقعیت هایی قرار می گیرند که باید عملیات فناوری اطلاعات را در یک محیط چند ابری مدیریت کنند. برای مثال، ممکن است شرکتی را خریداری کرده باشید که قبلاً روی یک ارائهدهنده ابری متفاوت کار میکرده است، یا ممکن است حجم کاری داشته باشید که از قابلیتهای منحصربهفرد ارائهشده توسط AWS ارزش ایجاد میکند. مثال دیگر، فروشندگان مستقل نرم افزار (ISV) هستند که محصولات و خدمات خود را در پلتفرم های ابری مختلف در دسترس قرار می دهند تا به نفع مشتریان نهایی خود باشند. یا ممکن است یک سازمان در منطقهای فعالیت کند که ارائهدهنده ابر اولیه در دسترس نیست، و به منظور برآورده کردن الزامات حاکمیت داده یا اقامت داده، میتواند از یک ارائهدهنده ابر ثانویه استفاده کند.
در این سناریوها، وقتی شروع به پذیرش هوش مصنوعی مولد، مدلهای زبان بزرگ (LLM) و فناوریهای یادگیری ماشین (ML) به عنوان بخش اصلی کسبوکار خود میکنید، ممکن است به دنبال گزینههایی برای استفاده از آن باشید. AWS AI و ML قابلیت های خارج از AWS در محیط چند ابری. برای مثال، ممکن است بخواهید از آن استفاده کنید آمازون SageMaker برای ساخت و آموزش مدل ML یا استفاده از آمازون SageMaker Jumpstart برای استقرار پایههای از پیش ساخته شده یا مدلهای ML شخص ثالث، که میتوانید با کلیک روی چند دکمه آنها را اجرا کنید. یا ممکن است بخواهید از آن استفاده کنید بستر آمازون برای ایجاد و مقیاسبندی برنامههای هوش مصنوعی مولد، یا میتوانید از آن استفاده کنید خدمات هوش مصنوعی از پیش آموزش دیده AWS، که نیازی به یادگیری مهارت های یادگیری ماشینی ندارند. AWS برای سناریوهایی که سازمان ها می خواهند پشتیبانی می کند مدل خود را به Amazon SageMaker بیاورند or برای پیشبینی به Canvas SageMaker Amazon.
در این پست، یکی از گزینههای متعددی را نشان میدهیم که باید از گستردهترین و عمیقترین مجموعه قابلیتهای AI/ML AWS در یک محیط چند ابری استفاده کنید. ما نشان می دهیم که چگونه می توانید یک مدل ML را در AWS بسازید و آموزش دهید و مدل را در پلتفرم دیگری مستقر کنید. ما مدل را با استفاده از Amazon SageMaker آموزش می دهیم، مصنوعات مدل را در آن ذخیره می کنیم سرویس ذخیره سازی ساده آمازون (Amazon S3)، و مدل را در Azure مستقر و اجرا کنید. اگر از سرویسهای AWS برای ML برای جامعترین مجموعه ویژگیهای آن استفاده میکنید، این رویکرد سودمند است، اما در یکی از موقعیتهایی که در مورد آن بحث کردیم، باید مدل خود را در ارائهدهنده ابری دیگری اجرا کنید.
مفاهیم کلیدی
Amazon SageMaker Studio یک محیط توسعه یکپارچه مبتنی بر وب (IDE) برای یادگیری ماشین است. SageMaker Studio به دانشمندان داده، مهندسان ML و مهندسان داده اجازه می دهد تا داده ها را تهیه کنند، بسازند، آموزش دهند و مدل های ML را در یک رابط وب مستقر کنند. با SageMaker Studio، میتوانید برای هر مرحله از چرخه عمر توسعه ML، از آمادهسازی دادهها گرفته تا ساخت، آموزش، و استقرار مدلهای ML خود، و افزایش بهرهوری تیم علم داده تا ده برابر، به ابزارهای هدفسازی شده دسترسی داشته باشید. نوت بوک های SageMaker Studio شروع سریع و نوت بوک های مشترکی هستند که با ابزارهای ML ساخته شده در SageMaker و سایر خدمات AWS ادغام می شوند.
SageMaker یک سرویس جامع ML است که تحلیلگران کسب و کار، دانشمندان داده و مهندسان MLOps را قادر میسازد تا مدلهای ML را برای هر موردی بدون توجه به تخصص ML بسازند، آموزش دهند و به کار گیرند.
AWS فراهم می کند ظروف یادگیری عمیق (DLC) برای فریمورک های محبوب ML مانند PyTorch، TensorFlow و Apache MXNet، که می توانید با SageMaker برای آموزش و استنباط استفاده کنید. DLC ها به صورت تصاویر داکر در دسترس هستند رجیستری ظروف الاستیک آمازون (Amazon ECR). تصاویر Docker با جدیدترین نسخههای چارچوبهای یادگیری عمیق محبوب و همچنین سایر وابستگیهای مورد نیاز برای آموزش و استنتاج از قبل نصب و آزمایش شدهاند. برای لیست کاملی از تصاویر از پیش ساخته شده Docker که توسط SageMaker مدیریت می شوند، مراجعه کنید مسیرهای رجیستری داکر و کد نمونه. Amazon ECR از اسکن امنیتی پشتیبانی می کند و با آن یکپارچه شده است بازرس آمازون سرویس مدیریت آسیبپذیری برای برآوردن الزامات امنیتی مطابق با تصویر سازمان شما و خودکارسازی اسکن ارزیابی آسیبپذیری. سازمان ها نیز می توانند استفاده کنند AWS Trainium و استنتاج AWS برای قیمت-عملکرد بهتر برای اجرای مشاغل آموزشی ML یا استنتاج.
بررسی اجمالی راه حل
در این بخش، نحوه ساخت و آموزش یک مدل با استفاده از SageMaker و استقرار مدل در توابع Azure را شرح می دهیم. ما از یک نوت بوک SageMaker Studio برای ساخت، آموزش و استقرار مدل استفاده می کنیم. ما مدل را در SageMaker با استفاده از یک تصویر Docker از پیش ساخته شده برای PyTorch آموزش می دهیم. اگرچه ما در این مورد مدل آموزش دیده را در Azure مستقر می کنیم، شما می توانید از همین رویکرد برای استقرار مدل بر روی پلتفرم های دیگر مانند محل یا سایر پلتفرم های ابری استفاده کنید.
هنگامی که ما یک کار آموزشی ایجاد می کنیم، SageMaker نمونه های محاسبه ML را راه اندازی می کند و از کد آموزشی ما و مجموعه داده آموزشی برای آموزش مدل استفاده می کند. این آرتیفکت های مدل به دست آمده و سایر خروجی ها را در یک سطل S3 ذخیره می کند که ما به عنوان ورودی کار آموزشی مشخص می کنیم. وقتی آموزش مدل کامل شد، از تبادل شبکه عصبی را باز کنید (ONNX) کتابخانه زمان اجرا برای صادرات مدل PyTorch به عنوان یک مدل ONNX.
در نهایت، مدل ONNX را به همراه یک کد استنتاج سفارشی که در پایتون به توابع Azure با استفاده از Azure CLI نوشته شده است، مستقر می کنیم. ONNX اکثر موارد را پشتیبانی می کند فریمورک ها و ابزارهای رایج ML. نکته ای که باید به آن توجه داشت این است که تبدیل یک مدل ML به ONNX مفید است اگر بخواهید از چارچوب استقرار هدف متفاوتی مانند PyTorch به TensorFlow استفاده کنید. اگر از چارچوب یکسانی در منبع و هدف استفاده می کنید، نیازی به تبدیل مدل به فرمت ONNX ندارید.
نمودار زیر معماری این رویکرد را نشان می دهد.
ما از یک نوت بوک SageMaker Studio به همراه آن استفاده می کنیم SageMaker Python SDK برای ساخت و آموزش مدل خود. SageMaker Python SDK یک کتابخانه منبع باز برای آموزش و استقرار مدل های ML در SageMaker است. برای جزئیات بیشتر مراجعه کنید یک نوت بوک Amazon SageMaker Studio ایجاد یا باز کنید.
قطعه کد در بخش های زیر در محیط نوت بوک SageMaker Studio با استفاده از تصویر Data Science 3.0 و هسته Python 3.0 تست شده است.
در این راه حل، مراحل زیر را نشان می دهیم:
- یک مدل PyTorch را آموزش دهید.
- مدل PyTorch را به عنوان یک مدل ONNX صادر کنید.
- مدل و کد استنتاج را بسته بندی کنید.
- مدل را در Azure Functions مستقر کنید.
پیش نیازها
شما باید پیش نیازهای زیر را داشته باشید:
- یک حساب AWS
- یک دامنه SageMaker و کاربر SageMaker Studio. برای دستورالعمل های ایجاد اینها، به ورود به دامنه Amazon SageMaker با استفاده از راه اندازی سریع.
- Azure CLI.
- دسترسی به Azure و اعتبار برای یک سرویس دهنده که دارای مجوز برای ایجاد و مدیریت توابع Azure است.
آموزش یک مدل با PyTorch
در این بخش، مراحل آموزش یک مدل PyTorch را به تفصیل شرح می دهیم.
وابستگی ها را نصب کنید
کتابخانه ها را برای انجام مراحل مورد نیاز برای آموزش مدل و استقرار مدل نصب کنید:
pip install torchvision onnx onnxruntime
راه اندازی اولیه را کامل کنید
ما با واردات شروع می کنیم AWS SDK برای پایتون (Boto3) و SageMaker Python SDK. به عنوان بخشی از تنظیمات، موارد زیر را تعریف می کنیم:
- یک شی جلسه که روشهای راحتی را در زمینه SageMaker و حساب خود ما ارائه میکند.
- نقش SageMaker که ARN برای واگذاری مجوزها به سرویس آموزشی و میزبانی استفاده میکند. ما به این نیاز داریم تا این سرویس ها بتوانند به سطل های S3 که داده ها و مدل ما در آن ذخیره می شوند دسترسی داشته باشند. برای دستورالعملهای ایجاد نقشی که نیازهای کسبوکار شما را برآورده میکند، به نقش های SageMaker. برای این پست، ما از همان نقش اجرایی مانند نمونه نوت بوک استودیو خود استفاده می کنیم. ما با فراخوانی این نقش را دریافت می کنیم
sagemaker.get_execution_role()
. - منطقه پیشفرض که در آن کار آموزشی ما اجرا میشود.
- سطل پیش فرض و پیشوندی که برای ذخیره خروجی مدل استفاده می کنیم.
کد زیر را ببینید:
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"
مجموعه داده آموزشی را ایجاد کنید
ما از مجموعه داده موجود در سطل عمومی استفاده می کنیم sagemaker-example-files-prod-{region}
. مجموعه داده شامل فایل های زیر است:
- train-images-idx3-ubyte.gz - حاوی تصاویر مجموعه آموزشی
- train-labels-idx1-ubyte.gz - حاوی برچسب های مجموعه آموزشی
- t10k-images-idx3-ubyte.gz - حاوی تصاویر مجموعه تست
- t10k-labels-idx1-ubyte.gz - حاوی برچسب های مجموعه تست
ما با استفاده ازtorchvision.datasets
ماژول برای دانلود داده ها از سطل عمومی به صورت محلی قبل از آپلود آن در سطل داده آموزشی ما. ما این مکان سطل را به عنوان ورودی برای کار آموزش SageMaker ارسال می کنیم. اسکریپت آموزشی ما از این مکان برای دانلود و آماده سازی داده های آموزشی و سپس آموزش مدل استفاده می کند. کد زیر را ببینید:
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,))] ),
)
اسکریپت آموزشی را ایجاد کنید
با SageMaker، می توانید مدل خود را با استفاده از آن بیاورید حالت اسکریپت. با حالت اسکریپت، می توانید از ظروف SageMaker از پیش ساخته شده استفاده کنید و اسکریپت آموزشی خود را که دارای تعریف مدل است، همراه با کتابخانه ها و وابستگی های سفارشی ارائه دهید. را SageMaker Python SDK اسکریپت ما را به عنوان entry_point
به کانتینر، که تابع قطار را از اسکریپت ارائه شده برای آموزش مدل ما بارگیری و اجرا می کند.
وقتی آموزش کامل شد، SageMaker خروجی مدل را در سطل S3 که به عنوان پارامتری برای کار آموزشی ارائه کردیم، ذخیره میکند.
کد آموزشی ما از موارد زیر اقتباس شده است اسکریپت مثال PyTorch. گزیده زیر از کد، تعریف مدل و تابع قطار را نشان می دهد:
# 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
مدل را آموزش دهید
اکنون که محیط خود را راه اندازی کرده ایم و مجموعه داده ورودی و اسکریپت آموزشی سفارشی خود را ایجاد کرده ایم، می توانیم آموزش مدل را با استفاده از SageMaker شروع کنیم. ما از تخمینگر PyTorch در SageMaker Python SDK برای شروع یک کار آموزشی در SageMaker استفاده میکنیم. پارامترهای مورد نیاز را به تخمینگر منتقل می کنیم و متد fit را فراخوانی می کنیم. هنگامی که ما fit را در تخمینگر PyTorch فراخوانی میکنیم، SageMaker یک کار آموزشی را با استفاده از اسکریپت ما به عنوان کد آموزشی شروع میکند:
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}"
})
مدل آموزش دیده را به عنوان یک مدل ONNX صادر کنید
پس از اتمام آموزش و ذخیره مدل ما در مکان از پیش تعریف شده در Amazon S3، مدل را با استفاده از زمان اجرا ONNX به یک مدل ONNX صادر می کنیم.
ما کد صادرات مدل خود به ONNX را در اسکریپت آموزشی خود قرار می دهیم تا پس از اتمام آموزش اجرا شود.
PyTorch با اجرای مدل با استفاده از ورودی ما و ثبت ردی از عملگرهای مورد استفاده برای محاسبه خروجی، مدل را به ONNX صادر می کند. ما از یک ورودی تصادفی از نوع مناسب با PyTorch استفاده می کنیم torch.onnx.export
تابع صادرات مدل به ONNX. همچنین اولین بعد را در ورودی خود به صورت پویا مشخص می کنیم تا مدل ما یک متغیر را بپذیرد batch_size
ورودی ها در طول استنتاج
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 Cognitive Toolkit (CNTK) و غیره را فراهم میکند. این بدان معنی است که شما می توانید از هر یک از این چارچوب ها برای آموزش مدل استفاده کنید و متعاقباً مدل های از پیش آموزش دیده را در قالب ONNX صادر کنید. با صادرات مدل به ONNX، از مزایای انتخاب گسترده تری از دستگاه ها و پلتفرم های استقرار بهره مند می شوید.
آرتیفکت های مدل را دانلود و استخراج کنید
مدل ONNX که اسکریپت آموزشی ما ذخیره کرده است توسط SageMaker در آمازون S3 در محل خروجی که هنگام شروع کار آموزشی مشخص کردیم کپی شده است. مصنوعات مدل به صورت یک فایل بایگانی فشرده به نام ذخیره می شوند model.tar.gz
. ما این فایل بایگانی را در یک دایرکتوری محلی در نمونه نوت بوک استودیو خود دانلود می کنیم و مصنوعات مدل، یعنی مدل ONNX را استخراج می کنیم.
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 را تأیید کنید
مدل ONNX به فایلی با نام صادر می شود mnist-pytorch.onnx
توسط اسکریپت آموزشی ما پس از دانلود و استخراج این فایل، می توانیم به صورت اختیاری مدل ONNX را با استفاده از onnx.checker
مدول. این check_model
تابع در این ماژول سازگاری یک مدل را بررسی می کند. در صورت عدم موفقیت آزمون، استثناء مطرح می شود.
import onnx onnx_model = onnx.load("mnist-pytorch.onnx")
onnx.checker.check_model(onnx_model)
مدل و کد استنتاج را بسته بندی کنید
برای این پست، ما از استقرار .zip برای توابع Azure استفاده می کنیم. در این روش، مدل، کد همراه و تنظیمات Azure Functions خود را در یک فایل zip. بسته بندی می کنیم و آن را در Azure Functions منتشر می کنیم. کد زیر ساختار دایرکتوری بسته استقرار ما را نشان می دهد:
mnist-onnx
├── function_app.py
├── model
│ └── mnist-pytorch.onnx
└── requirements.txt
وابستگی ها را فهرست کنید
ما وابستگی های کد استنتاج خود را در فهرست فهرست می کنیم requirements.txt
فایل در ریشه بسته ما. زمانی که بسته را منتشر می کنیم، از این فایل برای ساخت محیط Azure Functions استفاده می شود.
azure-functions
numpy
onnxruntime
کد استنتاج بنویسید
ما از Python برای نوشتن کد استنتاج زیر استفاده می کنیم، با استفاده از کتابخانه ONNX Runtime برای بارگذاری مدل و اجرای استنتاج. این به برنامه Azure Functions دستور می دهد تا نقطه پایانی را در دسترس قرار دهد /classify
مسیر نسبی
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 )
مدل را در Azure Functions مستقر کنید
اکنون که کد را در قالب .zip مورد نیاز بسته بندی کرده ایم، آماده انتشار آن در Azure Function هستیم. ما این کار را با استفاده از Azure CLI، یک ابزار خط فرمان برای ایجاد و مدیریت منابع Azure انجام می دهیم. Azure CLI را با کد زیر نصب کنید:
!pip install -q azure-cli
سپس مراحل زیر را انجام دهید:
- ورود به Azure:
!az login
- پارامترهای ایجاد منبع را تنظیم کنید:
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 Functions به همراه منابع پیش نیاز استفاده کنید:
!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 را طوری تنظیم کنید که وقتی بسته توابع را اجرا می کنیم،
requirements.txt
فایل برای ایجاد وابستگی های برنامه ما استفاده می شود:!az functionapp config appsettings set --name {function_app} --resource-group {resource_group_name} --settings @./functionapp/settings.json
- برنامه Functions را برای اجرای مدل Python v2 پیکربندی کنید و روی کدی که پس از استقرار .zip دریافت میکند ساختنی انجام دهید:
{ "AzureWebJobsFeatureFlags": "EnableWorkerIndexing", "SCM_DO_BUILD_DURING_DEPLOYMENT": true }
- پس از اینکه گروه منبع، محفظه ذخیرهسازی و برنامه توابع را با پیکربندی مناسب داشتیم، کد را در برنامه Functions منتشر کنید:
!az functionapp deployment source config-zip -g {resource_group_name} -n {function_app} --src {function_archive} --build-remote true
مدل را تست کنید
ما مدل ML را در Azure Functions به عنوان یک راهانداز HTTP مستقر کردهایم، به این معنی که میتوانیم از URL برنامه Functions برای ارسال درخواست HTTP به تابع برای فراخوانی تابع و اجرای مدل استفاده کنیم.
برای تهیه ورودی، فایلهای تصاویر آزمایشی را از سطل فایلهای نمونه SageMaker دانلود کرده و مجموعهای از نمونهها را با فرمت مورد نیاز مدل آماده کنید:
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))
از کتابخانه درخواست ها برای ارسال درخواست پست به نقطه پایانی استنتاج با ورودی های نمونه استفاده کنید. نقطه پایانی استنتاج فرمت را می گیرد که در کد زیر نشان داده شده است:
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']
پاک کردن
وقتی آزمایش مدل را تمام کردید، گروه منبع را به همراه منابع موجود، از جمله محفظه ذخیره سازی و برنامه توابع حذف کنید:
!az group delete --name {resource_group_name} --yes
علاوه بر این، توصیه می شود برای کاهش هزینه ها، منابع غیرفعال را در SageMaker Studio خاموش کنید. برای اطلاعات بیشتر مراجعه کنید با خاموش کردن خودکار منابع غیرفعال در Amazon SageMaker Studio در هزینه ها صرفه جویی کنید.
نتیجه
در این پست نشان دادیم که چگونه می توانید یک مدل ML را با SageMaker بسازید و آموزش دهید و آن را در ارائه دهنده ابری دیگر مستقر کنید. در راه حل، ما از نوت بوک SageMaker Studio استفاده کردیم، اما برای بارهای کاری تولید، استفاده از آن را توصیه کردیم MLO ها برای ایجاد گردش کار آموزشی تکرارپذیر برای تسریع توسعه و استقرار مدل.
این پست همه راههای ممکن برای استقرار و اجرای یک مدل در یک محیط چند ابری را نشان نمیدهد. به عنوان مثال، شما همچنین می توانید مدل خود را به همراه کد استنتاج و کتابخانه های وابستگی در یک تصویر ظرف بسته بندی کنید تا مدل را به عنوان یک برنامه کانتینری در هر پلتفرمی اجرا کنید. برای کسب اطلاعات بیشتر در مورد این رویکرد به با استفاده از Amazon CodeCatalyst برنامه های کانتینری را در یک محیط چند ابری مستقر کنید. هدف این پست نشان دادن این است که چگونه سازمان ها می توانند از قابلیت های AWS AI/ML در یک محیط چند ابری استفاده کنند.
درباره نویسندگان
راجا وایدیاناتان یک معمار راه حل در AWS است که از مشتریان خدمات مالی جهانی پشتیبانی می کند. راجا با مشتریان کار می کند تا راه حل هایی را برای مشکلات پیچیده با تأثیر مثبت بلندمدت بر تجارت آنها طراحی کند. او یک مهندس قوی حرفهای است که در استراتژی فناوری اطلاعات، مدیریت دادههای سازمانی و معماری برنامهها مهارت دارد و علاقههای خاصی به تجزیه و تحلیل و یادگیری ماشین دارد.
آماندیپ باجوا یک معمار ارشد راه حل در AWS است که از شرکت های خدمات مالی پشتیبانی می کند. او به سازمان ها کمک می کند تا با شناسایی استراتژی تحول ابری مناسب بر اساس روندهای صنعت و اولویت های سازمانی، به نتایج تجاری خود دست یابند. برخی از زمینه هایی که آماندیپ در مورد آنها مشاوره می کند عبارتند از مهاجرت ابری، استراتژی ابری (شامل ترکیبی و چند ابری)، تحول دیجیتال، داده ها و تجزیه و تحلیل، و به طور کلی فناوری.
پرما ایر مدیر ارشد حساب فنی برای پشتیبانی AWS Enterprise است. او با مشتریان خارجی در پروژه های مختلف کار می کند و به آنها کمک می کند ارزش راه حل های خود را هنگام استفاده از AWS بهبود بخشند.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- PlatoData.Network Vertical Generative Ai. به خودت قدرت بده دسترسی به اینجا.
- PlatoAiStream. هوش وب 3 دانش تقویت شده دسترسی به اینجا.
- PlatoESG. کربن ، CleanTech، انرژی، محیط، خورشیدی، مدیریت پسماند دسترسی به اینجا.
- PlatoHealth. هوش بیوتکنولوژی و آزمایشات بالینی. دسترسی به اینجا.
- منبع: https://aws.amazon.com/blogs/machine-learning/train-and-deploy-ml-models-in-a-multicloud-environment-using-amazon-sagemaker/
- : دارد
- :است
- :نه
- :جایی که
- $UP
- 1
- 10
- 100
- 13
- 25
- 28
- 32
- 7
- 9
- a
- درباره ما
- شتاب دادن
- قبول می کند
- دسترسی
- حساب
- رسیدن
- به دست آورد
- مزیت - فایده - سود - منفعت
- پس از
- AI
- AI / ML
- معرفی
- اجازه می دهد تا
- در امتداد
- قبلا
- همچنین
- هر چند
- آمازون
- آمازون SageMaker
- آمازون SageMaker Canvas
- Amazon SageMaker Studio
- آمازون خدمات وب
- an
- تحلیلگران
- علم تجزیه و تحلیل
- و
- ناشناس
- دیگر
- هر
- آپاچی
- نرم افزار
- کاربرد
- برنامه های کاربردی
- روش
- مناسب
- معماری
- بایگانی
- هستند
- مناطق
- AS
- ارزیابی
- At
- خودکار بودن
- بطور خودکار
- در دسترس
- AWS
- تبرها
- لاجوردی
- مستقر
- BE
- بوده
- قبل از
- شروع
- مفید
- سود
- بهتر
- میان
- هر دو
- به ارمغان بیاورد
- گسترده تر
- ساختن
- بنا
- کسب و کار
- اما
- by
- صدا
- نام
- فراخوانی
- CAN
- نقاشی
- قابلیت های
- حمل
- مورد
- چک
- کلاس
- طبقه بندی کنید
- کلیک
- ابر
- رمز
- شناختی
- مشترک
- شرکت
- کامل
- پیچیده
- انطباق
- جامع
- محاسبه
- پیکر بندی
- موجود
- ظرف
- ظروف
- شامل
- زمینه
- راحتی
- تبدیل
- تبدیل
- هسته
- هزینه
- میتوانست
- ایجاد
- ایجاد شده
- ایجاد
- ایجاد
- مجوزها و اعتبارات
- سفارشی
- مشتریان
- داده ها
- مدیریت اطلاعات
- آماده سازی داده ها
- علم اطلاعات
- مجموعه داده ها
- عمیق
- یادگیری عمیق
- عمیق ترین
- به طور پیش فرض
- تعريف كردن
- تعریف
- نشان دادن
- وابستگی
- وابستگی
- گسترش
- مستقر
- استقرار
- گسترش
- توصیف
- جزئیات
- جزئیات
- پروژه
- دستگاه
- دستگاه ها
- مختلف
- دیجیتال
- دگرگونی های دیجیتال
- رقم
- بعد
- بحث کردیم
- do
- کارگر بارانداز
- دامنه
- انجام شده
- آیا
- پایین
- دانلود
- در طی
- پویا
- e
- دیگر
- در اغوش گرفتن
- را قادر می سازد
- را قادر می سازد
- پایان
- نقطه پایانی
- مهندسی
- مورد تأیید
- سرمایه گذاری
- شرکت
- محیط
- دوره
- دوره ها
- هر
- مثال
- جز
- استثنا
- اعدام
- تخصص
- صادرات
- صادرات
- خارجی
- عصاره
- نتواند
- امکانات
- کمی از
- پرونده
- فایل ها
- مالی
- خدمات مالی
- پیدا کردن
- نام خانوادگی
- مناسب
- پیروی
- برای
- قالب
- پایه
- چارچوب
- چارچوب
- از جانب
- تابع
- توابع
- سوالات عمومی
- تولید می کند
- مولد
- هوش مصنوعی مولد
- دریافت کنید
- جهانی
- مالی جهانی
- گروه
- آیا
- he
- کمک
- کمک می کند
- میزبانی وب
- چگونه
- چگونه
- HTML
- HTTP
- HTTPS
- ترکیبی
- ID
- شناسایی
- آرام
- if
- نشان می دهد
- تصویر
- تصاویر
- تأثیر
- واردات
- واردات
- بهبود
- بهبود
- in
- شامل
- از جمله
- مستقل
- صنعت
- اطلاعات
- اول
- ورودی
- ورودی
- نصب
- نمونه
- دستورالعمل
- ادغام
- یکپارچه
- قصد
- منافع
- رابط
- قابلیت همکاری
- به
- IT
- ITS
- کار
- شغل ها
- JPG
- json
- زبان
- بزرگ
- آخرین
- راه اندازی
- یاد گرفتن
- یادگیری
- طول
- قدرت نفوذ
- کتابخانه ها
- کتابخانه
- wifecycwe
- لاین
- لینوکس
- فهرست
- بار
- بارهای
- محلی
- به صورت محلی
- محل
- ورود به سیستم
- دراز مدت
- به دنبال
- خاموش
- دستگاه
- فراگیری ماشین
- ساخت
- مدیریت
- اداره می شود
- مدیریت
- مدیر
- بسیاری
- نقشه
- ماتپلوتلب
- ممکن است..
- به معنی
- دیدار
- ملاقات
- روش
- روش
- مایکروسافت
- قدرت
- مهاجرت
- ML
- MLO ها
- حالت
- مدل
- مدل
- ماژول ها
- بیش
- اکثر
- نام
- تحت عنوان
- از جمله
- نیاز
- ضروری
- نیازهای
- خالص
- شبکه
- عصبی
- شبکه های عصبی
- دفتر یادداشت
- بی حس
- هدف
- of
- on
- ONE
- باز کن
- منبع باز
- عملیاتی
- عملیات
- اپراتور
- گزینه
- or
- سفارش
- کدام سازمان ها
- سازمانی
- سازمان های
- OS
- دیگر
- ما
- خارج
- نتایج
- تولید
- خارج از
- خود
- بسته
- بسته بندی
- پارامتر
- پارامترهای
- بخش
- ویژه
- حزب
- عبور
- عبور می کند
- مسیر
- انجام
- مجوز
- سکو
- سیستم عامل
- افلاطون
- هوش داده افلاطون
- PlatoData
- محبوب
- مثبت
- ممکن
- پست
- پیش بینی
- تهیه
- آماده
- پیش نیازها
- اصلی
- اصلی
- مشکلات
- فرآوری شده
- تولید
- بهره وری
- محصولات
- حرفه ای
- پروژه ها
- ارائه
- ارائه
- ارائه دهنده
- فراهم می کند
- عمومی
- منتشر کردن
- پــایتــون
- مارماهی
- سریع
- مطرح شده
- تصادفی
- اماده
- دریافت
- توصیه می شود
- ضبط
- كاهش دادن
- مراجعه
- بدون در نظر گرفتن
- منطقه
- رجیستری
- نسبی
- قابل تکرار
- درخواست
- درخواست
- نیاز
- ضروری
- مورد نیاز
- منابع
- منابع
- پاسخ
- نتیجه
- نتیجه
- برگشت
- راست
- نقش
- ریشه
- دویدن
- در حال اجرا
- اجرا می شود
- حکیم ساز
- همان
- نگهداری می شود
- مقیاس
- پویش
- سناریوها
- علم
- دانشمندان
- خط
- sdk
- ثانوی
- بخش
- بخش
- تیم امنیت لاتاری
- دیدن
- انتخاب
- خود
- ارسال
- ارشد
- سرویس
- خدمات
- جلسه
- تنظیم
- تنظیمات
- برپایی
- شکل
- او
- باید
- نشان
- نشان داد
- نشان داده شده
- نشان می دهد
- خاموش
- بستن
- ساده
- شرایط
- ماهر
- مهارت ها
- So
- نرم افزار
- راه حل
- مزایا
- برخی از
- منبع
- حق حاکمیت
- مشخص شده
- صحنه
- استاندارد
- شروع
- آغاز شده
- شروع می شود
- مراحل
- ذخیره سازی
- opbevare
- ذخیره شده
- استراتژی
- رشته
- قوی
- ساختار
- استودیو
- متعاقبا
- موفقیت
- چنین
- پشتیبانی
- حمایت از
- پشتیبانی از
- گرفتن
- طول می کشد
- هدف
- تیم
- فنی
- فن آوری
- پیشرفته
- ده
- جریان تنسور
- آزمون
- آزمایش
- تست
- متن
- که
- La
- منبع
- شان
- آنها
- خودشان
- سپس
- اینها
- آنها
- چیز
- سوم
- این
- بار
- به
- ابزار
- ابزار
- مشعل
- چشم انداز مشعل
- پی گیری
- قطار
- آموزش دیده
- آموزش
- دگرگون کردن
- دگرگونی
- استراتژی تحول
- تبدیل می شود
- روند
- ماشه
- باعث شد
- درست
- امتحان
- نوع
- منحصر به فرد
- آپلود شده
- آپلود
- URL
- استفاده کنید
- مورد استفاده
- استفاده
- کاربر
- استفاده
- با استفاده از
- سودمندی
- تصدیق
- ارزش
- متغیر
- تنوع
- فروشندگان
- نسخه
- آسیب پذیری
- می خواهم
- بود
- راه
- we
- وب
- خدمات وب
- مبتنی بر وب
- خوب
- چه زمانی
- که
- اراده
- با
- در داخل
- گردش کار
- با این نسخهها کار
- نوشتن
- کتبی
- X
- هنوز
- شما
- شما
- زفیرنت
- زیپ