המשימה MediaPipe Text Embedder מאפשרת ליצור ייצוג מספרי של נתוני טקסט כדי לתעד את המשמעות הסמנטית שלהם. הפונקציונליות הזו משמשת לעיתים קרובות להשוואה של הדמיון הסמנטי בין שני קטעי טקסט באמצעות שיטות השוואה מתמטיות כמו 'דמיון קוסינוס'. המשימה הזו פועלת על נתוני טקסט באמצעות מודל למידת מכונה (ML), ומפיקה ייצוג מספרי של נתוני הטקסט כרשימה של וקטורי מאפיינים בממדים גבוהים, שנקראים גם וקטורי הטמעה (embedding), בצורה של נקודה צפה או בצורה מקוטנת.
תחילת העבודה
כדי להתחיל להשתמש במשימה הזו, פועלים לפי אחד מהמדריכים הבאים להטמעה בפלטפורמת היעד. המדריכים הספציפיים לפלטפורמות האלה כוללים הנחיות להטמעה בסיסית של המשימה הזו, כולל מודל מומלץ ודוגמת קוד עם אפשרויות ההגדרה המומלצות:
- Android – דוגמה לקוד – מדריך
- Python – דוגמה לקוד – מדריך
- אינטרנט – דוגמה לקוד – מדריך
פרטי המשימה
בקטע הזה מוסבר על היכולות, הקלט, הפלט והאפשרויות להגדרה של המשימה הזו.
תכונות
- עיבוד טקסט קלט – תמיכה ביצירת אסימונים מחוץ לתרשים למודלים ללא יצירת אסימונים בתרשים.
- חישוב הדמיון של הטמעה – פונקציית שירות מובנית לחישוב הדמיון לפי קוסינוס בין שני ווקטורים של מאפיינים.
- קידוד (quantization) – תמיכה בקידוד סקלר של וקטורי המאפיינים.
קלט של משימות | פלט של משימות |
---|---|
הכלי להטמעת טקסט מקבל את סוגי נתוני הקלט הבאים:
|
Text Embedder יוצר רשימה של הטמעות שמכילות את הפרטים הבאים:
|
אפשרויות הגדרה
למשימה הזו יש את אפשרויות ההגדרה הבאות:
שם האפשרות | תיאור | טווח ערכים | ערך ברירת מחדל |
---|---|---|---|
l2_normalize |
האם לבצע נורמליזציה של וקטור המאפיינים המוחזר באמצעות נורמלי L2. משתמשים באפשרות הזו רק אם המודל כבר לא מכיל אופרטור L2_NORMALIZATION מקורי של TFLite. ברוב המקרים, המצב הזה כבר קיים, ולכן נורמליזציה של L2 מתבצעת באמצעות היסק של TFLite ללא צורך באפשרות הזו. | Boolean |
False |
quantize |
האם להצפין את הטמעת הנתונים שחוזרת לבייטים באמצעות קידוד סקלר. ההנחה לגבי הטמעות היא שהן נורמליות ליחידה, ולכן לכל מאפיין מובטח ערך בטווח [-1.0, 1.0]. אם זה לא המצב, צריך להשתמש באפשרות l2_normalize. | Boolean |
False |
דגמים
כשמתחילים לפתח באמצעות המשימה הזו, אנחנו מציעים מודל מומלץ שמוגדר כברירת מחדל.
מודל Universal Sentence Encoder (מומלץ)
המודל הזה מבוסס על ארכיטקטורת מקודד כפול, והוא אומן על מערכי נתונים שונים של שאלות ותשובות.
כדאי להביא בחשבון את זוגות המשפטים הבאים:
- ("it's a charming and often affecting journey", "what a great and fantastic trip")
- ("I like my phone", "I hate my phone")
- ("This restaurant has a great gimmick", "We need to double-check the details of our plan")
לשני הזוגות הראשונים של הטקסטים המוטמעים תהיה רמת דמיון גבוהה יותר לקו הסינוס מאשר לשני הזוגות האחרים, כי לשני הזוגות הראשונים של המשפטים יש נושא משותף – 'רגשות לגבי הנסיעה' ו'דעה על הטלפון', בהתאמה, ואילו לשני הזוגות האחרים של המשפטים אין נושא משותף.
שימו לב שלמרות שלשני המשפטים בזוג השני יש רגשות מנוגדים, דירוג הדמיון שלהם גבוה כי יש להם נושא משותף.
שם דגם | צורת הקלט | סוג הקידוד | גרסאות |
---|---|---|---|
Universal Sentence Encoder | string, string, string | None (float32) | חדש |
נקודות השוואה של משימות
בהמשך מפורטות נקודות השוואה של המשימות לצינור עיבוד הנתונים כולו, על סמך המודלים המאומןים מראש שצוינו למעלה. תוצאת זמן האחזור היא זמן האחזור הממוצע ב-Pixel 6 באמצעות מעבד או יחידת עיבוד גרפי (GPU).
שם דגם | זמן האחזור של המעבד (CPU) | זמן אחזור של GPU |
---|---|---|
Universal Sentence Encoder | 18.21 אלפיות השנייה | - |