टेक्स्ट एम्बेडर्स टेक्स्ट को एक उच्च-आयामी फीचर वेक्टर में एम्बेड करने की अनुमति देते हैं जो इसके अर्थ अर्थ का प्रतिनिधित्व करता है, जिसे बाद में अन्य टेक्स्ट के फीचर वेक्टर से उनकी सिमेंटिक समानता का मूल्यांकन करने के लिए तुलना की जा सकती है।
टेक्स्ट सर्च के विपरीत, टेक्स्ट एम्बेडर एक कॉर्पस से निर्मित पूर्वनिर्धारित इंडेक्स के माध्यम से खोज करने के बजाय ऑन-द-फ्लाई टेक्स्ट के बीच समानता की गणना करने की अनुमति देता है।
अपने मोबाइल एप्लिकेशन में अपने कस्टम टेक्स्ट एम्बेडर को परिनियोजित करने के लिए टास्क लाइब्रेरी TextEmbedder
एपीआई का उपयोग करें।
TextEmbedder API की मुख्य विशेषताएं
इनपुट टेक्स्ट प्रोसेसिंग, इनपुट टेक्स्ट पर इन-ग्राफ या आउट-ऑफ-ग्राफ वर्डपीस या सेंटेंसपीस टोकननाइजेशन सहित।
फीचर वैक्टर के बीच कोसाइन समानता की गणना करने के लिए अंतर्निहित उपयोगिता फ़ंक्शन।
समर्थित टेक्स्ट एम्बेडर मॉडल
निम्नलिखित मॉडलों को TextEmbedder
API के साथ संगत होने की गारंटी है।
कस्टम मॉडल जो मॉडल संगतता आवश्यकताओं को पूरा करते हैं।
सी ++ में अनुमान चलाएं
// 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
को कॉन्फ़िगर करने के अधिक विकल्पों के लिए स्रोत कोड देखें।
पायथन में अनुमान चलाएँ
चरण 1: TensorFlow लाइट सपोर्ट Pypi पैकेज स्थापित करें।
आप निम्न आदेश का उपयोग करके TensorFlow लाइट सपोर्ट Pypi पैकेज स्थापित कर सकते हैं:
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
अपने स्वयं के मॉडल और परीक्षण डेटा के साथ TextEmbedder के लिए सरल CLI डेमो टूल आज़माएं ।
मॉडल संगतता आवश्यकताएँ
TextEmbedder
API अनिवार्य TFLite मॉडल मेटाडेटा के साथ TFLite मॉडल की अपेक्षा करता है।
तीन मुख्य प्रकार के मॉडल समर्थित हैं:
BERT- आधारित मॉडल (अधिक विवरण के लिए स्रोत कोड देखें):
बिल्कुल 3 इनपुट टेंसर (kTfLiteString)
- आईडी टेंसर, मेटाडेटा नाम "आईडी" के साथ,
- मास्क टेंसर, मेटाडेटा नाम "मास्क" के साथ।
- सेगमेंट आईडी टेंसर, मेटाडेटा नाम "सेगमेंट_आईड्स" के साथ
बिल्कुल एक आउटपुट टेंसर (kTfLiteUInt8/kTfLiteFloat32)
- इस आउटपुट लेयर के लिए लौटाए गए फीचर वेक्टर के
N
आयामों के अनुरूपN
घटकों के साथ। - या तो 2 या 4 आयाम, यानी
[1 x N]
या[1 x 1 x 1 x N]
।
- इस आउटपुट लेयर के लिए लौटाए गए फीचर वेक्टर के
Wordpiece/Sentencepiece Tokenizer के लिए एक input_process_units
यूनिवर्सल सेंटेंस एनकोडर-आधारित मॉडल (अधिक विवरण के लिए स्रोत कोड देखें):
बिल्कुल 3 इनपुट टेंसर (kTfLiteString)
- क्वेरी टेक्स्ट टेंसर, मेटाडेटा नाम "inp_text" के साथ।
- प्रतिक्रिया संदर्भ टेंसर, मेटाडेटा नाम "res_context" के साथ।
- प्रतिक्रिया पाठ टेंसर, मेटाडेटा नाम "res_text" के साथ।
बिल्कुल 2 आउटपुट टेंसर (kTfLiteUInt8/kTfLiteFloat32)
- क्वेरी एन्कोडिंग टेंसर, मेटाडेटा नाम "query_encoding" के साथ।
- प्रतिक्रिया एन्कोडिंग टेंसर, मेटाडेटा नाम "response_encoding" के साथ।
- दोनों इस आउटपुट लेयर के लिए लौटे फीचर वेक्टर के
N
आयामों के अनुरूपN
घटकों के साथ। - दोनों या तो 2 या 4 आयामों के साथ, अर्थात
[1 x N]
या[1 x 1 x 1 x N]
।
इसके साथ कोई भी टेक्स्ट एम्बेडर मॉडल:
- एक इनपुट टेक्स्ट टेंसर (kTfLiteString)
कम से कम एक आउटपुट एम्बेडिंग टेंसर (kTfLiteUInt8/kTfLiteFloat32)
- इस आउटपुट लेयर के लिए लौटाए गए फीचर वेक्टर के
N
आयामों के अनुरूपN
घटकों के साथ। - या तो 2 या 4 आयाम, यानी
[1 x N]
या[1 x 1 x 1 x N]
।
- इस आउटपुट लेयर के लिए लौटाए गए फीचर वेक्टर के