חזרה
Imp: פורט מלא של DSPy ל-BEAM בשפת Elixir
SiTech AI Team2 წთ. საკითხავი

Imp: פורט מלא של DSPy ל-BEAM בשפת Elixir

Imp היא ספרייה ל-Elixir שמעבירה את DSPy ל-BEAM: המתכנת מתאר מה כל שלב של מודל שפה מקבל ומה הוא מחזיר, ואופטימיזר משפר את התוכנית לפי דוגמאות מתויגות. חתימות ולולאות סוכנים פועלות תחת OTP.

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

איור הפרויקט Imp: אימפ בוחן קלפים מבעד לעדשה

חתימה במקום פרומפט

היחידה הבסיסית היא חתימה: כותבים רק מה נכנס ומה יוצא, למשל "issue -> kind: enum[bug,feature,question], summary", עם תיאור קצר. Imp.predict/2 בונה את הפרומפט, בודקת מולו את התשובה ומחזירה שדות עם טיפוסים: kind יהיה תמיד אחד משלושת הערכים המותרים, אחרת הקריאה נכשלת.

אותה חתימה עובדת גם במצבים אחרים: Imp.chain_of_thought/2 מחייב את המודל לחשוב קודם, ו-Imp.react/3 נותן לו כלים. המפתח לא כותב תבנית פרומפט ולא מפענח תשובות.

למדוד ואז לשפר

עם דוגמאות מתויגות ומטריקה, Imp מדרגת תוכנית ומשפרת אותה. צריך שלוש רשימות: trainset שממנו האופטימיזר לומד, valset להשוואה בין חלופות ו-testset שנמדד לפני ואחרי. Imp.evaluate/3 מחשבת את המטריקה, למשל Imp.exact_match(:kind).

אחר כך נכנס האופטימיזר: Imp.Optimizer.GEPA.new/2 משתמש במודל חזק יותר כדי לקרוא כישלונות ולשכתב הנחיות. מלבדו יש LabeledFewShot ו-BootstrapFewShot לבחירת דוגמאות, MIPROv2 לחיפוש שילובים, SIMBA ללימוד כללים מהניסיונות של התוכנית ואימון משקלים. התוצאה היא תוכנית חדשה שאפשר לשמור כ-JSON ולבחון כדיף.

סוכנים וכללי OTP

כלי הוא פונקציית Elixir רגילה: Imp.tool/3 מקבל שם, תיאור, פונקציה ו-JSON Schema, ו-Imp.react/3 בונה סוכן שקורא לכלים עד שיש לו תשובה. בדוגמה שב-README הסוכן קורא דף אינטרנט עם Req ומחזיר את מספר הגרסה.

Imp.call/2 מריצה תוכנית בתהליך הקורא, ואילו Imp.start_run/3 מפעילה אותה כתהליך נפרד תחת supervisor שאפשר לצפות בו, לעצור אותו ולהגביל אותו; authorize callback קובע אילו קריאות מותרות. Imp.Run.events/1 מחזיר יומן אירועים, לבקשות למודל יש דדליין, וקריאת כלי שאולי כבר בוצעה מדווחת כ-unknown ולא מנוסה שוב בשקט.

Imp יכולה לייבא כלים של שרת MCP מאושר, ובאמצעות ACP אפשר להגיש כל תוכנית ל-Zed ולקוחות אחרים כסוכן. הספרייה נמצאת ב-Hex, דורשת Elixir 1.19 ומהדר C++, ומגיעה למודלים דרך ReqLLM. גרסה 0.5 ניסיונית, ורישיון MIT.

SSiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.