Integroni kërkuesit e tekstit

Kërkimi i tekstit lejon kërkimin e tekstit semantikisht të ngjashëm në një korpus. Ai funksionon duke futur pyetjen e kërkimit në një vektor me dimensione të larta që përfaqëson kuptimin semantik të pyetjes, i ndjekur nga kërkimi i ngjashmërisë në një indeks të paracaktuar, të personalizuar duke përdorur ScaNN (Fqinjët më të afërt të shkallëzuar).

Në ndryshim nga klasifikimi i tekstit (p.sh. klasifikuesi i gjuhës natyrore Bert ), zgjerimi i numrit të artikujve që mund të njihen nuk kërkon ritrajnim të të gjithë modelit. Artikujt e rinj mund të shtohen thjesht duke rindërtuar indeksin. Kjo gjithashtu mundëson punën me korpuse më të mëdha (100k+ artikuj).

Përdorni API-në e Task Library TextSearcher për të vendosur kërkuesin tuaj të personalizuar të tekstit në aplikacionet tuaja celulare.

Karakteristikat kryesore të TextSearcher API

  • Merr një varg të vetëm si hyrje, kryen ekstraktimin e integruar dhe kërkimin e fqinjit më të afërt në indeks.

  • Përpunimi i tekstit të futur, duke përfshirë në grafik ose jashtë grafikut Tokenization Wordpiece ose Sentencepiece në tekstin hyrës.

Parakushtet

Përpara përdorimit të TextSearcher API, duhet të ndërtohet një indeks bazuar në korpusin e personalizuar të tekstit për të kërkuar. Kjo mund të arrihet duke përdorur Model Maker Searcher API duke ndjekur dhe përshtatur tutorialin .

Për këtë do t'ju duhet:

  • një model i ngulitësit të tekstit TFLite, siç është koduesi universal i fjalive. Për shembull,
    • ai i ritrajnuar në këtë Colab , i cili është optimizuar për konkluzionet në pajisje. Duhen vetëm 6 ms për të kërkuar një varg teksti në Pixel 6.
    • ai i kuantizuar , i cili është më i vogël se sa më sipër, por kërkon 38 ms për çdo ngulitje.
  • korpusi juaj i tekstit.

Pas këtij hapi, duhet të keni një model të pavarur kërkues TFLite (p.sh. mobilenet_v3_searcher.tflite ), i cili është modeli origjinal i ngulitësit të tekstit me indeksin e bashkangjitur në Metadatat e Modelit TFLite .

Ekzekutoni konkluzionet në Java

Hapi 1: Importoni varësinë Gradle dhe cilësime të tjera

Kopjoni skedarin e modelit të kërkuesit .tflite në drejtorinë e aseteve të modulit Android ku do të ekzekutohet modeli. Specifikoni që skedari të mos jetë i ngjeshur dhe shtoni bibliotekën TensorFlow Lite në skedarin build.gradle të modulit:

android {
    // Other settings

    // Specify tflite index file should not be compressed for the app apk
    aaptOptions {
        noCompress "tflite"
    }

}

dependencies {
    // Other dependencies

    // Import the Task Vision Library dependency
    implementation 'org.tensorflow:tensorflow-lite-task-vision:0.4.4'
    // Import the GPU delegate plugin Library for GPU inference
    implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin:0.4.4'
}

Hapi 2: Përdorimi i modelit

// Initialization
TextSearcherOptions options =
    TextSearcherOptions.builder()
        .setBaseOptions(BaseOptions.builder().useGpu().build())
        .setSearcherOptions(
            SearcherOptions.builder().setL2Normalize(true).build())
        .build();
TextSearcher textSearcher =
    textSearcher.createFromFileAndOptions(context, modelFile, options);

// Run inference
List<NearestNeighbor> results = textSearcher.search(text);

Shikoni kodin burimor dhe javadoc për më shumë opsione për të konfiguruar TextSearcher .

Ekzekutoni konkluzionet në C++

// Initialization
TextSearcherOptions options;
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
options.mutable_embedding_options()->set_l2_normalize(true);
std::unique_ptr<TextSearcher> text_searcher = TextSearcher::CreateFromOptions(options).value();

// Run inference with your input, `input_text`.
const SearchResult result = text_searcher->Search(input_text).value();

Shihni kodin burimor për më shumë opsione për të konfiguruar TextSearcher .

Ekzekutoni konkluzionet në Python

Hapi 1: Instaloni paketën TensorFlow Lite Support Pypi.

Ju mund të instaloni paketën TensorFlow Lite Support Pypi duke përdorur komandën e mëposhtme:

pip install tflite-support

Hapi 2: Përdorimi i modelit

from tflite_support.task import text

# Initialization
text_searcher = text.TextSearcher.create_from_file(model_path)

# Run inference
result = text_searcher.search(text)

Shihni kodin burimor për më shumë opsione për të konfiguruar TextSearcher .

Shembuj të rezultateve

Results:
 Rank#0:
  metadata: The sun was shining on that day.
  distance: 0.04618
 Rank#1:
  metadata: It was a sunny day.
  distance: 0.10856
 Rank#2:
  metadata: The weather was excellent.
  distance: 0.15223
 Rank#3:
  metadata: The cat is chasing after the mouse.
  distance: 0.34271
 Rank#4:
  metadata: He was very happy with his newly bought car.
  distance: 0.37703

Provoni mjetin e thjeshtë demo CLI për TextSearcher me modelin tuaj dhe të dhënat e testimit.