Exafunction תומך ב-AWS Inferentia כדי לפתוח את ביצועי המחיר הטובים ביותר עבור מסקנות למידת מכונה PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

Exafunction תומך ב-AWS Inferentia כדי לפתוח את ביצועי המחיר הטובים ביותר להסקת למידת מכונה

בכל התעשיות, מודלים של למידת מכונה (ML) הולכים ומעמיקים, זרימות העבודה נעשות מורכבות יותר ועומסי העבודה פועלים בקנה מידה גדול יותר. מאמץ ומשאבים משמעותיים מושקעים בהפיכת המודלים הללו למדויקים יותר מכיוון שהשקעה זו מביאה ישירות למוצרים וחוויות טובים יותר. מצד שני, לגרום למודלים אלה לפעול ביעילות בייצור היא משימה לא טריוויאלית שלעתים קרובות מתעלמים ממנה, למרות היותה מפתח להשגת יעדי ביצועים ותקציב. בפוסט זה אנו מכסים כיצד Exafunction ו Afer Inferentia לעבוד יחד כדי לפתוח פריסה קלה וחסכונית עבור דגמי ML בייצור.

Exafunction הוא סטארט-אפ המתמקד במתן אפשרות לחברות לבצע ML בקנה מידה יעיל ככל האפשר. אחד המוצרים שלהם הוא ExaDeploy, פתרון SaaS קל לשימוש לשרת עומסי עבודה של ML בקנה מידה. ExaDeploy מתזמר ביעילות את עומסי העבודה של ה-ML שלך על פני משאבים מעורבים (CPU ומאיצי חומרה) כדי למקסם את ניצול המשאבים. הוא גם דואג לשינוי קנה מידה אוטומטי, מיקום מחשוב, בעיות רשת, סובלנות תקלות ועוד, כדי להבטיח פריסה יעילה ואמינה. מבוסס AWS Inferentia מקרים של אמזון EC2 Inf1 בנויים למטרה לספק את העלות הנמוכה ביותר להסקה בענן. ExaDeploy תומך כעת במופעי Inf1, המאפשר למשתמשים לקבל הן את החיסכון מבוסס החומרה של מאיצים והן את החיסכון מבוסס התוכנה של וירטואליזציה ותזמור משאבים אופטימליים בקנה מידה.

סקירת פתרונות

כיצד ExaDeploy פותרת ליעילות הפריסה

כדי להבטיח ניצול יעיל של משאבי המחשוב, עליך לשקול הקצאת משאבים נכונה, קנה מידה אוטומטי, מיקום מחשוב, ניהול עלות רשת והשהייה, סובלנות תקלות, ניהול גרסאות ושחזור ועוד. בקנה מידה, כל חוסר יעילות משפיע באופן מהותי על עלויות ואיחור, וחברות גדולות רבות טיפלו בחוסר היעילות הללו על ידי בניית צוותים פנימיים ומומחיות. עם זאת, זה לא מעשי עבור רוב החברות לקחת על עצמו את התקורה הפיננסית והארגונית הזו של בניית תוכנה הניתנת להכללה שאינה יכולת הליבה הרצויה של החברה.

ExaDeploy נועד לפתור את נקודות הכאב הללו של יעילות הפריסה, כולל אלו הנראים בחלק מעומסי העבודה המורכבים ביותר, כגון אלו ביישומי רכב אוטונומי ועיבוד שפה טבעית (NLP). בכמה עומסי עבודה של ML באצווה גדולה, ExaDeploy הפחיתה את העלויות בלמעלה מ-85% מבלי לוותר על זמן ההשהיה או הדיוק, עם זמן אינטגרציה נמוך כמו יום מהנדס אחד. ExaDeploy הוכח כמדרג אוטומטי ומנהל אלפי מופעי משאבי מאיצי חומרה בו-זמניים ללא כל השפלה של המערכת.

תכונות עיקריות של ExaDeploy כוללות:

  • פועל בענן שלך: אף אחד מהדגמים, הכניסות או הפלטים שלך לא עוזב את הרשת הפרטית שלך. המשך להשתמש בהנחות של ספק הענן שלך.
  • משאבי מאיץ משותפים: ExaDeploy מבצעת אופטימיזציה של המאיצים המשמשים על ידי הפעלת מספר דגמים או עומסי עבודה לשתף משאבי מאיץ. זה גם יכול לזהות אם עומסי עבודה מרובים פורסים את אותו מודל, ולאחר מכן לשתף את המודל על פני עומסי העבודה הללו, ובכך לייעל את המאיץ בו נעשה שימוש. יכולות האיזון האוטומטי וניקוז הצמתים שלו ממקסמים את הניצול וממזערים עלויות.

