לאחרונה יותר ויותר אנשי QA מוסיפים בקו"ח שלהם, מעבר לכתיבת מסמכי בדיקות, פוסטמן ופליירייט, גם על נסיון בעבודה עם AI. זהו כמובן עולם עצום הדורש הרחבה, ואני מכיר גם לא מעט מנהלים שבראיונות לאותם אנשי QA שואלים שאלה מאוד פשוטה אשר באופן מדהים הרבה אינם יודעים לענות עליה תשובה נכונה: מהו LLM וכיצד הוא עובד?
יאללה, אז כשירות לציבור, החלטתי להקצות את הפוסט הבא לנושא חשוב זה.
כדי להבין LLM, צריך להכיר את אבן הבניין שלו: רשת נוירונים (Neural Network). יכול להיות שהמושג הזה מוכר לנו מעולם הרפואה – הרי רשת נוירונים (תאים) קיימת אצל כל אחד מאיתנו במוח. אז איך זה קשור ל-LLM ?
תחשבו על רשת נוירונים כעל מערכת של מיליוני שכבות של "מסננות" או "מתגים". במוח האנושי יש תאים (נוירונים) שמעבירים אותות חשמליים אחד לשני. במחשב, "רשת נוירונים" היא חיקוי מתמטי של המבנה הזה.
– יש שם קלט (input), למשל מילה שאנו שומעים.
– יש שם שכבות עיבוד (Layers): המילה עוברת דרך המון שכבות. כל שכבה "שואלת" עליה שאלה מתמטית. למשל: "האם זו מילה שקשורה לאוכל?", "האם זה פועל?", "מה המילה שהופיעה לפניה?".
– וכמובן שיש פלט (output): אחרי כל החישובים, הרשת מוציאה תוצאה (למשל, המילה הבאה במשפט). זה מה שהופך אותו ל-Generative AI, הוא לא רק מנתח מידע, הוא יוצר תוכן חדש על בסיס הסטטיסטיקה שלמד.
איך המערכת לומדת? בתהליך ה"אימון", מראים לרשת מיליארדי דוגמאות. אם היא ניחשה לא נכון, המערכת מתקנת את ה"מתגים" שלה (אנחנו קוראים לזה Weights – משקולות) עד שהיא מצליחה לנחש נכון.
ה-LLM הוא רשת נוירונים, אבל בממדים מפלצתיים. כשאומרים שמודל הוא בעל למשל "200 מיליארד פרמטרים", הכוונה היא שיש בתוך רשת הנוירונים שלו 200 מיליארד מתגים קטנים שקובעים איך המידע יזרום. במודלים המתקדמים ביותר מדובר כבר על מאות מיליארדים ואף טריליוני פרמטרים (כך אומרים – לא ספרתי :-)).
ככל שיש יותר פרמטרים ויותר נתונים באימון, הרשת מצליחה לזהות תבניות (Patterns) הרבה יותר מורכבות. היא כבר לא רק מנחשת מילה, היא "מבינה" הקשר, סרקזם, ואפילו לוגיקה של קוד.
עד לפני כמה שנים, מחשבים קראו משפטים מילה אחרי מילה (כמונו). הבעיה? הם שכחו את תחילת המשפט עד שהגיעו לסופו.
ה-LLM המודרני משתמש בטכנולוגיה שנקראת Transformer עם מנגנון שנקרא Attention (תשומת לב):
– המנגנון הזה מאפשר למודל להסתכל על כל המשפט בבת אחת.
– הוא יודע לתת "תשומת לב" למילים החשובות.
– דוגמה ל-QA: במשפט "המתכנת כתב קוד והוא היה מלא בבאגים", המודל יודע שהמילה "הוא" מתייחסת לקוד ולא למתכנת, כי מנגנון ה-Attention קישר ביניהם מתמטית.
איך זה מתחבר לעולם ה-QA שלנו?
בתור בודקים, הבנת המבנה הזה עוזרת לכם להבין את הסיכונים (Risks) במוצר:
למשל ב-משקולות עליהם דיברנו מקודם: המודל פועל על סטטיסטיקה, לא על חוקים קשיחים. לכן, אותה בדיקה יכולה להניב תוצאות שונות (Flaky Tests).
למשל ב-context window: לרשת נוירונים יש זיכרון מוגבל. אם תכניסו לה מסמך אפיון של 500 עמודים (לדוגמא), היא עלולה "לשכוח" את מה שכתוב בעמוד הראשון.
האם אפשר "ללמד" את המודל דברים חדשים?
בוודאי. בתהליך שנקרא Fine-Tuning, אנחנו יכולים לעדכן את המשקולות של רשת הנוירונים כדי להתאים אותן לצרכי ה-QA שלנו. במקום שהמודל יהיה חכם כללי, אנחנו מאמנים אותו על דוחות הריצה, הבאגים והקוד הספציפי של המוצר שלנו.
דוגמה: אם נאמן את המודל על אלפי סקריפטים של אוטומציה מהפרויקט שלנו, הוא ילמד "לנחש" את פקודות הקוד המדויקות שמתאימות למערכת שלנו, ולא רק קוד כללי מהאינטרנט. זה הופך אותו מעוזר חכם למומחה הבית שמכיר כל פינה במוצר.


