כלי הטמעה של טקסט מאפשרים הטמעת טקסט בווקטור מאפיין של ממדים גבוהים שמייצג את המשמעות הסמנטית שלה, שאפשר להשוות אותה לתכונה של טקסטים אחרים להערכת הדמיון הסמנטי שלהם.
בניגוד ל- חיפוש טקסט, כלי הטמעת הטקסט מאפשר לחשב את הדמיון בין טקסטים בזמן אמת במקום לחפש באינדקס מוגדר מראש שנוצר מתוך קורפוס.
משתמשים ב-API של ספריית המשימות TextEmbedder
כדי לפרוס את הכלי להטמעת טקסט בהתאמה אישית
באפליקציות לנייד.
תכונות מרכזיות של TextEmbedder API
עיבוד טקסט של קלט, כולל במיקום בתוך התמונה או מחוץ לתמונה מילת מפתח או קטע טקסט יצירת אסימונים בטקסט הקלט.
פונקציית שירות מובנית לחישוב דמיון בין קוסינוס ויוצר וקטורים של מאפיינים.
מודלים נתמכים של כלי להטמעת טקסט
מובטח שהמודלים הבאים יתאימו לTextEmbedder
API.
מודלים מותאמים אישית שעומדים בדרישות התאימות של המודלים.
הרצת ההסקה ב-C++
// Initialization.
TextEmbedderOptions options:
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
std::unique_ptr<TextEmbedder> text_embedder = TextEmbedder::CreateFromOptions(options).value();
// Run inference with your two inputs, `input_text1` and `input_text2`.
const EmbeddingResult result_1 = text_embedder->Embed(input_text1);
const EmbeddingResult result_2 = text_embedder->Embed(input_text2);
// Compute cosine similarity.
double similarity = TextEmbedder::CosineSimilarity(
result_1.embeddings[0].feature_vector()
result_2.embeddings[0].feature_vector());
לצפייה
קוד מקור
לאפשרויות נוספות להגדרה של TextEmbedder
.
הרצת ההסקה ב-Python
שלב 1: מתקינים את חבילת התמיכה TensorFlow Lite מסוג Pypi.
אפשר להתקין את חבילת Pypi לתמיכה של TensorFlow Lite באמצעות הפקודה:
pip install tflite-support
שלב 2: שימוש במודל
from tflite_support.task import text
# Initialization.
text_embedder = text.TextEmbedder.create_from_file(model_path)
# Run inference on two texts.
result_1 = text_embedder.embed(text_1)
result_2 = text_embedder.embed(text_2)
# Compute cosine similarity.
feature_vector_1 = result_1.embeddings[0].feature_vector
feature_vector_2 = result_2.embeddings[0].feature_vector
similarity = text_embedder.cosine_similarity(
result_1.embeddings[0].feature_vector, result_2.embeddings[0].feature_vector)
לצפייה
קוד מקור
לאפשרויות נוספות להגדרה של TextEmbedder
.
תוצאות לדוגמה
דמיון קוסינוס בין וקטורים של מאפיינים מנורמלים מחזיר ציון בין 1- ו-1. ככל שגבוה יותר הוא טוב יותר, כלומר, דמיון קוסינוס של 1 פירושו ששני הווקטורים זהה.
Cosine similarity: 0.954312
תנסו את השיטה הפשוטה כלי ההדגמה של CLI ל-TextEmbedder את המודל ונתוני הבדיקה שלכם.
דרישות התאימות של המודלים
ל-API TextEmbedder
נדרש מודל TFLite עם
מטא-נתונים של מודל TFLite.
יש תמיכה בשלושה סוגי מודלים עיקריים:
במודלים המבוססים על BERT, קוד מקור לפרטים נוספים):
בדיוק 3 רכיבי קלט (kTfLiteString)
- מפריד מזהים עם שם המטא-נתונים 'ids',
- מסכה מסוג tensor, עם שם המטא-נתונים "mask".
- Tensor של מזהי פלחים, עם שם המטא-נתונים 'segment_id'
טנזור פלט אחד בדיוק (kTfLiteUInt8/kTfLiteFloat32)
- עם רכיבי
N
שתואמים למידות שלN
והחזיר את הווקטור של המאפיין, לשכבת הפלט הזו. - 2 או 4 מאפיינים, כלומר
[1 x N]
או[1 x 1 x 1 x N]
.
- עם רכיבי
קלט_תהליך_units לרכיב כלשהו של טקסטורה/רכיב לאסימונים
מודלים מבוססי-קידוד של משפטים אוניברסליים ( קוד מקור לפרטים נוספים):
בדיוק 3 רכיבי קלט (kTfLiteString)
- רכיב img_tensor של שאילתה, עם שם המטא-נתונים 'inp_text'.
- רכיב tensor של התשובה, עם שם המטא-נתונים 'res_context'.
- רכיב tensor של תשובה, עם שם המטא-נתונים 'res_text'.
בדיוק 2 משתני פלט (kTfLiteUInt8/kTfLiteFloat32)
- Tensor לקידוד שאילתות, עם שם המטא-נתונים "query_encoding".
- חיישן קידוד של תגובה, עם שם המטא-נתונים "response_encoding".
- שניהם עם רכיבי
N
שתואמים למידות שלN
של והחזיר את הווקטור של המאפיין, לשכבת הפלט הזו. - בשני המאפיינים יש 2 או 4 מאפיינים, כלומר
[1 x N]
או[1 x 1 x 1 x N]
.
כל מודל של כלי להטמעת טקסט עם:
- רכיב tensor של טקסט קלט (kTfLiteString)
חיישן הטמעה אחד לפחות של פלט אחד (kTfLiteUInt8/kTfLiteFloat32)
- עם רכיבי
N
שתואמים למידות שלN
והחזיר את הווקטור של המאפיין, לשכבת הפלט הזו. - 2 או 4 מאפיינים, כלומר
[1 x N]
או[1 x 1 x 1 x N]
.
- עם רכיבי