Penelusuran teks memungkinkan penelusuran teks yang mirip secara semantik dalam korpus. Bisa dengan menyematkan kueri penelusuran ke dalam vektor berdimensi tinggi yang merepresentasikan makna semantik kueri, diikuti dengan pencarian kesamaan dalam indeks kustom menggunakan ScaNN (Tetangga Terdekat yang Skalabel).
Berbeda dengan klasifikasi teks (misalnya, Pengklasifikasi bahasa natural BERT), menambah jumlah item yang dapat dikenali tidak memerlukan pelatihan ulang seluruh model. Item baru dapat ditambahkan hanya dengan membangun ulang indeks. Hal ini juga memungkinkan Anda bekerja dengan korpus yang lebih besar (lebih dari 100 ribu item).
Gunakan Task Library TextSearcher
API untuk men-deploy penelusur teks kustom Anda
aplikasi seluler Anda.
Fitur utama TextSearcher API
Mengambil satu {i>string<i} sebagai {i>input<i}, melakukan ekstraksi {i>embedding<i}, dan terdekat dari terdekat di indeks.
Pemrosesan teks input, termasuk dalam grafik atau di luar grafik Potongan teks atau Bagian kalimat tokenisasi pada teks input.
Prasyarat
Sebelum menggunakan TextSearcher
API, indeks perlu dibangun berdasarkan
korpus teks kustom
untuk ditelusuri. Hal ini dapat dilakukan dengan menggunakan
API Searcher Pembuat Model
dengan mengikuti dan menyesuaikan
tutorial.
Untuk melakukannya, Anda membutuhkan:
- model sematan teks TFLite, seperti Universal Sentence Encoder. Sebagai
contoh,
- tindakan satu dilatih kembali dalam hal ini Colab, yang dioptimalkan untuk inferensi pada perangkat. Hanya perlu waktu 6 md untuk membuat kueri string teks di Pixel 6.
- tindakan terkuantisasi satu, yang lebih kecil dari yang di atas tetapi membutuhkan waktu 38 md untuk setiap embedding.
- korpus teks Anda.
Setelah langkah ini, Anda akan memiliki model penelusur TFLite mandiri (mis.
mobilenet_v3_searcher.tflite
), yang merupakan model sematan teks asli dengan
indeks yang dilampirkan ke dalam
Metadata Model TFLite.
Menjalankan inferensi di Java
Langkah 1: Impor dependensi Gradle dan setelan lainnya
Salin file model penelusur .tflite
ke direktori aset Android
modul tempat model akan dijalankan. Tetapkan bahwa file tidak boleh
dikompresi, lalu menambahkan library TensorFlow Lite ke build.gradle
modul
file:
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
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'
}
Langkah 2: Menggunakan model
// 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);
Lihat
kode sumber dan javadoc
untuk opsi lainnya dalam mengonfigurasi TextSearcher
.
Menjalankan inferensi di 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();
Lihat
kode sumber
guna mendapatkan opsi selengkapnya untuk mengonfigurasi TextSearcher
.
Menjalankan inferensi di Python
Langkah 1: Instal paket Pypi Dukungan TensorFlow Lite.
Anda dapat menginstal paket Pypi Dukungan TensorFlow Lite menggunakan kode berikut berikut:
pip install tflite-support
Langkah 2: Menggunakan model
from tflite_support.task import text
# Initialization
text_searcher = text.TextSearcher.create_from_file(model_path)
# Run inference
result = text_searcher.search(text)
Lihat
kode sumber
guna mendapatkan opsi selengkapnya untuk mengonfigurasi TextSearcher
.
Hasil contoh
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
Cobalah yang Alat demo CLI untuk TextSearcher dengan model dan data uji Anda sendiri.