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) # ամենամոտ փաստաթղթերի ինդեքսները