Panduan penyematan teks untuk Web

Tugas MediaPipe Text Embedder memungkinkan Anda membuat representasi numerik data teks untuk menangkap makna semantiknya. Petunjuk ini menampilkan cara menggunakan Penyemat Teks untuk aplikasi web dan JavaScript.

Untuk mengetahui informasi selengkapnya terkait kemampuan, model, dan opsi konfigurasi. tugas ini, lihat Ringkasan.

Contoh kode

Kode contoh untuk Text Embedder menyediakan implementasi lengkap dari proses ini tugas di JavaScript untuk referensi Anda. Kode ini membantu Anda menguji tugas ini dan mulailah membangun aplikasi penyematan teks Anda sendiri. Anda dapat melihat, menjalankan, dan edit kode contoh Penyemat Teks hanya dengan menggunakan {i>browser<i} web.

Penyiapan

Bagian ini menjelaskan langkah-langkah utama untuk menyiapkan lingkungan pengembangan dan membuat kode proyek secara khusus untuk menggunakan Text Embedder. Untuk informasi umum tentang menyiapkan lingkungan pengembangan untuk menggunakan tugas MediaPipe, termasuk persyaratan versi platform, lihat Panduan penyiapan untuk Web.

Paket JavaScript

Kode Penyemat Teks tersedia melalui @mediapipe/tasks-text paket. Anda bisa menemukan dan mendownload library ini dari link yang disediakan dalam peron Panduan penyiapan.

Anda dapat menginstal paket yang diperlukan dengan kode berikut untuk staging lokal menggunakan perintah berikut:

npm install @mediapipe/tasks-text

Jika Anda ingin men-deploy ke server, Anda dapat menggunakan pengiriman konten jaringan (CDN), seperti jsDelivr, untuk tambahkan kode langsung ke halaman HTML Anda, seperti berikut:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
    crossorigin="anonymous"></script>
</head>

Model

Tugas MediaPipe Text Embedder memerlukan model terlatih yang kompatibel dengan tugas Anda. Untuk informasi selengkapnya tentang model terlatih yang tersedia untuk Text Embedder, lihat ringkasan tugas bagian Model.

Pilih dan download model, lalu simpan dalam direktori project Anda:

<dev-project-root>/app/shared/models

Membuat tugas

Gunakan salah satu fungsi createFrom...() Penyemat Teks untuk mempersiapkan tugas untuk menjalankan inferensi. Anda dapat menggunakan createFromModelPath() dengan jalur relatif atau absolut ke file model terlatih. Kode contoh di bawah menunjukkan penggunaan createFromOptions() . Untuk informasi selengkapnya tentang opsi konfigurasi yang tersedia, lihat Opsi konfigurasi.

Kode berikut menunjukkan cara membangun dan mengonfigurasi tugas ini:

async function createEmbedder() {
  const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  textEmbedder = await TextEmbedder.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_embedder/universal_sentence_encoder.tflite`
      },
      quantize: true
    }
  );
}
createEmbedder();

Opsi konfigurasi

Tugas ini memiliki opsi konfigurasi berikut untuk Web dan JavaScript aplikasi:

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

Menyiapkan data

Text Embedder berfungsi dengan data teks (string). Tugas tersebut menangani pra-pemrosesan input data, termasuk tokenisasi dan pra-pemrosesan tensor. Semua pra-pemrosesan ini akan ditangani dalam fungsi embed. Tidak perlu untuk pra-pemrosesan tambahan terhadap teks input.

const inputText = "The input text to be embedded.";

Menjalankan tugas

Penyemat Teks menggunakan fungsi embed untuk memicu inferensi. Untuk teks embedding, ini berarti mengembalikan vektor embedding untuk teks input.

Kode berikut menunjukkan cara mengeksekusi pemrosesan dengan model tugas.

// Wait to run the function until inner text is set
const embeddingResult = textEmbedder.embed(
  inputText
);

Menangani dan menampilkan hasil

Text Embedder menghasilkan TextEmbedderResult yang berisi daftar embedding (baik floating point maupun yang terkuantisasi skalar) untuk teks input.

Berikut ini contoh data output dari tugas ini:

TextEmbedderResult:
  Embedding #0 (sole embedding head):
    float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
    head_index: 0

Anda dapat membandingkan kesamaan semantik dari dua embedding Fungsi TextEmbedder.cosineSimilarity. Lihat kode berikut untuk contoh.

// Compute cosine similarity.
const similarity = TextEmbedder.cosineSimilarity(
  embeddingResult.embeddings[0],
  otherEmbeddingResult.embeddings[0]);

Kode contoh Text Embedder menunjukkan cara menampilkan alat sematan hasil yang ditampilkan dari tugas, lihat contoh kode untuk mengetahui detailnya.