Hugging Face Optimum Intel๊ณผ fastRAG๋ฅผ ํ์ฉํด BGE ์๋ฒ ๋ฉ ๋ชจ๋ธ์ CPU ์ต์ ํํ์ฌ Xeon ๊ธฐ๋ฐ RAG ํ์ดํ๋ผ์ธ์ ๋ฌธ์ ์ธ๋ฑ์ฑยท์ฟผ๋ฆฌ ์ธ์ฝ๋ฉยท๋ฆฌ๋ญํน ๋ ์ดํด์ ๋จ์ถ
CPU Optimized Embeddings with ๐ค Optimum Intel and fastRAG
AI ์์ฝ
Context
์๋ฏธ ๊ฒ์ ๊ธฐ๋ฐ RAG ์ ํ๋ฆฌ์ผ์ด์ ์์ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ์ธ์ฝ๋ฉ ์ฐ์ฐ์ ๋์ ์ง์ฐ์๊ฐ๊ณผ ์ฒ๋ฆฌ๋ ์ ์ฝ์ ์ด๋ํ๋ค. ํนํ ๋๊ท๋ชจ ๋ฌธ์ ์ปฌ๋ ์ ์ธ๋ฑ์ฑ, ์ค์๊ฐ ์ฟผ๋ฆฌ ์ธ์ฝ๋ฉ, ๋ค์ค ๋ฌธ์ ๋ฆฌ๋ญํน ๊ณผ์ ์์ ๊ณ์ฐ ํจ์จ์ฑ์ด ์ฑ๋ฅ ๋ณ๋ชฉ์ด ๋๋ค.
Technical Solution
- Optimum Intel ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋์ : Intel AVX-512, VNNI, AMX ๋ช ๋ น์ด ์งํฉ์ ํ์ฉํ ์ ์์ค ๋ฐํ์ ์ต์ ํ ์ ์ฉ
- ์ ๋ํ ๊ธฐ๋ฒ ์ ์ฉ: BGE ๋ชจ๋ธ์ INT8 ์ ์ ์ ๋ํ(bge-small-en-v1.5-rag-int8-static, bge-large-en-v1.5-rag-int8-static)๋ก ๋ณํ
- fastRAG ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐ๋: QuantizedBiEncoderRetriever์ QuantizedBiEncoderRanker ์ปดํฌ๋ํธ๋ก ์ต์ ํ๋ ๋ชจ๋ธ์ RAG ํ์ดํ๋ผ์ธ์ ํตํฉ
- ๋ฌธ์ ์ ์ฅ์ ๊ตฌ์ฑ: InMemoryDocumentStore ์ฌ์ฉ ๋ฐ update_embeddings()๋ฅผ ํตํ ๋ฐฐ์น ์ธ์ฝ๋ฉ ์ฒ๋ฆฌ
- ํ์ดํ๋ผ์ธ ๊ตฌ์ถ: retriever โ ranker 2๋จ๊ณ ๊ตฌ์กฐ๋ก ์ด๊ธฐ ๊ฒ์ ํ ์๋ฏธ์ ๋ฆฌ๋ญํน ์ํ
Impact
์ํฐํด์ ์ ๋์ ์ฑ๋ฅ ์์น(๋ ์ดํด์ ๊ฐ์๋, ์ฒ๋ฆฌ๋ ์ฆ๊ฐ์จ, ์๋์ง ์๋น ์ ๊ฐ)๊ฐ ๋ช ์๋์ด ์์ง ์์.
Key Takeaway
๊ฒฝ๋ ์๋ฒ ๋ฉ ๋ชจ๋ธ(100-350M ํ๋ผ๋ฏธํฐ)์ CPU ๊ธฐ๋ฐ ์๋ฏธ ๊ฒ์์ ์ต์ ํ๋ ์ ์์ผ๋ฉฐ, ์ ๋ํ์ CPU ๊ฐ์ ๋ช ๋ น์ด ํ์ฉ์ ํตํด ์ฃ์งยท์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์๋ RAG ์์คํ ์ ์ค์๊ฐ์ฑ์ ํ๋ณดํ ์ ์๋ค.
์ค์ฒ ํฌ์ธํธ
Xeon CPU ๊ธฐ๋ฐ RAG ์์คํ ์ ์ด์ํ๋ ํ์์ Optimum Intel์ INT8 ์ ๋ํ๋ BGE ๋ชจ๋ธ(Intel/bge-small-en-v1.5-rag-int8-static ๋ฑ)๊ณผ fastRAG์ QuantizedBiEncoderRetriever/Ranker๋ฅผ ์กฐํฉ ์ฌ์ฉํ๋ฉด, ๋ฌธ์ ์ธ๋ฑ์ฑ ์ฒ๋ฆฌ๋ ์ฆ๋, ์ฟผ๋ฆฌ ์ธ์ฝ๋ฉ ์ง์ฐ ๋จ์ถ, ๋ฆฌ๋ญํน ์๋ ๊ฐ์ ์ ๋์์ ๋ฌ์ฑํ ์ ์๋ค.