टेक्स्ट एंबेडर्स को एकीकृत करें.

टेक्स्ट एंबेडर्स टेक्स्ट को उसके सिमेंटिक अर्थ का प्रतिनिधित्व करने वाले एक उच्च-आयामी फीचर वेक्टर में एम्बेड करने की अनुमति देते हैं, जिसे बाद में उनकी सिमेंटिक समानता का मूल्यांकन करने के लिए अन्य टेक्स्ट के फीचर वेक्टर के साथ तुलना की जा सकती है।

पाठ खोज के विपरीत, पाठ एम्बेडर एक कॉर्पस से निर्मित पूर्वनिर्धारित सूचकांक के माध्यम से खोज करने के बजाय ऑन-द-फ्लाई पाठों के बीच समानता की गणना करने की अनुमति देता है।

अपने मोबाइल ऐप्स में अपने कस्टम टेक्स्ट एंबेडर को तैनात करने के लिए टास्क लाइब्रेरी 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 कॉन्फ़िगर करने के लिए अधिक विकल्पों के लिए स्रोत कोड देखें।

पायथन में अनुमान चलाएँ

चरण 1: TensorFlow Lite सपोर्ट Pypi पैकेज स्थापित करें।

आप निम्न कमांड का उपयोग करके TensorFlow Lite सपोर्ट 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 के लिए सरल सीएलआई डेमो टूल आज़माएं।

मॉडल अनुकूलता आवश्यकताएँ

TextEmbedder API अनिवार्य TFLite मॉडल मेटाडेटा के साथ एक TFLite मॉडल की अपेक्षा करता है।

तीन मुख्य प्रकार के मॉडल समर्थित हैं:

  • BERT-आधारित मॉडल (अधिक विवरण के लिए स्रोत कोड देखें):

    • बिल्कुल 3 इनपुट टेंसर (kTfLiteString)

      • आईडी टेंसर, मेटाडेटा नाम "आईडी" के साथ,
      • मास्क टेंसर, मेटाडेटा नाम "मास्क" के साथ।
      • सेगमेंट आईडी टेंसर, मेटाडेटा नाम "सेगमेंट_आईडी" के साथ
    • बिल्कुल एक आउटपुट टेंसर (kTfLiteUInt8/kTfLiteFloat32)

      • इस आउटपुट परत के लिए लौटाए गए फ़ीचर वेक्टर के N आयामों के अनुरूप N घटकों के साथ।
      • या तो 2 या 4 आयाम, यानी [1 x N] या [1 x 1 x 1 x N]
    • वर्डपीस/सेंटेंसपीस टोकनाइज़र के लिए एक इनपुट_प्रोसेस_यूनिट्स

  • यूनिवर्सल सेंटेंस एनकोडर-आधारित मॉडल (अधिक विवरण के लिए स्रोत कोड देखें):

    • बिल्कुल 3 इनपुट टेंसर (kTfLiteString)

      • क्वेरी टेक्स्ट टेंसर, मेटाडेटा नाम "inp_text" के साथ।
      • प्रतिक्रिया संदर्भ टेंसर, मेटाडेटा नाम "res_context" के साथ।
      • प्रतिक्रिया पाठ टेंसर, मेटाडेटा नाम "res_text" के साथ।
    • बिल्कुल 2 आउटपुट टेंसर (kTfLiteUInt8/kTfLiteFloat32)

      • क्वेरी एन्कोडिंग टेंसर, मेटाडेटा नाम "query_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]