AICODEAgentic Programming · 67723 · 2026-7

Week 2 · video 6 of 8 · transcript

LLMs: What the Model Knows — and Doesn't

תרגום שנעשה בעזרת בינה מלאכותית.AI translation, not reviewed by a person.

0:00

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

0:21

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

0:35

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

0:46

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

1:02

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

1:39

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

2:21

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

2:36

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

3:05

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

3:39

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

3:54

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

4:05

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

4:20

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

4:47

המגבלות האלה מופיעות גם בקוד. נניח שאנחנו מבקשים קוד שמשנה צורה של DataFrame ב-pandas ומבקשים המלצה על פונקציית עזר לקריאת קבצי CSV.

4:58

הוא עונה בביטחון, עם מתודה בשם unpivot וחבילה בשם kewl-utils. במבט ראשון, שניהם נראים סבירים לגמרי.

5:08

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

5:29

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

5:56

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

6:09

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

6:22

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

6:33

בקוד כל זה מופיע כ-APIs מומצאים וחבילות שלא קיימות.

6:39

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

6:54 of video · 884 words · 22 slides← Back to the video