2

私の考えは、DB 内のすべてのテキストのトークンを抽出しCLS、CSV または別の場所に保存することです。Cosine Similarity/JAccard/MAnhattan/Euclideanしたがって、新しいテキストが入ってくると、または他の距離を使用する代わりに、またはLSH, ANN (ANNOY, sklearn.neighbor)ここで与えられたもの のような近似を使用する必要がありますfaiss。どうすればそれができますか?私のコードは次のとおりです。

PyTorch :

tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')
input_ids = torch.tensor(tokenizer.encode("Hello, I am a text")).unsqueeze(0)  # Batch size 1
outputs = model(input_ids)
last_hidden_states = outputs[0]  # The last hidden-state is the first element of the output tuple

Tensorflow の使用:

import tensorflow as tf
from transformers import BertTokenizer, TFBertModel

tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = TFBertModel.from_pretrained('bert-base-uncased')
input_ids = tf.constant(tokenizer.encode("Hello, my dog is cute"))[None, :]  # Batch size 1
outputs = model(input_ids)
last_hidden_states = outputs[0]  # The last hidden-state is the first element of the output tuple

そして、トークンを次のように取得できると思いますCLS:(間違っている場合は修正してください

last_hidden_states = outputs[0]
cls_embedding = last_hidden_states[0][0]

それが正しい使い方かどうか教えてください。また、そのようなものをどのように使用できますLSH, ANNOT, faissか?

したがって、すべてのテキストには768長さのベクトルがあり、N(No of texts 10M)x768マトリックスを作成できます。指定された画像/埋め込み/データに最も類似しているデータ ポイント (テキスト)のインデックス を見つけるにはどうすればよいですか?ポイントtop-5

4

0 に答える 0