שפר מחקר בעל ערך גבוה עם Hugging Face ו-Amazon SageMaker נקודות קצה אסינכרוניות להסקת מידע PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

שפר מחקר בעל ערך גבוה עם נקודות קצה א-סינכרוניות של מסקנות חיבוק ו-Amazon SageMaker

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

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

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

אתה יכול לבנות מודלים של סיכום טקסט עם מסגרות למידה עמוקות מרובות כמו TensorFlow, PyTorch ו- Apache MXNet. לדגמים אלה יש בדרך כלל מטען קלט גדול של מסמכי טקסט מרובים בגדלים שונים. מודלים מתקדמים של למידה עמוקה דורשים עיבוד מקדים עתיר מחשוב לפני מסקנות מודל. זמני העיבוד יכולים להגיע לכמה דקות, מה שמסיר את האפשרות להפעיל הסקת מסקנות בזמן אמת על ידי העברת מטענים דרך HTTP API. במקום זאת, עליך לעבד עומסי קלט באופן אסינכרוני מחנות אובייקטים כמו שירות אחסון פשוט של אמזון (Amazon S3) עם תור אוטומטי וסף מקביליות מוגדר מראש. המערכת אמורה להיות מסוגלת לקבל הודעות סטטוס ולהפחית עלויות מיותרות על ידי ניקוי משאבים עם השלמת המשימות.

SageMaker מסייעת למדעני נתונים ומפתחים להכין, לבנות, להכשיר ולפרוס מודלים של למידת מכונה באיכות גבוהה (ML) במהירות על ידי איחוד של מערך רחב של יכולות שנבנו במיוחד עבור ML. SageMaker מספקת את מיכלי ההגשה המתקדמים ביותר בקוד פתוח עבור XGBoost (מכולה, SDK), Scikit-Learn (מכולה, SDK), PyTorch (מכולה, SDK), TensorFlow (מכולה, SDK), ו- Apache MXNet (מכולה, SDK).

SageMaker מספקת ארבע אפשרויות לפריסת מודלים מאומנים של ML להפקת מסקנות על נתונים חדשים.
  1. הסקה בזמן אמת נקודות קצה מתאימות לעומסי עבודה שצריך לעבד עם דרישות חביון נמוכות בסדר גודל של MS עד שניות.
  2. הפיכת אצווה הוא אידיאלי עבור תחזיות לא מקוונות על קבוצות גדולות של נתונים.
  3. Amazon SageMaker Serverless Inference (במצב תצוגה מקדימה ולא מומלץ לעומסי עבודה של ייצור נכון לכתיבת שורות אלו) היא אפשרות להסקת מסקנות שתכליתה מקלה עליך לפרוס ולהרחיב מודלים של ML. מסקנות ללא שרתים אידיאלית לעומסי עבודה שיש להם תקופות סרק בין פרצי תנועה ויכולים לסבול התחלות קרות.
  4. הסקה אסינכרונית נקודות קצה מעמידות בתור בקשות נכנסות. הם אידיאליים לעומסי עבודה שבהם גדלי הבקשות גדולים (עד 1 GB) וזמני עיבוד ההסקות הם בסדר גודל של דקות (עד 15 דקות). הסקה אסינכרונית מאפשרת לך לחסוך בעלויות על ידי שינוי קנה מידה אוטומטי של ספירת המופעים לאפס כאשר אין בקשות לעיבוד.

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

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

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

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

אנו גם משתמשים אמזון CloudWatch מדדים לניטור גודל התור, זמן העיבוד הכולל והפניות שעובדו.

בתרשים הבא, אנו מראים את השלבים המעורבים בעת ביצוע הסקה באמצעות נקודת קצה של הסקה אסינכרונית.

שפר מחקר בעל ערך גבוה עם Hugging Face ו-Amazon SageMaker נקודות קצה אסינכרוניות להסקת מידע PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

  1. מאומנים מראש שלנו PEGASUS מודל ML מתארח לראשונה בנקודת הקצה של קנה המידה.
  2. המשתמש מעלה את המאמר לסיכום לדלי קלט S3.
  3. נקודת הסיום האסינכרונית מופעלת באמצעות API.
  4. לאחר השלמת ההסקה, התוצאה נשמרת בדלי הפלט S3.
  5. An שירות התראה פשוט של אמזון הודעה (Amazon SNS) נשלחת למשתמש ומודיעה לו על ההצלחה או הכישלון שהושלם.

צור נקודת קצה של הסקה אסינכרונית

