כן, אתה יכול להפעיל LLM "AI chatbot" על Raspberry Pi! פשוט עקוב אחר תהליך זה שלב אחר שלב ולאחר מכן שאל אותו כל דבר.
מודלים של שפות גדולות, הידועים בדרך כלל (ולא מדויקים) כ-AIs, מאיימים לשפר את עולם ההוצאה לאור, האמנות והמשפט במשך חודשים. חיסרון אחד הוא ששימוש ב-LLMs כגון ChatGPT פירושו יצירת חשבון ושמחשב של מישהו אחר יעשה את העבודה. אבל אתה יכול להפעיל LLM מאומן על Raspberry Pi שלך כדי לכתוב שירה, לענות על שאלות ועוד.
מהו מודל שפה גדול?
מודלים של שפה גדולים משתמשים באלגוריתמים של למידת מכונה כדי למצוא קשרים ודפוסים בין מילים וביטויים. מאומנים על כמויות עצומות של נתונים, הם מסוגלים לחזות אילו מילים צפויות סטטיסטית לבוא לאחר מכן כאשר מקבלים הנחיה.
אם הייתם שואלים אלפי אנשים איך הם מרגישים היום, התגובות היו בנוסח "אני בסדר", "יכול להיות יותר גרוע", "בסדר, אבל הברכיים שלי מתנגנות". אז השיחה תפנה לכיוון אחר. אולי האדם ישאל לגבי הבריאות שלך, או יעקוב אחרי "מצטער, אני חייב לרוץ. אני מאחר לעבודה".
בהתחשב בנתונים אלו וההנחיה הראשונית, מודל שפה גדול אמור להיות מסוגל להגיע לתשובה משכנעת ומקורית משלו, בהתבסס על הסבירות שמילה מסוימת תגיע לאחר מכן ברצף, בשילוב עם דרגת אקראיות מוגדרת מראש, עונשי חזרה ועוד פרמטרים.
דגמי השפה הגדולים הנמצאים בשימוש כיום אינם מאומנים על ווקס פופ של כמה אלפי אנשים. במקום זאת, הם מקבלים כמות בלתי נתפסת של נתונים, שנגרדו מאוספים זמינים לציבור, פלטפורמות מדיה חברתית, דפי אינטרנט, ארכיונים ומערכים מותאמים אישית מדי פעם.
LLMs מאומנים על ידי חוקרים אנושיים אשר יחזקו דפוסים מסוימים ויחזירו אותם לאלגוריתם. כאשר אתה שואל מודל שפה גדול "מהו הסוג הטוב ביותר של כלב?", הוא יוכל לסובב תשובה שאומרת לך שטרייר ג'ק ראסל הוא הסוג הטוב ביותר של כלב, ולתת לך סיבות למה.
אבל לא משנה עד כמה התשובה אינטליגנטית או משכנעת ואנושית, לא הדגם ולא המכונה היא פועל על יש שכל, והם אינם מסוגלים להבין לא את השאלה או את המילים המרכיבות את תְגוּבָה. זה רק מתמטיקה והרבה נתונים.
למה להפעיל מודל שפה גדול על Raspberry Pi?
מודלים של שפה גדולים נמצאים בכל מקום, והם מאומצים על ידי חברות חיפוש גדולות כדי לסייע במענה לשאילתות.
למרות שזה מפתה לזרוק שאלה בשפה טבעית לקופסה שחורה של החברה, לפעמים אתה רוצה לחפש השראה או לשאול שאלה מבלי להזין עוד נתונים קפיטליזם מעקב.
בתור לוח ניסוי עבור מתעסקים, ה מחשב Raspberry Pi עם לוח יחיד מבחינה פילוסופית, אם לא פיזית, מתאים למאמץ.
בפברואר 2023, Meta (החברה שנודעה בעבר כפייסבוק) הכריזה על LLaMA, LLM חדש המתהדר במודלים של שפה של בין 7 מיליארד ל-65 מיליארד פרמטרים. LLaMA הוכשרה באמצעות מערכי נתונים זמינים לציבור,
קוד LLaMA הוא קוד פתוח, כלומר כל אחד יכול להשתמש בו ולהתאים אותו, וה'משקלים' או הפרמטרים פורסמו בתור טורנטים וקישורי מגנט בשרשור על הפרויקט עמוד GitHub.
במרץ 2023, המפתח Georgi Gerganov שחרר llama.cpp, שיכול לפעול על מגוון עצום של חומרה, כולל Raspberry Pi. הקוד פועל באופן מקומי, ולא נשלחים נתונים אל Meta.
התקן את llama.cpp ב-Raspberry Pi
אין הנחיות חומרה שפורסמו עבור llama.cpp, אבל הוא מאוד רעב למעבד, זיכרון RAM ואחסון. ודא שאתה מפעיל אותו על Raspberry Pi 4B או 400 עם כמה שיותר זיכרון, זיכרון וירטואלי, ושטח SSD זמין ככל האפשר. כרטיס SD לא הולך לחתוך אותו, ו מארז עם קירור הגון זה חובה.
אנחנו הולכים להשתמש במודל של 7 מיליארד פרמטרים, אז בקר כאן שרשור LLamA GitHub, והורד את הטורנט 7B באמצעות לקוח כגון qBittorrent או Aria.
שכפל את מאגר llama.cpp ולאחר מכן השתמש ב- CD פקודה כדי לעבור לספרייה החדשה:
git שיבוט https://github.com/ggerganov/llama.cpp
CDלָאמָה.cpp
אם אין לך מהדר מותקן, התקן אחד עכשיו עם:
sudo apt-לקבל התקן g++
כעת הרכיבו את הפרויקט עם הפקודה הזו:
עשה
יש סיכוי ש-llama.cpp לא יצליח להדר, ותראה חבורה של הודעות שגיאה הקשורות ל-"vdotq_s32". אם זה קורה, עליך לבטל התחייבות. ראשית, הגדר את משתמש git המקומי שלך:
git config user.name "דוד"
עכשיו אתה יכול לבטל התחייבות קודמת:
git revert 84d9015
הודעת גיt commit תיפתח בעורך הטקסט הננו. ללחוץ Ctrl + O כדי לשמור, אם כך Ctrl + X לצאת ננו. llama.cpp אמור כעת להדר ללא שגיאות כאשר אתה מזין:
עשה
יהיה עליך ליצור ספרייה עבור הדגמים המשוקללים שבהם אתה מתכוון להשתמש:
דגמי mkdir
כעת העבירו את הדגמים המשוקללים מה- לָאמָה מַדרִיך:
mv ~/Downloads/לָאמָה/* ~/llama.cpp/models/
ודא שמותקן לך Python 3 ב-Pi שלך, והתקן את התלות llama.cpp:
python3 -m pip להתקין לפיד משפט קודש
גרסת NumPy עלולה לגרום לבעיות. שדרג אותו:
צִפצוּף להתקין רדום --שדרוג
כעת המר את מודל 7B לפורמט ggml FP16:
python3 convert-pth-to-ggml.py models/7B/ 1
השלב הקודם הוא אינטנסיבי מאוד בזיכרון ולפי החשבון שלנו, משתמש בלפחות 16GB RAM. זה גם איטי במיוחד ונוטה לכישלון.
תקבל תוצאות טובות יותר על ידי ביצוע הוראות אלה במקביל במחשב שולחני, ולאחר מכן העתקת הקובץ /models/7B/ggml-model-q4_0.bin לאותו מיקום ב-Raspberry Pi שלך.
לכמת את המודל ל-4 ביטים:
./quantize.sh 7B
זהו זה. LLaMA LLM מותקן כעת ב-Raspberry Pi שלך ומוכן לשימוש!
שימוש ב-llama.cpp ב-Raspberry Pi
כדי להתחיל עם llama.cpp, ודא שאתה נמצא בספריית הפרויקט והזן את הפקודה הבאה:
./main -m ./models/7B/ggml-model-q4_0.bin -t 4 -נ 128 -עמ' "מהו ליבת לינוקס?"
ה -M האפשרות היא להפנות את llama.cpp לדגם שבו תרצה להשתמש; -ת מציין את מספר השרשורים שבהם אתה רוצה להשתמש; -נ הוא מספר האסימונים לניבוי; -עמ' היא ההנחיה שלך. אתה יכול להתאים אישית כל אחד ואת כל המשתנים האלה.
הסתפקו בהמתנה ארוכה, כי בעוד שה-Raspberry Pi מצוין במה שהוא עושה, הוא לא תוכנן לסוג כזה של פעילות מעבד. בהנחיה לדוגמה שלנו, הלמה פירקה את הטקסט לשמונה אסימונים בודדים, לפני שנתנה את התגובה הבאה:
ליבת לינוקס, בקצרה, תמיד כונתה מערכת הפעלה. עם זאת זה לא ממש נחשב לכזה שכן לכל המטרות המעשיות רוב הפונקציות שלו הן חשופים באמצעות ממשקי API וכלי עזר שיכולים לשמש כל מערכת הפעלה אחרת שרוצה (או צריכה) לגשת לאלה ממשק API. בכל הנוגע ל-Linux Kernel עצמו, אין הרבה מה לעשות עם הליבה בפועל. זה פשוט יתחיל, יקבל פרמטרים של תצורה ממטעין האתחול/המקור לבחירתך ואז יפעיל את זה על חומרה כלשהי ותתחיל בכל עסק שכרוך בו בשלב זה
למרות שזו הייתה תשובה די קוהרנטית, ניסיון שני הביא למשהו שדומה לסלט מילים קצוץ גס:
רובכם בטח שמעתם על זה אבל לא ממש יודעים על מה הם מדברים. אנו נדון בזה בפירוט מכיוון שהבנתם במלואה עוזרת לנו להשתמש יותר במחשבים שלנו ביעילות וגם לקבל החלטות טובות יותר בעת רכישת חומרה או תוכנה חדשה עבור המחשבים האישיים שלך בבית, במשרדים וכו.. ליבת לינוקס היא עמוד השדרה של רוב מערכות ההפעלה הפועלות על מערכת מחשב כמו אנדרואיד שהיא מערכת הפעלה בקוד פתוח המבוססת בחלקה על ליבה זו. אבל למה בדיוק הם מתכוונים באמירת ליבת לינוקס?
בני הזוג לינוס טורוואלד כתבו את מחשבותיו (ידע)
ראוי להזכיר בשלב זה שכל אחת מהתגובות הללו לקחה קרוב לשעתיים לייצר, וכל ארבע ליבות המעבד עבדו ב-100% לאורך כל הדרך. העבודה על הפרויקט מתקדמת מהר, עם זאת, ואתה יכול לצפות שאופטימיזציות ARM הקרובות יפחיתו את הזמן.
אתה יכול גם לדמות שיחות שלמות עם ה-LLM שלך במקום להזין אותו בהנחיות אחת בכל פעם. הוספת ה -אני האפשרות תתחיל את הלאמה במצב אינטראקטיבי, בעוד --אינטראקטיבי-התחלה יבקש ממך קלט בהתחלה. לרשימה מלאה של אפשרויות זמינות, הפעל:
ראשי -ח
שימו לב של-LlaMA אין כללים מגבילים. זה יהיה, מדי פעם, סקסיסטי, גזעני, הומופובי, ושגוי מאוד.
מודל שפה גדול אינו תחליף לידע אמיתי
להפעיל את LLaMA של Meta על Raspberry Pi זה מגניב בטירוף, ואולי תתפתו לפנות לגורו הווירטואלי שלכם לשאלות טכניות, עצות לחיים, חברות או כמקור ידע אמיתי. אל תלך שולל. מודלים גדולים של שפה לא יודעים כלום, לא מרגישים כלום ולא מבינים כלום. אם אתה צריך עזרה במשהו, עדיף לדבר עם בן אדם או לקרוא משהו שנכתב על ידי בן אדם.
אם חסר לך זמן, תוכל לקרוא אותו במהירות במסוף הלינוקס שלך!