So fügen Sie inkrementell Python Faiss Index hinzuPython

Python-Programme
Anonymous
 So fügen Sie inkrementell Python Faiss Index hinzu

Post by Anonymous »

Ich verwende Faiss, um meine riesigen Datensatz -Einbettungen zu indizieren und aus dem Bert -Modell einzubetten. Ich möchte die Einbettung inkrementell hinzufügen, es funktioniert gut, wenn ich sie nur mit faiss.indexflatl2 hinzufüge, aber das Problem ist, dass es zu groß ist. sollte im Ram gehalten werden, bis ich es schreibe. Gibt es eine Möglichkeit, dies inkrementell zu tun.
Hier ist mein Code: < /p>

Code: Select all

    # It is working fine when using with IndexFlatL2
def __init__(self, sentences, model):
self.sentences = sentences
self.model = model
self.index = faiss.IndexFlatL2(768)

def process_sentences(self):
result = self.model(self.sentences)
self.sentence_ids = []
self.token_ids = []
self.all_tokens = []
for i, (toks, embs) in enumerate(tqdm(result)):
# initialize all_embeddings for every new sentence (INCREMENTALLY)
all_embeddings = []
for j, (tok, emb) in enumerate(zip(toks, embs)):
self.sentence_ids.append(i)
self.token_ids.append(j)
self.all_tokens.append(tok)
all_embeddings.append(emb)

all_embeddings = np.stack(all_embeddings) # Add embeddings after every sentence
self.index.add(all_embeddings)

faiss.write_index(self.index, "faiss_Model")
< /code>
und bei Verwendung mit IndexIVFPQ: < /p>
   def __init__(self, sentences, model):
self.sentences = sentences
self.model = model
self.quantizer = faiss.IndexFlatL2(768)
self.index = faiss.IndexIVFPQ(self.quantizer, 768, 1000, 16, 8)

def process_sentences(self):
result = self.model(self.sentences)
self.sentence_ids = []
self.token_ids = []
self.all_tokens = []
all_embeddings = []
for i, (toks, embs) in enumerate(tqdm(result)):
for j, (tok, emb) in enumerate(zip(toks, embs)):
self.sentence_ids.append(i)
self.token_ids.append(j)
self.all_tokens.append(tok)
all_embeddings.append(emb)

all_embeddings = np.stack(all_embeddings)
self.index.train(all_embeddings) # Train
self.index.add(all_embeddings) # Add to index
faiss.write_index(self.index, "faiss_Model_mini")

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post