Metin yerleştiriciler, yüksek boyutlu bir özellik vektörüne metin yerleştirilmesine olanak tanır anlamsal anlamını temsil eder. Bu, daha sonra özellik ile ve anlamsal benzerliklerini değerlendirmek için metin vektörü kullanır.
Şuna karşılık: metin arama, metin yerleştirici, metinler arasındaki benzerliğin anında hesaplanmasını sağlar dizinde arama yapmak yerine bir dizinden derleyecektir.
Özel metin yerleştirmenizi şuraya dağıtmak için Task Library TextEmbedder
API'yi kullanın:
en iyi uygulamaları görelim.
TextEmbedder API'nin temel özellikleri
Giriş metni işleme (grafik içi veya grafik dışı dahil) Kelime Parçası veya Cümle parçası giriş metninde tokenizasyonlar.
kosinüs benzerliği özellik vektörleridir.
Desteklenen metin yerleştirme modelleri
Aşağıdaki modellerin TextEmbedder
ile uyumlu olacağı garanti edilir
API'ye gidin.
İlgili içeriği oluşturmak için kullanılan TensorFlow Hub'dan Universal Sentence Encoder TFLite modeli
Şu koşulları karşılayan özel modeller: model uyumluluk koşullarını karşılayın.
C++'ta çıkarım çalıştır
// Initialization.
TextEmbedderOptions options:
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
std::unique_ptr<TextEmbedder> text_embedder = TextEmbedder::CreateFromOptions(options).value();
// Run inference with your two inputs, `input_text1` and `input_text2`.
const EmbeddingResult result_1 = text_embedder->Embed(input_text1);
const EmbeddingResult result_2 = text_embedder->Embed(input_text2);
// Compute cosine similarity.
double similarity = TextEmbedder::CosineSimilarity(
result_1.embeddings[0].feature_vector()
result_2.embeddings[0].feature_vector());
Bkz.
kaynak kod
daha fazla TextEmbedder
yapılandırma seçeneğine gidin.
Python'da çıkarım çalıştırma
1. Adım: TensorFlow Lite Destek Pypi paketini yükleyin.
TensorFlow Lite Destek Pypi paketini aşağıdakini kullanarak yükleyebilirsiniz komut:
pip install tflite-support
2. Adım: Modeli kullanma
from tflite_support.task import text
# Initialization.
text_embedder = text.TextEmbedder.create_from_file(model_path)
# Run inference on two texts.
result_1 = text_embedder.embed(text_1)
result_2 = text_embedder.embed(text_2)
# Compute cosine similarity.
feature_vector_1 = result_1.embeddings[0].feature_vector
feature_vector_2 = result_2.embeddings[0].feature_vector
similarity = text_embedder.cosine_similarity(
result_1.embeddings[0].feature_vector, result_2.embeddings[0].feature_vector)
Bkz.
kaynak kod
daha fazla TextEmbedder
yapılandırma seçeneğine gidin.
Örnek sonuçlar
Normalleştirilmiş özellik vektörleri arasındaki kosinüs benzerliği, -1 arasında bir puan döndürür. ve 1. Ne kadar yüksek olursa o kadar iyidir. Diğer bir deyişle, kosinüs benzerliğinin 1 olması iki vektörün aynı olmalıdır.
Cosine similarity: 0.954312
Nasıl yapıldığını TextEmbedder için KSA demo aracı kullanarak test edebilirsiniz.
Model uyumluluğu şartları
TextEmbedder
API, kullanımı zorunlu olan bir TFLite modeli bekler
TFLite Model Meta Verileri.
Üç ana model türü desteklenir:
BERT tabanlı modeller (bkz. kaynak kod bulabilirsiniz):
Tam olarak 3 giriş tensörü (kTfLiteString)
- Meta veri adı "ids" olan kimlik tensörü,
- Meta veri adı "mask" olan maske tensörü.
- Meta veri adı "segment_ids" olan segment kimlikleri tensörü
Tam olarak bir çıkış tensörü (kTfLiteUInt8/kTfLitefloat32)
- öğesinin
N
boyutlarına karşılık gelenN
bileşenle özellik vektörü döndürür. - 2 veya 4 boyut, ör.
[1 x N]
veya[1 x 1 x 1 x N]
.
- öğesinin
Wordparça/SentenceParça Jetonlayıcısı için giriş_process_units
Evrensel Cümle Kodlayıcı tabanlı modeller (bkz. kaynak kod bulabilirsiniz):
Tam olarak 3 giriş tensörü (kTfLiteString)
- "inp_text" meta veri adına sahip sorgu metin tensörü.
- "res_context" meta veri adına sahip yanıt bağlamı tensörü.
- "res_text" meta veri adı ile yanıt metni tensörü.
Tam olarak 2 çıkış tensörü (kTfLiteUInt8/kTfLitefloat32)
- "query_encoding" meta veri adına sahip sorgu kodlama tensörü.
- Meta veri adı "response_encoding" olan yanıt kodlama tensörü.
- Her ikisi de
N
N
özellik vektörü döndürür. - Her ikisi de 2 veya 4 boyutludur, ör.
[1 x N]
veya[1 x 1 x 1 x N]
.
Aşağıdakileri içeren herhangi bir metin yerleştirme modeli:
- Giriş metni tensörü (kTfLiteString)
En az bir çıkış yerleştiren tensor (kTfLiteUInt8/kTfLitefloat32)
- öğesinin
N
boyutlarına karşılık gelenN
bileşenle özellik vektörü döndürür. - 2 veya 4 boyut, ör.
[1 x N]
veya[1 x 1 x 1 x N]
.
- öğesinin