Metin yerleştirme araçlarını entegre edin.

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

Desteklenen metin yerleştirme modelleri

Aşağıdaki modellerin TextEmbedder ile uyumlu olacağı garanti edilir API'ye gidin.

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 gelen N 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].
    • 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 deNN ö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 gelen N 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].