Exafunction תומך ב-AWS Inferentia כדי לפתוח את ביצועי המחיר הטובים ביותר עבור מסקנות למידת מכונה PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

  • מודל פריסה ניתנת להרחבה ללא שרת: קנה מידה אוטומטי של ExaDeploy המבוסס על רוויה של משאבי מאיץ. הגדל באופן דינמי ל-0 או עד לאלפי משאבים.
  • תמיכה במגוון סוגי חישוב: אתה יכול להוריד מודלים של למידה עמוקה מכל מסגרות ה-ML העיקריות כמו גם קוד C++ שרירותי, ליבות CUDA, פעולות מותאמות אישית ופונקציות Python.
  • רישום דגמים דינמיים וניהול גרסאות: ניתן לרשום ולהפעיל דגמים חדשים או גרסאות דגמים ללא צורך בבנייה מחדש או פריסה מחדש של המערכת.
  • ביצוע מנקודה לנקודה: לקוחות מתחברים ישירות למשאבי מאיץ מרוחקים, מה שמאפשר חביון נמוך ותפוקה גבוהה. הם יכולים אפילו לאחסן את המדינה מרחוק.
  • ביצוע אסינכרוני: ExaDeploy תומכת בביצוע אסינכרוני של מודלים, מה שמאפשר ללקוחות לבצע במקביל חישוב מקומי לעבודת משאבי מאיץ מרחוק.
  • צינורות מרוחקים עמידים בפני תקלות: ExaDeploy מאפשרת ללקוחות להרכיב באופן דינמי חישובים מרוחקים (מודלים, עיבוד מקדים וכו') לתוך צינורות עם אחריות לסובלנות תקלות. מערכת ExaDeploy מטפלת בתקלות ב-pod או בצומת עם שחזור והפעלה חוזרת אוטומטית, כך שהמפתחים לעולם לא צריכים לחשוב על הבטחת סובלנות תקלות.
  • ניטור מחוץ לקופסה: ExaDeploy מספקת מדדי Prometheus ולוחות מחוונים של Grafana כדי להמחיש את השימוש במשאבי מאיץ ומדדי מערכת אחרים.

ExaDeploy תומך ב-AWS Inferentia

מופעי Amazon EC2 Inf1 מבוססי AWS Inferentia מיועדים לעומסי עבודה ספציפיים של למידה עמוקה. מופעים אלו מספקים תפוקה של עד פי 2.3 ועד 70% חיסכון בעלויות בהשוואה לדור הנוכחי של מופעי מסקנות GPU.

ExaDeploy תומכת כעת ב-AWS Inferentia, ויחד הם פותחים את הביצועים המוגברים והחיסכון בעלויות שהושגו באמצעות האצת חומרה מובנית ותזמור משאבים אופטימלי בקנה מידה. בואו נסתכל על היתרונות המשולבים של ExaDeploy ו-AWS Inferentia על ידי התחשבות בעומס עבודה מודרני ML מודרני: עומסי עבודה באצווה, מחשוב מעורב.

מאפייני עומס עבודה היפותטיים:

  • 15 אלפיות השנייה של מעבד קדם-עיבוד/אחר-תהליך בלבד
  • מסקנות דגם (15 אלפיות השנייה ב-GPU, 5 אלפיות השנייה ב-AWS Inferentia)
  • 10 לקוחות, כל אחד מגיש בקשה כל 20 אלפיות השנייה
  • עלות יחסית משוערת של CPU:Inferentia:GPU היא 1:2:4 (מבוסס על תמחור Amazon EC2 On-Demand עבור c5.xlarge, inf1.xlarge ו-g4dn.xlarge)

הטבלה שלהלן מראה כיצד כל אחת מהאפשרויות מתעצבת:

התקנה יש צורך במשאבים עלות חֶבִיוֹן
GPU ללא ExaDeploy 2 CPU, 2 GPU ללקוח (סה"כ 20 CPU, 20 GPU) 100 30 ms
GPU עם ExaDeploy 8 GPUs משותפים על פני 10 לקוחות, מעבד אחד ללקוח 42 30 ms
AWS Inferentia ללא ExaDeploy 1 CPU, 1 AWS Inferentia ללקוח (סה"כ 10 CPU, 10 Inferentia) 30 20 ms
AWS Inferentia עם ExaDeploy 3 AWS Inferentia משותפים ל-10 לקוחות, מעבד אחד ללקוח 16 20 ms

דוגמה של ExaDeploy ב-AWS Inferentia

בסעיף זה, אנו עוברים על השלבים להגדרת ExaDeploy באמצעות דוגמה עם צמתי inf1 במודל BERT PyTorch. ראינו תפוקה ממוצעת של 1140 דגימות/שנייה עבור מודל bert-base, מה שמוכיח שמעט עד שום תקורה הוצגה על ידי ExaDeploy עבור תרחיש זה של מודל יחיד, עומס עבודה יחיד.

שלב 1: הגדר an שירות קוברנט של אמזון (אמזון EKS) אשכול

ניתן להעלות אשכול EKS של אמזון עם שלנו מודול Terraform AWS. לדוגמה שלנו, השתמשנו ב-an inf1.xlarge עבור AWS Inferentia.

שלב 2: הגדר את ExaDepoy

השלב השני הוא הגדרת ExaDeploy. באופן כללי, הפריסה של ExaDeploy במופעי inf1 היא פשוטה. ההתקנה מתבצעת לרוב באותו הליך כפי שהיא עושה במופעי יחידת עיבוד גרפי (GPU). ההבדל העיקרי הוא לשנות את תג הדגם מ-GPU ל-AWS Inferentia ולהרכיב מחדש את המודל. לדוגמה, מעבר ממופעי g4dn ל-inf1 באמצעות ממשקי תכנות יישומים (API) של ExaDeploy דרש שינוי של כ-10 שורות קוד בלבד.

  • שיטה פשוטה אחת היא להשתמש ב-Exafunction's מודול Terraform AWS Kubernetes or תרשים הגה. אלה פורסים את רכיבי הליבה של ExaDeploy כדי לפעול באשכול EKS של אמזון.
  • הידור מודל לפורמט סידורי (למשל, TorchScript, TF saved models, ONNX וכו'). עבור AWS Inferentia, עקבנו אחרי מדריך זה.
  • רשום את המודל המהודר במאגר המודולים של ExaDeploy.
    with exa.ModuleRepository(MODULE_REPOSITORY_ADDRESS) as repo:
       repo.register_py_module(
           "BertInferentia",
           module_class="TorchModule",
           context_data=BERT_NEURON_TORCHSCRIPT_AS_BYTES,
           config={
               "_torchscript_input_names": ",".join(BERT_INPUT_NAMES).encode(),
               "_torchscript_output_names": BERT_OUTPUT_NAME.encode(),
               "execution_type": "inferentia".encode(),
           },
       )

  • הכן את הנתונים עבור המודל (כלומר, לא ExaDeploy-specific).
    tokenizer = transformers.AutoTokenizer.from_pretrained(
       "bert-base-cased-finetuned-mrpc"
    )
    
    batch_encoding = tokenizer.encode_plus(
       "The company Exafunction is based in the Bay Area",
       "Exafunction’s headquarters are situated in Mountain View",
       max_length=MAX_LENGTH,
       padding="max_length",
       truncation=True,
       return_tensors="pt",
    )

  • הפעל את המודל מרחוק מהלקוח.
    with exa.Session(
       scheduler_address=SCHEDULER_ADDRESS,
       module_tag="BertInferentia",
       constraint_config={
           "KUBERNETES_NODE_SELECTORS": "role=runner-inferentia",
           "KUBERNETES_ENV_VARS": "AWS_NEURON_VISIBLE_DEVICES=ALL",
       },
    ) as sess:
       bert = sess.new_module("BertInferentia")
       classification_logits = bert.run(
           **{
               key: value.numpy()
               for key, value in batch_encoding.items()
           }
       )[BERT_OUTPUT_NAME].numpy()
    
       # Assert that the model classifies the two statements as paraphrase.
       assert classification_logits[0].argmax() == 1

ExaDeploy ו-AWS Inferentia: עדיף ביחד

AWS Inferentia דוחפת את גבולות התפוקה להסקת מודל ומספקת את העלות הנמוכה ביותר להסקה בענן. עם זאת, חברות צריכות את התזמור המתאים כדי ליהנות מיתרונות המחיר-ביצועים של Inf1 בקנה מידה. הגשת ML היא בעיה מורכבת, שאם מטופלת בתוך הבית, דורשת מומחיות המורחקת מיעדי החברה ולעיתים קרובות מעכבת את לוחות הזמנים של המוצר. ExaDeploy, שהיא פתרון תוכנת פריסת ה-ML של Exafunction, התגלתה כמובילה בתעשייה. זה משרת אפילו את עומסי העבודה המורכבים ביותר של ML, תוך מתן חוויות אינטגרציה חלקות ותמיכה מצוות ברמה עולמית. יחד, ExaDeploy ו-AWS Inferentia פותחות ביצועים מוגברים וחיסכון בעלויות עבור עומסי עבודה מסקנות בקנה מידה.

סיכום

בפוסט זה, הראינו לכם כיצד Exafunction תומכת ב-AWS Inferentia עבור ביצועי ML. למידע נוסף על בניית אפליקציות עם Exafunction, בקר Exafunction. לשיטות מומלצות לבניית עומסי עבודה של למידה עמוקה ב-Inf1, בקר מופעי Amazon EC2 Inf1.


על הכותבים

ניקולס ג'יאנג, מהנדס תוכנה, Exafunction

Jonathan Ma, מהנדס תוכנה, Exafunction

Prem Nair, מהנדס תוכנה, Exafunction

Anshul Ramachandran, מהנדס תוכנה, Exafunction

שרוטי קופרקר, מנהל שיווק מוצר האב, AWS

בול זמן:

עוד מ למידת מכונות AWS