כך תריצו מודל שפה חזק על המחשב הביתי שלכם
-
לפני תקופה הודלף מודל השפה Llama, מבית מטא כקוד פתוח והועלה לגיטהאב. מהרגע שהודלף פורסמו גרסאות רבות והפופולריות שלו בקרב מפתחים הלכה וגברה.
לפני מספר שבועות פורסם המודל החדש Llama2 של מטא בשיתוף מיקרוסופט, כקוד פתוח רשמי. בין השאר פורסם מודל עוצמתי עם 70 מיליארד פרמטרים (לעומת 170 ב-GPT), מה שמשנה את כללי המשחק בעולם מודלי השפה הגדולים (Large Language Model)
מדובר במודל ענק עם פונטציאל אדיר, אבל בפוסט הזה אביא דוקא מודל קטן יותר שמבוסס על המודל המקורי, שמתאים להרצה על כל מחשב (מעבד i3 עם 8 ג'יגה ראם ומעלה).
יש לציין שהמודל עובד ללא אינטרנט באופן מלא, והוא גם לא דורש אינטרנט בעת ההתקנה. הוא נהדר גם למשימות כתיבת קוד, אבל זמין באנגלית בלבד.
כל מה שצריך לעשות זה להוריד את הקבצים הבאים:
- יש להוריד את הקובץ שבקישור הזה (כ-4 ג'יגה), זה הקובץ שמכיל את המודל עצמו:
קישור ישיר למודל הספציפי בו השתמשתי - https://huggingface.co/localmodels/Llama-2-7B-Chat-ggml/blob/main/llama-2-7b-chat.ggmlv3.q4_0.bin
** ניתן להוריד מתוך הרשימה של דגמים נוספים דומים, יש שם גם הסבר על ההבדלים בין המודלים - https://huggingface.co/localmodels/Llama-2-7B-Chat-ggml. Start Llama2.bat
-
לאחר מכן יש להוריד את קבצי "llama.cpp", שמריצים את מודל השפה. זהו קובץ קטן למדי.
המאגר מתעדכן כל כמה שעות, כך שכדאי פשוט להוריד את הקובץ החדש ביותר מתוך הרשימה הבאה. אני אישית בוחר בסוג הזה משום מה "llama-master-ee1b497-bin-win-avx-x64.zip", אך אודה ולא אבוש שאין לי מושג מה ההבדל בין הדגמים. כפי הנראה כולם אמורים לעבוד על ווינדוס. -
לאחר מכן הורד את קובץ ההפעלה הבא:
Start Llama2.bat -
חלץ את קובץ הזיפ לתיקיה והעתק לתוכו את שאר הקבצים שהורדת.
-
כעת, הפעל את קובץ הבאט המצורף - המודל יתחיל לפעול, כל שעליך לעשות זה להקליד תוכן כרצונך ולהקיש אנטר. (הוא עובד בעיקר באנגלית, בעברית הוא יותר גרוע מגרוע)
חשוב לשים לב: התאמתי את קובץ הבאט לכל דגם שהמשתמש יוריד, אך חשוב שבתוך התיקיה יהיה רק קובץ "bin" אחד!
ניתן לחפש מודלים נוספים באתר "huggingface", חלקם דורשים שליחת בקשת צפייה למטא. ככלל, ככל שהמודל מתקדם וגדול יותר, (במשקל - גודל הג'יגה של הקובץ, ובפרמטרים - מסומן עם האות B, למשל "70B" [באנגלית מליארד = ביליון. כלומר 70 מליארד פרמטרים], כך הוא יכביד יותר על המחשב ויעבוד לאט יותר, התאימו את המודל לעוצמת המחשב שלכם)
- יש להוריד את הקובץ שבקישור הזה (כ-4 ג'יגה), זה הקובץ שמכיל את המודל עצמו:
-
@EMG כתב בכך תריצו מודל שפה חזק על המחשב הביתי שלכם:
@NH-LOCAL וואו תודה רבה רבה !
סתם מעניין ניתן לפתוח את הקובץ של הערכים להוסיף או לערוך אותם וכו' ?אין קובץ ערכים
זה קובץ של "רשת נוירונים" שאף אחד לא יודע להסביר מה הולך בתוכו, כשהמודל מקבל משפט הוא מחשב ע"פ הקובץ הזה מה ההסתברות למילה הבאה.
כשאתה כותב "שמע ישראל ה' אלוקינו ה'" הוא מחשב מה ההסתברות למילה הבאה ויוצא לו שבהסתברות גבוהה המילה הבאה צריכה להיות "אחד", איך הוא מחשב את ההסתברות הזו אני לא יודע בדיוק אבל הרעיון הוא כשאימנו אותו נתנו לו את המשפט הזה לנחש את המשפט המשפט מליוני פעמים ובכל פעם הוא משנה טיפה את הקובץ של ה"רשת ניורונים" עד שהוא הצליח לנחש נכון את המילה "אחד" והנוסחה שהצליחה לנחש נכון נשמרת בקובץ ועוברים למילה הבאה (ובגלל שצריך לעשות כל כך הרבה פעולות בשביל "ללמד" אותו זה מאוד יקר לאמן מודל מאפס, אבל אפשר ללמד מודל קיים את השולחן ערוך יחסית בקלות אבל גם זה יעלה בהרבה כח מחשוב לתת לו לנחש נכון את כל השולחן ערוך + נושאי כלים)
בסוף יוצא קובץ ענק שאף אחד לא יודע להסביר מה קורה בתוכו אבל בתכל'ס הוא עובד -
@nigun כתב בכך תריצו מודל שפה חזק על המחשב הביתי שלכם:
@EMG כתב בכך תריצו מודל שפה חזק על המחשב הביתי שלכם:
@NH-LOCAL וואו תודה רבה רבה !
סתם מעניין ניתן לפתוח את הקובץ של הערכים להוסיף או לערוך אותם וכו' ?אין קובץ ערכים
זה קובץ של "רשת נוירונים" שאף אחד לא יודע להסביר מה הולך בתוכו, כשהמודל מקבל משפט הוא מחשב ע"פ הקובץ הזה מה ההסתברות למילה הבאה.כהמשך לדברים יש לציין, שבתוך הקובץ לא קיים תוכן של ממש למעשה. כי קובץ שעבר על כל האינטרנט אמור לשקול עשרות טרות, אבל למעשה הוא שוקל כמה עשרות ג'יגה. למעשה השיטה שלו היא זה לעבור על התוכן ולהתאמן עליו, ואז לפלוט אותו. כך שכעת הוא לא רק מעתיק את המידע מאיכנשהו, אלא "מבין" באיזו צורה הוא אמור להתנסח.
לדוגמה: מודל שמתאמן לזהות תמונה של חתול. מכניסים לו אלפי תמונות של חתולים, ולאחר שהוא מתאמן עליהם, הוא זורק את התמונות עצמם, וכעת הוא יזהה לבד מה זה חתול. ממש כמו שאדם יודע מה זה חתול, בלי לבדוק בראש ולהשוות עם תמונות אחרות של חתולים. הוא פשוט יודע.
-
@one1010 כתב בכך תריצו מודל שפה חזק על המחשב הביתי שלכם:
למד לחשוב בהיגיון מבלי יכולת לאמת אותה בכל תשובה.
ליתר דיוק למד לחשוב בהסתברות סטיסטית מה המילה הבאה
ואם אין לו מידע לא מסתבר לו שהוא צריך לענות לא יודע.
מהסיבה הפשוטה באינטרנט כמעט לא כתוב "לא יודע מה התשובה"אז ממש לא מסתבר לענות את זה.
עריכה: יש פתרונות איך לראות האם למודל חסר ידע בנושא ואין לו איך לדעת מה התשובה הנכונה, למשל לבקש ממנו לכתוב מחדש את השאלה מ3 צורות ולהשוות את התשובות ולראות האם יש סתירה בתשובות. -
@nigun כתב בכך תריצו מודל שפה חזק על המחשב הביתי שלכם:
ליתר דיוק למד לחשוב בהסתברות סטיסטית מה המילה הבאה
התחלתי לקרוא את המאמר שצירפו כאן אבל עדיין לא נראה לי שזה רק עניין של התסברות של המילה הבאה. כי מעבר להסתברות הוא מביא תשובות הגיוניות ומבין את השאלה. זה הרבה יותר עמוק מזה להבנתי
-
@one1010 כתב בכך תריצו מודל שפה חזק על המחשב הביתי שלכם:
@NH-LOCAL ומכאן גם החסרון הענק שלו. בנאדם חוץ מההבנה יש לו גם יידע ואחסון ענק אם לAI יש רק הבנה הוא יכול להמציא עובדות הגיוניות מאד אבל כלל לא נכונות כי הוא רק למד לחשוב בהיגיון מבלי יכולת לאמת אותה בכל תשובה.
בדיוק בשביל זה גם מיקרוסופט עם בינג וגם גוגל עם בארד, משלבים יכולות חיפוש באינטנרט עם מודל שפה.
עריכה: חשוב לציין, שבלמידת מכונה באופן כללי (לאו דוקא מודל שפה), כל הרעיון הוא לזהות מידע חדש, שעדיין לא קיים במודל. למשל, במודל שמזהה שמות של מקומות בתוך טקסט, הוא יכול לחשב מה נראה כמו שם של מקום לפי הסגנון. מה שחוסך את הצורך ליצור מאגר שלם עם רשימה של שמות מקומות, וגם עוזר למערכת לזהות שמות חדשים שלא היו קיימים במאגר ידני.
@one1010 כתב בכך תריצו מודל שפה חזק על המחשב הביתי שלכם:
התחלתי לקרוא את המאמר שצירפו כאן אבל עדיין לא נראה לי שזה רק עניין של התסברות של המילה הבאה. כי מעבר להסתברות הוא מביא תשובות הגיוניות ומבין את השאלה.
ליתר דיוק - הסתברות של המילה הבאה בהתחשב למשפט שהזנת לו. (אני גם לא מבין מה זה בדיוק אומר, אבל כך זה עובד)
זה הרבה יותר עמוק מזה להבנתי
ככלל, העומק הגדול ביותר טמון לפעמים, דוקא בפשטות הגדולה ביותר
-
@nigun כתב בכך תריצו מודל שפה חזק על המחשב הביתי שלכם:
זה קובץ של "רשת נוירונים" שאף אחד לא יודע להסביר מה הולך בתוכו, כשהמודל מקבל משפט הוא מחשב ע"פ הקובץ הזה מה ההסתברות למילה הבאה.
לייתר דיוק, זה קובץ שמכיל 'משקלים' שהם מיועדים כקלט לרשת הנוירונים, הרשת עצמה כלולה בארכיטקטורה של המודל ולא שוקלת הרבה, במהלך שלב האימון נוצר הקובץ של ה'משקלים', שאתו משתמשים בשלב ההסקה.
-
רשימת מקורות רציניים על LLM:
https://gist.github.com/veekaybee/be375ab33085102f9027853128dc5f0e