אנו יוצרים את נקודת הסיום האסינכרונית בדומה לנקודת קצה מתארחת בזמן אמת. השלבים כוללים יצירת מודל SageMaker, ולאחר מכן הגדרת נקודת הקצה ופריסה של נקודת הקצה. ההבדל בין שני סוגי נקודות הקצה הוא שתצורת נקודת הקצה האסינכרונית מכילה AsyncInferenceConfig סָעִיף. כאן אנו מציינים את נתיב הפלט של S3 עבור התוצאות מהזמנת נקודת הקצה, ואפשר לכלול נושאי SNS להודעות על הצלחה וכישלון. כמו כן, אנו מציינים את המספר המרבי של הפניות במקביל לכל מופע כפי שנקבע על ידי הלקוח. ראה את הקוד הבא:

AsyncInferenceConfig={ "OutputConfig": { "S3OutputPath": f"s3://{bucket}/{bucket_prefix}/output", # Optionally specify Amazon SNS topics for notifications "NotificationConfig": { "SuccessTopic": success_topic, "ErrorTopic": error_topic, } }, "ClientConfig": { "MaxConcurrentInvocationsPerInstance": 2 #increase this value up to throughput peak for ideal performance } }

לפרטים על ה-API ליצירת תצורת נקודת קצה להסקת הסקה אסינכרונית, ראה צור נקודת קצה אסינכרונית של הסקה.

הפעל את נקודת הסיום האסינכרונית

צילום המסך הבא מציג מאמר קצר בו אנו משתמשים כמטען הקלט שלנו:
שפר מחקר בעל ערך גבוה עם Hugging Face ו-Amazon SageMaker נקודות קצה אסינכרוניות להסקת מידע PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

הקוד הבא מעלה את המאמר כ- input.json קובץ לאמזון S3:

sm_session.upload_data( input_location, bucket=sm_session.default_bucket(), key_prefix=prefix, extra_args={"ContentType": "text/plain"})

אנו משתמשים ב-Amazon S3 URI לקובץ מטען הקלט כדי להפעיל את נקודת הקצה. אובייקט התגובה מכיל את מיקום הפלט באמזון S3 כדי לאחזר את התוצאות לאחר השלמתו:

response = sm_runtime.invoke_endpoint_async(EndpointName=endpoint_name, InputLocation=input_1_s3_location)
output_location = response['OutputLocation']

צילום המסך הבא מציג את סיכום הפלט לדוגמה:
שפר מחקר בעל ערך גבוה עם Hugging Face ו-Amazon SageMaker נקודות קצה אסינכרוניות להסקת מידע PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

לפרטים על ה-API להפעלת נקודת קצה אסינכרונית, ראה הפעל נקודת קצה של הסקה אסינכרונית.

תור את בקשות ההזמנה עם הגדרת המשתמש במקביל

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

מופעי קנה מידה אוטומטיים בתוך נקודת הסיום האסינכרונית

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

client = boto3.client('application-autoscaling') # Common class representing Application Auto Scaling for SageMaker amongst other services resource_id='endpoint/' + endpoint_name + '/variant/' + 'variant1' # This is the format in which application autoscaling references the endpoint response = client.register_scalable_target(
ServiceNamespace='sagemaker', #
ResourceId=resource_id,
ScalableDimension='sagemaker:variant:DesiredInstanceCount',
MinCapacity=0,
MaxCapacity=5
) response = client.put_scaling_policy(
PolicyName='Invocations-ScalingPolicy',
ServiceNamespace='sagemaker', # The namespace of the AWS service that provides the resource.
ResourceId=resource_id, # Endpoint name
ScalableDimension='sagemaker:variant:DesiredInstanceCount', # SageMaker supports only Instance Count
PolicyType='TargetTrackingScaling', # 'StepScaling'|'TargetTrackingScaling'
TargetTrackingScalingPolicyConfiguration={ 'TargetValue': 5.0, # The target value for the metric. 'CustomizedMetricSpecification': { 'MetricName': 'ApproximateBacklogSizePerInstance', 'Namespace': 'AWS/SageMaker', 'Dimensions': [{'Name': 'EndpointName', 'Value': endpoint_name }], 'Statistic': 'Average',
}, 'ScaleInCooldown': 120, # ScaleInCooldown - The amount of time, in seconds, after a scale-in activity completes before another scale in activity can start. 'ScaleOutCooldown': 120 # ScaleOutCooldown - The amount of time, in seconds, after a scale-out activity completes before another scale out activity can start.
# 'DisableScaleIn': True|False - indicates whether scale in by the target tracking policy is disabled.
# If the value is true, scale-in is disabled and the target tracking policy won't remove capacity from the scalable resource.
}
)

לפרטים על ה-API לשינוי קנה מידה אוטומטי של נקודת קצה אסינכרונית, ראה את קנה מידה אוטומטי של נקודת קצה אסינכרונית של הסקה.

הגדר הודעות מנקודת הסיום האסינכרונית

אנו יוצרים שני נושאי SNS נפרדים להצלחה והודעות שגיאה עבור כל תוצאת הפעלת נקודת קצה:

