[Qdrant] ์–‘์žํ™” (Quantization)

๋ฒกํ„ฐ ์–‘์žํ™”์— ๋Œ€ํ•ด์„œ ์ž˜ ๋ชจ๋ฅธ๋‹ค๋ฉด, ๋ณ„๋„ ํฌ์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.
https://blog.naver.com/sssang97/223848217468

qdrant๋Š” ์ผ๋ฐ˜์ ์ธ ์–‘์žํ™”์ธ binary, ์Šค์นผ๋ผ, product๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•œ๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ด๊ณ  ๋ฆฌ์Šคํฌ๋„ ์ ์€ ์Šค์นผ๋ผ ์–‘์žํ™”๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‘์šฉํ•˜๋Š” ๋ฒ•์„ ๋‹ค๋ค„๋ณด๊ฒ ๋‹ค.
๋‹ค๋ฅธ ๊ฒƒ๋“ค์€ ์˜ต์…˜ ํ˜•ํƒœ๊ฐ€ ์ข€ ๋‹ค๋ฅด๊ธด ํ•˜์ง€๋งŒ, ์ ‘๊ทผ๋ฒ•์€ ๋น„์Šทํ•˜๋‹ค.

์–‘์žํ™” ์˜ต์…˜์€ collection ์ƒ์„ฑ์‹œ์— ์ฃผ๊ฑฐ๋‚˜, ์ปฌ๋ ‰์…˜์„ ๋ณ€๊ฒฝํ•˜๋Š” ํ˜•ํƒœ๋กœ๋งŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
quantization_config ๊ฐ’์„ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

quantile์€ ์–‘์žํ™”ํ•  ๊ฐ’ ๋ฒ”์œ„?๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. 0.5~1.0 ๋ฒ”์œ„์˜ ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ๋‚ฎ์ถœ์ˆ˜๋ก ๋” ๋งŽ์€ ๊ฐ’์ด ์†์‹ค๋˜์–ด์„œ ์ •ํ™•์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.
์ด๊ฒƒ๋„ ์–‘์žํ™”๋œ ๋ฒกํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆด์ง€, ๋””์Šคํฌ์— ์˜ฌ๋ฆด์ง€๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. always_ram: true๋ฅผ ์ฃผ๋ฉด ์–‘์žํ™”๋œ ๋ฒกํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ฒŒ ๋œ๋‹ค.


๋‚œ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ 256 ๊ธธ์ด ๋ฒกํ„ฐ 1000๋งŒ๊ฐœ ์ •๋„๋ฅผ ๊ฐ„๋‹จํžˆ ํ…Œ์ŠคํŠธํ•ด๋ดค๋‹ค.

์‹คํ–‰ ์†๋„์˜ ๊ฒฝ์šฐ์—๋Š” ๊ฝค ๋‘๋“œ๋Ÿฌ์ง„ ์ฐจ์ด๊ฐ€ ๋ณด์˜€๋‹ค.

๊ฑฐ์˜ 2-3๋ฐฐ๋Š” ๋นจ๋ผ์กŒ๋‹ค.


๊ทธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์€ ์ƒ๊ฐ๋ณด๋‹ค ํฐ ์ฐจ์ด๋Š” ์—†์—ˆ๋‹ค. ์›๋ž˜ 4-5๊ธฐ๊ฐ€ ์ •๋„๋ฅผ ์˜ค๊ฐ”๋˜์ง€๋ผ.
์• ์ดˆ์— ๋ฒกํ„ฐ ๊ธธ์ด๊ฐ€ ์งง์•„์„œ ๋“œ๋ผ๋งˆํ‹ฑํ•œ ์ฐจ์ด๊ฐ€ ์—†๋Š” ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๋‹ค.

ํ•˜์ง€๋งŒ ๋ฌด์–ธ๊ฐ€๋ฅผ ์–ป์œผ๋ฉด ์žƒ๋Š” ๊ฒƒ๋„ ์žˆ๋Š” ๋ฒ•์ด๋‹ค.
์–‘์žํ™” ์ „์—๋Š” ์ •ํ™•์„ฑ์ด ๊ฑฐ์˜ 98%์— ์ˆ˜๋ ดํ–ˆ๋˜ ๊ฒƒ์ด

