מדריך | מדריך המשך| הקופסה השחורה - איך AI באמת חושב?
-
במדריך הקודם היה ההיסטוריה של הAI ומודלי השפה, מאיפה הם התחילו ועד להיום.
במדריך הזה ניגע בנימה הפרקטית.
איך עובד המח של הAI.
חשוב לי לציין. שום דבר לא נכתב עם AI, על הכל השקעתי שעות!
כמו"כ ניסיתי לפשט מונחים כמה שיותר, זה המקסימום שיכולתי..AI זה מערכת שמחולקת למספר שלבים, זה דבר שחשוב מאוד לדעת, יש מודלים שבהם כל החלקים קיימים ויש מודלים שבהם רק חלק מהם.
חלק ראשון: קבלת הקלט מהמשתמש וחלוקתו לטוקנים.
חלק שני: הפיכת הטוקן למספרים והאמבדינגס.
חלק שלישי: תהליך החשיבה.
חלק רביעי: פלט למשתמש.דבר בסיסי בהבנה הוא שAI לא באמת קורא מילים.
טוקן זה חתיכת טקסט, כלומר כמו שיש 'מילה' ויש 'תיו' ( מילה = 'קוגל', תיו = 'ק'), יש טוקן.
טוקן (שקטן יותר ממילה לרוב וגדול יותר מתיו) זה לא משהו עם כללים ברורים לדרך שבה הוא נחתך וגם משתנה משפה לשפה, לדוגמא 'קוגל' זה טוקן אחד אבל ילדים זה שני טוקנים - 'ילד' ו'ים'.הטקסט מגיע לטוקינייזר (Tokenizer), טוקינייזר זה בעצם החלק שלוקח את חתיכות הטקסט האלה וממיר אותם למספרים, בעצם תחשבו על זה כמו מילון עם כמויות טוקנים, ולכל טוקן יש מספר זהות ייחודי (ID) הטוקינייזר לוקח את הטוקן שהגיע ומעביר למודל את המספר שלו,
עד כאן השלב הפשוט.
קבלת הקלט והמרתו, זה קיים ב(כמעט) כל מודל AI בעולם,במדריך הקודם הוזכר שבשנת 2018 הוכרז BERT. שהיה מעין PoC לארכיטקטורת התשומת לב (האטנש'ן),
המודל BERT לא סתם מהווה הבסיס לכל מודל שיש כיום בעולם, הוא הצליח לעשות דבר אחד.
לקחת טוקן אחד ובמקום להסתכל על משפט לפי המילים שקדמו לו הוא למד להסתכל על כל המשפט בכללותו.אבל בשביל להבין את זה צריך להבין מה היה לפני זה.
וכבסיס צריך לומר,
ווקטור זה ייצוג מימדי, כלומר יעקב זה בייצוג מימדי 1.387 או משהו אחר בסגנון.
ווקטור ברעיון היה קיים לפני, אבל הארכיטקטורה של הסמנטיקה (שעליה נבאר בהמשך) השתנתה.מודלי שפה היו כבר לפני 2017 ולפני מנגנון התשומת לב.
אבל הם פעלו בשיטה שונה שנקראת RNN או בטכניקה מתקדמת יותר שלה בשם LSTM.
RNN לקחה משפט, (לדוגמא יעקב אוהב את אמא שלו) יעקב = 1.378 + אוהב = 0.566 את = 1.888 + אמא.. וכו',
ואז היא חישבה מתמטיקה פשוטה.
זה ועוד זה ועוד זה ביחד שווה "שלו" והשלים את המילה "שלו".
במאמר המוסגר החידוש בLSTM היה שבמקום לשמור בזיכרון ווקטורים מלאים של כל פרט לדוגמא סיפור של יעקב נסע באוטובוס, יעקב ישמר אוטובוס ישמר אבל צבע החולצה שלו - בRNN ישמר ובLSTM = לא.עיקר הבעיה הייתה בדברים טיפה יותר מורכבים ממשפטים רגילים.
ולזה בא מנגנון האטנש'ן הBERT וה"טרנספורמר".
עיקר החידוש היה הסתכלות על כל המשפט.
במקום להעביר מילה מילה, הוא לוקח את - "יעקב" + "אוהב" + "את" + "אמא" + "שלו" ואחרי שהוא מקבל את הכל הוא מתחיל בעיבוד ובחיזוי.איך זה היה מנוצל?
ובכן, במקום מרווח ווקטורי רגיל - RNN/LSTM היה מפה סמנטית.
סמנטי = משמעות.וזה בדיוק היה העיקרון, לעשות מרחב סמנטי = לעשות מרחב משמעותי.
כלומר בעצם השמירה היא אותה שמירה והמרחב הוא אותו מרחב דו מימדי, אבל במקום (לפני טרנספורמר -) בנק שווה אותו ווקטור (נניח 1.341) בין אם הכוונה לבנק ששומרים בו כסף ובין אם הכוונה לבנק באנגלית = גדת נהר,
אחרי הטרנספורמר התחילו להבין משמעות בהתאם למשפט, כלומר אם המילה בנק נאמרה יחד עם דני הלך ליד הנהר - הכוונה לגדה, ואם הכוונה להלך לשמור על הכסף בכספת - הכוונה לבנק.אז כן.
הAI הפך את המילים לטוקנים ואת הטוקנים לווקטורים במפה סמנטית.
עכשיו שלב העיבוד.
וכאן זה נחלק לשתי אופציות, מודלי שפה, ומודלי הטמעה.שניהם פועלים בהתחלה אותו הדבר, אבל הסוף שונה.
מודלי שפה כדוגמת GPT או ג'מיני מעבדים (נראה בהמשך איך) את המידע ופולטים תשובה.
מודלי הטמעה כדוגמת berel ואחרים מעבדים ופולטים את המיקום שלהם והדימיון (נראה ג"כ בהמשך).נתחיל ממודלי שפה.
שלב העיבוד הוא אחרי שיש למודל את הווקטורים הוא לוקח ומנסה לנחש תשובה, (המודלים הראשוניים היו עושים השלמות מילה - כיום הם יכולים לנחש תשובה, זה מבוסס על אותה ארכיטקטורה), דבר ראשון תהליך ההבנה, המודל לוקח את המשפט ומחשב קשר בין המילים, כמה כל מילה משפיעה על המילים האחרות,
במשפט "האיש הלך לבנק וראה שם הרבה פקידים", המודל יודע לקשר את המילה "בנק" למוסד פיננסי. אבל במשפט "האיש שט בסירה והגיע לבנק של הנהר", מנגנון הקשב מזהה את המילה "סירה" ומבין שהכוונה ב"בנק" (באנגלית: Bank) היא לגדת הנהר.
אז אחרי שהמודל הבין את המשפט הגיע הזמן לתשובה.
כאן זה כבר עולם הסטטיסטיקה (וככה תבינו למה כל הזמן אומרים שזה ס"ה סטטיסטיקה),
אחרי שהוא העביר את הטקסט במפת המשמעויות ובמנגנון הקשב הוא עושה חישוב סטטיסטי פשוט, מה המילה שצריכה להיות כאן כל סמך מליוני/מלייארדי/טריליוני המילים שראיתי בתהליך האימון? - וזה התשובה.
אבל, זה לא הכל, הוא לוקח את המילה שהוא חזה שצריכה להיות סטטיסטית ומפעיל לולאה אגרסיבית (Autoregression), המודל 'טס' טוקן טוקן וחוזה את הטוקן הבא וכותב אותו,
מתי הוא נעצר? כשהוא מגיע ל'טוקן עצירה' מיוחד שמסמן שהתשובה שלמה.מיותר לציין שהתשובות שלו זה ווקטורים, שמומרים לטוקנים = טקסט..
עכשיו לעוד כמה מושגים:
טמפטרטורה, כשאומרים טמפטרטורה ומכוונים ליצירתיות, המודל בס"ה בוחר אם לקחת יותר סיכונים או מילים יותר הגיוניות סטטיסטית (ולכן גם פחות יצירתיות..)
חלון הקשר (Context Window), למודלי שפה יש מגבלה על כמות המידע שהוא יכול להחזיק בשיחה אחת,
זה כולל הכל, פרומופט, סקיל, מסמכים ותמונות, וכל דבר אחר שנכנס לשיחה, אין קסם, AI מה שהוא יודע - נכנס לקונטקס.מודלי הסקה/שרשרת חשיבה/מודלי הריזונינג, פשוט מאוד, כמו שאמרתי במדריך הקודם, במקום ישר לפלוט את התשובה, מבצע מספר שלבי עיבוד פנימיים לפני שהוא מתחייב לתשובה.
אה, ומודלי האמבדינג? (כמו מודלי חיפוש שלא מחזירים טקסט אל ווקטורים) הם ס"ה מדלגים על השלב האחרון.
אשמח לתגובות/הארות/הערות/פידבקים וכו' כאן..
במדריך הבא אני רוצה לגעת יותר בסוכני הקוד ובדרך לנצל AI בצורה הטובה ביותר, בתחום הקידוד.
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות