חסכנות פוגשת דיוק: הדרכה חסכונית של דגמי GPT NeoX ו-Pytia עם AWS Trainium | שירותי האינטרנט של אמזון

חסכנות פוגשת דיוק: הדרכה חסכונית של דגמי GPT NeoX ו-Pytia עם AWS Trainium | שירותי האינטרנט של אמזון

מודלים של שפות גדולות (או LLMs) הפכו לנושא של שיחות יומיומיות. האימוץ המהיר שלהם ניכר בכמות הזמן הנדרשת כדי להגיע ל-100 מיליון משתמשים, שהפך מ"4.5 שנים בפייסבוק" לשפל של כל הזמנים של "חודשיים על ידי ChatGPT". שנאי מיומן מראש (GPT) משתמש בעדכונים אוטורגרסיביים סיבתיים כדי לבצע חיזוי. מגוון משימות כגון זיהוי דיבור, הפקת טקסט ומענה על שאלות מוכחים כבעלי ביצועים מדהימים על ידי ארכיטקטורות המודל הללו. מספר דגמים עדכניים כגון Neox, בז, לאמה השתמש בארכיטקטורת GPT בתור עמוד שדרה. אימון לימודי LLM דורש כמות אדירה של זמן חישוב, שעולה מיליוני דולרים. בפוסט זה, נסכם את הליך ההדרכה של GPT Neox on AWS Trainium, מאיץ למידת מכונה (ML) מותאם לאימון למידה עמוקה. נתאר כיצד אימנו בצורה חסכונית (3.2 M tokens/$) דגמים כאלה עם AWS Trainium מבלי לאבד מאיכות דגם.

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

דגמי GPT NeoX ו- Pythia

GPT NeoX ו פיתיה הם מודלים של שפות סיבתיות בקוד פתוח של Eleuther-AI עם כ-20 מיליארד פרמטרים ב-NeoX ו-6.9 מיליארד ב-Pytia. שניהם דגמי מפענח העוקבים אחר עיצוב אדריכלי דומה כמו Chat GPT3. עם זאת, יש להם גם מספר תוספות, שגם מאומצות באופן נרחב בדגמים האחרונים כמו לאמה. במיוחד, יש להם הטבעה מיקוםית סיבובית (ROPE) עם סיבוב חלקי על פני ממדי הראש. הדגמים המקוריים (NeoX ו-Pythia 6.9B) מאומנים בזמינים באופן גלוי ערימה של מערך נתונים עם מניעת כפילויות ושימוש ב-Megatron ו-Deepspeed backend.

אנו מדגימים את האימון המקדים והכוונן העדין של מודלים אלה במופעי Trn1 מבוססי AWS Trainium באמצעות Neuron NeMo סִפְרִיָה. כדי לבסס את הוכחת המושג ושעתוק מהיר, נשתמש בתת-ערכת מערך קטנה יותר של ויקיפדיה עם אסימון באמצעות GPT2 Byte-pair encoding (BPE) tokenizer.

Walkthrough

הורד את מערך הנתונים המוגדר מראש של ויקיפדיה כפי שמוצג:

export DATA_DIR=~/examples_datasets/gpt2 mkdir -p ${DATA_DIR} && cd ${DATA_DIR} wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-vocab.json
wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-merges.txt
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/my-gpt2_text_document.bin . --no-sign-request
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/my-gpt2_text_document.idx . --no-sign-request
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/license.txt . --no-sign-request

גם NeoX 20B וגם Pythia 6.9B משתמשים ב-ROPE עם סיבוב חלקי, למשל, סיבוב של 25% מממדי הראש ושמירה על השאר ללא סיבוב. כדי ליישם ביעילות את הסיבוב החלקי במאיץ AWS Trainium, במקום לשרשר את הממדים המסתובבים והלא מסתובבים, אנו מוסיפים תדרים אפס עבור ממדים שאינם מסתובבים ולאחר מכן מסובבים את הסט המלא של ממדי הראש. הטריק הפשוט הזה עזר לנו לשפר את התפוקה (רצפים מעובדים לשנייה) ב-AWS Trainium.

שלבי אימון

כדי להפעיל את ההדרכה, אנו משתמשים ב-SLURM מנוהל מרובה צמתים Amazon Elastic Compute Cloud (אמזון) אשכול Trn1, כאשר כל צומת מכיל מופע trn1.32xl. כל אחד trn1.32xl בעל 16 מאיצים עם שני עובדים לכל מאיץ. לאחר הורדת הגרסה האחרונה Neuron NeMo חבילה, השתמש במצורף המצורף neox ו פיתיה אימון מקדים וכוונון עדין של סקריפטים עם פרמטרי היפר מותאמים ובצע את הפעולות הבאות לאימון ארבעה צמתים.

  1. קומפילציה: ערכו מראש את המודל עם שלוש איטרציות של רכבת כדי ליצור ולשמור את הגרפים:
    sbatch --nodes 4 compile.slurm ./neoX_20B_slurm.sh

  2. ריצה: בצע את האימון על ידי טעינת הגרפים המאוחסנים במטמון מהשלבים הראשונים
    sbatch --nodes 4 run.slurm ./neoX_20B_slurm.sh

  3. עקוב אחר התוצאות
    tensorboard --logdir=nemo_experiments/megatron_neox

