close menu

מי רוצה לאמן ChatGPT פרטי?

שוחרר בפעם הראשונה מודל צ'ט פתוח!

מוזמנים לשחק איתו כאן: https://huggingface.co/spaces/togethercomputer/OpenChatKit

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

דרך אגב: צוות זה אחראי בין היתר לאימון דרך האינטרנט בשבע מדינות במקביל של אחד המודלים הפתוחים החזקים ביותר כיום: GPT-JT, עליו תוכלו לקרוא כאן: https://www.facebook.com/photo/?fbid=10160124091459663…

בנוסף למודל המאומן שוחררו כל המשאבים, הדאטה וקטעי הקוד בהם נעשה שימוש באימון המודל! לחבילת משאבים אלו ניתן השם: OpenChatKit.

ודרך אגב: את משקולות המודל המאומן תוכלו למצוא כאן: https://huggingface.co/togetherco…/GPT-NeoXT-Chat-Base-20B

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

איך בונים צ'ט בוט?

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

החבילה כוללת 4 מרכיבים עיקריים:

  • מודל שפה גדול (20 מיליארד) מאומן לבצע הוראות ולענות להודעות צ'אט. המודל מאומן מהמודל ההתחלתי GPT-NeoX-20B של EleutherAI גם הוא כמובן בקוד פתוח. המודל אומן על יותר מ-43 מיליון הוראות בשפה טבעית.
  • קטעי קוד מוכנים ומדריכים על מנת להתאים אישית את המודל לבעיות הפרטיות שלכם ולהגיע לדיוק גבוה במהלך האימון
  • מערכת Retrieval בנויה מראש המאפשרת למודל גישה למסמכים, קטעי מידע, אינטרנט וAPIים חיצוניים לבחירתכם על מנת שתוכלו להנות מBing פרטי משלכם על הדאטה שלכם! או מהאינטרנט! (ושיהיה בינג טוב!)
  • מודל נוסף לסינון תוכן מוכן ומאומן מראש שתפקידו לסנן מראש תשובות שאינן רלוונטיות לנושא המגיעות מהמודל, כך מתקבלת ההרגשה שהמודל תמיד "עונה לעניין" ומתאפשר השימוש בו בעולם האמיתי בפרודקשן. (המודל מאומן מ-GPT-JT-6B)

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

על המודל

המודל (בשמו GPT-NeoXT-Chat-Base-20B) מהווה את הבסיס של החבילה, הוא מבוסס על מודל GPT-NeoX של EleutherAI ואומן בצורה ממוקדת על אינטראקציות שיחה אנושיות. לאינטרקציות אלו נוספו הוראות בשפה אנושית על מנת לחדד את המודל במשימות ספציפיות כמו דיאלוג מרובה הודעות, מענה על שאלות בשיחה, סיווג, חילוץ מידע וסיכום. המודל כולו אומן על אוסף של 43 מיליון הוראות באיכות גבוהה.

אפשר לקרוא על הדאטה כאן: https://laion.ai/blog/oig-dataset/

יכולות המודל

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

  • סיכום ומענה על שאלות בתוך הקשר השיחה
  • הבנת הנקרא וחילוץ מידע (לענות על שאלות על פי מאמר)
  • סיווג טקסט (האם המשפט הבא עם סנטימנט חיובי או שלילי?)

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

נקודות לשיפור

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

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

תכנות: הצ'אטבוט לא אומן על יותר מידי קוד ולכן לא יודע לתכנת מי יודע מה בשלב זה.

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

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

איך לאמן צ'אטבוט מותאם אישית לצרכים שלכם?

מודלי שפה כמו ChatGPT מפגינים יכולות מרשימות במענה על שאלות כלליות אבל הם מצטיינים במיוחד כאשר מאמנים אותם ליישומים ספציפיים. לדוגמה, המודל PaLM של גוגל הגיע לדיוק "בסדר" של 50% במענה על תשובות רפואיות אבל על ידי אימון נוסף על מידע ספציפי רפואי המודל הגיע לדיוק אסטרונומי של 92.6%. ולא, זו לא איזו קומבינה או רמאות בגלל שיטת המדידה. המודל באמת הפגין ביצועים מדהימים כשהוא נמדד כמו בני אדם: בשפה אנושית!

