MediaPipe metin yerleştirme görevi, metin verilerinin anlamsal anlamını yakalamak için sayısal bir temsili oluşturmanıza olanak tanır. Bu işlev, kosinüs benzerliği gibi matematiksel karşılaştırma tekniklerini kullanarak iki metnin semantik benzerliğini karşılaştırmak için sıklıkla kullanılır. Bu görev, makine öğrenimi (ML) modeli ile metin verileri üzerinde çalışır ve metin verilerinin sayısal bir temsilini, kayan nokta veya kesirli biçimde, yerleştirme vektörleri olarak da bilinen yüksek boyutlu özellik vektörlerinin listesi olarak döndürür.
Başlayın
Hedef platformunuzla ilgili bu uygulama kılavuzlarından birini uygulayarak bu görevi kullanmaya başlayın. Platforma özel bu kılavuzlar, önerilen bir model ve önerilen yapılandırma seçenekleriyle birlikte kod örneği de dahil olmak üzere bu görevin temel uygulama sürecinde size yol gösterir:
- Android - Kod örneği - Kılavuz
- Python - Kod örneği - Kılavuz
- Web - Kod örneği - Kılavuz
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 jeton oluşturma özelliği olmayan modeller için grafik dışı jeton oluşturmayı destekler.
- Embedding benzerlik hesaplaması: İki özellik vektori arasındaki kosinüs benzerliğini hesaplamak için yerleşik yardımcı program işlevi.
- Nicemleme: Özellik vektörleri için skaler nicelemeyi destekler.
Görev girişleri | Görev çıkışları |
---|---|
Metin Yerleştirici, aşağıdaki giriş veri türünü kabul eder:
|
Metin Gömücü, aşağıdakilerden oluşan bir gömülü metin listesi döndürür:
|
Yapılandırma seçenekleri
Bu görev için aşağıdaki yapılandırma seçenekleri vardır:
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 halihazırda doğal bir L2_NORMALIZATION TFLite Op içermiyorsa kullanın. Çoğu durumda bu durum geçerlidir ve L2 normalleştirmesi, bu seçeneğe gerek kalmadan TFLite çıkarımıyla elde edilir. | Boolean |
False |
quantize |
Döndürülen yerleştirmenin skaler kesme işlemiyle baytlara bölünüp bölünmeyeceği. Yerleşimlerin birim normal olduğu varsayılır ve bu nedenle tüm boyutların [-1,0; 1,0] aralığında bir değere sahip olduğu garanti edilir. Aksi takdirde l2_normalize seçeneğini kullanın. | Boolean |
False |
Modeller
Bu görevle geliştirmeye başladığınızda varsayılan olarak önerilen bir model sunarız.
Evrensel Cümle Kodlayıcı modeli (önerilen)
Bu model, çift kodlayıcı mimarisi kullanır ve çeşitli soru-cevap veri kümeleriyle eğitilmiştir.
Aşağıdaki cümle çiftlerini inceleyin:
- ("büyüleyici ve genellikle etkileyici bir yolculuk", "ne kadar harika ve fantastik bir gezi")
- ("Telefonumu seviyorum", "Telefonumu sevmiyorum")
- ("Bu restoranın ilgi çekici bir özelliği var", "Planımızın ayrıntılarını tekrar kontrol etmemiz gerekiyor")
İlk iki cümle çiftinde sırasıyla "seyahat duygusu" ve "telefon görüşü" ortak bir konu olduğu için ilk iki çiftteki metin yerleştirmelerinin kosinüs benzerliği, üçüncü çiftteki yerleştirmelerden daha yüksektir. Üçüncü cümle çiftinde ise ortak bir konu yoktur.
İkinci çiftteki iki cümlenin zıt duygulara sahip olmasına rağmen ortak bir konuyu paylaştıkları için benzerlik puanlarının yüksek olduğunu unutmayın.
Model adı | Giriş şekli | Kesirli sayılaştırma türü | Sürümler |
---|---|---|---|
Universal Sentence Encoder | dize, dize, dize | Yok (float32) | En son |
Görev karşılaştırmaları
Yukarıdaki önceden eğitilmiş modellere dayalı olarak tüm ardışık düzenin görev karşılaştırmalarını aşağıda bulabilirsiniz. Gecikme sonucu, CPU / GPU kullanan Pixel 6'taki ortalama gecikmedir.
Model Adı | CPU Gecikmesi | GPU Gecikmesi |
---|---|---|
Evrensel Cümle Kodlayıcı | 18,21 ms | - |