יש לבצע את אותם השלבים להפעלת דגם Pythia 6.9B עם החלפה neox_20B_slurm.sh by pythia_6.9B_slurm.sh.

טרום אימון וניסויים כוונון עדין

אנו מדגימים את ההכשרה המוקדמת של דגמי GPT-NeoX ו-Pytia ב-AWS Trainium באמצעות Neuron NeMo ספרייה עבור 10 איטרציות, וגם להציג כוונון עדין של מודלים אלה עבור 1 שלבים. לאימון מקדים, אנו משתמשים בטוקניזר GPT2 BPE בתוך ה-NeMo ועוקבים אחר אותו הדבר config כפי שהיה בשימוש בדגם המקורי. כוונון עדין ב-AWS Trainium דורש שינוי של כמה פרמטרים (כגון גורם חלוקת גודל ווקאב), שמסופקים בסקריפטים לכוונון עדין כדי להתאים לשינויים של Megatron לעומת NeMo ו-GPU לעומת AWS Trainium. תפוקת האימון המבוזרת מרובת צמתים עם מספר משתנה של צמתים מוצגת בטבלה-1.

מספר סימוכין טנזור מקביל צינור מקביל מספר המקרים עלות ($/שעה) אורך רצף גודל אצווה גלובלי תפוקה (seq/sec) יחס עלות-תפוקה (אסימונים/$)
Pythia 6.9B 8 1 1 7.59 2048 256 10.4 10,102,387
8 1 4 30.36 2048 256 35.8 8,693,881
NeoX 20B 8 4 4 30.36 2048 16384 13.60 3,302,704
8 4 8 60.72 2048 16384 26.80 3,254,134
8 4 16 121.44 2048 16384 54.30 3,296,632
8 4 32 242.88 2048 16384 107.50 3,263,241
8 4 64 485.76 2048 16384 212.00 3,217,708

הטבלה 1. השוואת תפוקה ממוצעת של דגמי GPT NeoX ו-Pytia לאימון של עד 500 צעדים עם מספר משתנה של צמתים. ה תמחור של trn1.32xl מבוסס על תעריף אפקטיבי לשעה שמור ל-3 שנים.

לאחר מכן, אנו גם מעריכים את מסלול ההפסד של אימון המודל ב-AWS Trainium ומשווים אותו לריצה המקבילה על אשכול P4d (ליבות Nvidia A100 GPU). יחד עם אובדן האימון, אנו גם משווים אינדיקטור שימושי כמו נורמת שיפוע, שהיא 2 נורמה של שיפוע המודל המחושב בכל איטרציה של אימון כדי לעקוב אחר התקדמות האימון. תוצאות האימון מוצגות באיור-1, 2 וכוונון עדין של NeoX 20B באיור-3.

אובדן הכשרה בממוצע על פני כל העובדים (שמאל) ונורמת השיפוע (ימין) באימון בכל שלב.

איור 1. אובדן הכשרה בממוצע על פני כל העובדים (שמאל) ונורמת השיפוע (ימין) באימון בכל שלב. NeoX 20B מאומן על 4 צמתים עם מערך נתונים קטן של ויקי ב-GPU ו-Trainium עם אותם הפרמטרים של אימון (גודל אצווה גלובלי=256). GPU משתמש ב-BF16 ובברירת המחדל של דיוק מעורב בעוד AWS Trainium משתמש ב-BF16 מלא עם עיגול סטוכסטי. מסלולי הנורמה של אובדן ושיפוע תואמים עבור GPU ו-AWS Trainium.

אובדן הכשרה בממוצע על פני כל העובדים (שמאל) ונורמת השיפוע (ימין) באימון בכל שלב (Pythia).

איור 2. אובדן הכשרה בממוצע על פני כל העובדים (שמאל) ונורמת השיפוע (ימין) באימון בכל שלב. בדומה ל-GPT NeoX באיור 1, Pythia 6.9B מאומן ב-4 צמתים עם מערך נתונים קטן של ויקי ב-GPU ו-Trainium עם אותם הפרמטרים של אימון (גודל אצווה גלובלי=256). מסלולי הנורמה של אובדן ושיפוע תואמים עבור GPU ו-Trainium.

כוונון עדין של דגם GPT NeoX 20B ב-GPU ו-AWS Trainium עם אובדן אימון בממוצע על פני כל העובדים (שמאל) ונורמת שיפוע (ימין).

איור 3. כוונון עדין של דגם GPT NeoX 20B ב-GPU ו-AWS Trainium עם אובדן אימון בממוצע על פני כל העובדים (שמאל) ונורמת שיפוע (ימין). מערך נתונים קטן של ויקי משמש לכוונון עדין של הדגמה. מסלולי הנורמה של אובדן ושיפוע תואמים עבור GPU ו-AWS Trainium.

