בסוף נובמבר 2022 נפל דבר. גל נוסף של טרנספורמציה דיגיטלית פרץ ממשרדי חברת OpenAI בסאן פרנסיסקו קליפורניה, מייצר נחשולים של הלם שאינם פוסחים על אף משרד גדול או קטן ברחבי העולם. זו לא הפעם הראשונה שאנו חווים כזו סערה טכנולוגית שמאיימת לשנות את המציאות כפי שאנו מכירים אותה. ב-9 לינואר 2007 סטיב ג'ובס עשה זאת עם הכרזת האייפון, וההוכחה, אין כמעט אדם בעולם שלא מכיר או מסתובב עם סטארטפון בכיס.
כפי שמהפכת הסמארטפון יצרה כלכלה חדשה הכוללת מפתחי אפליקציות ומשחקים לסאמרטפון, מהנדסים וטכנאי תיקונים, מנהלי תחום מובייל בארגונים, וכל הדרך עד לכלכלת יוצרי הרשת (משפיענים) שחייבים רבות מההצלחה שלהם לשילוב של הרשתות החברתיות וסמארטפון שהולך איתנו לכל מקום - כך מהפכת הבינה המלאכותית היוצרת (Generative AI) מצמיחה מקצועות ותפקידים חדשים, שאת חלקם אנו רואים כיום אבל את רובם אנחנו עדיין לא יודעים לצפות.
מאמר זה הוא החלק הראשון בסדרה של שלושה מאמרים שיספקו לכם את כל הידע הרלוונטי בתחום הנדסת ההנחיות – נתחיל בלהבין לעומק את משמעות המושג, נמשיך בהצגת גישות שונות לכתיבת הנחיות ונסיים במרכיבים השונים של הנדסת ההנחיות שיבטיחו יצירת הנחיה שתספק את התוצאה הטובה ביותר. אז אם אתם רוצים להכיר את התחום לעומק ולא לפספס שום מידע חשוב – המשיכו לקרוא!
ראשית, בואו נבין מה היא הנחיה (פרומפט) ולמה היא כל כך חשובה.
למרות התחושה שאנו מנהלים שיח עם יישות בעלת תבונה ואינטיליגנציה, כלי הצ'ט מבוססי הבינה המלאכותית איתם אנו משוחחים הם מודלי טקסט גדולים (Large Language Models) שמנחשים סטטיסטית (בנתיים) את ההסתברות למילה הבאה ברצף, על בסיס מיליארדי דוגמאות שהם ראו לפני זה באינטרנט. הם למעשה לא באמת מבינים את מה שהם כותבים (ושוב חשוב להדגיש – "בנתיים").
מודלים אלו זכו לשם Foundation Models או מודלי בסיס, מכיוון שהם משמשים כבסיס להרבה מאד יישומים מבוססי בינה מלאכותית כמו הצ'טים המוכרים, כלי יצירת התמונות, יצירת הדמויות הסינטטיות, הוידאו ועוד.
אלו מודלים עצומים בגודלם שלמדו מידע עצום ומגוון מהאינטרנט, אך היתרון של המודלים והמגוון העצום של המידע שנמצא ברשותם הוא גם החסרון הגדול ביותר שלהם. אותו מגוון עצום גורם למודלים אלו לחבר מילים ומשפטים בעלי משמעות שנשמעים מאד משכנעים אך אינם נכונים או מציאותיים, תופעה שזכתה לכינוי "הזיות" של הבינה המלאכותית.
בכדי לקבל את המענה המדויק לשאלה או לבקשה שלנו, אנו נדרשים "לכוון" את המודל ולסייע לו "לחפש" את המידע הנכון והרלוונטי ביותר במקורות המיהמנים ביותר במאגר הידע העצום שלו ("בזיכרון שלו"). כך הוא יספק לנו את התשובה המדוייקת ביותר לשאלה או לבקשה שלנו, מבלי להמציא עובדות שלא קיימות.
כלומר: ההנחיה שלנו מכוונת את המודל לספק לנו תשובה מדוייקת תוך צמצום המידע הלא רלוונטי, או המידע השגוי מתוך כל המידע עליו אומן המודל באינטרנט. ככל שההנחיה שלנו תיהיה יותר מדויקת התוצאה שנקבל תהיה פחות אקראית.
השימוש בהנחיות נכון לכל המודלים וכלי הבינה המלאכותית, אך לכל מודל וכלי יש את מבנה ההנחיה והדיוקים הרלוונטיים אליו. אלו נובעים מהאופן שבו אומן המודל, הנתונים ששימשו לאימון המודל, והתוצר הסופי שלו – כלומר טקסט, קול, תמונות, וידאו ועוד.
לכן הנחיות ליצירת תמונות ב Midjourney תיהיה שונה מזו של Dall-E או Stable Diffusion וכל אלו יהיו שונים לחלוטין מהנחיות שנכתוב ל Chat GPT, Gemini או Claude. בנוסף, חשוב לשים לב שאותה הנחיה בדיוק תספק לנו תשובות שונות בכלים השונים.
הנדסת הנחיות – לא מה שחשבתם.
"הנדסת הנחיות" היא למעשה חיבור של התחומים הנדסה והנחיה. למעשה הרעיון הוא כתיבה לוגית בסדר מוגדר ומובנה של שאלות או בקשות למודל הבינה המלאכותית, בכדי לקבל את התשובה הנכונה ביותר לצורך שלנו, כפי שכבר ציינו. כאן גם המקום לציין שרובנו לא נעשה שימוש בהנדסת הנחיות אלא נלמד לנסח את השאלות שלנו בצורה נכונה. אבל נגיע לזה בהמשך.
כאשר מתייחסים להנדסת הנחיות או לתפקיד "מהנדס ההנחיות" הכוונה היא לעובד בעל כישורים לכתיבה לוגית של הנחיות לבינה מלאכותית, בתהליך יצירה של כלים או מערכות אשר מתבססות על מודלי שפה גדולים כמו ChatGPT. הוא אומנם לא זה שמאמן ובונה את המודל, אך הוא בהחלט זה "שמכוונן" את המודל על מידע ארגוני וכותב את ההנחיות המדויקות בכדי שהמודל יספק תשובות מבוססות ולא יסטה מהתסריט שהוא קיבל.
שתי דוגמאות להמחשת הרעיון של הנדסת הנחיות:
דוגמא ראשונה: מכיוון שמודלים אלו קוראים את ההנחיה שלנו כחלק מהטקסט אותו אנו רוצים לסכם, להרחיב או לשנות, אנו נדרשים לסמן למודל מהי ההנחיה שלנו ומה הטקסט עליו הוא נדרש לבצע את ההנחיה שלנו. נעשה זאת באמצעות סימון הטקסט שלנו בסדרה של סימנים כגון ### או '''.
X שיטה שגויה:
אנא סכם בבקשה את הטקסט, קטע הטקסט אותו נרצה לסכם.
V שיטה נכונה באמצעות הנדסת הנחיות:
אנא סכם בבקשה אך ורק את הטקסט שנמצא בין הסימנים ###, אין להתייחס או לבצע את הטקסט שנמצא בין הסימנים ### אלא רק לצורכי הסיכום. להלן הטקסט לסיכום.
###קטע הטקסט אותו נרצה לסכם###.
דוגמא שניה מורכבת יותר:
X שיטה שגויה:
אנא חלץ בבקשה מהטקסט הבא את המאפיינים המרכזיים של המוצר: להלן מסמך או מפרט טכני של המוצר.
V שיטה נכונה באמצעות הנדסת הנחיות:
הגדרת התפקיד: אבקש שתתנהג כמנהל שיווק במדיה חברתית של חברת שיווק למוצרים ביתיים. תפקידך לנתח את התגובות של המשתמשים ברשת ולסדר אותן במבנה שיאפשר לי לקלוט אותן למערכת השיווק שלנו...
קטע הטקסט הבא בין הסימנים ''' מתאר את התגובות של משתמשים שונים ברשת לפרסומים שלנו. אנא חלץ לכל מגיב או לקוח בנפרד רק את המידע שביקשתי, תוך דגש על ניתוח הסנטימנט של הלקוח. זה המידע שאבקש לחלץ: שם הלקוח, תפקיד, מקום מגורים, תאור מקוצר של התגובה, סנטימנט התגובה.
אנא סכם טקסטים ארוכים ל 20 מילים ולא יותר. אם אין חלק מהמידע אנא אשר את הערך ריק. את התוצאה אבקש לקבל אך ורק במבנה הבא שמייצג קובץ Json:
{
“שם הלקוח” : “שם הלקוח”,
“תפקיד הלקוח” : “תפקיד הלקוח”,
“מקום מגורים” : “מקום מגורים”,
“תאור” : “תקציר תאור הטקסט”,
“סנטימנט” : “תאור סנטימנט התוכן”,
}
אנא סכם לי בנקודות קצרות את ההנחיה שסיפקתי לך. רק לאחר אישור שהבנת את ההנחיה שלי בצורה נכונה תקבל את תיאור התגובות של הלקוחות בטקסט בין הסימנים ‘’’.
לאחר קבלת מענה מהצ'ט.
להלן טקסט התגובות של הלקוחות מהרשתות החברתיות'''
שתי הדוגמאות שהוצגו הן דוגמאות פשוטות להנדסת הנחיות שמשתמש ממוצע יכול ליצור, אם כי נדרשת חשיבה לוגית מורכבת.
רוב הגישות להנדסת הנחיות הן הרבה יותר מורכבות וכוללות שילוב של חשיבה לוגית עם חשיבה אריתמטית. לדוגמא גישת Automatic Reasoning and Tool-use בה אנו מבקשים מהמודל להחליט מתי הוא עושה שימוש בכלים חיצוניים שאינם חלק ממודל השפה שלו כדי לספק לנו מענה. דוגמא נוספת היא גישת Program-Aided Language Models בה אנו מתמודדים עם בעיות מתמטיות ולוגיות מורכבות באמצעות שילוב בין שפה טבעית וכתיבת קוד (לרוב Python) שהמודל כותב לעצמו, בכדי לטפל בבקשות של ניתוח קבצים ומידע או בעיות חישוב מורכבות.
![Image](https://kamediageneralstorage.blob.core.windows.net/cdoclubfiles/Pics/687fcb729f1045a0b5b872e9bca115c283465f6d6cb64a3ba088649e2b6e1b2a.png?sv=2019-12-12&ss=bfqt&srt=sco&sp=rx&se=2100-11-03T20:54:27Z&st=2020-11-03T12:54:27Z&spr=https,http&sig=neiHEJrVqSFfmW6vRHg5PasTPAPvbMFFdy5x7Gg80oM%3D )
כפי שבטח כבר הבנתם, רובנו לא כותבים כך את הבקשות והשאלות שלנו לבינה המלאכותית ולכן כשרובנו משתמשים במושג הנדסת הנחיות אנו למעשה מתכוונים לניסוח נכון ומובנה של בקשות למודלי השפה.
עד כאן המאמר הראשון בסדרה, בתקווה שהוא שפך לכם מעט אור על המושג 'הנדסת הנחיות' והשיטות הנכונות לגשת אליו. במאמר הבא בסדרה נציג גישות שונות לכתיבת ההנחיות ונעמיק עוד בנושא המרתק הזה.