המטרה באימון מותאם אישית היא לנקוט באותה הגישה בדיוק עבור המשימות שלכם!

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

  • הכינו דאטהסט לאימון בפורמט החבילה (רצוי דוגמאות עם "הוראות" אבל לא חובה, גם "סתם מידע" יעבוד)
  • שמורו אותו כקובץ jsonl, והריצו את הפקודות המצויינות בחבילה על מנת לאמן את המודל.
  • אופציונלי: אימון המודל הסינון על התוכן שלכם על מנת שתוכלו לסנן תוכן לא רלוונטי

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

מערכת אחזור נתונים כמו של Bing

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

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

רעיון: להשתמש במערכת זו על "כל זכות" וכך לאפשר לשאול שאלות בשפה חופשית על זכויות וחוקים בארץ. באמת שהאפשרויות של מערכת זו אינסופיות.

איך זה עובד בפועל?

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

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

כן. כל הקוד כבר קיים ועובד. רק להשתמש.

מודל סינון תוכן

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

מעניין אם ככה OpenAI גם עושים את זה.

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

על תהליך בחירת הדאטה באימון מודל הסינון הבסיסי: https://laion.ai/blog/oig-dataset/

אימון מודלים דרך האינטרנט דרך רשת ביתית "מעפנה":

למתעניינים: קראו פוסט עבר שלי בנושא: https://www.facebook.com/photo/?fbid=10160124091459663…

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

לדוגמה: אימון יחיד GPT-3 (175B) צורך כ3.6K PetaFLOPS-ימים [2] – המחיר בAWS של עיבוד בסדר גודל כזה: 4.6 מיליון דולר.[3]. עלות אימון זו יקרה בעיקר בשל עלות הענן.

מחוץ לענן: ישנם די הרבה כרטיסי מסך זרוקים בבתים של אנשים בכל העולם. בדוח של Jon Peddie Research מדווח שבשוק הGPU הפרטים נשלחו 101 מיליון יחידות ברבעון האחרון של 2021 בלבד [4].

בחישוב גס, כוח עיבוד דומה בבעלות פרטית מקטין את העלות משמעותית. העלויות יכולות להיות נמוכות גם פי 50-100 ממחירי הענן [5].

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

אבל..

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

בטח שלא מקצוות שונים בעולם.

כאן מגיעים שיפורי שיטות האימון של חוקרי הקבוצה..

אימון מבוזר דרך האינטרנט (מקרה פרטי של רשת "מעפנה")

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

במקום שכל המכונות יהיו מחוברות דרך רשת מרכזית מהירה, לחוקרים היו חיבורים ביתיים איטים של עד 1Gbps.

ומיותר לציין שזה גורם לקצת בעיות..

בחישוב זריז: ברשת ביתית "מעפנה" במהירות 1Gbps, רק עלות התקשורת תסתכם בחודשיים. לפני אימון. רק (!) תקשורת.

חושבים שאתם סובלים מצווארי בקבוק באימון?

לפחות אתם לא צריכים לחכות לגרדיאנטים מיפן או באצ' חדש מאנגליה.

ואם זה לא מספיק:

תשתית הרשת ב"ענן" שאתם משתמשים בו היא תשתית ביתית "מעפנה".

אה וגם המכונות עצמן נמצאות פיסית "במרתף של החבר".

כך אומן ChatGPT הפתוח. ביחד. דרך האינטרנט.

מזל שאין חוקרים מישראל כי האינטרנט של הוט היה דופק להם את האימון לגמרי.

איך גם אתם יכולים לתרום למאמץ המלחמתי?

  1. הכנסו לHugging Face.
  2. דברו עם המודל.
  3. לחצו , .
  4. זהו. נתתם Rewardים למודל העתידי. תרמתם!

כולם מבינים לאן הפרוייקט הולך כן?

כי אם לא: תסתכלו בבקשה לאן המודל של Stable Diffusion הגיע בחודשים הספורים שהוא קיים. [כן, עברו רק כמה חודשים בודדים..]

רפרנסים:

[2] – מתוך המאמר של GPT-3. כאן: https://arxiv.org/abs/2005.14165

[3] – אימון GPT-3, העלויות: https://lambdalabs.com/blog/demystifying-gpt-3

[4] – דוח על GPUs פרטיים: https://www.jonpeddie.com/…/q421-sees-a-nominal-rise…/

[5] – חישוב עלויות חומרה וקירור בחומרה פרטית: https://venturebeat.com/…/the-real-cost-of-mining…/

עוד בנושא: