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>
# 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")
Ich verwende Faiss, um meine riesigen Datensatz -Einbettungen zu indizieren und aus dem Bert -Modell einzubetten. [url=viewtopic.php?t=14917]Ich möchte[/url] 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] # 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") [/code]
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...
Ich bin neu in Python und habe einige Probleme über die Übernahme von einem Spefcific -Index zu anderen. Ex: Ich fordere eine Eingabe des Namens von jedem Elternteil des Benutzers an und möchte nur...
Ich schreibe gerade ein Programm, in dem ich Informationen von einem Lappen abrufen muss. Diese Informationen sollten dann von einem LLM verwendet werden. Ich verwende FAISS in einer Python-Umgebung...
Ich erhalte diesen Fehler, wenn ich versuche, auf die nicht -faiss_index auf die nicht -faiss_index zugreifen zu können. Ich leite Faiss-CPU Python Version 1.10.0. Dies funktioniert nicht aus...