אנו חיים בזמנים מרגשים, עם הכרזות על טכנולוגיה מתקדמת מדי שבוע. OpenAI פרסמה זה עתה את דגם הטקסט לתמונה החדשני DALLE 2.
רק אנשים מעטים קיבלו גישה מוקדמת למערכת AI חדשה שיכולה ליצור גרפיקה מציאותית מתיאורי שפה טבעית. הוא עדיין סגור לציבור.
Stability AI אז שיחרר את דיפוזיה יציבה מודל, גרסת קוד פתוח של DALLE2. ההשקה הזו שינתה הכל. אנשים בכל רחבי האינטרנט פרסמו תוצאות מהירות והופתעו מאמנות ריאליסטית.
מה זה דיפוזיה יציבה?
דיפוזיה יציבה הוא מודל למידת מכונה המסוגל ליצור תמונות מטקסט, לשנות תמונות בהתאם לטקסט, ולמלא פרטים על תמונות ברזולוציה נמוכה או נמוכה.
הוא הוכשר על מיליארדי תמונות ויכול לספק תוצאות שוות ל DALL-E2 ו מסע אמצע. יציבות AI המציא אותו, והוא התפרסם ב-22 באוגוסט 2022.
אבל עם משאבי חישוב מקומיים מוגבלים, למודל ה-Stable Diffusion לוקח הרבה זמן ליצור תמונות באיכות גבוהה. הפעלת המודל באינטרנט באמצעות ספק ענן מספקת לנו משאבי חישוב כמעט אינסופיים ומאפשרת לנו להשיג תוצאות מצוינות הרבה יותר מהר.
אירוח המודל כשירות מיקרו מאפשר גם לאפליקציות יצירתיות אחרות לנצל בקלות רבה יותר את הפוטנציאל של המודל מבלי להתמודד עם המורכבות של הפעלת מודלים של ML באינטרנט.
בפוסט זה, ננסה להדגים כיצד לפתח מודל דיפוזיה יציב ולפרוס אותו ל-AWS.
בנה ופריסה של דיפוזיה יציבה
BentoML ו- Amazon Web Services EC2 הן שתי אפשרויות לאירוח של מודל ה-Stable Diffusion באינטרנט. BentoML היא מסגרת קוד פתוח לשינוי קנה מידה למידת מכונה שירותים. עם BentoML, נבנה שירות פיזור אמין ונפרוס אותו ל-AWS EC2.
הכנת הסביבה והורדת מודל דיפוזיה יציב
התקן דרישות ושבט את המאגר.
אתה יכול לבחור ולהוריד את דגם ה-Stable Diffusion. דיוק יחיד מתאים למעבדי CPU או GPU עם יותר מ-10GB של VRAM. דיוק חצי אידיאלי עבור GPUs עם פחות מ-10GB VRAM.
בניית דיפוזיה יציבה
אנו נבנה שירות BentoML כדי לשרת את המודל שמאחורי א ממשק API משוכלל. הדוגמה הבאה משתמשת במודל הדיוק היחיד לחיזוי ובמודול service.py כדי לחבר את השירות ללוגיקה עסקית. אנו יכולים לחשוף את הפונקציות כממשקי API על ידי תיוגן ב[email protected].
יתר על כן, אנו יכולים להגדיר את סוגי הקלט והפלט של ממשקי ה-API בפרמטרים. נקודת הקצה txt2img, למשל, מקבלת קלט JSON ומפיקה פלט Image, בעוד שנקודת הקצה img2img מקבלת קלט תמונה ו-JSON ומחזירה פלט תמונה.
StableDiffusionRunnable מגדיר את היגיון ההסקה החיוני. ה-Runable אחראי על הפעלת שיטות הצינור txt2img של הדגם ושליחת התשומות הרלוונטיות. להפעלת לוגיקת ההסקת המודל בממשקי ה-API, Runner מותאם אישית נבנה מה-StableDiffusionRunnable.
לאחר מכן, השתמש בפקודה הבאה כדי להפעיל שירות BentoML לבדיקה. הפעלה מקומית של דגם דיפוזיה יציב ההסקה על מעבדים היא די איטית. עיבוד כל בקשה ייקח כ-5 דקות.
טקסט לתמונה
פלט טקסט לתמונה
הקובץ bentofile.yaml מגדיר את הקבצים והתלות הנדרשים.
השתמש בפקודה למטה כדי לבנות בנטו. Bento הוא פורמט ההפצה של שירות BentoML. זהו ארכיון עצמאי המכיל את כל הנתונים והתצורות הדרושים להפעלת השירות.
ה-Stable Diffusion Bento הושלם. אם לא הצלחת ליצור כראוי את הבנטו, אל תיבהל; אתה יכול להוריד מודל בנוי מראש באמצעות הפקודות המפורטות בסעיף הבא.
מודלים מובנים מראש
להלן הדגמים המובנים מראש:
פרוס מודל דיפוזיה יציבה ל-EC2
כדי לפרוס את הבנטו ל-EC2, נשתמש ב-bentoctic. bentoctl יכול לאפשר לך לפרוס את ה-bentos שלך לכל פלטפורמת ענן באמצעות Terraform. כדי לבנות ולהחיל קבצי Terraform, התקן את המפעיל AWS EC2.
בקובץ config.yaml הפריסה, הפריסה כבר הוגדרה. אנא אל תהסס לערוך לפי הדרישות שלך. ה-Bento נפרס כברירת מחדל על מארח g4dn.xlarge עם ה- למידה עמוקה AMI GPU PyTorch 1.12.0 (אובונטו 20.04) AMI באזור us-west-1.
צור את קבצי Terraform כעת. צור את תמונת Docker והעלה אותה ל-AWS ECR. בהתאם לרוחב הפס שלך, העלאת תמונה עשויה להימשך זמן רב. בעת פריסת ה-bento ל-AWS EC2, השתמש בקבצי Terraform.
כדי לגשת לממשק המשתמש של Swagger, התחבר למסוף EC2 ופתח את כתובת ה-IP הציבורית בדפדפן. לבסוף, אם שירות Stable Diffusion BentoML אינו נדרש עוד, הסר את הפריסה.
סיכום
אתה אמור להיות מסוגל לראות עד כמה SD והמודלים הנלווים שלו מרתקים וחזקים. הזמן יגיד אם נחזור על הרעיון עוד יותר או נמשיך לגישות מתוחכמות יותר.
עם זאת, קיימות כיום יוזמות להכשרת דגמים גדולים יותר עם התאמות כדי לתפוס טוב יותר את הסביבה ואת ההוראות. ניסינו לפתח את שירות ה-Stable Diffusion באמצעות BentoML ופרסנו אותו ל-AWS EC2.
הצלחנו להריץ את מודל ה-Stable Diffusion על חומרה חזקה יותר, ליצור תמונות עם חביון נמוך ולהרחיב מעבר למחשב בודד על ידי פריסת השירות ב-AWS EC2.
השאירו תגובה