העבר למידה עבור מודלים של סיווג טקסט של TensorFlow באמזון SageMaker

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

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

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

כיצד להשתמש באלגוריתם סיווג הטקסט החדש של TensorFlow

סעיף זה מתאר כיצד להשתמש באלגוריתם סיווג הטקסט של TensorFlow עם ה SageMaker Python SDK. למידע על אופן השימוש בו מממשק המשתמש של Studio, ראה SageMaker JumpStart.

האלגוריתם תומך בלמידה של העברה עבור המודלים שהוכשרו מראש המפורטים ב דגמי Tensorflow. כל דגם מזוהה באמצעות ייחודי model_id. הקוד הבא מראה כיצד לכוונן עדין את מודל הבסיס של BERT המזוהה על ידי model_id tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2 על מערך אימון מותאם אישית. לכל אחד model_id, כדי להשיק משרת הדרכה של SageMaker דרך ה מעריך מחלקה של SageMaker Python SDK, עליך להביא את ה-URI של התמונה של Docker, ה-URI של סקריפט האימון ו-URI של המודל שעבר הכשרה מראש דרך פונקציות השירות הניתנות ב-SageMaker. סקריפט האימון URI מכיל את כל הקוד הדרוש לעיבוד נתונים, טעינת המודל שהוכשר מראש, אימון מודלים ושמירת המודל המאומן להסקת מסקנות. ה-URI של המודל שהוכשר מראש מכיל את הגדרת ארכיטקטורת המודל שהוכשר מראש ואת פרמטרי המודל. URI המודל שהוכשר מראש הוא ספציפי לדגם המסוים. כדורי הדגם המאומנים מראש הורדו מראש מ-TensorFlow ונשמרו עם חתימת הדגם המתאימה ב- שירות אחסון פשוט של אמזון (Amazon S3) דליים, כך שעבודת ההדרכה תפעל בבידוד רשת. ראה את הקוד הבא:

from sagemaker import image_uris, model_uris, script_urisfrom sagemaker.estimator import Estimator

model_id, model_version = "tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2", "*"
training_instance_type = "ml.p3.2xlarge"
# Retrieve the docker image
train_image_uri = image_uris.retrieve(model_id=model_id,model_version=model_version,image_scope="training",instance_type=training_instance_type,region=None,framework=None)# Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training")# Retrieve the pre-trained model tarball for transfer learning
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

output_bucket = sess.default_bucket()
output_prefix = "jumpstart-example-tensorflow-tc-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

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

# Create SageMaker Estimator instance
tf_tc_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,)

לאחר מכן, להעברת למידה במערך הנתונים המותאם אישית שלך, ייתכן שיהיה עליך לשנות את ערכי ברירת המחדל של ההיפרפרמטרים של האימון, המפורטים ב- היפרפרמטרים. אתה יכול להביא מילון Python של ההיפרפרמטרים האלה עם ערכי ברירת המחדל שלהם על ידי קריאה hyperparameters.retrieve_default, עדכן אותם לפי הצורך ולאחר מכן העביר אותם לכיתה אומד. שים לב שערכי ברירת המחדל של חלק מפרמטרי ההיפר שונים עבור דגמים שונים. עבור דגמים גדולים, גודל האצווה המוגדר כברירת מחדל קטן יותר train_only_top_layer היפרפרמטר מוגדר ל True. ההיפרפרמטר Train_only_top_layer מגדיר אילו פרמטרים של הדגם משתנים במהלך תהליך הכוונון העדין. אם train_only_top_layer is True, ואז פרמטרים של שכבות הסיווג משתנים ושאר הפרמטרים נשארים קבועים במהלך תהליך הכוונון העדין. מצד שני, אם train_only_top_layer is False, אז כל הפרמטרים של המודל מכוונים עדין. ראה את הקוד הבא:

from sagemaker import hyperparameters# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)# [Optional] Override default hyperparameters with custom values
hyperparameters["epochs"] = "5"

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

# Sample training data is available in this bucket
training_data_bucket = f"jumpstart-cache-prod-{aws_region}"
training_data_prefix = "training-datasets/SST2/"

training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}"

לבסוף, כדי להשיק את משימת ההדרכה של SageMaker לכוונון עדין של המודל, התקשר ל-.fit על האובייקט של כיתת Estimator, תוך העברת מיקום Amazon S3 של מערך ההדרכה:

# Launch a SageMaker Training job by passing s3 path of the training data
tf_od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

