Penyemat teks memungkinkan penyematan teks ke dalam vektor fitur berdimensi tinggi merepresentasikan makna semantiknya, yang kemudian dapat dibandingkan dengan fitur vektor teks lain untuk mengevaluasi kesamaan semantiknya.
Berbeda dengan penelusuran teks, sematan teks memungkinkan komputasi kesamaan antara teks dengan cepat alih-alih mencari melalui indeks yang telah ditentukan yang dibuat dari sebuah korpus.
Gunakan Task Library TextEmbedder
API untuk men-deploy sematan teks kustom Anda ke dalam
aplikasi seluler Anda.
Fitur utama TextEmbedder API
Pemrosesan teks input, termasuk dalam grafik atau di luar grafik Potongan teks atau Bagian kalimat tokenisasi pada teks input.
Fungsi utilitas bawaan untuk menghitung kemiripan kosinus antara beberapa vektor fitur.
Model sematan teks yang didukung
Model berikut dijamin akan kompatibel dengan TextEmbedder
Compute Engine API.
Tujuan Model TFLite Encoder Kalimat Universal dari TensorFlow Hub
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
guna mendapatkan opsi selengkapnya untuk mengonfigurasi TextEmbedder
.
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_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
guna mendapatkan opsi selengkapnya untuk mengonfigurasi TextEmbedder
.
Hasil contoh
Kesamaan kosinus antara vektor fitur yang dinormalisasi mengembalikan skor antara -1 dan 1. Lebih tinggi lebih baik, yaitu kesamaan kosinus 1 berarti kedua vektor tersebut identik.
Cosine similarity: 0.954312
Cobalah yang Alat demo CLI untuk TextEmbedder dengan model dan data uji Anda sendiri.
Persyaratan kompatibilitas model
TextEmbedder
API mengharapkan model TFLite dengan
Metadata Model TFLite.
Tiga jenis model utama didukung:
model berbasis BERT (lihat kode sumber untuk mengetahui detail selengkapnya):
Tepat 3 tensor input (kTfLiteString)
- ID tensor, dengan nama metadata "ids",
- Samarkan tensor, dengan nama metadata "mask".
- Tensor ID segmen, dengan nama metadata "segment_ids"
Tepat satu tensor output (kTfLiteUInt8/kTfLiteFloat32)
- dengan komponen
N
yang sesuai dengan dimensiN
vektor fitur yang ditampilkan untuk lapisan output ini. - 2 atau 4 dimensi, yaitu
[1 x N]
atau[1 x 1 x 1 x N]
.
- dengan komponen
Input_process_units untuk Tokenizer WordPotongan/SentencePotongan
Model berbasis Kalimat Encoder Universal (lihat kode sumber untuk 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
N
yang sesuai dengan dimensiN
elemen 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 sematan teks apa pun dengan:
- Tensor teks input (kTfLiteString)
Setidaknya satu tensor penyematan output (kTfLiteUInt8/kTfLiteFloat32)
- dengan komponen
N
yang sesuai dengan dimensiN
vektor fitur yang ditampilkan untuk lapisan output ini. - 2 atau 4 dimensi, yaitu
[1 x N]
atau[1 x 1 x 1 x N]
.
- dengan komponen