paint-brush
בניית מסגרת גמישה לקלט נתונים רב-מודאלי במודלים של שפות גדולותעל ידי@ritabratamaiti
היסטוריה חדשה

בניית מסגרת גמישה לקלט נתונים רב-מודאלי במודלים של שפות גדולות

על ידי ritabratamaiti5m2024/11/19
Read on Terminal Reader

יותר מדי זמן; לקרוא

AnyModal היא מסגרת קוד פתוח שנועדה להקל על אימון LLMs מולטי-מודאליים על ידי צמצום ה-boilerplate ופישוט האינטגרציה של סוגי נתונים מגוונים כמו טקסט, תמונות ואודיו. הוא מספק רכיבים מודולריים לטוקניזציה, קידוד תכונות והקרנה, ומאפשר למפתחים להתמקד בבניית יישומים מבלי להתמודד עם המורכבות של אינטגרציה מולטי-מודאלית. הדגמות כוללות אימון VLMs עבור כיתוב תמונה, LaTeX OCR, וכיתוב רדיולוגי.
featured image - בניית מסגרת גמישה לקלט נתונים רב-מודאלי במודלים של שפות גדולות
ritabratamaiti HackerNoon profile picture
0-item
1-item

פרויקט הקוד הפתוח שלי: מסגרת גמישה של שפה רב-מודאלית עבור PyTorch


ההבטחה של AI מולטי-מודאלי נמצאת בכל מקום, מאבחון מתקדם של שירותי בריאות ועד ליצירת חוויות לקוח עשירות ודינמיות יותר. אבל עבור אלה מאיתנו שנמצאים בתעלות, בניית מערכות מולטי-מודאליות - המסוגלות לעבד טקסט, תמונות, אודיו ומעבר לכך - מרגישה לעתים קרובות כמו סבך אינסופי של אינטגרציות מותאמות אישית, קוד תבנית ובעיות תאימות. זה היה התסכול שלי, וזה הוביל בסופו של דבר ליצירת AnyModal .


למה AI מולטי-מודאלי?

בואו נודה בזה: אינטראקציות אנושיות עם העולם אינן מוגבלות לסוג אחד של נתונים. אנו מפרשים מילים, חזותיים, צלילים ותחושות פיזיות בו זמנית. הרעיון של AI מולטי-מודאלי נובע מהרעיון הזה. על ידי הכנסת מספר סוגי נתונים לאותו צינור עיבוד, AI מולטי-מודאלי מאפשר למודלים להתמודד עם משימות שבעבר היו מורכבות מדי עבור מערכות חד-מודאליות. תארו לעצמכם יישומי בריאות המנתחים צילומי רנטגן והערות רפואיות יחד, או מערכות שירות לקוחות ששוקלות גם רמזים של טקסט וגם שמע כדי לאמוד במדויק את סנטימנט הלקוחות.


אבל הנה האתגר: בעוד שמודלים חד-מודאליים עבור טקסט (כמו GPT) או תמונות (כמו ViT) מבוססים היטב, שילובם ליצירת אינטראקציה זורמת אינו פשוט. המורכבות הטכנית מנעה מחוקרים ומפתחים רבים לחקור ביעילות AI מולטי-מודאלי. היכנס ל- AnyModal .


הבעיה עם פתרונות מולטי-מודאליים קיימים

בעבודה שלי עם למידת מכונה, שמתי לב שבעוד שכלים כמו GPT, ViT ומעבדי אודיו הם רבי עוצמה בבידוד, יצירת מערכות מולטי-מודאליות על ידי שילוב של כלים אלה פירושה לעתים קרובות חיבורם יחד עם קוד מגושם וספציפי לפרויקט. גישה זו אינה משתנה. הפתרונות הנוכחיים לשילוב אופנים הם או מיוחדים מאוד, מיועדים רק למשימות ספציפיות (כמו כיתוב תמונה או מענה על שאלות חזותיות), או שהם דורשים כמות מתסכלת של קוד לוח רק כדי לגרום לסוגי הנתונים לעבוד יחד.


מסגרות קיימות מתמקדות באופן צר בשילובים ספציפיים של אופנים, מה שמקשה על התרחבות לסוגי נתונים חדשים או להתאים את אותה הגדרה למשימות שונות. המבנה ה"מכוסה" הזה של דגמי AI פירושו שאני כל הזמן ממציא את הגלגל מחדש. זה הרגע שבו החלטתי לבנות את AnyModal — מסגרת גמישה ומודולרית שמפגישה את כל סוגי הנתונים יחד בלי הטרחה.


מה זה AnyModal?

AnyModal היא מסגרת שנועדה לפשט ולייעל פיתוח AI מולטי-מודאלי. זה בנוי כדי להפחית את המורכבות של שילוב סוגי קלט מגוונים על ידי טיפול בטוקניזציה, קידוד ויצירת קלט שאינם טקסט, מה שמקל על הוספת סוגי נתונים חדשים למודלים של שפה גדולה (LLMs).


הרעיון סובב סביב גישה מודולרית לצינור הקלט. עם AnyModal, אתה יכול להחליף מקודד תכונה (כמו Vision Transformer לתמונות או מעבד ספקטרוגרמה לשמע) ולחבר אותם בצורה חלקה ל-LLM. המסגרת מפשטת חלק גדול מהמורכבות, כלומר אינך צריך להשקיע שבועות בכתיבת קוד כדי להפוך את המערכות הללו לתואמות זו לזו.

היסודות של AnyModal: אסימון קלט

