рдирдорд╕реНрдХрд╛рд░! рдореЗрд░рд╛ рдирд╛рдо рд╡реНрд▓рд╛рджрд┐рдореАрд░ рдУрд▓реЛрдЦрдЯрдиреЛрд╡ рд╣реИ, рдореИрдВ рдПрд╡рд┐рдЯреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЙрдбрд░реЗрд╢рди рдЯреАрдо рдореЗрдВ рдПрдХ рд╡рд░рд┐рд╖реНрда рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВред рд╢рд░рдж рдЛрддреБ 2019 рдореЗрдВ, рд╣рдордиреЗ рд╕рдорд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдорд╛рди рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХреАред рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝реЛрдЯреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдЬреНрдЮрд╛рдкрди рдореЗрдВ рджреЗрдЦреА рдЬрд╛ рдЪреБрдХреА рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╡реЗ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╡рд┐рдХреГрдд рд╣реЛрдВ: рдзреБрдВрдзрд▓реА, рдлрд╕рд▓реА рдФрд░ рдЬреИрд╕реАред рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рд╕рдВрднрд╛рд╡рд┐рдд рдирдХрд▓реА рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВред
рдореИрдВ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдгред

рд▓реЗрдЦ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдардХ рдХрдо рд╕реЗ рдХрдо рдмрд╣реБрдЖрдпрд╛рдореА рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЦреЛрдЬ рдХреЗ рд╡рд┐рд╖рдп рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рдж рд╕реЗ рд╣рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдгреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВ рдкрд╣рд▓реЗ Mail.ru рдмреНрд▓реЙрдЧ рдкрд░ рдореВрд▓ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ ред
рд╣рдорд╛рд░реА рдкреНрд░рдгрд╛рд▓реА рдХреА рд╕рдорд╕реНрдпрд╛ рдФрд░ рд╡рд┐рд╡рд░рдг рдХрд╛ рд╡рд┐рд╡рд░рдг
рдЬрдм рдореБрдЭреЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдиреЗ рдХрд╛ рдХрд╛рдо рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рдерд╛, рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛:
- рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рдЧрднрдЧ 150 рдорд┐рд▓рд┐рдпрди рд╡реИрдХреНрдЯрд░ рдереЗ, рдЕрдм рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 240 рдорд┐рд▓рд┐рдпрди рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВред
- рд╕рдордп рд╕реАрдорд╛ рдЦреЛрдЬреЗрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, 95 рдкреНрд░рддрд┐рд╢рдд рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 300 рдПрдордПрд╕ред
- рдореЗрдореЛрд░реА рдХреА рд╕реАрдорд╛ред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕рд░реНрд╡рд░ рдкрд░ рд░рдЦрд╛ рдЬрд╛рдП, рдЕрдЧрд▓реЗ 2 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПред
- . Kubernetes, , , .
- , .
:
, тАФ , . , .
, . , , .
. тАФ eventually consistent . , .
Python3.7, PostgreSQL, тАФ MinIO. faiss.

http- avio, aiohttp.
asyncio fork, , тАФ , , multiprocessing.Pipe.
Product Quantization. 64 .

Product Quantization .
Inverted File HNSW.

, faiss : IVF262144_HNSW32,PQ64. , Inverted File 262144 , HNSW 32 , 64 Product Quantization.
faiss .
, :
- 10 000 , 1 .
- 16 OpenMP-. , 16 , #pragma omp parallel for.
тАФ . , , - .
, IVF262144_HNSW32,PQ64 80 :
:
int(faiss.get_mem_usage_kb() * 1024 / index.ntotal)
, 2Gb. nlist ├Ч pq.M ├Ч pq.ksub ├Ч float. 262144 ├Ч 64 ├Ч 256 ├Ч 4 тЙИ 17G, pq.M тАФ Product Quantization, pq.ksub тАФ 256, .
. : , 2. , Inverted File, . тАФ .
bytes per vector :

, , , - , , . , .
OpenMP faiss, , , . , ThreadPoolExecutor (faiss GIL).

, faiss , . -, (add, remove) - . -, OpenMP- , , .
RWLock, , . Python . OpenMP- faiss.omp_set_num_threads.
, query-per-second. 5.
, . , , issue.
faiss.
, 5 10 000 ( ). , : 800 .
20 150 rps 20 latency 500 throughput. : , .
, . , , . MinIO.
тАФ fork Copy-on-Write . . тАФ 80 .
, .
GPU
GPU , .
: SIFT1M, 128.
: 100 10 000 nprobe.

:
- GPU. GPU , , , , .
- Flat- GPU, ( 128).
- PQ64- GPU .
Faiss тАФ open source , .
, , faiss . issues, .
, vearch JD.com. open source, .