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.