Web için metin yerleştirme kılavuzu

MediaPipe Text Embedder görevi, metin verilerinin sayısal bir gösterimini oluşturarak anlamsal anlamını yakalamanıza olanak tanır. Bu talimatlarda, web ve JavaScript uygulamaları için Text Embedder'ın nasıl kullanılacağı gösterilmektedir.

Bu görevin özellikleri, modelleri ve yapılandırma seçenekleri hakkında daha fazla bilgi için Genel Bakış bölümüne bakın.

Kod örneği

Text Embedder'ın örnek kodu, bu görevin JavaScript'te eksiksiz bir uygulamasını referansınız için sağlar. Bu kod, bu görevi test etmenize ve kendi metin yerleştirme uygulamanızı oluşturmaya başlamanıza yardımcı olur. Metin yerleştirme örneğini yalnızca web tarayıcınızı kullanarak görüntüleyebilir, çalıştırabilir ve düzenleyebilirsiniz.

Kurulum

Bu bölümde, geliştirme ortamınızı ve kod projelerinizi özellikle Text Embedder'ı kullanacak şekilde ayarlamayla ilgili temel adımlar açıklanmaktadır. Platform sürümü gereksinimleri de dahil olmak üzere MediaPipe görevlerini kullanmak için geliştirme ortamınızı ayarlama hakkında genel bilgi edinmek istiyorsanız Web için kurulum kılavuzu başlıklı makaleyi inceleyin.

JavaScript paketleri

Text Embedder kodu, @mediapipe/tasks-text paketi üzerinden kullanılabilir. Bu kitaplıkları, platform kurulum kılavuzunda verilen bağlantılardan bulup indirebilirsiniz.

Aşağıdaki komutu kullanarak yerel hazırlama için gerekli paketleri aşağıdaki kodla yükleyebilirsiniz:

npm install @mediapipe/tasks-text

Bir sunucuya dağıtım yapmak istiyorsanız kodu doğrudan HTML sayfanıza eklemek için jsDelivr gibi bir içerik yayınlama ağı (CDN) hizmeti kullanabilirsiniz.

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

Model

MediaPipe Text Embedder görevi için bu görevle uyumlu, eğitilmiş bir model gerekir. Text Embedder için kullanılabilen eğitilmiş modeller hakkında daha fazla bilgi edinmek için görev genel bakışındaki Modeller bölümüne bakın.

Bir model seçip indirin ve proje dizininizde saklayın:

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

Görevi oluşturma

Görevi çıkarım çalıştırmaya hazırlamak için Text Embedder createFrom...() işlevlerinden birini kullanın. Eğitilmiş model dosyasına göreli veya mutlak bir yolla erişmek için createFromModelPath() işlevini kullanabilirsiniz. Aşağıdaki kod örneğinde createFromOptions() işlevinin kullanımı gösterilmektedir. Kullanılabilir yapılandırma seçenekleri hakkında daha fazla bilgi için Yapılandırma seçenekleri başlıklı makaleyi inceleyin.

Aşağıdaki kodda bu görevin nasıl oluşturulacağı ve yapılandırılacağı gösterilmektedir:

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();

Yapılandırma seçenekleri

Bu görev, Web ve JavaScript uygulamaları için aşağıdaki yapılandırma seçeneklerine sahiptir:

Seçenek Adı Açıklama Değer aralığı Varsayılan değer
l2Normalize Döndürülen özellik vektörünün L2 normuyla normalleştirilip normalleştirilmeyeceği. Bu seçeneği yalnızca modelde yerel bir L2_NORMALIZATION TFLite Op yoksa kullanın. Çoğu durumda bu zaten geçerlidir ve L2 normalleştirme bu nedenle bu seçeneğe gerek kalmadan TFLite çıkarımı aracılığıyla gerçekleştirilir. Boolean False
quantize Döndürülen yerleştirmenin, skaler nicelendirme yoluyla baytlara nicelendirilip nicelendirilmeyeceğini belirtir. Yerleştirmelerin birim norm olduğu varsayılır. Bu nedenle, herhangi bir boyutun değerinin [-1.0, 1.0] aralığında olduğu garanti edilir. Bu durum söz konusu değilse l2Normalize seçeneğini kullanın. Boolean False

Verileri hazırlama

Text Embedder, metin (string) verileriyle çalışır. Görev, belirtekleştirme ve tensör ön işleme dahil olmak üzere veri girişi ön işlemesini gerçekleştirir. Tüm ön işleme, embed işlevi içinde gerçekleştirilir. Giriş metninin önceden ek olarak ön işlenmesine gerek yoktur.

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

Görevi çalıştırma

Text Embedder, çıkarımları tetiklemek için embed işlevini kullanır. Metin yerleştirme için bu, giriş metninin yerleştirme vektörlerini döndürmek anlamına gelir.

Aşağıdaki kodda, görevi işleme modelini kullanarak nasıl yürüteceğiniz gösterilmektedir.

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

Sonuçları işleme ve görüntüleme

Text Embedder, giriş metni için yerleştirme listesi (kayan noktalı veya skaler nicemlenmiş) içeren bir TextEmbedderResult çıkışı verir.

Aşağıda bu görevden elde edilen çıkış verilerine bir örnek verilmiştir:

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

TextEmbedder.cosineSimilarity işlevini kullanarak iki yerleştirmenin anlamsal benzerliğini karşılaştırabilirsiniz. Örnek için aşağıdaki koda bakın.

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

Text Embedder örnek kodu, görevden döndürülen yerleştirme sonuçlarının nasıl görüntüleneceğini gösterir. Ayrıntılar için örneğe bakın.