מדריך להטמעת טקסט

שני משפטי דוגמה שבהם מוצגים המיפויים התואמים של כל מילה במשפטים כמערך.

המשימה MediaPipe Text Embedder מאפשרת ליצור ייצוג מספרי של נתוני טקסט כדי לתעד את המשמעות הסמנטית שלהם. הפונקציונליות הזו משמשת לעיתים קרובות להשוואה של הדמיון הסמנטי בין שני קטעי טקסט באמצעות שיטות השוואה מתמטיות כמו 'דמיון קוסינוס'. המשימה הזו פועלת על נתוני טקסט באמצעות מודל למידת מכונה (ML), ומפיקה ייצוג מספרי של נתוני הטקסט כרשימה של וקטורי מאפיינים בממדים גבוהים, שנקראים גם וקטורי הטמעה (embedding), בצורה של נקודה צפה או בצורה מקוטנת.

רוצים לנסות?

תחילת העבודה

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

פרטי המשימה

בקטע הזה מוסבר על היכולות, הקלט, הפלט והאפשרויות להגדרה של המשימה הזו.

תכונות

  • עיבוד טקסט קלט – תמיכה ביצירת אסימונים מחוץ לתרשים למודלים ללא יצירת אסימונים בתרשים.
  • חישוב הדמיון של הטמעה – פונקציית שירות מובנית לחישוב הדמיון לפי קוסינוס בין שני ווקטורים של מאפיינים.
  • קידוד (quantization) – תמיכה בקידוד סקלר של וקטורי המאפיינים.
קלט של משימות פלט של משימות
הכלי להטמעת טקסט מקבל את סוגי נתוני הקלט הבאים:
  • מחרוזת
Text Embedder יוצר רשימה של הטמעות שמכילות את הפרטים הבאים:
  • הטמעה (embedding): וקטור המאפיינים עצמו, בפורמט של נקודה צפה או בקידוד סקלר.
  • אינדקס הראש: האינדקס של הראש שיצר את הטמעת הנתונים הזו.
  • שם הראש (אופציונלי): השם של הראש שיצר את הטמעת הקוד הזו.

אפשרויות הגדרה

למשימה הזו יש את אפשרויות ההגדרה הבאות:

שם האפשרות תיאור טווח ערכים ערך ברירת מחדל
l2_normalize האם לבצע נורמליזציה של וקטור המאפיינים המוחזר באמצעות נורמלי L2. משתמשים באפשרות הזו רק אם המודל כבר לא מכיל אופרטור L2_NORMALIZATION מקורי של TFLite. ברוב המקרים, המצב הזה כבר קיים, ולכן נורמליזציה של L2 מתבצעת באמצעות היסק של TFLite ללא צורך באפשרות הזו. Boolean False
quantize האם להצפין את הטמעת הנתונים שחוזרת לבייטים באמצעות קידוד סקלר. ההנחה לגבי הטמעות היא שהן נורמליות ליחידה, ולכן לכל מאפיין מובטח ערך בטווח [-1.0, 1.0]. אם זה לא המצב, צריך להשתמש באפשרות l2_normalize. Boolean False

דגמים

כשמתחילים לפתח באמצעות המשימה הזו, אנחנו מציעים מודל מומלץ שמוגדר כברירת מחדל.

המודל הזה מבוסס על ארכיטקטורת מקודד כפול, והוא אומן על מערכי נתונים שונים של שאלות ותשובות.

כדאי להביא בחשבון את זוגות המשפטים הבאים:

  • ("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 אלפיות השנייה -