Integrasikan penyematan teks.

Penyematan teks memungkinkan penyematan teks ke dalam vektor fitur berdimensi tinggi yang mewakili makna semantiknya, yang kemudian dapat dibandingkan dengan vektor fitur teks lain untuk mengevaluasi kesamaan semantiknya.

Berbeda dengan penelusuran teks , penyematan teks memungkinkan penghitungan kesamaan antar teks dengan cepat alih-alih menelusuri indeks yang telah ditentukan sebelumnya yang dibuat dari korpus.

Gunakan API TextEmbedder Pustaka Tugas untuk menyebarkan penyematan teks khusus ke dalam aplikasi seluler Anda.

Fitur utama dari TextEmbedder API

  • Pemrosesan teks masukan, termasuk tokenisasi Wordpiece atau Kalimat dalam grafik atau di luar grafik pada teks masukan.

  • Fungsi utilitas bawaan untuk menghitung kesamaan kosinus antara vektor fitur.

Model penyematan teks yang didukung

Model berikut dijamin kompatibel dengan TextEmbedder API.

Jalankan 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 lebih lanjut untuk mengonfigurasi TextEmbedder .

Jalankan inferensi dengan Python

Langkah 1: Instal paket Pypi Dukungan TensorFlow Lite.

Anda dapat menginstal paket TensorFlow Lite Support Pypi 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 lebih lanjut untuk mengonfigurasi TextEmbedder .

Contoh hasil

Kesamaan kosinus antara vektor fitur yang dinormalisasi menghasilkan skor antara -1 dan 1. Semakin tinggi semakin baik, yaitu kesamaan kosinus 1 berarti kedua vektor tersebut identik.

Cosine similarity: 0.954312

Cobalah alat demo CLI sederhana untuk TextEmbedder dengan model dan data pengujian Anda sendiri.

Persyaratan kompatibilitas model

TextEmbedder API mengharapkan model TFLite dengan Metadata Model TFLite wajib.

Tiga jenis model utama yang didukung:

  • Model berbasis BERT (lihat kode sumber untuk lebih jelasnya):

    • Tepatnya 3 tensor masukan (kTfLiteString)

      • Tensor ID, dengan nama metadata "id",
      • Tensor topeng, dengan nama metadata "mask".
      • Tensor ID segmen, dengan nama metadata "segment_ids"
    • Tepat satu tensor keluaran (kTfLiteUInt8/kTfLiteFloat32)

      • dengan N komponen yang sesuai dengan N dimensi vektor fitur yang dikembalikan untuk lapisan keluaran ini.
      • Bisa 2 atau 4 dimensi, yaitu [1 x N] atau [1 x 1 x 1 x N] .
    • Input_process_units untuk Tokenizer Bagian Kata/Kalimat

  • Model berbasis Universal Sentence Encoder (lihat kode sumber untuk lebih jelasnya):

    • Tepatnya 3 tensor masukan (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".
    • Tepatnya 2 tensor keluaran (kTfLiteUInt8/kTfLiteFloat32)

      • Tensor pengkodean kueri, dengan nama metadata "query_encoding".
      • Tensor pengkodean respons, dengan nama metadata "response_encoding".
      • Keduanya dengan N komponen yang sesuai dengan N dimensi vektor fitur yang dikembalikan untuk lapisan keluaran ini.
      • Baik dengan 2 atau 4 dimensi, yaitu [1 x N] atau [1 x 1 x 1 x N] .
  • Model penyemat teks apa pun dengan:

    • Tensor teks masukan (kTfLiteString)
    • Setidaknya satu tensor penyematan keluaran (kTfLiteUInt8/kTfLiteFloat32)

      • dengan N komponen yang sesuai dengan N dimensi vektor fitur yang dikembalikan untuk lapisan keluaran ini.
      • Bisa 2 atau 4 dimensi, yaitu [1 x N] atau [1 x 1 x 1 x N] .