पाठ खोजकर्ताओं को एकीकृत करें

पाठ खोज एक कोष में शब्दार्थ समान पाठ की खोज करने की अनुमति देता है। यह एक उच्च-आयामी वेक्टर में खोज क्वेरी को एम्बेड करके काम करता है जो क्वेरी के अर्थ अर्थ का प्रतिनिधित्व करता है, इसके बाद एक पूर्वनिर्धारित, कस्टम इंडेक्स में समानता खोज के बाद ScaNN (स्केलेबल निकटतम पड़ोसियों) का उपयोग करता है।

टेक्स्ट वर्गीकरण (जैसे बर्ट नेचुरल लैंग्वेज क्लासिफायरियर ) के विपरीत, पहचानी जा सकने वाली वस्तुओं की संख्या का विस्तार करने के लिए पूरे मॉडल को फिर से प्रशिक्षित करने की आवश्यकता नहीं होती है। नई वस्तुओं को केवल सूचकांक को फिर से बनाने के लिए जोड़ा जा सकता है। यह बड़े (100k+ आइटम) कॉर्पस के साथ काम करने में भी सक्षम बनाता है।

अपने कस्टम टेक्स्ट खोजकर्ता को अपने मोबाइल ऐप में परिनियोजित करने के लिए टास्क लाइब्रेरी TextSearcher एपीआई का उपयोग करें।

TextSearcher API की मुख्य विशेषताएं

  • इनपुट के रूप में एक स्ट्रिंग लेता है, इंडेक्स में एम्बेडिंग निष्कर्षण और निकटतम-पड़ोसी खोज करता है।

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

आवश्यक शर्तें

TextSearcher API का उपयोग करने से पहले, खोज करने के लिए टेक्स्ट के कस्टम कॉर्पस के आधार पर एक इंडेक्स बनाने की आवश्यकता होती है। यह ट्यूटोरियल का अनुसरण और अनुकूलन करके मॉडल मेकर सर्चर एपीआई का उपयोग करके प्राप्त किया जा सकता है।

इसके लिए आपको आवश्यकता होगी:

  • एक TFLite टेक्स्ट एम्बेडर मॉडल, जैसे कि यूनिवर्सल सेंटेंस एनकोडर। उदाहरण के लिए,
    • इस Colab में प्रशिक्षित व्यक्ति , जिसे डिवाइस पर अनुमान लगाने के लिए अनुकूलित किया गया है। Pixel 6 पर टेक्स्ट स्ट्रिंग को क्वेरी करने में केवल 6ms लगते हैं।
    • परिमाणित एक, जो ऊपर से छोटा है लेकिन प्रत्येक एम्बेडिंग के लिए 38ms लेता है।
  • आपके पाठ का संग्रह।

इस चरण के बाद, आपके पास एक स्टैंडअलोन TFLite खोजकर्ता मॉडल (उदा mobilenet_v3_searcher.tflite ) होना चाहिए, जो TFLite मॉडल मेटाडेटा में संलग्न अनुक्रमणिका के साथ मूल पाठ एम्बेडर मॉडल है।

जावा में अनुमान चलाएँ

चरण 1: ग्रैडल निर्भरता और अन्य सेटिंग्स आयात करें

एंड्रॉइड मॉड्यूल की संपत्ति निर्देशिका में .tflite खोजकर्ता मॉडल फ़ाइल की प्रतिलिपि बनाएँ जहां मॉडल चलाया जाएगा। निर्दिष्ट करें कि फ़ाइल को संपीड़ित नहीं किया जाना चाहिए, और TensorFlow Lite लाइब्रेरी को मॉड्यूल की build.gradle फ़ाइल में जोड़ें:

android {
    // Other settings

    // Specify tflite index file should not be compressed for the app apk
    aaptOptions {
        noCompress "tflite"
    }

}

dependencies {
    // Other dependencies

    // Import the Task Vision Library dependency (NNAPI is included)
    implementation 'org.tensorflow:tensorflow-lite-task-vision:0.4.4'
    // Import the GPU delegate plugin Library for GPU inference
    implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin:0.4.4'
}

चरण 2: मॉडल का उपयोग करना

// Initialization
TextSearcherOptions options =
    TextSearcherOptions.builder()
        .setBaseOptions(BaseOptions.builder().useGpu().build())
        .setSearcherOptions(
            SearcherOptions.builder().setL2Normalize(true).build())
        .build();
TextSearcher textSearcher =
    textSearcher.createFromFileAndOptions(context, modelFile, options);

// Run inference
List<NearestNeighbor> results = textSearcher.search(text);

TextSearcher को कॉन्फ़िगर करने के अधिक विकल्पों के लिए स्रोत कोड और javadoc देखें।

सी ++ में अनुमान चलाएं

// Initialization
TextSearcherOptions options;
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
options.mutable_embedding_options()->set_l2_normalize(true);
std::unique_ptr<TextSearcher> text_searcher = TextSearcher::CreateFromOptions(options).value();

// Run inference with your input, `input_text`.
const SearchResult result = text_searcher->Search(input_text).value();

TextSearcher को कॉन्फ़िगर करने के अधिक विकल्पों के लिए स्रोत कोड देखें।

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

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

आप निम्न आदेश का उपयोग करके TensorFlow लाइट सपोर्ट Pypi पैकेज स्थापित कर सकते हैं:

pip install tflite-support

चरण 2: मॉडल का उपयोग करना

from tflite_support.task import text

# Initialization
text_searcher = text.TextSearcher.create_from_file(model_path)

# Run inference
result = text_searcher.search(text)

TextSearcher को कॉन्फ़िगर करने के अधिक विकल्पों के लिए स्रोत कोड देखें।

उदाहरण परिणाम

Results:
 Rank#0:
  metadata: The sun was shining on that day.
  distance: 0.04618
 Rank#1:
  metadata: It was a sunny day.
  distance: 0.10856
 Rank#2:
  metadata: The weather was excellent.
  distance: 0.15223
 Rank#3:
  metadata: The cat is chasing after the mouse.
  distance: 0.34271
 Rank#4:
  metadata: He was very happy with his newly bought car.
  distance: 0.37703

अपने स्वयं के मॉडल और परीक्षण डेटा के साथ टेक्स्ट खोजकर्ता के लिए सरल सीएलआई डेमो टूल आज़माएं