পাঠ্য অনুসন্ধানকারীদের সংহত করুন

পাঠ্য অনুসন্ধান একটি কর্পাসে শব্দার্থগতভাবে অনুরূপ পাঠ্য অনুসন্ধানের অনুমতি দেয়। এটি অনুসন্ধান ক্যোয়ারীকে একটি উচ্চ-মাত্রিক ভেক্টরে এমবেড করে কাজ করে যা কোয়েরির শব্দার্থিক অর্থ উপস্থাপন করে, তারপরে ScaNN (স্কেলযোগ্য নিকটতম প্রতিবেশী) ব্যবহার করে পূর্বনির্ধারিত, কাস্টম সূচকে মিল অনুসন্ধান করে।

টেক্সট শ্রেণীবিভাগের বিপরীতে (যেমন বার্ট ন্যাচারাল ল্যাঙ্গুয়েজ ক্লাসিফায়ার ), স্বীকৃত আইটেমের সংখ্যা বাড়ানোর জন্য পুরো মডেলটিকে পুনরায় প্রশিক্ষণের প্রয়োজন হয় না। নতুন আইটেম যোগ করা যেতে পারে সহজভাবে সূচক পুনর্নির্মাণ. এটি বৃহত্তর (100k+ আইটেম) সংস্থার সাথে কাজ করতে সক্ষম করে।

আপনার মোবাইল অ্যাপ্লিকেশনগুলিতে আপনার কাস্টম পাঠ্য অনুসন্ধানকারী স্থাপন করতে টাস্ক লাইব্রেরি TextSearcher API ব্যবহার করুন৷

TextSearcher API-এর মূল বৈশিষ্ট্য

  • ইনপুট হিসাবে একটি একক স্ট্রিং নেয়, এম্বেডিং নিষ্কাশন এবং সূচকে নিকটতম-প্রতিবেশী অনুসন্ধান করে।

  • ইনপুট টেক্সট প্রসেসিং, ইন-গ্রাফ বা আউট-অফ-গ্রাফ ওয়ার্ডপিস বা ইনপুট টেক্সটে সেন্টেন্সপিস টোকেনাইজেশন সহ।

পূর্বশর্ত

TextSearcher API ব্যবহার করার আগে, অনুসন্ধান করার জন্য পাঠ্যের কাস্টম কর্পাসের উপর ভিত্তি করে একটি সূচক তৈরি করতে হবে। এটি মডেল মেকার অনুসন্ধানকারী API ব্যবহার করে টিউটোরিয়াল অনুসরণ এবং অভিযোজিত করে অর্জন করা যেতে পারে।

এই জন্য আপনার প্রয়োজন হবে:

  • একটি TFLite টেক্সট এমবেডার মডেল, যেমন ইউনিভার্সাল সেন্টেন্স এনকোডার। উদাহরণ স্বরূপ,
    • এই Colab-পুনরায় প্রশিক্ষণ দেওয়া হয়েছে, যা ডিভাইসে অনুমানের জন্য অপ্টিমাইজ করা হয়েছে। Pixel 6-এ একটি টেক্সট স্ট্রিং জিজ্ঞাসা করতে মাত্র 6ms লাগে।
    • কোয়ান্টাইজড এক, যা উপরের থেকে ছোট কিন্তু প্রতিটি এম্বেডিংয়ের জন্য 38ms লাগে।
  • আপনার টেক্সট কর্পাস।

এই ধাপের পরে, আপনার একটি স্বতন্ত্র TFLite অনুসন্ধানকারী মডেল থাকা উচিত (যেমন mobilenet_v3_searcher.tflite ), যা TFLite মডেল মেটাডেটাতে সংযুক্ত সূচক সহ মূল পাঠ্য এমবেডার মডেল।

জাভাতে অনুমান চালান

ধাপ 1: Gradle নির্ভরতা এবং অন্যান্য সেটিংস আমদানি করুন

.tflite অনুসন্ধানকারী মডেল ফাইলটি Android মডিউলের সম্পদ ডিরেক্টরিতে অনুলিপি করুন যেখানে মডেলটি চালানো হবে৷ নির্দিষ্ট করুন যে ফাইলটি সংকুচিত করা উচিত নয়, এবং মডিউলের build.gradle ফাইলে TensorFlow Lite লাইব্রেরি যোগ করুন:

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 দেখুন।

C++ এ অনুমান চালান

// 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 Lite সাপোর্ট Pypi প্যাকেজ ইনস্টল করুন।

আপনি নিম্নলিখিত কমান্ড ব্যবহার করে TensorFlow Lite Support 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

আপনার নিজস্ব মডেল এবং পরীক্ষার ডেটা সহ TextSearcher-এর জন্য সাধারণ CLI ডেমো টুল ব্যবহার করে দেখুন।