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

שחרר את כוחם של סוכנים אוטונומיים עם Qwen-Agent, המסגרת הפתוחה והמתקדמת ביותר המנצלת את המודלים הפתוחים הטובים ביותר הזמינים. גלה כיצד לשלב בקלות קריאת פונקציות וזרמי עבודה מבוססי סוכן כדי לבנות יישומים חכמים שיכולים להתקשר עם העולם האמיתי ולהתאים עצמם לצרכי המשתמש.
בנה סוכנים אוטונומיים עם המודל הפתוח הטוב ביותר
קריאת פונקציה וסוכנים: הבנת ההבדלים
מתחילים עם סוכני Qwen: קריאת פונקציה ושימוש בסוכן
ההשפעה של כמות על ביצועי מודל שפה גדול
בנה סוכנים אוטונומיים עם המודל הפתוח הטוב ביותר
בנה סוכנים אוטונומיים עם המודל הפתוח הטוב ביותר
דגמי Quen 2 של Alibaba הם הדגמים החדישים והטובים ביותר של מודלי שפה קוד פתוח, המציעים יכולות מרשימות על פני מגוון רחב של משימות. מודלים אלה נעים בין 500 מיליון לעד 72 מיליארד פרמטרים, כאשר המודלים הגדולים יותר תומכים בעד 128,000 טוקנים - שיפור משמעותי לעומת מגבלת 8,000 הטוקנים של GPT-3.
אחת התכונות המרכזיות של Quen 2 היא הביצועים החזקים שלו בקידוד ומתמטיקה, כמו גם היכולת שלו לטפל בהבנה של הקשר ארוך - קריטית ליישומים בעולם האמיתי. בנוסף, המודלים מציעים תמיכה במגוון שפות, כולל התמקדות בשפות של המזרח התיכון ודרום-מזרח אסיה, שהיא שינוי נחמד מהתמקדות במערב של מודלים רבים אחרים.
כדי לנצל את כוחו של Quen 2, אנו יכולים להשתמש במסגרת Quen Agent, המספקת גישה לעוזר דפדפן מובנה, מפענח קוד, וליכולת ליצור עוזרים מותאמים אישית. זה מאפשר לנו לבנות סוכנים אוטונומיים שיכולים לתכנן, לבצע ולהתאים את פעולותיהם בהתאם למשימה בידיים.
בחלק זה, נחקור כיצד להשתמש ב-Quen Agent כדי ליצור סוכן יצירת תמונות מותאם אישית. הסוכן יוכל ליצור תמונות על בסיס קלט משתמש, להוריד את התמונות שנוצרו, ואפילו לעדכן את הקוד שלו אם הוא נתקל בבעיות. על ידי שילוב ההבנה החזקה של השפה של Quen 2 עם יכולות התכנון והביצוע של Quen Agent, אנו יכולים ליצור סוכנים אוטונומיים ויכולים באמת שיכולים להתמודד עם מגוון רחב של משימות.
קריאת פונקציה וסוכנים: הבנת ההבדלים
קריאת פונקציה וסוכנים: הבנת ההבדלים
קריאת פונקציות וסוכנים הם שני מושגים נפרדים בעולם של מודלי שפה גדולים (LLM). להלן הסבר תמציתי של ההבדלים ביניהם:
קריאת פונקציה (שימוש בכלי):
- קריאת פונקציה, או שימוש בכלי, מאפשרת ל-LLM להתקשר עם העולם החיצוני על ידי גישה לממשקי API או פונקציות חיצוניים.
- ה-LLM קובע איזו פונקציה להשתמש בה על בסיס קלט המשתמש, מייצר את הקלטים הנדרשים לפונקציה, ומחזיר את התוצאות למשתמש.
- עם זאת, ה-LLM עצמו לא יכול לבצע את קריאת הפונקציה; המשתמש או מערכת נפרדת חייבים לבצע את קריאת הפונקציה בפועל ולהחזיר את התוצאות ל-LLM.
סוכנים:
- סוכנים הם עותקים מתוחכמים יותר של LLM שיש להם גישה למערכת כלים, כמו בקריאת פונקציה.
- סוכנים יכולים גם לבצע תכנון, לפרק משימות למטרות משנה, ולבצע פעולות באמצעות הכלים הזמינים.
- לסוכנים יש גישה לזיכרון לטווח קצר וארוך, מה שמאפשר להם לעקוב אחר ההתקדמות שלהם ולתכנן את הצעדים הבאים בהתאם.
- סוכנים הם קריטיים כדי להפוך את ה-LLM לשימושיים באמת ביישומים בעולם האמיתי, מכיוון שהם יכולים לבצע משימות מורכבות באופן אוטונומי.
בקצרה, קריאת פונקציה היא אינטראקציה מוגבלת יותר שבה ה-LLM יכול רק לייצר את הקלטים הנדרשים לפונקציה, בעוד שסוכנים יכולים לתכנן, לבצע ולהתאים את פעולותיהם כדי להשיג תוצאה רצויה.
מתחילים עם סוכני Qwen: קריאת פונקציה ושימוש בסוכן
מתחילים עם סוכני Qwen: קריאת פונקציה ושימוש בסוכן
כדי להתחיל עם סוכני Qwen, נשתמש בגרסה של 72 מיליארד הפרמטרים של Qwen 2 ונריץ אותה מקומית באמצעות AMA. אתה יכול גם להשתמש בממשק API החיצוני שלהם, אבל כדי להשתמש ב-Qwen Agent, יש לנו שתי אפשרויות:
- התקן את החבילה באמצעות pip כחבילת Python עצמאית.
- שכפל את המאגר והתקן את ההתקנה מקומית אם אתה רוצה את הגרסה העדכנית ביותר של הפיתוח.
אני אריץ אותה מקומית באמצעות AMA. תחילה, התחל בשרת AMA והשתמש בפקודה olama Run Qwen 272 billion
. זה יוריד את AMA והמודל, שעשוי להימשך זמן מה בהתאם למהירות האינטרנט שלך.
אחר כך, צור סביבת עבודה וירטואלית באמצעות conda והפעל אותה:
conda create -n qwen python=3.10
conda activate qwen
עכשיו, התקן את חבילת Qwen Agent באמצעות pip:
pip install qwen-agent
נתחיל עם קריאת פונקציה. המודל צריך לבחור את הפונקציה להשתמש בה, לגלות את הקלטים, ולהעבירם למפענח Python. המפענח יבצע את הפונקציה, יקבל את התגובה, ויזין אותה חזרה ל-LLM.
להלן דוגמה של קריאת פונקציה לקבלת מזג האוויר הנוכחי:
# צור את עותק ה-LLM
llm = QwenLLM(base_api="http://localhost:8000/v1", model_name="qwen-2-72b", version="v1")
# הודעת משתמש
user_message = "מה מזג האוויר כרגע בפריז?"
# הגדר את הפונקציה
function_call = {
"description": "קבל את מזג האוויר הנוכחי עבור מיקום נתון",
"function": "get_weather",
"arguments": {
"location": "Paris",
"unit": "celsius"
}
}
# קרא ל-LLM וְבַצֵּע אֶת הַפּוּנְקְצִיָה
response = llm.call_with_function(user_message, [function_call])
print(response)
זה יייצר את מידע מזג האוויר הנוכחי עבור פריז ויחזיר אותו ל-LLM.
עכשיו, בואו נסתכל על דוגמה של שימוש ב-Qwen Agent. נייצר סוכן מותאם אישית שיכול ליצור תמונות ולהוריד אותן לתיקייה מקומית. הסוכן ישתמש בכלי מותאם אישית ליצירת תמונות ובמפענח הקוד כדי לבצע את הקוד הנדרש.
from qwen_agent import Assistant, CodeInterpreter, CustomTool
# הגדר את כלי יצירת התמונות המותאם אישית
class MyImageGeneration(CustomTool):
def __init__(self):
self.description = "צור תמונות על בסיס קלט משתמש באמצעות API של Pollinations.AI."
def run(self, args):
# צור את התמונה באמצעות ה-API
image_url = generate_image(args["prompt"])
# הורד את התמונה לתיקייה מקומית
download_image(image_url, "images")
return "התמונה נוצרה ונשמרה בתיקייה 'images'."
# צור את הסוכן
agent = Assistant(
llm=QwenLLM(base_api="http://localhost:8000/v1", model_name="qwen-2-72b", version="v1"),
tools=[MyImageGeneration(), CodeInterpreter()]
)
# בקש מהסוכן ליצור תמונה
agent.run("צור תמונה של לאמה עם משקפי שמש.")
סוכן זה ישתמש בכלי יצירת התמונות המותאם אישית כדי ליצור את התמונה, להוריד אותה לתיקייה "images", ולהחזיר את התוצאה.
לבסוף, בואו נסתכל על ההשפעה של כמות הקוונטיזציה על ביצועי מודלי Qwen. צוות Qwen סיפק הערכות מפורטות על מדדי MML, C-Evolve ו-I-Evolve עבור רמות קוונטיזציה שונות.
התוצאות מראות שעבור מודלים גדולים יותר (72 מיליארד), ההבדל בין קוונטיזציה של 16 סיביות ו-8 סיביות אינו משמעותי, אך קוונטיזציה של 4 סיביות יכולה להיות בעלת השפעה ניכרת יותר על הביצועים. עבור מודלים קטנים יותר (0.5 מיליארד), ההבדלים מורגשים יותר, כאשר קוונטיזציה של 4 סיביות מראה ירידה של 5 נקודות בציונים הממוצעים.
באופן כללי, מומלץ להשתמש לפחות בקוונטיזציה של 8 סיביות או 16 סיביות עבור פריסות בייצור, מכיוון שקוונטיזציה של 4 סיביות יכולה להיות בעלת השפעה משמעותית יותר על ביצועי המודל, בעיקר עבור מודלים קטנים יותר.
ההשפעה של כמות על ביצועי מודל שפה גדול
ההשפעה של כמות על ביצועי מודל שפה גדול
בחלק זה, נחקור את ההשפעה של קוונטיזציה על ביצועי מודלי שפה גדולים, תוך התמקדות בדגמי Quin 2.
צוות Quin התייחס לשאלת השפעת הקוונטיזציה בדגמים המעודכנים שלהם. הם העריכו את ביצועי מודלי Quin 2 עם רמות קוונטיזציה שונות, כולל קוונטיזציה של 16 סיביות, 8 סיביות, 4 סיביות ו-AWQ (Adaptive Weight Quantization).
על בסיס המספרים הממוצעים, ניתן לזהות את המגמות הבאות:
-
מודלים גדולים יותר: עבור המודל הגדול בן 72 מיליארד הפרמטרים, ההבדל בביצועים בין קוונטיזציה של 16 סיביות ו-8 סיביות אינו משמעותי, כאשר נשמרים כ-81% מהביצועים המקוריים. עם זאת, קוונטיזציה של 4 סיביות מראה ירידה ניכרת יותר בביצועים.
-
מודלים קטנים יותר: עבור המודלים הקטנים, כמו הגרסה בת 0.5 מיליארד הפרמטרים, ההשפעה של קוונטיזציה היא דרמטית יותר. קוונטיזציה של 4 סיביות מראה הבדל של 5 נקודות בציון הממוצע לעומ
שאלות נפוצות
שאלות נפוצות