Mengintegrasikan sematan teks.

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

Model sematan teks yang didukung

Model berikut dijamin akan kompatibel dengan TextEmbedder Compute Engine API.

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 dimensi N 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 Tokenizer WordPotongan/SentencePotongan

  • Model berbasis Kalimat Encoder Universal (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 N yang sesuai dengan dimensi N 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 dimensi N vektor fitur yang ditampilkan untuk lapisan output ini.
      • 2 atau 4 dimensi, yaitu [1 x N] atau [1 x 1 x 1 x N].