למידע נוסף על אופן השימוש באלגוריתם סיווג הטקסט החדש של SageMaker TensorFlow להעברת למידה על מערך נתונים מותאם אישית, פרוס את המודל המכוונן עדין, הרץ מסקנות על המודל שנפרס ופריסה את המודל שהוכשר מראש כפי שהוא ללא כוונון עדין ראשון במערך נתונים מותאם אישית, עיין במחברת לדוגמה הבאה: מבוא ל-JumpStart - סיווג טקסט.

ממשק קלט/פלט עבור אלגוריתם סיווג הטקסט TensorFlow

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

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

  • קלט - ספרייה המכילה קובץ data.csv. כל שורה בעמודה הראשונה צריכה לכלול תוויות מחלקות שלמות בין 0 למספר המחלקות. כל שורה בעמודה השנייה צריכה לכלול את נתוני הטקסט המתאימים.
  • פלט - מודל מכוון שניתן לפרוס להסקת מסקנות או לאימון נוסף באמצעות אימון מצטבר. קובץ מיפוי מחלקות אינדקסים לתוויות מחלקות נשמר יחד עם המודלים.

להלן דוגמה לקובץ CSV קלט. שימו לב שהקובץ לא אמור לכלול כותרת כלשהי. הקובץ צריך להתארח בדלי S3 עם נתיב דומה לזה: s3://bucket_name/input_directory/. שימו לב שהנגרר / נדרש.

|0 |hide new secretions from the parental units|
|0 |contains no wit , only labored gags|
|1 |that loves its characters and communicates something rather beautiful about human nature|
|...|...|

הסקה עם אלגוריתם סיווג הטקסט של TensorFlow

ניתן לארח את המודלים שנוצרו עבור מסקנות וטקסט תמיכה כ- application/x-text סוג תוכן. הפלט מכיל את ערכי ההסתברות, תוויות המחלקות עבור כל המחלקות והתווית החזויה התואמת לאינדקס המחלקה עם ההסתברות הגבוהה ביותר המקודדת בפורמט JSON. המודל מעבד מחרוזת בודדת לכל בקשה ומוציא רק שורה אחת. להלן דוגמה לתגובה בפורמט JSON:

accept: application/json;verbose
{"probabilities": [prob_0, prob_1, prob_2, ...],
 "labels": [label_0, label_1, label_2, ...],
 "predicted_label": predicted_label}

If accept מוגדר application/json, אז המודל מוציא רק הסתברויות. לפרטים נוספים על אימון והסקת מסקנות, עיין במחברת לדוגמה מבוא ל מבוא ל-JumpStart - סיווג טקסט.

השתמש באלגוריתמים מובנים של SageMaker דרך ממשק המשתמש של JumpStart

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

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

כוונן את הדגם המאומן מראש

הנה התהליך לכוונון עדין של אותו מודל סיווג טקסט מיומן מראש.

פרוס את הדגם המכוונן

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

סיכום

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

למידע נוסף, עיין ב תיעוד והמחברת לדוגמה מבוא ל-JumpStart - סיווג טקסט.


על המחברים

העברת למידה עבור דגמי סיווג טקסט של TensorFlow באמזון SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ד"ר Vivek Madan הוא מדען יישומי עם צוות אמזון SageMaker JumpStart. הוא קיבל את הדוקטורט שלו מאוניברסיטת אילינוי באורבנה-שמפיין והיה חוקר פוסט דוקטורט בג'ורג'יה טק. הוא חוקר פעיל בלמידת מכונה ועיצוב אלגוריתמים ופרסם מאמרים בכנסים של EMNLP, ICLR, COLT, FOCS ו-SODA.

העברת למידה עבור דגמי סיווג טקסט של TensorFlow באמזון SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ז'ואאו מורה הוא אדריכל פתרונות AI/ML מומחה בשירותי האינטרנט של אמזון. הוא מתמקד בעיקר במקרי שימוש ב-NLP ובעזרה ללקוחות לייעל את ההדרכה והפריסה של מודל למידה עמוקה. הוא גם חסיד פעיל של פתרונות ML בעלי קוד נמוך וחומרה מתמחה ב-ML.

העברת למידה עבור דגמי סיווג טקסט של TensorFlow באמזון SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ד"ר אשיש חתן הוא מדען יישומי בכיר עם אלגוריתמים מובנים של Amazon SageMaker ומסייע בפיתוח אלגוריתמים של למידת מכונה. הוא קיבל את הדוקטורט שלו מאוניברסיטת אילינוי אורבנה שמפיין. הוא חוקר פעיל בלמידת מכונה והסקה סטטיסטית ופרסם מאמרים רבים בכנסים NeurIPS, ICML, ICLR, JMLR, ACL ו-EMNLP.

בול זמן:

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