לחץ "Enter" למעבר לתוכן

דמנציה של צ'אט-בוטים ותותחי הדבק של יוסריאן

0

בינה מלאכותית ותותחי דבק

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

 

שייסקופף (ג'ורג' קלוני), יוסריאן (כריסטופר אבוט) וקלווינג'ר (פיקו אלכסנדר), מתוך הסדרה "מלכוד-22"

הדמנציה של מודלי השפות (LLMs)

האם גם לך זה קרה בשבועות האחרונים?

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

כישורי קידוד בעייתיים

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

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

כישורי התנהגות בעייתיים

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

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

יותר מצירוף מקרים

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

מה יכול לגרום לזה?

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

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

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

יוסאריאן ותותחי הדבק הגרמניים

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

 

Dust jacket of the first edition of Catch-22 by Joseph Heller
עטיפת המהדורה הראשונה של "מלכוד-22" מאת ג'וזף הלר

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

 

דוגמא לתרגום עברי-אנגלי של הביטוי "לקחת ללב" ב-Reverso

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

שרשרת המזון הרקורסיבית של ה-LLM

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

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

מה צופן העתיד?

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

 

המהדורה הראשונה של "פרחים לאלג'רנון", מתוך ויקיפדיה

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

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

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