์Šค์นผ๋ผ ์–‘์žํ™”๋ฅผ ์ ์šฉํ–ˆ์„ ๊ฒฝ์šฐ์—๋Š” 84%๋Œ€๋กœ ์ค„์–ด๋“ค์—ˆ๋‹ค.

์†์‹ค ์ •๋„๋Š” ๋ฐ์ดํ„ฐ ์ƒํƒœ์— ๋”ฐ๋ผ์„œ ์ข€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋‹ˆ, ์ง์ ‘ ๊ฒ€์ฆ์„ ํ•ด๋ณด๋Š” ๊ฒƒ์„ ๊ถŒํ•œ๋‹ค.
์†์‹ค๋œ ์ •ํ™•๋„๋Š” rescoring ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ๋™์›ํ•ด์„œ ์ข€ ๋ณด์™„ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ํ•œ๊ณ„๋Š” ์žˆ๋‹ค.




rescore๋ฅผ ํ†ตํ•œ ์ •ํ™•๋„ ๋ณด์™„

rescore๋Š” ์–‘์žํ™” ์‹œ ์†์‹ค๋œ ์ •ํ™•๋„๋ฅผ ๋Œ์–ด์˜ฌ๋ฆฌ๊ณ ์ž ์‚ฌ์šฉ๋˜๋Š” ๋ณด์กฐ์ ์ธ ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜๋‹ค.
์ด๊ฑด ์ธ๋ฑ์Šค์— ์ถ”๊ฐ€์ ์ธ ์„ค์ •์„ ๋”ํ•˜๋Š”๊ฑด ์•„๋‹ˆ๊ณ , ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ฆฌ๋Š” ์‹œ์ ์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ด๋Ÿฐ ์‹์œผ๋กœ ์˜ต์…˜์„ ์ฃผ๋ฉด ๊ฐ€์žฅ ์œ ์‚ฌํ•œ 20๊ฐœ๋ฅผ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ์—, "์–‘์žํ™”๋˜์ง€ ์•Š์€ ์›๋ณธ ๋ฒกํ„ฐ"๋ฅผ ๋””์Šคํฌ์—์„œ ์ฝ์–ด์˜จ ๋’ค์— ๋‹ค์‹œ ์žฌํ‰๊ฐ€(rescore)๋ฅผ ํ•ด์„œ ์ตœ์ข… 10๊ฐœ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

์ •ํ™•๋„๋ฅผ ์กฐ๊ธˆ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ, ์˜ค๋ฒ„์ƒ˜ํ”Œ๋ง ๊ฐœ์ˆ˜๋งŒํผ ์กฐํšŒํ•˜๋Š”๋ฐ์„œ ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ๋””์Šคํฌ๋ฅผ ์ฝ๋Š”๋ฐ ์ถ”๊ฐ€ ๋น„์šฉ์ด ๋ฐœ์ƒํ•œ๋‹ค.

์ด๊ฒƒ๋„ ๊ทธ๋ฆฌ ์™„๋ฒฝํ•œ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์„ ์œ ์˜ํ•œ๋‹ค.
์ง์ ‘ ๋ณธ์ธ์˜ ๋ฐ์ดํ„ฐ์…‹์—์„œ ํ™•์ธํ•ด๋ด์•ผ ํ•œ๋‹ค.




๊ณ„์‚ฐ๊ธฐ

qdrant๋Š” ์†์— ๊ผฝ์„ ์ •๋„๋กœ ํŽธ๋ฆฌํ•œ ์ž์ฒด ๊ณ„์‚ฐ๊ธฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
๋‹จ์ˆœ ๋น„์šฉ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์–‘์žํ™”๋ฅผ ์ ์šฉํ–ˆ์„ ๊ฒฝ์šฐ ์ ˆ์•ฝ๋˜๋Š” ์‚ฌ์ด์ฆˆ๊ฐ€ ์–ด๋А ์ •๋„์ธ์ง€๋„ ๊ฐ„๋‹จํ•˜๊ฒŒ ํŒŒ์•…ํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

https://cloud.qdrant.io/calculator



์ฐธ์กฐ
https://qdrant.tech/documentation/guides/quantization/
https://www.unite.ai/comparing-quantization-techniques-for-scalable-vector-search/