איך מודל שפה חושב - LLM מוסבר בפשטות¶
אתם מקלידים שאלה ל-Claude או ל-ChatGPT, ותוך שניות מקבלים תשובה שנשמעת כמו שכתב אותה בן אדם שמבין בדיוק על מה מדובר. קל מאוד להתחיל להתייחס לזה כאל "מוח" דיגיטלי שחושב כמונו. הבעיה היא שההבנה הזו שגויה, וההשלכות שלה חשובות במיוחד אם אתם משתמשים במודל שפה בשביל לכתוב קוד.
אז מה זה בעצם מודל שפה¶
מודל שפה גדול - LLM, קיצור של Large Language Model - הוא בבסיסו מנוע שמנחש מה המילה (או ליתר דיוק, "טוקן") הבאה צריכה להיות, בהינתן כל הטקסט שבא לפניה. זהו. אין שם "הבנה" במובן שבו אנחנו מדמיינים, ואין תודעה. יש חישוב סטטיסטי ענק, מבוסס על כמויות עצומות של טקסט שהמודל "ראה" באימון, שמנבא ברמת דיוק מדהימה מה המילה הבאה ההגיונית ביותר.
אז למה זה מרגיש כל כך חכם¶
כדי לנחש נכון את המילה הבאה ברמה שבה LLM עושה את זה, המודל בהכרח פיתח בתוכו ייצוגים פנימיים מורכבים מאוד - של דקדוק, של עובדות על העולם, ושל דפוסי חשיבה, כולל דפוסי חשיבה של תכנות. כדי לנבא נכון את השורה הבאה בפונקציית פייתון, המודל צריך "להבין" (במרכאות, כי זו לא הבנה אנושית) מבנה, לוגיקה ותחביר. התוצאה היא התנהגות שנראית כמו הבנה אמיתית, גם אם המנגנון מתחתיה שונה לגמרי ממה שקורה במוח שלכם.
מנגנון הקשב - attention¶
החלק שהפך את המודלים המודרניים ליעילים כל כך נקרא מנגנון קשב - attention. בפשטות, כשהמודל מנבא את המילה הבאה, הוא לא מסתכל על כל הטקסט שלפניו באותה מידה. הוא "משקלל" אילו חלקים מהטקסט הכי רלוונטיים לרגע הנוכחי. זו הסיבה שמודל יכול לזכור פרט שהוזכר בתחילת שיחה ארוכה ולהשתמש בו נכון בהמשך - הוא לא "זוכר" כמו בן אדם, אלא משקלל את כל הטקסט הזמין מחדש בכל פעם.
למה זה הוזה - hallucinate¶
אם המודל רק מנחש את הטוקן הכי סביר סטטיסטית, קל להבין למה הוא לפעמים "ממציא" דברים בביטחון מלא - שם פונקציה שלא קיימת, ספרייה שלא קיימת, עובדה שגויה. מבחינת המודל, אין הבדל פנימי בין "אני יודע את זה בוודאות" לבין "זה נשמע לי הכי סביר סטטיסטית". שני המקרים מייצרים טקסט שנראה בדיוק אותו דבר - בטוח ומגובש. זו הסיבה שאסור לסמוך על תשובה של AI בלי לבדוק אותה, במיוחד בקוד שהולך לפרודקשן.
מה זה אומר לכם כמתכנתים¶
ההבנה הבסיסית הזו משנה איך כדאי לכם לעבוד עם הכלים. קודם כל, אתם מבינים למה תיאור מדויק ומפורט משפיע כל כך על איכות התוצאה - אתם בעצם עוזרים למודל לצמצם את מרחב הניחושים הסבירים. שנית, אתם מבינים למה חשוב לתת למודל הקשר עדכני ומדויק (קבצים אמיתיים, לא תיאור מהזיכרון) - כי הוא בונה את התשובה מתוך מה שנמצא לפניו ברגע הזה. ושלישית, אתם מפסיקים להיבהל כשהוא טועה - זו לא תקלה מוזרה, זו תכונה בסיסית של איך שהטכנולוגיה הזו עובדת, וצריך פשוט לבדוק תוצאות כמו שהייתם בודקים קוד של מתכנת ג'וניור.
לא כל המודלים זהים¶
חשוב לזכור שיש הבדלים משמעותיים בין מודלים שונים - בגודל, בשיטת האימון, ובכמה "אימון נוסף" הם קיבלו במיוחד על משימות תכנות. זו הסיבה שמודלים מסוימים טובים משמעותית יותר במשימות קוד מורכבות מאחרים, גם אם התחושה הראשונית מכולם דומה.
בקורס פיתוח עם AI אנחנו מתחילים דווקא מהיסודות האלה, כי הבנה נכונה של איך הכלי עובד מבפנים היא מה שהופך משתמש מזדמן למישהו שעובד עם AI ביעילות אמיתית.
לסיכום¶
מודל שפה הוא לא מוח דיגיטלי, הוא מנוע ניבוי סטטיסטי אדיר שמייצר טקסט שנראה כמו תוצר של הבנה. ההבדל הזה לא סמנטי - הוא משנה איך כדאי לכם לכתוב פרומפטים, כמה לסמוך על תשובה ראשונה, ולמה בדיקה אנושית נשארת חלק בלתי נפרד מהעבודה עם הכלים האלה.
יש לכם שאלות על איך המודלים עובדים בפועל? הצטרפו לקהילה בדיסקורד.