টেক্সট এম্বেডারগুলি একটি উচ্চ-মাত্রিক বৈশিষ্ট্য ভেক্টরের মধ্যে পাঠ্যকে এমবেড করার অনুমতি দেয় যা এর শব্দার্থিক অর্থের প্রতিনিধিত্ব করে, যা তাদের শব্দার্থিক সাদৃশ্য মূল্যায়ন করার জন্য অন্যান্য পাঠ্যের বৈশিষ্ট্য ভেক্টরের সাথে তুলনা করা যেতে পারে।
টেক্সট সার্চের বিপরীতে, টেক্সট এমবেডার একটি কর্পাস থেকে তৈরি একটি পূর্বনির্ধারিত সূচকের মাধ্যমে অনুসন্ধান করার পরিবর্তে অন-দ্য-ফ্লাই টেক্সটের মধ্যে সাদৃশ্য গণনা করার অনুমতি দেয়।
আপনার মোবাইল অ্যাপে আপনার কাস্টম টেক্সট এমবেডার স্থাপন করতে টাস্ক লাইব্রেরি TextEmbedder API ব্যবহার করুন।
TextEmbedder API-এর মূল বৈশিষ্ট্য
ইনপুট টেক্সট প্রসেসিং, ইন-গ্রাফ বা আউট-অফ-গ্রাফ ওয়ার্ডপিস বা ইনপুট টেক্সটে সেন্টেন্সপিস টোকেনাইজেশন সহ।
বৈশিষ্ট্য ভেক্টরের মধ্যে কোসাইন সাদৃশ্য গণনা করার জন্য অন্তর্নির্মিত ইউটিলিটি ফাংশন।
সমর্থিত টেক্সট এমবেডার মডেল
নিম্নলিখিত মডেলগুলি TextEmbedder API-এর সাথে সামঞ্জস্যপূর্ণ হওয়ার গ্যারান্টি দেওয়া হয়েছে৷
টেনসরফ্লো হাব থেকে ইউনিভার্সাল সেন্টেন্স এনকোডার TFLite মডেল
কাস্টম মডেল যা মডেল সামঞ্জস্যের প্রয়োজনীয়তা পূরণ করে।
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 Support 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-এর জন্য সাধারণ CLI ডেমো টুল ব্যবহার করে দেখুন।
মডেল সামঞ্জস্যের প্রয়োজনীয়তা
TextEmbedder API বাধ্যতামূলক TFLite মডেল মেটাডেটা সহ একটি TFLite মডেল আশা করে।
তিনটি প্রধান ধরনের মডেল সমর্থিত:
BERT-ভিত্তিক মডেল (আরো বিস্তারিত জানার জন্য সোর্স কোড দেখুন):
ঠিক 3টি ইনপুট টেনসর (kTfLiteString)
- আইডি টেনসর, মেটাডেটা নাম "আইডিস" সহ
- মাস্ক টেনসর, মেটাডেটা নাম "মাস্ক" সহ।
- সেগমেন্ট আইডি টেনসর, মেটাডেটা নাম "segment_ids" সহ
ঠিক একটি আউটপুট টেনসর (kTfLiteUInt8/kTfLiteFloat32)
- এই আউটপুট স্তরের জন্য প্রত্যাবর্তিত বৈশিষ্ট্য ভেক্টরের
Nমাত্রার সাথে সম্পর্কিতNউপাদানগুলির সাথে। - হয় 2 বা 4 মাত্রা, যেমন
[1 x N]বা[1 x 1 x 1 x N]।
- এই আউটপুট স্তরের জন্য প্রত্যাবর্তিত বৈশিষ্ট্য ভেক্টরের
Wordpiece/Sentencepiece Tokenizer-এর জন্য একটি ইনপুট_প্রসেস_ইউনিট
ইউনিভার্সাল সেন্টেন্স এনকোডার-ভিত্তিক মডেল (আরো বিস্তারিত জানার জন্য সোর্স কোড দেখুন):
ঠিক 3টি ইনপুট টেনসর (kTfLiteString)
- কোয়েরি টেক্সট টেনসর, মেটাডেটা নাম "inp_text" সহ।
- প্রতিক্রিয়া প্রসঙ্গ টেনসর, মেটাডেটা নাম "res_context" সহ।
- প্রতিক্রিয়া পাঠ্য টেনসর, মেটাডেটা নাম "res_text" সহ।
ঠিক 2টি আউটপুট টেনসর (kTfLiteUInt8/kTfLiteFloat32)
- কোয়েরি এনকোডিং টেনসর, মেটাডেটা নাম "query_encoding" সহ।
- রেসপন্স এনকোডিং টেনসর, মেটাডেটা নাম "response_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]।
- এই আউটপুট স্তরের জন্য প্রত্যাবর্তিত বৈশিষ্ট্য ভেক্টরের