המשימה MediaPipe Text Embedder מאפשרת ליצור ייצוג מספרי של נתוני טקסט כדי לתעד את המשמעות הסמנטית שלהם. בהוראות האלה מוסבר איך להשתמש ב-Text Embedder לאפליקציות אינטרנט ולאפליקציות JavaScript.
מידע נוסף על היכולות, המודלים ואפשרויות ההגדרה של המשימה הזו זמין במאמר סקירה כללית.
קוד לדוגמה
קוד לדוגמה של Text Embedder מספק הטמעה מלאה של המשימה הזו ב-JavaScript לעיונכם. הקוד הזה עוזר לכם לבדוק את המשימה הזו ולהתחיל לבנות אפליקציה משלכם להטמעת טקסט. אתם יכולים להציג, להריץ ולערוך את הדוגמה של Text Embedder באמצעות דפדפן האינטרנט בלבד.
הגדרה
בקטע הזה מתוארים השלבים העיקריים להגדרת סביבת הפיתוח ופרויקטים של קוד במיוחד לשימוש ב-Text Embedder. מידע כללי על הגדרת סביבת הפיתוח לשימוש במשימות MediaPipe, כולל דרישות לגבי גרסת הפלטפורמה, זמין במדריך ההגדרה ל-Web.
חבילות JavaScript
קוד Text Embedder זמין דרך חבילת @mediapipe/tasks-text. אפשר למצוא ולהוריד את הספריות האלה מהקישורים שמפורטים במדריך ההגדרה של הפלטפורמה.
כדי להתקין את החבילות הנדרשות להעברה מקומית לבמה, משתמשים בפקודה הבאה:
npm install @mediapipe/tasks-text
אם רוצים לפרוס לשרת, אפשר להשתמש בשירות של רשת להעברת תוכן (CDN), כמו jsDelivr, כדי להוסיף קוד ישירות לדף ה-HTML, באופן הבא:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
crossorigin="anonymous"></script>
</head>
דגם
הפעולה MediaPipe Text Embedder דורשת מודל מאומן שתואם לפעולה הזו. מידע נוסף על מודלים מאומנים זמינים ל-Text Embedder זמין בקטע 'מודלים' בסקירה הכללית של המשימה.
בוחרים מודל, מורידים אותו ושומרים אותו בספריית הפרויקט:
<dev-project-root>/app/shared/models
יצירת המשימה
משתמשים באחת מהפונקציות של Text Embedder createFrom...() כדי להכין את המשימה להפעלת מסקנות. אפשר להשתמש בפונקציה createFromModelPath()
עם נתיב יחסי או מוחלט לקובץ המודל שאומן. בדוגמת הקוד הבאה מוצג שימוש בפונקציה createFromOptions(). מידע נוסף על אפשרויות ההגדרה הזמינות מופיע במאמר אפשרויות הגדרה.
בדוגמת הקוד הבאה אפשר לראות איך יוצרים ומגדירים את המשימה הזו:
async function createEmbedder() {
const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
textEmbedder = await TextEmbedder.createFromOptions(
textFiles,
{
baseOptions: {
modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_embedder/universal_sentence_encoder.tflite`
},
quantize: true
}
);
}
createEmbedder();
אפשרויות הגדרה
במשימה הזו יש את אפשרויות ההגדרה הבאות לאפליקציות אינטרנט ולאפליקציות JavaScript:
| שם האפשרות | תיאור | טווח ערכים | ערך ברירת מחדל |
|---|---|---|---|
l2Normalize |
האם לנרמל את וקטור התכונות שמוחזר באמצעות נורמת L2. משתמשים באפשרות הזו רק אם המודל לא מכיל כבר פעולת TFLite מקורית של L2_NORMALIZATION. ברוב המקרים, זה כבר המצב, ולכן הנורמליזציה של L2 מושגת באמצעות הסקה של TFLite ללא צורך באפשרות הזו. | Boolean |
False |
quantize |
הארגומנט שקובע אם להמיר את הווקטור המוחזר לכמות קטנה יותר של בייטים באמצעות המרה סקלרית לכמות קטנה יותר של בייטים. ההטמעות נחשבות כבעלות נורמה של יחידה, ולכן מובטח שלכל מימד יהיה ערך בטווח [-1.0, 1.0]. אם זה לא המצב, משתמשים באפשרות l2Normalize. | Boolean |
False |
הכנת הנתונים
הכלי להטמעת טקסט פועל עם נתוני טקסט (string). המשימה מטפלת בעיבוד המקדים של נתוני הקלט, כולל טוקניזציה ועיבוד טנסור. כל העיבוד המקדים מתבצע בפונקציה embed. אין צורך לבצע עיבוד מקדים נוסף של טקסט הקלט.
const inputText = "The input text to be embedded.";
הרצת המשימה
הפונקציה embed מפעילה את ההסקות ב-Text Embedder. במקרה של הטמעת טקסט, המשמעות היא החזרת וקטורי ההטמעה של טקסט הקלט.
בדוגמה הבאה אפשר לראות איך מבצעים את העיבוד באמצעות מודל המשימות.
// Wait to run the function until inner text is set
const embeddingResult = textEmbedder.embed(
inputText
);
טיפול בתוצאות והצגתן
ה-Text Embedder מחזיר TextEmbedderResult שמכיל רשימה של הטמעות (מסוג נקודה צפה או סקלר-קוונטיזציה) של טקסט הקלט.
בדוגמה הבאה מוצגים נתוני הפלט של המשימה הזו:
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
אפשר להשוות את הדמיון הסמנטי של שני הטמעות באמצעות הפונקציה TextEmbedder.cosineSimilarity. דוגמה לקוד:
// Compute cosine similarity.
const similarity = TextEmbedder.cosineSimilarity(
embeddingResult.embeddings[0],
otherEmbeddingResult.embeddings[0]);
בדוגמה של קוד Text Embedder אפשר לראות איך להציג את התוצאות של ה-Embedder שהוחזרו מהמשימה. פרטים נוספים זמינים בדוגמה.