टेक्स्ट एम्बेडर इंटिग्रेट करें.

टेक्स्ट एम्बेडर की मदद से, टेक्स्ट को हाई-डाइमेंशन वाले फ़ीचर वेक्टर में एम्बेड किया जा सकता है के सिमैंटिक मतलब को दिखाता है, जिसकी तुलना इस सुविधा से की जा सकती है वेक्टर का इस्तेमाल किया जा सकता है, ताकि वे वाक्य समान रूप से समझ सकें.

इसके उलट टेक्स्ट की खोज, टेक्स्ट एम्बेडर, तुरंत ही टेक्स्ट के बीच समानता की गणना करने की सुविधा देता है के बजाय किसी कॉर्पस (संग्रह) से बने पहले से बने इंडेक्स में खोजें.

अपनी पसंद के मुताबिक टेक्स्ट एम्बेडर को डिप्लॉय करने के लिए, टास्क लाइब्रेरी TextEmbedder API का इस्तेमाल करें आपके मोबाइल ऐप्लिकेशन.

TextEmbedder API की मुख्य सुविधाएं

  • इनपुट टेक्स्ट प्रोसेसिंग, जिसमें इन-ग्राफ़ या आउट-ऑफ़-ग्राफ़ शामिल है वर्डपीस या सेंटेंसपीस इनपुट टेक्स्ट पर टोकनाइज़ेशन.

  • यह फ़ंक्शन कैलकुलेट करने के लिए, पहले से मौजूद यूटिलिटी फ़ंक्शन इनके बीच कोसाइन (cosine) फ़ीचर वेक्टर.

साथ काम करने वाले टेक्स्ट एम्बेडर मॉडल

ये मॉडल, TextEmbedder के साथ काम करते हैं एपीआई.

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 में इन्फ़रेंस चलाना

पहला चरण: TensorFlow Lite का Pypi पैकेज इंस्टॉल करें.

TensorFlow Lite का सहायता Pypi पैकेज इंस्टॉल करने के लिए, इनका इस्तेमाल करें: आदेश:

pip install tflite-support

दूसरा चरण: मॉडल का इस्तेमाल करना

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. ज़्यादा वैल्यू बेहतर होती है. इसका मतलब है कि कोसाइन (cosine) के बीच 1 का मतलब है कि दोनों वेक्टर एक जैसा.

Cosine similarity: 0.954312

आसान तरीके आज़माएं TextEmbedder के लिए सीएलआई डेमो टूल की मदद से कैसे डिज़ाइन किया गया है.

मॉडल के साथ काम करने से जुड़ी ज़रूरी शर्तें

TextEmbedder API के लिए, TFLite मॉडल ज़रूरी है. TFLite मॉडल का मेटाडेटा.

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

  • BERT-आधारित मॉडल (देखें सोर्स कोड ज़्यादा जानकारी के लिए):

    • ठीक तीन इनपुट टेंसर (kTfLiteString)

      • आईडी टेंसर, जिसके मेटाडेटा का नाम "ids" है,
      • टेंसर को मास्क करें, जिसके मेटाडेटा का नाम "मास्क" हो.
      • सेगमेंट आईडी टेंसर, जिसका मेटाडेटा नाम "segment_ids" है
    • सिर्फ़ एक आउटपुट टेंसर (kTfLiteUInt8/kTfLiteFloat32)

      • के N घटकों के साथ N आयाम से इस आउटपुट लेयर के लिए फ़ीचर वेक्टर दिखाया गया.
      • दो या चार डाइमेंशन, जैसे कि [1 x N] या [1 x 1 x 1 x N].
    • वर्डपीस/सेंटेंसपीस टोकनाइज़र के लिए Input_process_units

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

    • ठीक तीन इनपुट टेंसर (kTfLiteString)

      • क्वेरी टेक्स्ट टेंसर, जिसके मेटाडेटा का नाम "inp_text" है.
      • रिस्पॉन्स कॉन्टेक्स्ट टेंसर, जिसका मेटाडेटा नाम "res_context" है.
      • जवाब वाले टेक्स्ट टेंसर, मेटाडेटा नाम "res_text" के साथ.
    • ठीक दो आउटपुट टेंसर (kTfLiteUInt8/kTfLiteFloat32)

      • क्वेरी एन्कोडिंग टेंसर, मेटाडेटा नाम "query_encoding" के साथ.
      • रिस्पॉन्स कोड में बदलने वाला टेंसर, जिसके मेटाडेटा का नाम "response_encoding" है.
      • दोनों में, इसके N डाइमेंशन से जुड़े N कॉम्पोनेंट हैं इस आउटपुट लेयर के लिए फ़ीचर वेक्टर दिखाया गया.
      • दो या चार डाइमेंशन के साथ, [1 x N] या [1 x 1 x 1 x N].
  • ऐसा कोई भी टेक्स्ट एम्बेडर मॉडल जिसमें:

    • इनपुट टेक्स्ट टेंसर (kTfLiteString)
    • कम से कम एक आउटपुट एम्बेड करने वाला टेंसर (kTfLiteUInt8/kTfLiteFloat32)

      • के N घटकों के साथ N आयाम से इस आउटपुट लेयर के लिए फ़ीचर वेक्टर दिखाया गया.
      • दो या चार डाइमेंशन, जैसे कि [1 x N] या [1 x 1 x 1 x N].