sns_client = boto3.client('sns')
response = sns_client.create_topic(Name="Async-Demo-ErrorTopic2")
error_topic = response['TopicArn']
response = sns_client.create_topic(Name="Async-Demo-SuccessTopic2")
success_topic = response['TopicArn']

אפשרויות אחרות להתראות כוללות בדיקה תקופתית של הפלט של דלי S3, או שימוש בהודעות דלי S3 כדי לאתחל AWS למבדה פונקציה בהעלאת קבצים. הודעות SNS כלולות בסעיף תצורת נקודת הקצה כפי שתואר קודם לכן.

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

מעקב אחר נקודת הסיום האסינכרונית

אנו עוקבים אחר נקודת הסיום הא-סינכרונית עם מדדי CloudWatch נוספים מובנים ספציפיים להסקה אסינכרונית. לדוגמה, אנו עוקבים אחר אורך התור בכל מופע עם ApproximateBacklogSizePerInstance ואורך התור הכולל עם ApproximateBacklogSize.

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

אנו יכולים לייעל את תצורת נקודת הקצה כדי לקבל את המופע החסכוני ביותר עם ביצועים גבוהים. לדוגמה, אנו יכולים להשתמש במופע עם Amazon Elastic Inference או AWS Inferentia. אנו יכולים גם להגדיל בהדרגה את רמת המקבילות עד לשיא התפוקה תוך התאמת פרמטרים אחרים של שרת ומיכל אחר.

גרפים של CloudWatch

סימנו תעבורה של 10,000 בקשות הסקת מסקנות שזורמות לאורך תקופה לנקודת הקצה הא-סינכרונית של הסקת מסקנות המאופשרת עם מדיניות קנה המידה האוטומטי שתוארה בסעיף הקודם.

צילום המסך הבא מציג מדדי מופע לפני שהחלו לזרום בקשות. אנו מתחילים עם נקודת קצה חיה עם אפס מופעים פועלים:
שפר מחקר בעל ערך גבוה עם Hugging Face ו-Amazon SageMaker נקודות קצה אסינכרוניות להסקת מידע PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

הגרף הבא מציג כיצד BacklogSize ו BacklogSizePerInstance המדדים משתנים כאשר קנה המידה האוטומטי מתחיל והעומס על נקודת הקצה משותף למספר מופעים שסופקו כחלק מתהליך קנה המידה האוטומטי.
שפר מחקר בעל ערך גבוה עם Hugging Face ו-Amazon SageMaker נקודות קצה אסינכרוניות להסקת מידע PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

כפי שמוצג בצילום המסך הבא, מספר המקרים גדל ככל שספירת ההסקות גדלה:
שפר מחקר בעל ערך גבוה עם Hugging Face ו-Amazon SageMaker נקודות קצה אסינכרוניות להסקת מידע PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

צילום המסך הבא מראה כיצד קנה המידה מחזיר את נקודת הקצה למצב ההתחלתי של אפס מופעי ריצה:
שפר מחקר בעל ערך גבוה עם Hugging Face ו-Amazon SageMaker נקודות קצה אסינכרוניות להסקת מידע PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

לנקות את

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

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

response = client.deregister_scalable_target(ServiceNamespace='sagemaker',ResourceId='resource_id',ScalableDimension='sagemaker:variant:DesiredInstanceCount')

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

sm_client.delete_endpoint(EndpointName=endpoint_name)

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

סיכום

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

כדי להתחיל עם מסקנות אסינכרוניות של SageMaker, בדוק הסקה אסינכרונית.


על הכותבים

שפר מחקר בעל ערך גבוה עם Hugging Face ו-Amazon SageMaker נקודות קצה אסינכרוניות להסקת מידע PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.דינש קומאר סוברמאני הוא אדריכל פתרונות בכיר בצוות UKIR SMB, שבסיסו באדינבורו, סקוטלנד. הוא מתמחה בבינה מלאכותית ולמידת מכונה. Dinesh נהנית לעבוד עם לקוחות בכל תעשיות כדי לעזור להם לפתור את הבעיות שלהם עם שירותי AWS. מחוץ לעבודה, הוא אוהב לבלות עם משפחתו, לשחק שח וליהנות ממוזיקה חוצה ז'אנרים.

שפר מחקר בעל ערך גבוה עם Hugging Face ו-Amazon SageMaker נקודות קצה אסינכרוניות להסקת מידע PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ראגו רמשה הוא אדריכל פתרונות ML עם צוות שירות Amazon SageMaker. הוא מתמקד בסיוע ללקוחות לבנות, לפרוס ולהעביר עומסי עבודה של ייצור ML ל-SageMaker בקנה מידה. הוא מתמחה בתחומי למידת מכונה, AI וראייה ממוחשבת, ובעל תואר שני במדעי המחשב מ-UT Dallas. בזמנו הפנוי הוא אוהב לטייל ולצלם.

בול זמן:

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