בפוסט זה, הראינו הדרכה חסכונית של LLMs על חומרת למידה עמוקה של AWS. הכשרנו את דגמי GPT NeoX 20B ו- Pythia 6.9B על AWS Trn1 עם ספריית Neuron NeMo. התפוקה המנורמלת של 20 מיליארד דגמים עם AWS Trainium היא בסביבות 3.2 מיליון אסימונים/$ שהוצאה. יחד עם אימון חסכוני ב-AWS Trainium, אנו משיגים דיוק מודל דומה, אשר ניכר מאובדן צעדי אימון ומסלול נורמה שיפוע. גם כוונון עדין של המחסומים הזמינים עבור דגם NeoX 20B ב-AWS Trainium. למידע נוסף על ההדרכה המבוזרת עם NeMo Megatron ב-AWS Trainium, ראה AWS Neuron Reference עבור NeMo Megatron. ניתן למצוא כאן משאב טוב להתחיל כוונון עדין של מודל הלאמה, כוונון עדין של Llama2. כדי להתחיל בעבודה עם AWS Trainium מנוהל אמזון SageMakerראה אמן את דגמי ה-ML שלך עם AWS Trainium ו-Amazon SageMaker.


על הכותבים

חסכנות פוגשת דיוק: הדרכה חסכונית של דגמי GPT NeoX ו-Pytia עם AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.גאורב גופטה הוא כיום מדען יישומי במעבדות AI של Amazon Web Services (AWS). ד"ר גופטה השלים את הדוקטורט שלו מ-USC Viterbi. תחומי המחקר שלו משתרעים על התחום של מודלים רציפים של נתונים, לימוד משוואות דיפרנציאליות חלקיות, תורת מידע ללמידת מכונה, מודלים דינמיים חלקיים ורשתות מורכבות. כיום הוא עובד על בעיות יישומיות ומתמטיות על התנהגות אימון של LLMs, מודלים של ראייה עם PDEs, מודלים רב-מודאליים תיאורטיים של מידע. לד"ר גופטה יש פרסומים בכתבי עת/כנסים מובילים כמו Neurips, ICLR, ICML, Nature, IEEE Control Society, ACM Cyber-physical Society.

חסכנות פוגשת דיוק: הדרכה חסכונית של דגמי GPT NeoX ו-Pytia עם AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.בן סניידר הוא מדען יישומי עם AWS Deep Learning. תחומי המחקר שלו כוללים מודלים בסיסיים, למידת חיזוק ואופטימיזציה אסינכרונית. מחוץ לעבודה, הוא נהנה מרכיבה על אופניים וקמפינג בשטח.

חסכנות פוגשת דיוק: הדרכה חסכונית של דגמי GPT NeoX ו-Pytia עם AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.אמית' (ר) ממידאלה הוא הבכיר בהנדסת יישומי למידת מכונה במעבדות AWS Annapurna. ד"ר ממידאלה השלים את הדוקטורט שלו באוניברסיטת אוהיו סטייט במחשוב ותקשורת עם ביצועים גבוהים. במהלך כהונתו במחקר IBM, ד"ר ממידלה תרם למעמד מחשבי BlueGene, אשר הובילו לעתים קרובות את דירוג ה-500 המובילים של מחשבי העל החזקים והחסכוניים ביותר. הפרויקט זכה במדליה הלאומית לטכנולוגיה וחדשנות לשנת 2009. לאחר תקופה קצרה כמהנדס בינה מלאכותית בקרן גידור פיננסית, ד"ר ממידלה הצטרף למעבדות אנאפורנה שהתמקדו בהכשרת מודלים של שפה גדולה.

חסכנות פוגשת דיוק: הדרכה חסכונית של דגמי GPT NeoX ו-Pytia עם AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.יוני (לוק) הואן הוא מדען ראשי במעבדות AWS AI. ד"ר הואן עובד על AI ו-Data Science. הוא פרסם יותר מ-180 מאמרים בביקורת עמיתים בכנסים ובכתבי עת מובילים. הוא זכה בפרס לפיתוח קריירה מוקדמת של הפקולטה NSF בשנת 2009. לפני שהצטרף ל-AWS, הוא עבד במחקר Baidu כמדען מכובד וראש מעבדת ביג דאטה באידו. הוא הקים את StylingAI Inc., סטארט-אפ בינה מלאכותית, ועבד כמנכ"ל וכמדען ראשי בשנים 2019-2021. לפני שהצטרף לתעשייה, הוא היה פרופסור צ'ארלס אי ומרי ג'יין ספר במחלקה ל-EECS באוניברסיטת קנזס.

חסכנות פוגשת דיוק: הדרכה חסכונית של דגמי GPT NeoX ו-Pytia עם AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.שרוטי קופרקאר הוא מנהל שיווק מוצר בכיר ב-AWS. היא עוזרת ללקוחות לחקור, להעריך ולאמץ תשתית מחשוב מואצת של Amazon EC2 לצרכי למידת המכונה שלהם.

בול זמן:

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