๐ Vector DB ๋ฒ์ค ํ์ค๋์? Milvus!
(์์ฌ ๊ฐ๊ทธ์ค๋ฌ์ด ์ ๋ชฉ์ ๋ํด ๋จผ์ ์ฌ์ฃ๋๋ฆฝ๋๋ค. ๐๐ปโโ๏ธ) Vector DB ๋ scalar ๋ฐ์ดํฐ๊ฐ ์๋ vector embedding ์ ์ ์ฅ/์ธ๋ฑ์ค/์ฟผ๋ฆฌ๋ฅผ ํ๋ DB ๋ฅผ ๋งํฉ๋๋ค. embedding model ๋ฅผ ํตํด ํน์ dimension ์ผ๋ก ๋ฒกํฐํ ๋ ๊ฐ์ ๊ด๋ จ ๋ฉํ๋ฐ์ดํฐ์ ํจ๊ป ํ๋์ ์ํฐํฐ๋ก ์ ์ฅํ๊ฒ ๋๋๋ฐ์, ์๋์ ์ ํ์ฑ๊ฐ์ trade-off ๋ฅผ ์ํด ์ธ๋ฑ์ค ์์ฑ ํ Approximate Nearest Neighbor (ANN) ๊ฒ์์ ํ๋ ํํ๋ก ๋์ํฉ๋๋ค. ์ต๊ทผ RAG ์ ๊ด๋ จ๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ Milvus ๋ผ๋ Vector DB ๋ฅผ ์ฌ์ฉํ๊ฒ ๋์๋๋ฐ์, ์ ํฌ๊ฐ Milvus ๋ฅผ ์ฌ์ฉํ๊ฒ ๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. * ANN benchmark(https://ann-benchmarks.com/index.html) ์์ milvus ๋ ์ฑ๋ฅ์ ์์ ๋ญ์ปค์ด๋ค. * ์ปค๋ฎค๋ํฐ๊ฐ ํ์ฑํ๋์ด ์๋ค. * sdk ๊ฐ ์ ๋์ด ์๋ค. (python, Go, Java, etc) * langchain-community ํจํค์ง์ ํตํฉ์ด ์๋์ด ์๋ค.(langchain ์ LLM ๊ธฐ๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ๊ตฌํ์ ์ง์ํด์ฃผ๋ Framework ์ ๋๋ค.) * k8s ํ๊ฒฝ์์ scale out, scale up, fail over ์ด ๊ฐ๋ฅํ๋ค. * on-disk index ๋ฅผ ํฌํจํด์ ๋ค์ํ index ๋ฅผ ์ง์ํ๋ค. (DiskANN ์ ์ต์ด๋ก ์ง์) * ์ง์์ ์ผ๋ก release ๋๋ฉด์ ์ ์ง ๋ณด์๋๊ณ ์๋ค. * ์คํ์์ค์ด๋ค. ๊ณต์ง๋ค. * admin tool ์ธ attu ๊ฐ ๊ณต์์ ์ผ๋ก ์คํ์์ค๋ก ์ ๊ณต๋๊ณ ์์ด milvus manage ๊ฐ ์ฝ๋ค. ํ์ฌ๊น์ง ํ๋ก์ ํธ ์งํํ๋ฉด์ ํน๋ณํ ๋ง์ฝ(?)์ ์ผ์ผํค์ง ์๊ณ ์ค์ํ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ์ด ๋งค์ฐ ๋ง์กฑํ๊ณ ์์ต๋๋ค. ํน์๋ Vector DB ๋ฅผ ๊ณ ๋ฏผํ๊ณ ๊ณ์ ๋ถ๋ค์ด ์๋ค๋ฉด Milvus ๋ ํ๋ฒ ๊ฒํ ํด๋ณด์๋ฉด ์ข์๊ฒ ๊ฐ์ต๋๋ค. ๐ ํจ๊ป ๋ณด๋ฉด ์ข์ ๊ธ * Milvus Document: https://milvus.io/docs/v2.3.x * Devocean Milvus Quick Start: https://devocean.sk.com/blog/techBoardDetail.do?ID=165368