Panduan penyematan teks

Tugas MediaPipe Text Embedder memungkinkan Anda membuat representasi numerik dari data teks untuk menangkap makna semantiknya. Fungsionalitas ini sering digunakan untuk membandingkan kemiripan semantik dua bagian teks menggunakan teknik perbandingan matematis seperti Cosine Similarity. Tugas ini beroperasi pada data teks dengan model machine learning (ML), dan menghasilkan representasi numerik dari data teks sebagai daftar vektor fitur dimensi tinggi, yang juga dikenal sebagai vektor embedding, dalam bentuk floating point atau bentuk terkuantisasi.

Cobalah!

Mulai

Mulai gunakan tugas ini dengan mengikuti salah satu panduan penerapan ini untuk platform target Anda. Panduan khusus platform ini akan memandu Anda dalam menerapkan dasar tugas ini, termasuk model yang direkomendasikan, dan contoh kode dengan opsi konfigurasi yang direkomendasikan:

Detail tugas

Bagian ini menjelaskan kemampuan, input, output, dan opsi konfigurasi tugas ini.

Fitur

  • Pemrosesan teks input - Mendukung tokenisasi di luar grafik untuk model tanpa tokenisasi dalam grafik.
  • Komputasi kesamaan yang disematkan - Fungsi utilitas bawaan untuk menghitung kemiripan kosinus antara dua vektor fitur.
  • Kuantisasi - Mendukung kuantisasi skalar untuk vektor fitur.
Input tugas Output tugas
Penyemat Teks menerima jenis data input berikut:
  • String
Penyemat Teks menghasilkan daftar embedding yang terdiri dari:
  • Embedding: vektor fitur itu sendiri, baik dalam bentuk floating point atau terkuantisasi skalar.
  • Indeks head: indeks untuk head yang menghasilkan embedding ini.
  • Nama head (opsional): nama head yang menghasilkan embedding ini.

Opsi konfigurasi

Tugas ini memiliki opsi konfigurasi berikut:

Nama Opsi Deskripsi Rentang Nilai Nilai Default
l2_normalize Apakah akan menormalisasi vektor fitur yang ditampilkan dengan norma L2. Gunakan opsi ini hanya jika model belum berisi TFLite Op L2_NORMALIZATION native. Dalam kebanyakan kasus, hal ini sudah terjadi dan normalisasi L2 dicapai melalui inferensi TFLite tanpa memerlukan opsi ini. Boolean False
quantize Apakah embedding yang ditampilkan harus dikuantisasi ke byte melalui kuantisasi skalar. Embedding secara implisit diasumsikan sebagai norma satuan dan oleh karena itu, setiap dimensi dijamin memiliki nilai dalam [-1.0, 1.0]. Gunakan opsi l2_normalize jika tidak demikian. Boolean False

Model

Kami menawarkan model default yang direkomendasikan saat Anda mulai mengembangkan aplikasi dengan tugas ini.

Model ini menggunakan arsitektur encoder ganda dan dilatih pada berbagai set data tanya jawab.

Pertimbangkan pasangan kalimat berikut:

  • ("perjalanan yang memikat dan sering memengaruhi", "perjalanan yang luar biasa dan fantastis")
  • ("Saya suka ponsel saya", "Saya benci ponsel saya")
  • ("Restoran ini punya trik yang bagus", "Kami perlu memeriksa ulang detail rencana kami")

Embedding teks pada dua pasangan pertama akan memiliki kemiripan kosinus yang lebih tinggi daripada embedding pada pasangan ketiga karena dua pasangan kalimat pertama memiliki topik yang sama, yaitu "sensitivitas perjalanan" dan "pendapat telepon", sedangkan pasangan kalimat ketiga tidak memiliki topik yang sama.

Perlu diperhatikan bahwa meskipun dua kalimat pada pasangan kedua memiliki sentimen yang berlawanan, keduanya memiliki skor kesamaan yang tinggi karena memiliki topik yang sama.

Nama model Bentuk input Jenis kuantisasi Versions
Encoder Kalimat Universal string, string, string Tidak ada (float32) Terbaru

Tolok ukur tugas

Berikut adalah tolok ukur tugas untuk seluruh pipeline berdasarkan model terlatih di atas. Hasil latensi adalah latensi rata-rata di Pixel 6 yang menggunakan CPU / GPU.

Nama Model Latensi CPU Latensi GPU
Encoder Kalimat Universal 18,21 md -