পাঠ্য অনুসন্ধান একটি কর্পাসে শব্দার্থগতভাবে অনুরূপ পাঠ্য অনুসন্ধানের অনুমতি দেয়। এটি অনুসন্ধান ক্যোয়ারীকে একটি উচ্চ-মাত্রিক ভেক্টরের মধ্যে এমবেড করে কাজ করে যা কোয়েরির শব্দার্থিক অর্থের প্রতিনিধিত্ব করে, তারপরে 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 TextSearcher
।
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 Support 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 ডেমো টুল ব্যবহার করে দেখুন।