כאשר לקוחות מאיצים את ההגירות שלהם לענן ומשנים את העסק שלהם, חלקם מוצאים את עצמם במצבים שבהם עליהם לנהל את פעולות ה-IT בסביבה מרובת עננים. לדוגמה, ייתכן שרכשת חברה שכבר פעלה על ספק ענן אחר, או שיש לך עומס עבודה שמייצר ערך מיכולות ייחודיות שמספקת AWS. דוגמה נוספת היא ספקי תוכנה עצמאיים (ISVs) המעמידים את המוצרים והשירותים שלהם לזמינים בפלטפורמות ענן שונות לטובת לקוחות הקצה שלהם. לחלופין, ייתכן שארגון פועל באזור שבו ספק ענן ראשי אינו זמין, וכדי לעמוד בדרישות ריבונות הנתונים או תושבות הנתונים, הם יכולים להשתמש בספק ענן משני.
בתרחישים אלה, כאשר אתה מתחיל לאמץ AI יצירתי, מודלים של שפות גדולות (LLMs) וטכנולוגיות למידת מכונה (ML) כחלק מרכזי בעסק שלך, ייתכן שאתה מחפש אפשרויות לנצל AWS AI ו-ML יכולות מחוץ ל-AWS בסביבה מרובת עננים. לדוגמה, ייתכן שתרצה לעשות שימוש אמזון SageMaker לבנות ולהכשיר מודל ML, או להשתמש אמזון SageMaker Jumpstart לפרוס דגמי ML מובנים מראש או של צד שלישי, שתוכלו לפרוס בלחיצת כמה כפתורים. או אולי תרצה לנצל סלע אמזון כדי לבנות ולהרחיב יישומי AI גנרטיביים, או שאתה יכול למנף שירותי AI שהוכשרו מראש של AWS, שאינם דורשים ממך ללמוד מיומנויות למידת מכונה. AWS מספקת תמיכה לתרחישים שבהם ארגונים רוצים להביא דגם משלהם לאמזון SageMaker or לתוך Amazon SageMaker Canvas עבור תחזיות.
בפוסט זה, אנו מדגימים את אחת מהאפשרויות הרבות שיש לך כדי לנצל את מערך יכולות AI/ML הרחב והעמוק ביותר של AWS בסביבת רב עננים. אנו מראים כיצד ניתן לבנות ולהכשיר מודל ML ב-AWS ולפרוס את המודל בפלטפורמה אחרת. אנו מאמנים את הדגם באמצעות Amazon SageMaker, מאחסנים בו את חפצי הדגם שירות אחסון פשוט של אמזון (Amazon S3), לפרוס ולהריץ את המודל ב-Azure. גישה זו מועילה אם אתה משתמש בשירותי AWS עבור ML עבור מערך התכונות המקיף ביותר שלו, ובכל זאת אתה צריך להפעיל את המודל שלך בספק ענן אחר באחד מהמצבים שדיברנו עליהם.
מושגי מפתח
סטודיו SageMaker של אמזון היא סביבת פיתוח משולבת מבוססת אינטרנט (IDE) ללמידת מכונה. SageMaker Studio מאפשר למדעני נתונים, מהנדסי ML ומהנדסי נתונים להכין נתונים, לבנות, לאמן ולפרוס מודלים של ML בממשק אינטרנט אחד. עם SageMaker Studio, אתה יכול לגשת לכלים ייעודיים עבור כל שלב במחזור החיים של פיתוח ML, מהכנת נתונים ועד בנייה, הדרכה ופריסה של מודלים ML שלך, שיפור פרודוקטיביות צוות מדעי הנתונים עד פי עשרה. מחברות SageMaker Studio הן מחברות שיתופיות להתחלה מהירה המשתלבות עם כלי ML ייעודיים ב- SageMaker ובשירותי AWS אחרים.
SageMaker הוא שירות ML מקיף המאפשר לאנליסטים עסקיים, מדעני נתונים ומהנדסי MLOps לבנות, לאמן ולפרוס מודלים של ML לכל מקרה שימוש, ללא קשר למומחיות ML.
AWS מספקת מיכלי למידה עמוקה (DLCs) עבור מסגרות ML פופולריות כגון PyTorch, TensorFlow ו- Apache MXNet, שבהן אתה יכול להשתמש עם SageMaker להדרכה והסקת מסקנות. DLCs זמינים כתמונות Docker ב מרשם מיכל אלסטי של אמזון (Amazon ECR). התמונות של Docker מותקנות מראש ונבדקות עם הגירסאות העדכניות ביותר של מסגרות למידה עמוקות פופולריות, כמו גם תלויות אחרות הדרושות לאימון והסקת מסקנות. לרשימה מלאה של תמונות Docker שנבנו מראש המנוהלות על ידי SageMaker, ראה נתיבי רישום של Docker וקוד לדוגמה. Amazon ECR תומך בסריקת אבטחה, ומשולב עם מפקח אמזון שירות ניהול נקודות תורפה כדי לעמוד בדרישות האבטחה של תאימות התמונה של הארגון שלך, ולהפוך את סריקת הערכת נקודות התורפה לאוטומטית. ארגונים יכולים גם להשתמש AWS Trainium ו Afer Inferentia לביצועי מחיר טובים יותר עבור הפעלת עבודות אימון ML או מסקנות.
סקירת פתרונות
בסעיף זה, אנו מתארים כיצד לבנות ולאמן מודל באמצעות SageMaker ולפרוס את המודל ל-Azure Functions. אנו משתמשים במחברת SageMaker Studio כדי לבנות, לאמן ולפרוס את המודל. אנו מאמנים את הדגם ב- SageMaker באמצעות תמונת Docker בנויה מראש עבור PyTorch. למרות שאנו פורסים את המודל המאומן ל-Azure במקרה זה, אתה יכול להשתמש באותה גישה כדי לפרוס את המודל על פלטפורמות אחרות כגון ב-premises או פלטפורמות ענן אחרות.
כאשר אנו יוצרים עבודת אימון, SageMaker משיקה את מופעי המחשוב של ML ומשתמשת בקוד ההדרכה שלנו ובמערך ההדרכה כדי לאמן את המודל. זה שומר את חפצי הדגם המתקבלים ופלט אחר בדלי S3 שאנו מציינים כקלט לעבודת ההדרכה. כאשר הכשרת מודלים מסתיימת, אנו משתמשים ב- פתח רשת Exchange עצבית (ONNX) ספריית זמן ריצה לייצוא מודל PyTorch כדגם ONNX.
לבסוף, אנו פורסים את מודל ה-ONNX יחד עם קוד הסקה מותאם אישית שנכתב ב-Python to Azure Functions באמצעות Azure CLI. ONNX תומך ברוב ה מסגרות וכלים ML הנפוצים. דבר אחד שיש לציין הוא שהמרת מודל ML ל- ONNX שימושית אם אתה רוצה להשתמש במסגרת פריסת יעד אחרת, כגון PyTorch ל- TensorFlow. אם אתה משתמש באותה מסגרת גם במקור וגם ביעד, אינך צריך להמיר את המודל לפורמט ONNX.
התרשים הבא ממחיש את הארכיטקטורה של גישה זו.
אנו משתמשים במחברת SageMaker Studio יחד עם SageMaker Python SDK לבנות ולהכשיר את המודל שלנו. SageMaker Python SDK היא ספריית קוד פתוח להדרכה ופריסה של מודלים של ML ב- SageMaker. לפרטים נוספים, עיין ב צור או פתח מחברת אמזון SageMaker Studio.
קטעי הקוד בסעיפים הבאים נבדקו בסביבת מחברת SageMaker Studio באמצעות תמונת Data Science 3.0 וליבת Python 3.0.
בפתרון זה, אנו מדגימים את השלבים הבאים:
- אימון דגם PyTorch.
- ייצא את מודל PyTorch כדגם ONNX.
- ארוז את הדגם וקוד ההסקה.
- פרוס את המודל ל-Azure Functions.
תנאים מוקדמים
אתה צריך להיות בעל הדרישות המוקדמות הבאות:
- חשבון AWS.
- תחום SageMaker ומשתמש SageMaker Studio. להנחיות ליצירת אלה, עיין ב נכלל ב-Amazon SageMaker Domain באמצעות הגדרה מהירה.
- Azure CLI.
- גישה ל-Azure ואישורים עבור מנהל שירות בעל הרשאות ליצור ולנהל פונקציות Azure.
אימון דגם עם PyTorch
בסעיף זה נפרט את השלבים לאימון מודל PyTorch.
התקן תלות
התקן את הספריות כדי לבצע את השלבים הנדרשים לאימון מודלים ופריסה של מודלים:
pip install torchvision onnx onnxruntime
השלם את ההגדרה הראשונית
אנו מתחילים בייבוא של AWS SDK עבור Python (Boto3) ו SageMaker Python SDK. כחלק מההגדרה, אנו מגדירים את הדברים הבאים:
- אובייקט הפעלה המספק שיטות נוחות בהקשר של SageMaker והחשבון שלנו.
- תפקיד של SageMaker ש-ARN השתמש כדי להאציל הרשאות לשירות ההדרכה והאירוח. אנחנו צריכים את זה כדי ששירותים אלה יוכלו לגשת לדלי S3 שבהם מאוחסנים הנתונים והמודל שלנו. להנחיות ליצירת תפקיד העונה על הצרכים העסקיים שלך, עיין ב תפקידי SageMaker. עבור פוסט זה, אנו משתמשים באותו תפקיד ביצוע כמו מופע מחברת Studio שלנו. אנחנו מקבלים את התפקיד הזה על ידי התקשרות
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 מעביר את התסריט שלנו בתור an 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. אנו מעבירים את הפרמטרים הנדרשים לאומדן וקוראים לשיטת ההתאמה. כאשר אנו קוראים התאמה במעריך 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
לאחר השלמת ההדרכה והמודל שלנו נשמר במיקום המוגדר מראש באמזון 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 Functions. בשיטה זו אנו אורזים את המודל שלנו, הקוד הנלווה והגדרות 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 כדי לכתוב את קוד ההסקה הבא, תוך שימוש בספריית ה-Runtime של ONNX כדי לטעון את המודל שלנו ולהפעיל מסקנות. זה מורה לאפליקציית 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 Functions. אנו עושים זאת באמצעות 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 Functions כך שכאשר אנו פורסים את חבילת Functions, ה-
requirements.txt
הקובץ משמש לבניית התלות באפליקציות שלנו:!az functionapp config appsettings set --name {function_app} --resource-group {resource_group_name} --settings @./functionapp/settings.json
- הגדר את אפליקציית הפונקציות כדי להפעיל את מודל Python v2 ולבצע בנייה על הקוד שהוא מקבל לאחר פריסת .zip:
{ "AzureWebJobsFeatureFlags": "EnableWorkerIndexing", "SCM_DO_BUILD_DURING_DEPLOYMENT": true }
- לאחר שיש לנו את קבוצת המשאבים, מיכל האחסון ואפליקציית הפונקציות עם התצורה הנכונה, פרסם את הקוד לאפליקציית הפונקציות:
!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, אך לעומסי עבודה של ייצור, המלצנו להשתמש MLOps כדי ליצור זרימות עבודה הניתנות לשחזור כדי להאיץ את הפיתוח והפריסה של המודל.
פוסט זה לא הראה את כל הדרכים האפשריות לפרוס ולהפעיל מודל בסביבת מולטי ענן. לדוגמה, אתה יכול גם לארוז את המודל שלך לתוך תמונת קונטיינר יחד עם קוד הסקה וספריות תלות כדי להפעיל את המודל כאפליקציה מכוללת בכל פלטפורמה. למידע נוסף על גישה זו, עיין ב פרוס יישומי מיכל בסביבת ריבוי עננים באמצעות Amazon CodeCatalyst. כוונת הפוסט היא להראות כיצד ארגונים יכולים להשתמש ביכולות AWS AI/ML בסביבת רב עננים.
על המחברים
ראג'ה וידיאנתן הוא אדריכל פתרונות ב-AWS התומך בלקוחות שירותים פיננסיים גלובליים. ראג'ה עובדת עם לקוחות כדי לתכנן פתרונות לבעיות מורכבות עם השפעה חיובית ארוכת טווח על העסק שלהם. הוא מקצוען הנדסי חזק המיומן באסטרטגיית IT, ניהול נתונים ארגוניים וארכיטקטורת יישומים, עם תחומי עניין מיוחדים באנליטיקה ולמידת מכונה.
אמנדיפ באג'ווה הוא אדריכל פתרונות בכיר ב-AWS התומך בארגונים של שירותים פיננסיים. הוא עוזר לארגונים להשיג את התוצאות העסקיות שלהם על ידי זיהוי אסטרטגיית הטרנספורמציה בענן המתאימה בהתבסס על מגמות בתעשייה וסדרי עדיפויות ארגוניים. חלק מהתחומים שבהם Amandeep מייעצת הם העברת ענן, אסטרטגיית ענן (כולל היברידי ורב ענן), טרנספורמציה דיגיטלית, נתונים ואנליטיקה וטכנולוגיה בכלל.
פרמה אייר הוא מנהל חשבונות טכניים בכיר עבור התמיכה הארגונית של AWS. היא עובדת עם לקוחות חיצוניים במגוון פרויקטים, ועוזרת להם לשפר את הערך של הפתרונות שלהם בעת שימוש ב-AWS.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- PlatoData.Network Vertical Generative Ai. העצים את עצמך. גישה כאן.
- PlatoAiStream. Web3 Intelligence. הידע מוגבר. גישה כאן.
- PlatoESG. פחמן, קלינטק, אנרגיה, סביבה, שמש, ניהול פסולת. גישה כאן.
- PlatoHealth. מודיעין ביוטכנולוגיה וניסויים קליניים. גישה כאן.
- מקור: https://aws.amazon.com/blogs/machine-learning/train-and-deploy-ml-models-in-a-multicloud-environment-using-amazon-sagemaker/
- :יש ל
- :הוא
- :לֹא
- :איפה
- $ למעלה
- 1
- 10
- 100
- 13
- 25
- 28
- 32
- 7
- 9
- a
- אודות
- להאיץ
- מקבל
- גישה
- חֶשְׁבּוֹן
- להשיג
- נרכש
- יתרון
- לאחר
- AI
- AI / ML
- תעשיות
- מאפשר
- לאורך
- כְּבָר
- גם
- למרות
- אמזון בעברית
- אמזון SageMaker
- אמזון SageMaker Canvas
- סטודיו SageMaker של אמזון
- אמזון שירותי אינטרנט
- an
- אנליסטים
- ניתוח
- ו
- אנונימי
- אחר
- כל
- אַפָּשׁ
- האפליקציה
- בקשה
- יישומים
- גישה
- מתאים
- ארכיטקטורה
- ארכיון
- ARE
- אזורים
- AS
- הערכה
- At
- אוטומטי
- באופן אוטומטי
- זמין
- AWS
- AXES
- תכלת
- מבוסס
- BE
- היה
- לפני
- להתחיל
- מועיל
- תועלת
- מוטב
- בֵּין
- שניהם
- להביא
- רחב
- לִבנוֹת
- בִּניָן
- עסקים
- אבל
- by
- שיחה
- נקרא
- קוראים
- CAN
- בד
- יכולות
- לשאת
- מקרה
- בדיקות
- בכיתה
- לסווג
- קליק
- ענן
- קוד
- קוגניטיבית
- שיתוף פעולה
- חברה
- להשלים
- מורכב
- הענות
- מַקִיף
- לחשב
- תְצוּרָה
- הכלול
- מכולה
- מכולות
- מכיל
- הקשר
- נוחות
- להמיר
- המרת
- ליבה
- עלויות
- יכול
- לִיצוֹר
- נוצר
- יוצרים
- יצירה
- אישורים
- מנהג
- לקוחות
- נתונים
- ניהול נתונים
- הכנת נתונים
- מדע נתונים
- מערכי נתונים
- עמוק
- למידה עמוקה
- העמוק ביותר
- בְּרִירַת מֶחדָל
- לְהַגדִיר
- הגדרה
- להפגין
- תלות
- תלות
- לפרוס
- פרס
- פריסה
- פריסה
- לתאר
- פרט
- פרטים
- צעצועי התפתחות
- מכשיר
- התקנים
- אחר
- דיגיטלי
- טרנספורמציה דיגיטלית
- ספרות
- מֵמַד
- נָדוֹן
- do
- סַוָר
- תחום
- עשה
- לא
- מטה
- להורדה
- בְּמַהֲלָך
- דינמי
- e
- אחר
- לחבק
- מאפשר
- מה שמאפשר
- סוף
- נקודת קצה
- הנדסה
- מהנדסים
- מִפְעָל
- חברות
- סביבה
- תקופה
- תקופות
- כל
- דוגמה
- אלא
- יוצא מן הכלל
- הוצאת להורג
- מומחיות
- יצוא
- היצוא
- חיצוני
- תמצית
- נכשל
- תכונות
- מעטים
- שלח
- קבצים
- כספי
- שירותים פיננסיים
- ראשון
- מתאים
- הבא
- בעד
- פוּרמָט
- קרן
- מסגרת
- מסגרות
- החל מ-
- פונקציה
- פונקציות
- כללי
- מייצר
- גנרטטיבית
- AI Generative
- לקבל
- גלוֹבָּלִי
- פיננסי גלובלי
- קְבוּצָה
- יש
- he
- עזרה
- עוזר
- אירוח
- איך
- איך
- HTML
- http
- HTTPS
- היברידי
- ID
- זיהוי
- להתבטל
- if
- מדגים
- תמונה
- תמונות
- פְּגִיעָה
- לייבא
- יבוא
- לשפר
- שיפור
- in
- לכלול
- כולל
- עצמאי
- תעשייה
- מידע
- בתחילה
- קלט
- תשומות
- להתקין
- למשל
- הוראות
- לשלב
- משולב
- כוונה
- אינטרסים
- מִמְשָׁק
- יכולת פעולה הדדית
- אל תוך
- IT
- שֶׁלָה
- עבודה
- מקומות תעסוקה
- jpg
- ג'סון
- שפה
- גָדוֹל
- האחרון
- השקות
- לִלמוֹד
- למידה
- אורך
- תנופה
- ספריות
- סִפְרִיָה
- מעגל החיים
- קו
- לינוקס
- רשימה
- לִטעוֹן
- המון
- מקומי
- באופן מקומי
- מיקום
- רישום
- לטווח ארוך
- הסתכלות
- את
- מכונה
- למידת מכונה
- לעשות
- לנהל
- הצליח
- ניהול
- מנהל
- רב
- מַפָּה
- matplotlib
- מאי..
- אומר
- לִפְגוֹשׁ
- פוגשת
- שיטה
- שיטות
- מיקרוסופט
- יכול
- הֲגִירָה
- ML
- MLOps
- מצב
- מודל
- מודלים
- מודול
- יותר
- רוב
- שם
- שם
- כלומר
- צורך
- נחוץ
- צרכי
- נטו
- רשת
- עצבי
- רשת עצבית
- מחברה
- קהות
- אובייקט
- of
- on
- ONE
- לפתוח
- קוד פתוח
- פועל
- תפעול
- מפעילי
- אפשרויות
- or
- להזמין
- ארגון
- אִרְגוּנִי
- ארגונים
- OS
- אחר
- שלנו
- הַחוּצָה
- תוצאות
- תפוקה
- בחוץ
- שֶׁלוֹ
- חבילה
- ארוז
- פרמטר
- פרמטרים
- חלק
- מסוים
- צד
- לעבור
- מעברי
- נתיב
- לְבַצֵעַ
- הרשאות
- פלטפורמה
- פלטפורמות
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- פופולרי
- חיובי
- אפשרי
- הודעה
- התחזיות
- הכנה
- להכין
- תנאים מוקדמים
- יְסוֹדִי
- מנהל
- בעיות
- מעובד
- הפקה
- פִּריוֹן
- מוצרים
- מקצועי
- פרויקטים
- לספק
- ובלבד
- ספק
- מספק
- ציבורי
- לפרסם
- פיתון
- פיטורך
- מָהִיר
- מורם
- אקראי
- מוכן
- מקבל
- מוּמלָץ
- הקלטה
- להפחית
- להתייחס
- ללא קשר
- באזור
- רישום
- קרוב משפחה
- הָדִיר
- לבקש
- בקשות
- לדרוש
- נדרש
- דרישות
- משאב
- משאבים
- תגובה
- תוצאה
- וכתוצאה מכך
- לַחֲזוֹר
- תקין
- תפקיד
- שורש
- הפעלה
- ריצה
- פועל
- בעל חכמים
- אותו
- הציל
- סולם
- סריקה
- תרחישים
- מדע
- מדענים
- תסריט
- Sdk
- משני
- סעיף
- סעיפים
- אבטחה
- לִרְאוֹת
- מבחר
- עצמי
- לשלוח
- לחצני מצוקה לפנסיונרים
- שרות
- שירותים
- מושב
- סט
- הגדרות
- התקנה
- צוּרָה
- היא
- צריך
- לְהַצִיג
- הראה
- הראה
- הופעות
- כבה
- כיבוי
- פָּשׁוּט
- מצבים
- מיומן
- מיומנויות
- So
- תוכנה
- פִּתָרוֹן
- פתרונות
- כמה
- מָקוֹר
- ריבונות
- מפורט
- התמחות
- תֶקֶן
- התחלה
- החל
- התחלות
- צעדים
- אחסון
- חנות
- מאוחסן
- אִסטרָטֶגִיָה
- מחרוזת
- חזק
- מִבְנֶה
- סטודיו
- כתוצאה מכך
- בהצלחה
- כזה
- תמיכה
- מסייע
- תומך
- לקחת
- לוקח
- יעד
- נבחרת
- טכני
- טכנולוגיות
- טכנולוגיה
- עשר
- tensorflow
- מבחן
- נבדק
- בדיקות
- טֶקסט
- זֶה
- השמיים
- המקור
- שֶׁלָהֶם
- אותם
- עצמם
- אז
- אלה
- הֵם
- דבר
- שְׁלִישִׁי
- זֶה
- פִּי
- ל
- ארגז כלים
- כלים
- לפיד
- חזון לפיד
- עקבות
- רכבת
- מְאוּמָן
- הדרכה
- לשנות
- טרנספורמציה
- אסטרטגיית טרנספורמציה
- התמרות
- מגמות
- להפעיל
- מופעל
- נָכוֹן
- לנסות
- סוג
- ייחודי
- נטען
- העלאה
- כתובת האתר
- להשתמש
- במקרה להשתמש
- מְשׁוּמָשׁ
- משתמש
- שימושים
- באמצעות
- תועלת
- לְאַמֵת
- ערך
- משתנה
- מגוון
- ספקים
- גירסאות
- פגיעות
- רוצה
- היה
- דרכים
- we
- אינטרנט
- שירותי אינטרנט
- המבוסס על האינטרנט
- טוֹב
- מתי
- אשר
- יצטרך
- עם
- בתוך
- זרימות עבודה
- עובד
- לכתוב
- כתוב
- X
- עוד
- אתה
- זפירנט
- רוכסן