Penyematan teks memungkinkan penyematan teks ke dalam vektor fitur berdimensi tinggi yang merepresentasikan makna semantiknya, yang kemudian dapat dibandingkan dengan vektor fitur teks lain untuk mengevaluasi kesamaan semantiknya.
Berbeda dengan penelusuran teks, penyemat teks memungkinkan penghitungan kemiripan antara teks secara langsung, bukan menelusuri indeks yang telah ditentukan sebelumnya yang dibuat dari korpus.
Gunakan Task Library TextEmbedder API untuk men-deploy penyemat teks kustom ke dalam aplikasi seluler Anda.
Fitur utama TextEmbedder API
Pemrosesan teks input, termasuk tokenisasi Wordpiece dalam grafik atau di luar grafik atau tokenisasi Sentencepiece pada teks input.
Fungsi utilitas bawaan untuk menghitung kemiripan kosinus antara vektor fitur.
Model penyematan teks yang didukung
Model berikut dijamin kompatibel dengan TextEmbedder
API.
Model kustom yang memenuhi persyaratan kompatibilitas model.
Menjalankan inferensi di 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());
Lihat kode
sumber
untuk opsi lainnya dalam mengonfigurasi TextEmbedder.
Menjalankan inferensi di Python
Langkah 1: Instal paket Pypi Dukungan TensorFlow Lite.
Anda dapat menginstal paket Pypi Dukungan TensorFlow Lite menggunakan perintah berikut:
pip install tflite-support
Langkah 2: Menggunakan model
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)
Lihat kode
sumber
untuk opsi lainnya dalam mengonfigurasi TextEmbedder.
Hasil contoh
Kemiripan kosinus antara vektor fitur yang dinormalisasi menampilkan skor antara -1 dan 1. Semakin tinggi nilainya, semakin baik, yaitu kesamaan kosinus 1 berarti kedua vektor identik.
Cosine similarity: 0.954312
Coba alat demo CLI sederhana untuk TextEmbedder dengan model dan data pengujian Anda sendiri.
Persyaratan kompatibilitas model
API TextEmbedder mengharapkan model TFLite dengan Metadata Model TFLite wajib.
Tiga jenis model utama yang didukung:
Model berbasis BERT (lihat kode sumber untuk mengetahui detail selengkapnya):
Tepat 3 tensor input (kTfLiteString)
Tensor ID, dengan nama metadata "ids",
Tensor mask, dengan nama metadata "mask".
Tensor ID segmen, dengan nama metadata "segment_ids"
Tepat satu tensor output (kTfLiteUInt8/kTfLiteFloat32)
dengan komponen
Nyang sesuai dengan dimensiNdari vektor fitur yang ditampilkan untuk lapisan output ini.2 atau 4 dimensi, yaitu
[1 x N]atau[1 x 1 x 1 x N].input_process_units untuk Wordpiece/Sentencepiece Tokenizer
Model berbasis Universal Sentence Encoder (lihat kode sumber untuk mengetahui detail selengkapnya):
Tepat 3 tensor input (kTfLiteString)
Tensor teks kueri, dengan nama metadata "inp_text".
Tensor konteks respons, dengan nama metadata "res_context".
Tensor teks respons, dengan nama metadata "res_text".
Tepat 2 tensor output (kTfLiteUInt8/kTfLiteFloat32)
Tensor encoding kueri, dengan nama metadata "query_encoding".
Tensor encoding respons, dengan nama metadata "response_encoding".
Keduanya dengan komponen
Nyang sesuai dengan dimensiNdari vektor fitur yang ditampilkan untuk lapisan output ini.Keduanya dengan 2 atau 4 dimensi, yaitu
[1 x N]atau[1 x 1 x 1 x N].
Model penyematan teks apa pun dengan:
- Tensor teks input (kTfLiteString)
Setidaknya satu tensor sematan output (kTfLiteUInt8/kTfLiteFloat32)
dengan komponen
Nyang sesuai dengan dimensiNdari vektor fitur yang ditampilkan untuk lapisan output ini.2 atau 4 dimensi, yaitu
[1 x N]atau[1 x 1 x 1 x N].