בקלות לכוונן את LLaMA-3 על הנתונים שלך עם Unslot
בקלות לכוונן את LLaMA-3 על הנתונים שלך עם Unslot, כלי עצמתי שמבטיח אימון מהיר עד 30 פעמים. למד כיצד להגדיר, לאפשר ולשמור את הדגם המכוונן שלך לקבלת ביצועים חלקים בפלטפורמות שונות. שחרר את הפוטנציאל המלא של LLaMA-3 עבור המקרה השימוש הספציפי שלך.
15 בפברואר 2025

כוונן את LLAMA-3, הדגם השפתי החזק והפתוח-מקור, על נתונים שלך בקלות באמצעות חבילת Unslot המיטבית. שחרר את הפוטנציאל המלא של דגם AI זה והתאם אותו לצרכים הספציפיים שלך, מבלי להתמודד עם הקמה מורכבת או אימון דורש משאבים.
כוונן את LLAMA-3 עם Unslot: גישה חזקה ויעילה
הגדר את פרמטרי האימון
הכן את הנתונים שלך לכוונון מחדש
אמן את המודל עם המאמן הממוקד המפוקח של Unslot
בצע הסקה עם המודל המכוונן מחדש
שמור וטען את המודל המכוונן מחדש
מסקנה
כוונן את LLAMA-3 עם Unslot: גישה חזקה ויעילה
כוונן את LLAMA-3 עם Unslot: גישה חזקה ויעילה
Unslot הוא כלי מדהים המאפשר לך לכוונן בצורה יעילה את הדגם LLAMA-3 על מערך הנתונים שלך. להלן מדריך שלב אחר שלב על כיצד לעשות זאת:
-
התקנת החבילות הנדרשות: התחל על ידי שכפול מאגר GitHub של Unslot והתקנת החבילות הנחוצות בהתאם להגדרת החומרה שלך.
-
הגדרת פרמטרי האימון: הגדר את פרמטרי האימון שלך, כגון אורך רצף מקסימלי, סוגי נתונים ושיטת הכמות. Unslot משתמש במתאמי Lora כדי לאפשר כיוונון יעיל.
-
עיצוב נתוני האימון: ודא שהנתונים שלך מאורגנים בפורמט הנדרש, עם עמודות להוראה, קלט ופלט. Unslot מספק דוגמאות באמצעות מערך הנתונים של Alpaca, אך אתה יכול להתאים אותו לנתונים שלך.
-
הגדרת מאמן SFT: צור אובייקט מאמן SFT (Supervised Fine-Tuning) מספריית Transformers של Hugging Face, תוך ציון הדגם, המפענח, מערך הנתונים ופרמטרי אימון אחרים.
-
אימון הדגם: קרא לפונקציית
train()
על אובייקט מאמן ה-SFT כדי להתחיל בתהליך הכיוונון. השימוש המיטבי של Unslot בזיכרון ובמהירות מבטיח אימון יעיל, גם על משאבי GPU מוגבלים. -
ביצוע הסקה: לאחר האימון, תוכל להשתמש בכיתת
FastLanguageModel
הספציפית של Unslot כדי לייצר תגובות מהדגם המכוונן. Unslot מספק גם אפשרויות לשמירת הדגם וטעינת מתאמי Lora לשימוש עתידי. -
חקירת תכונות נוספות: Unslot מציע תכונות מתקדמות, כגון היכולת להשתמש בדגם עם מסגרות אחרות כמו PyTorch Lightning והאפשרות להמיר את הדגם לפורמט GGML לשימוש עם LLAMA-CPP או GoLLAMA.
הגדר את פרמטרי האימון
הגדר את פרמטרי האימון
ראשית, עלינו לייבא את הכיתות הנחוצות מספריית unslot:
from unslot.models.fast_language_model import FastLanguageModel
לאחר מכן, נגדיר את פרמטרי האימון:
max_sequence_length
: אורך הרצף המקסימלי עבור הקלט. אנו מגדירים אותו ל-248 אסימונים, מכיוון שמערך הנתונים שאנו משתמשים בו כולל טקסט יחסית קצר.data_type
: אנו משתמשים בכמות של 4 סיביות לאימון יעיל.
max_sequence_length = 248
data_type = "4bit"
Unslot משתמש במתאמי Lora כדי לאפשר כיוונון יעיל. ישנן שתי אפשרויות:
- השתמש בדגם מטען מראש מהמאגר Hugging Face של unslot, שכבר מכיל את מתאמי Lora מוטמעים.
- השתמש בדגם מהמאגר Hugging Face והוסף את מתאמי Lora בעצמך.
במקרה זה, נשתמש בדגם מטען מראש, כך שאין צורך בשלבים נוספים.
model = FastLanguageModel.from_pretrained("unslot/alpaca-7b")
אם עליך להשתמש בדגם שונה והוספת מתאמי Lora בעצמך, תוכל להסיר את ההערה מהקטע הבא ולספק את הפרמטרים הנחוצים.
# model_id = "your-hugging-face-model-id"
# model = FastLanguageModel.from_pretrained(model_id)
# model.add_lora_adapters()
עכשיו אנו מוכנים לעבור לשלב הבא: עיצוב נתוני האימון.
הכן את הנתונים שלך לכוונון מחדש
הכן את הנתונים שלך לכוונון מחדש
כדי לכוונן את דגם Lama 3 באמצעות Unslot, עליך לעצב את נתוני האימון בדרך ספציפית. מערך הנתונים המשמש בדוגמה כולל שלוש עמודות: הוראה, קלט ופלט.
עמודת ההוראה מכילה את תיאור המשימה שהדגם אמור להשלים. עמודת הקלט מספקת הקשר נוסף למשימה, ועמודת הפלט מכילה את התגובה הצפויה מהדגם.
בעת עיצוב הנתונים שלך, ודא שאתה מארגן אותם באותו האופן, עם עמודות להוראה, קלט ופלט. אם הקלט חסר עבור דוגמה מסוימת, זה בסדר, מכיוון שההוראה לבדה יכולה לספק את המידע הנחוץ לדגם כדי לייצר את הפלט.
לאחר הורדת הנתונים, עליך להמיר את שלוש העמודות לטקסט יחיד בפורמט ספציפי. פורמט זה כולל אסימונים מיוחדים עבור ההוראה, הקלט והתגובה. הקוד בדוגמה ממחיש כיצד לבצע המרה זו, ליצור עמודה יחידה שניתן להשתמש בה לאימון הדגם.
חשוב לשים לב שבעוד שהדוגמה משתמשת במערך הנתונים הסטנדרטי של Alpaca, תוכל גם לארגן את הנתונים שלך באמצעות תבניות הפעלה אחרות, כמו פורמט ChatML שהוצג על ידי OpenAI. פשוט ודא שאתה מעצב כראוי את דוגמאות הקלט, מכיוון שהן יוזנו לתוך הדגם השפתי במהלך האימון.
אמן את המודל עם המאמן הממוקד המפוקח של Unslot
אמן את המודל עם המאמן הממוקד המפוקח של Unslot
ראשית, עלינו להגדיר את פרמטרי האימון. נייבא את הכיתה FastLanguageModel
מ-Unslot ונגדיר את אורך הרצף המקסימלי, סוגי הנתונים ושיטת הכמות.
לאחר מכן, נטפל במקרה שבו עלינו להוסיף מתאמי Lora לדגם. אם אנו משתמשים בדגם מהמאגר Hugging Face, ייתכן שנצטרך לספק אסימון כדי לקבל את תנאי השירות.
עכשיו, עלינו לעצב את נתוני האימון. מערך הנתונים צריך להכיל שלוש עמודות: הוראה, קלט ופלט. נוריד את הנתונים מ-Hugging Face ונמפה אותם לפורמט זה.
לאחר מכן, נגדיר את מאמן הכיוונון המפוקח (Supervised Fine-Tuning Trainer) מספריית Transformers של Hugging Face. מאמן זה יקבל את אובייקט הדגם, המפענח, מערך הנתונים ופרמטרים אחרים כמו האופטימיזטור, לוח הזמנים של קצב הלמידה ותיקיית הפלט.
לבסוף, נקרא לפונקציית train()
על אובייקט המאמן. נצפה בירידה של אובדן האימון, מה שמצביע על כך שהדגם לומד. שים לב שאנו רק מריצים חלק קטן מהנתונים בדוגמה זו, אך תרצה להריץ אותה לפחות לאפוק אחד או שניים כדי לקבל תוצאות טובות יותר.
לאחר האימון, נוכל לשמור את הדגם ולטעון את מתאמי Lora לצורך הסקה. Unslot מספק גם אפשרויות להשתמש בדגם עם מסגרות אחרות כמו PyTorch Lightning ו-TensorFlow.
בצע הסקה עם המודל המכוונן מחדש
בצע הסקה עם המודל המכוונן מחדש
לאחר שהדגם אומן, תוכל להשתמש בו להסקה. Unslot מספק ממשק פשוט לכך:
- ייבא את הכיתה
FastLanguageModel
מ-Unslot. - ספק את הדגם האומן והנחה אותו לבצע הסקה.
- בצע tokenize של הקלט באמצעות פורמט Alpaca (הוראה, קלט ופלט צפוי).
- העבר את הקלטים לGPU כדי לנצל את המשאבים הזמינים.
- קרא לפונקציית
generate
, תוך מתן הקלטים המפוענחים, המספר המקסימלי של אסימונים לייצר והאם להשתמש במטמון.
הדגם יייצר תגובה בהתבסס על הקלט שסופק. תוכל גם להשתמש בכיתת TextStreamer
כדי לזרום את תגובת הטקסט.
לאחר האימון, תוכל לשמור את הדגם בדרכים שונות:
- דחוף את הדגם למאגר Hugging Face Hub, מה שיישמור את מתאמי Lora בנפרד.
- שמור את הדגם באופן מקומי, שוב תוך שמירת מתאמי Lora בנפרד.
כדי לטעון את הדגם השמור להסקה, תוכל להגדיר דגל כדי לשלב את מתאמי Lora עם הדגם.
Unslot מספק גם אפשרויות חלופיות להסקה, כמו השימוש בכיתת AutoModelForCausalLM
מספריית Transformers של Hugging Face, שעשויה להיות איטית יותר אך מאפשרת להשתמש בדגם עם כלים אחרים כמו LLaMA-CPP או GoLLAMA.
שמור וטען את המודל המכוונן מחדש
שמור וטען את המודל המכוונן מחדש
לאחר שהדגם אומן, תוכל לשמור אותו בדרכים שונות כדי להשתמש בו להסקה מאוחר יותר. Unslot מספק מספר אפשרויות לשמירה וטעינה של הדגם המכוונן:
- שמירה ב-Hugging Face Hub: תוכל לדחוף את הדגם המכוונן אל Hugging Face Hub, מה שיאפשר לך לשתף ולהשתמש בדגם עם אחרים. כדי לעשות זאת, עליך לספק את אסימון Hugging Face שלך.
model.push_to_hub("your-model-name")
- שמירה מקומית: תוכל גם לשמור את הדגם באופן מקומי, מה שיישמור רק את מתאמי Lora, ולא את כל הדגם. זה יאפשר לך לטעון בקלות את מתאמי Lora ולשלבם עם הדגם הבסיסי מאוחר יותר.
model.save_pretrained("path/to/save/model")
- טעינת מתאמי Lora השמורים: כאשר ברצונך להשתמש בדגם המכוונן להסקה, תוכל לטעון את מתאמי Lora השמורים ולשלבם עם הדגם הבסיסי.
model = FastLLamaForCausalLM.from_pretrained("path/to/base/model")
model.load_adapter("path/to/saved/model")
- המרה לפורמט GGML: Unslot מספק גם את האפשרות להמיר את הדגם המכוונן לפורמט GGML, שניתן להשתמש בו עם כלים כמו Llama-CPP או GoLlama
שאלות נפוצות
שאלות נפוצות