מרכיב מכריע של AnyModal הוא אסימון הקלט , המגשר על הפער בין נתונים לא טקסטואליים לבין עיבוד הקלט מבוסס הטקסט של ה-LLM. כך זה עובד:

  • קידוד תכונה : עבור כל אופנה (כמו תמונות או אודיו), מקודד מיוחד משמש לחילוץ תכונות חיוניות. לדוגמה, בעבודה עם תמונות, AnyModal יכולה להשתמש ב-Vision Transformer (ViT) שמעבד את התמונה ומוציא סדרה של וקטורים תכונה. וקטורים אלה לוכדים היבטים מרכזיים, כגון אובייקטים, יחסים מרחביים ומרקמים, חיוניים ליישומים כמו כיתוב תמונה או מענה חזותי לשאלות.
  • שכבת הקרנה : לאחר הקידוד, וקטורי התכונה לרוב אינם תואמים למרחב האסימון של ה-LLM. כדי להבטיח אינטגרציה חלקה, AnyModal משתמשת בשכבת הקרנה אשר הופכת וקטורים אלה להתיישר עם אסימוני הקלט של ה-LLM. לדוגמה, הוקטורים המקודדים מ-ViT ממופים לתוך מרחב ההטמעה של ה-LLM, מה שמאפשר זרימה קוהרנטית של נתונים מולטי-מודאליים בתוך הארכיטקטורה של ה-LLM.

גישה דו-שכבתית זו מאפשרת למודל להתייחס לנתונים מולטי-מודאליים כרצף בודד, ומאפשרת לו ליצור תגובות המתייחסות לכל סוגי הקלט. בעיקרו של דבר, AnyModal הופכת מקורות נתונים שונים לפורמט אחיד ש-LLMs יכולים להבין.


איך זה עובד: דוגמה עם כניסות תמונה

כדי לתת לכם תחושה של אופן הפעולה של AnyModal, בואו נסתכל על דוגמה לשימוש בנתוני תמונה עם LLMs.

 from transformers import ViTImageProcessor, ViTForImageClassification from anymodal import MultiModalModel from vision import VisionEncoder, Projector # Step 1: Initialize Vision Components processor = ViTImageProcessor.from_pretrained('google/vit-base-patch16-224') vision_model = ViTForImageClassification.from_pretrained('google/vit-base-patch16-224') vision_encoder = VisionEncoder(vision_model) # Step 2: Define Projection Layer for Compatibility vision_tokenizer = Projector(in_features=vision_model.config.hidden_size, out_features=768) # Step 3: Initialize LLM and Tokenizer from transformers import AutoTokenizer, AutoModelForCausalLM llm_tokenizer = AutoTokenizer.from_pretrained("gpt2") llm_model = AutoModelForCausalLM.from_pretrained("gpt2") # Step 4: Build the AnyModal Multimodal Model multimodal_model = MultiModalModel( input_processor=None, input_encoder=vision_encoder, input_tokenizer=vision_tokenizer, language_tokenizer=llm_tokenizer, language_model=llm_model, input_start_token='<|imstart|>', input_end_token='<|imend|>', prompt_text="Describe this image: " )

הגדרה מודולרית זו מאפשרת למפתחים לחבר ולשחק עם מקודדים ו-LLMs שונים, תוך התאמת המודל למשימות מולטי-מודאליות שונות, החל מכתוביות תמונה ועד למענה על שאלות.


יישומים נוכחיים של AnyModal

AnyModal כבר הוחל על מספר מקרי שימוש, עם תוצאות מרגשות:

  • LaTeX OCR : תרגום משוואות מתמטיות מורכבות לטקסט קריא.
  • כיתוב צילום רנטגן חזה : הפקת תיאורים רפואיים לתמיכה אבחנתית בתחום הבריאות.
  • כיתוב תמונה : יצירה אוטומטית של כיתובים עבור תוכן חזותי, מה שמועיל ליישומי נגישות ומדיה.

על ידי הפשטת המורכבות של הטיפול בסוגי נתונים שונים, AnyModal מאפשרת למפתחים לבנות במהירות אבות טיפוס או לשכלל מערכות מתקדמות ללא צווארי הבקבוק שמגיעים בדרך כלל עם אינטגרציה מולטי-מודאלית.


למה להשתמש ב-AnyModal?

אם אתה מנסה לבנות מערכת רב-מודאלית, כנראה שנתקלת באתגרים הבאים:

  • מורכבות גבוהה ביישור סוגי נתונים שונים עם LLMs.
  • קוד ה-boilerplate מיותר ומייגע עבור כל אופציה.
  • מדרגיות מוגבלת בעת הוספת סוגי נתונים חדשים.

AnyModal מטפלת בנקודות הכאב הללו על ידי הפחתת ה-boilerplate, מציעה מודולים גמישים ומאפשרת התאמה אישית מהירה. במקום להילחם בבעיות תאימות, מפתחים יכולים להתמקד בבניית מערכות חכמות בצורה מהירה ויעילה יותר.


מה הלאה עבור AnyModal?

המסע של AnyModal רק מתחיל. כרגע אני עובד על הוספת תמיכה באופנים נוספים כמו כיתוב אודיו והרחבת המסגרת כדי להפוך אותה להתאמה אפילו יותר למקרי שימוש בנישה. משוב ותרומה מהקהילה הם חיוניים לפיתוח שלה - אם אתה מעוניין בבינה מלאכותית מולטי-מודאלית, אשמח לשמוע את הרעיונות שלך או לשתף פעולה.


איפה למצוא AnyModal




אם אתה מתלהב מ-AI מולטי-מודאלי או מחפש לייעל את תהליך הפיתוח שלך, נסה את AnyModal. בואו נעבוד יחד כדי לפתוח את הגבול הבא של חדשנות בינה מלאכותית.