Metin yerleştirme kılavuzu

MediaPipe Metin Yerleştirme görevi, anlamsal anlamını yakalamak için metin verilerinin sayısal bir gösterimini oluşturmanıza olanak tanır. Bu işlev, Kosinüs Benzerliği gibi matematiksel karşılaştırma tekniklerini kullanarak iki metin parçasının anlamsal benzerliğini karşılaştırmak için sık sık kullanılır. Bu görev, makine öğrenimi (ML) modeliyle metin verileri üzerinde çalışır ve metin verilerinin, gömme vektörleri olarak da bilinen yüksek boyutlu özellik vektörlerinin listesi olarak kayan nokta veya sayısal biçimde bir sayısal gösterimini üretir.

Deneyin!

Başlayın

Hedef platformunuz için bu uygulama rehberlerinden birini izleyerek bu görevi kullanmaya başlayın. Bu platforma özel kılavuzlar, önerilen bir model ve önerilen yapılandırma seçenekleriyle birlikte kod örneği dahil olmak üzere, bu görevin temel bir şekilde uygulanmasında size yol gösterir:

Görev ayrıntıları

Bu bölümde, bu görevin özellikleri, girişleri, çıkışları ve yapılandırma seçenekleri açıklanmaktadır.

Özellikler

  • Giriş metni işleme: Grafik içi jetonlama yapılmayan modeller için grafik dışı jetonlandırmayı destekler.
  • Benzerlik hesaplaması: İki özellik vektörü arasındaki kosinüs benzerliğini hesaplamak için kullanılan yerleşik yardımcı program işlevi.
  • Niceleme: Özellik vektörleri için skalar nicelemeyi destekler.
Görev girişleri Görev çıkışları
Metin Yerleştirme aşağıdaki giriş verisi türünü kabul eder:
  • Dize
Metin Yerleştirme, aşağıdakileri içeren bir yerleştirme listesi verir:
  • Yerleştirme: Özellik vektörün kendisi, kayan nokta biçiminde veya skaler miktarlı.
  • Başlık dizini: Bu yerleştirmeyi oluşturan kafanın dizini.
  • Başlık adı (isteğe bağlı): Bu gömmeyi oluşturan başlığın adı.

Yapılandırma seçenekleri

Bu görev aşağıdaki yapılandırma seçeneklerine sahiptir:

Seçenek Adı Açıklama Değer Aralığı Varsayılan Değer
l2_normalize Döndürülen özellik vektörünün L2 normuyla normalleştirilip normalleştirilmeyeceği. Bu seçeneği yalnızca modelde zaten yerel bir L2_NORMALIZATION TFLite Op bulunmuyorsa kullanın. Çoğu durumda bu zaten mevcuttur ve L2 normalleştirmesi, bu seçeneğe gerek olmadan TFLite çıkarımıyla yapılır. Boolean False
quantize Döndürülen yerleştirmenin skalar niceleme kullanılarak baytlara dönüştürülüp ölçülmeyeceği. Yerleştirmelerin açıkça birim norm olduğu varsayılır. Bu nedenle her boyut için [-1,0, 1,0] değerinde bir değer olması garanti edilir. Bu mümkün değilse l2_normalize seçeneğini kullanın. Boolean False

Modeller

Bu görevle geliştirmeye başladığınızda varsayılan, önerilen bir model sunarız.

İkili kodlayıcı mimarisi kullanan bu model, çeşitli soru-cevap veri kümelerinde eğitilmiştir.

Aşağıdaki cümle çiftlerini düşünün:

  • ("sevimli ve genellikle etkileyen bir yolculuk", "ne kadar harika ve muhteşem bir gezi")
  • ("Telefonumu seviyorum", "Telefonumdan nefret ediyorum")
  • ("Bu restoranın harika bir hilesi var", "Planımızın ayrıntılarını bir kez daha kontrol etmemiz gerekiyor")

İlk iki çiftteki metin yerleştirmeleri, üçüncü çiftteki yerleştirmelerden daha yüksek bir kosinüs benzerliğine sahip olacaktır. Bunun nedeni, ilk iki cümle çiftinin sırasıyla "seyahat hissi" ve "telefon görüşü" ortak konusu, üçüncü cümle çifti ortak bir konuyu paylaşmamasıdır.

İkinci çiftteki iki cümle zıt görüşlere sahip olsa da ortak bir konuyu paylaştığından yüksek bir benzerlik puanına sahip olur.

Model adı Giriş şekli Nicelleştirme türü Sürümler
Evrensel Cümle Kodlayıcı dize, dize, dize Yok (float32) En son

Görev karşılaştırmaları

Yukarıda önceden eğitilmiş modellere dayalı olarak ardışık düzenin tamamı için görev karşılaştırmaları aşağıda verilmiştir. Gecikme sonucu, Pixel 6'da CPU / GPU kullanılarak elde edilen ortalama gecikmedir.

Model Adı CPU Gecikmesi GPU Gecikmesi
Evrensel Cümle Kodlayıcı 18,21 ms. -