Sobes.tech
Middle — Senior

Ինչպե՞ս ընդլայնել որոնումը embeddings-ներով միլիոնավոր փաստաթղթերի համար։

sobes.tech AI

Պատասխան AI-ից

Միլիոնավոր փաստաթղթերի վրա հիմնված որոնումը ընդլայնելու համար սովորաբար օգտագործվում են մասնագիտացված ինդեքսներ և մոտավոր հարևանների (Approximate Nearest Neighbors, ANN) ալգորիթմներ: Հիմնական մոտեցումները:

  • FAISS (Facebook AI Similarity Search), Annoy, HNSWlib նման գրադարանների և շրջանակների օգտագործում, որոնք թույլ են տալիս արդյունավետ ինդեքսավորել և որոնել վեկտորներում:
  • Հիմնված embedding-ների ինդեքսավորումը տվյալների կառուցվածքների միջոցով, օրինակ՝ HNSW ծառեր, Ապրանքի քվանտացում, IVF (Հակադարձ ֆայլ):
  • Հորիզոնական մասշտաբայնություն՝ ինդեքսի բաշխում մի քանի սերվերների վրա կամ sharding:
  • Պոպուլյար հարցումների և արդյունքների կեշավորում:

Օրինակ FAISS (Python) օգտագործելով՝

import faiss
import numpy as np

# 128-մեկչափ վեկտորների համար ինդեքս ստեղծել
index = faiss.IndexFlatL2(128)

# Փաստաթղթերի embedding-ների ավելացում
embeddings = np.random.random((1000000, 128)).astype('float32')
index.add(embeddings)

# 5 ամենամոտ հարևանների որոնում հարցման համար
query = np.random.random((1, 128)).astype('float32')
D, I = index.search(query, 5)
print(I)  # ամենամոտ փաստաթղթերի ինդեքսները