Panduan penyematan teks

Dua contoh kalimat yang menunjukkan penyematan yang sesuai untuk setiap
kata dalam kalimat sebagai array.

Tugas MediaPipe Text Embedder memungkinkan Anda membuat representasi numerik data teks untuk menangkap makna semantiknya. Fungsi ini sering digunakan untuk membandingkan kesamaan semantik dari dua bagian teks menggunakan teknik perbandingan matematika seperti Kesamaan Kosinus. Tugas ini beroperasi pada data teks dengan model machine learning (ML), dan menghasilkan representasi numerik data teks sebagai daftar vektor fitur berdimensi tinggi, yang juga dikenal sebagai vektor penyematan, dalam bentuk floating point atau kuantisasi.

Coba sekarang.

Mulai

Mulai gunakan tugas ini dengan mengikuti salah satu panduan penerapan ini untuk platform target Anda. Panduan khusus platform ini akan memandu Anda dalam penerapan 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 kemiripan penyematan - Fungsi utilitas bawaan untuk menghitung kemiripan kosinus antara dua vektor fitur.
  • Kuantisasi - Mendukung kuantisasi skalar untuk vektor fitur.
Input tugas Output tugas
Penyematan Teks menerima jenis data input berikut:
  • String
Text Embedder menghasilkan daftar penyematan yang terdiri dari:
  • Embedding: vektor fitur itu sendiri, baik dalam bentuk floating point maupun kuantisasi skalar.
  • Indeks head: indeks untuk head yang menghasilkan penyematan ini.
  • Nama head (opsional): nama head yang menghasilkan penyematan 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 Opsi TFLite L2_NORMALIZATION native. Pada umumnya, hal ini sudah terjadi dan normalisasi L2 akan dicapai melalui inferensi TFLite tanpa memerlukan opsi ini. Boolean False
quantize Apakah penyematan yang ditampilkan harus dikuantifikasi ke byte melalui kuantisasi skalar. Secara implisit, penyematan diasumsikan sebagai unit-norm dan oleh karena itu, dimensi apa pun 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 dengan tugas ini.

Model ini menggunakan arsitektur encoder ganda dan dilatih pada berbagai set data pertanyaan-jawaban.

Pertimbangkan pasangan kalimat berikut:

  • ("it's a charming and often affecting journey", "what a great and fantastic trip")
  • ("Saya suka ponsel saya", "Saya benci ponsel saya")
  • ("Restoran ini memiliki gimmick yang bagus", "Kita perlu memeriksa ulang detail rencana kita")

Penyematan teks dalam dua pasangan pertama akan memiliki kesamaan kosinus yang lebih tinggi daripada penyematan dalam pasangan ketiga karena dua pasangan kalimat pertama berbagi topik umum "sentimen perjalanan" dan "pendapat ponsel", sedangkan pasangan kalimat ketiga tidak memiliki topik yang sama.

Perhatikan bahwa meskipun dua kalimat dalam pasangan kedua memiliki sentimen yang berlawanan, keduanya memiliki skor kesamaan yang tinggi karena memiliki topik yang sama.

Nama model Bentuk input Jenis kuantisasi Versi
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 -