Skip to main content
PromptQuorumPromptQuorum
ํ™ˆ/๊ณ ๊ธ‰ ๋กœ์ปฌ LLM/AnythingLLM vs PrivateGPT vs Open WebUI: 2026๋…„ ์ตœ๊ณ ์˜ ๋กœ์ปฌ RAG ํ”Œ๋žซํผ ๋น„๊ต
RAG & Document Chat

AnythingLLM vs PrivateGPT vs Open WebUI: 2026๋…„ ์ตœ๊ณ ์˜ ๋กœ์ปฌ RAG ํ”Œ๋žซํผ ๋น„๊ต

ยท16๋ถ„ ๋ถ„๋Ÿ‰ยทHans Kuepper ์ € ยท PromptQuorum ์ฐฝ๋ฆฝ์ž, ๋ฉ€ํ‹ฐ ๋ชจ๋ธ AI ๋””์ŠคํŒจ์น˜ ๋„๊ตฌ ยท PromptQuorum

2026๋…„ 5์›” 5,047ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ: AnythingLLM์€ ํ”„๋กœ๋•์…˜ ์‹ ๋ขฐ์„ฑ์—์„œ ์šฐ์Šนํ–ˆ์Šต๋‹ˆ๋‹ค(๋” ๋‚˜์€ ์ธ์šฉ, ๊ต์ฒด ๊ฐ€๋Šฅํ•œ ์ž„๋ฒ ๋”, ์˜๊ตฌ ์ž‘์—…๊ณต๊ฐ„, 6%๋กœ ๊ฐ€์žฅ ๋‚ฎ์€ ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ ). PrivateGPT๋Š” ๊ฒ€์ƒ‰ ์ง€์—ฐ ์‹œ๊ฐ„์—์„œ ์šฐ์Šนํ–ˆ์Šต๋‹ˆ๋‹ค(p50 240ms, ์™„์ „ ์˜คํ”„๋ผ์ธ ์„ค๊ณ„, ์—„๊ฒฉํ•œ EU ๊ทœ์ • ์ค€์ˆ˜ ์ž์„ธ). Open WebUI๋Š” ์šด์˜ ํŽธ์˜์„ฑ์—์„œ ์šฐ์Šนํ–ˆ์Šต๋‹ˆ๋‹ค(๋” ๊น”๋”ํ•œ ๋ฉ€ํ‹ฐ ์‚ฌ์šฉ์ž ์„ค์ •, Ollama์™€์˜ ์šฐ์•„ํ•œ ํ†ตํ•ฉ, ๊ธฐ์กด ์ฑ„ํŒ… ์›Œํฌํ”Œ๋กœ์šฐ์— ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ์—ฐ๊ฒฐ). ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘ ์•ฝ 10,000ํŽ˜์ด์ง€๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค. ๋ฏธ๋ž˜์— ํ•„์š”ํ• ์ง€ ๋ชจ๋ฅด๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์›Œํฌํ”Œ๋กœ์šฐ์— ๋งž์ถฐ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.

AnythingLLM, PrivateGPT, Open WebUI๋Š” 2026๋…„ ํ˜„์žฌ ๊ฐ€์žฅ ์ง„์ง€ํ•˜๊ฒŒ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋Š” ์…€ํ”„ ํ˜ธ์ŠคํŒ… RAG ํ”Œ๋žซํผ ์„ธ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ 5,047ํŽ˜์ด์ง€ ๋ถ„๋Ÿ‰์˜ ์ฝ”ํผ์Šค๋ฅผ ๊ฐ ํ”Œ๋žซํผ์— ๋กœ๋“œํ•˜๊ณ , 5๊ฐ€์ง€ ์œ ํ˜•์˜ ์งˆ์˜์—์„œ 50๊ฐœ์˜ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ–ˆ์œผ๋ฉฐ, ๊ฒ€์ƒ‰ ์ง€์—ฐ ์‹œ๊ฐ„, ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ , ์ธ์šฉ ํ’ˆ์งˆ, ๊ทธ๋ฆฌ๊ณ  ์•„๋ฌด๋„ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š๋Š” ์ˆจ๊ฒจ์ง„ ๋น„์šฉ(์žฌ์ž„๋ฒ ๋”ฉ, ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ† ๋ฆฌ์ง€, ์ธ๋ฑ์‹ฑ ์ค‘ GPU ์‚ฌ์šฉ๋Ÿ‰ ๊ธ‰๋“ฑ)์„ ์ธก์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ๋ชจ์—์„œ ์šฐ์Šนํ•œ ํ”Œ๋žซํผ์ด ํ”„๋กœ๋•์…˜์—์„œ๋„ ์šฐ์Šนํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ์š”์ 

  • AnythingLLM์€ 5,047ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค์—์„œ ๊ฐ€์žฅ ๋‚ฎ์€ ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ ์„ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค(6%, PrivateGPT 11%, Open WebUI 14% ๋Œ€๋น„). ํŒŒ์ผ๋ช…๊ณผ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ ํฌํ•จ๋œ ์ผ๊ด€๋˜๊ฒŒ ์ธ์šฉ ๊ฐ€๋Šฅํ•œ ์‘๋‹ต์„ ์œ ์ผํ•˜๊ฒŒ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.
  • PrivateGPT๋Š” ๊ฐ€์žฅ ๋‚ฎ์€ ๊ฒ€์ƒ‰ ์ง€์—ฐ ์‹œ๊ฐ„์„ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค(p50 240ms, p95 720ms). ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ SDK ์—†์Œ, ํด๋ผ์šฐ๋“œ ํด๋ฐฑ ์—†์Œ, ์ˆจ๊ฒจ์ง„ ๋„คํŠธ์›Œํฌ ํ˜ธ์ถœ ์—†์Œ โ€” ๊ฐ€์žฅ ๊น”๋”ํ•œ ์˜คํ”„๋ผ์ธ ์ž์„ธ๋ฅผ ๋ณด์—ฌ์คฌ์Šต๋‹ˆ๋‹ค.
  • Open WebUI๋Š” ๊ณต์œ  ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์šด์˜ ํŽธ์˜์„ฑ์„ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค โ€” ๋ฉ€ํ‹ฐ ์‚ฌ์šฉ์ž ๊ณ„์ •, OAuth, ์—ญํ•  ๊ธฐ๋ฐ˜ ๋ฌธ์„œ ์ ‘๊ทผ, ๋‘ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ์™„์„ฑ๋˜๋Š” Ollama ํ†ตํ•ฉ.
  • ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘ ์†Œ๋น„์ž ํ•˜๋“œ์›จ์–ด์—์„œ 8,000~12,000ํŽ˜์ด์ง€ ์‚ฌ์ด์— ์„ฑ๋Šฅ์ด ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค. ์ธ๋ฑ์‹ฑ ์‹œ๊ฐ„์€ ์„ ํ˜•์œผ๋กœ ์ฆ๊ฐ€ํ•˜์ง€๋งŒ, ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ RAM์„ ์ดˆ๊ณผํ•˜๋ฉด ๊ฒ€์ƒ‰ ๋ฆฌ์ฝœ์ด ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.
  • ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ๋ณ€๊ฒฝ ์‹œ ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘ ์ „์ฒด ์žฌ์ธ๋ฑ์‹ฑ์ด ๊ฐ•์ œ๋ฉ๋‹ˆ๋‹ค. 5,000ํŽ˜์ด์ง€๋‹น 30~90๋ถ„, ์ธ๋ฑ์‹ฑ ๊ณผ์ •์—์„œ 4~8GB์˜ GPU ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜ˆ์•ฝํ•˜์‹ญ์‹œ์˜ค.
  • ๋””์Šคํฌ์˜ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ† ๋ฆฌ์ง€๋Š” ์ฒญํฌ ํฌ๊ธฐ์™€ ์ž„๋ฒ ๋”ฉ ์ฐจ์›์— ๋”ฐ๋ผ 1,000ํŽ˜์ด์ง€๋‹น 40~120MB์ž…๋‹ˆ๋‹ค. 50,000ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค๋Š” ๋ฒกํ„ฐ๋งŒ์œผ๋กœ 2~6GB๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • 10,000ํŽ˜์ด์ง€๋ฅผ ์ดˆ๊ณผํ•ด ์„ฑ์žฅํ•  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ฒฝ์šฐ, Ollama + Qdrant ๋˜๋Š” Weaviate๋ฅผ ํ™œ์šฉํ•œ ๋งž์ถค ์Šคํƒ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค. ์ด ์„ธ ํ”Œ๋žซํผ์˜ ๋‚ด์žฅ ๋ฒกํ„ฐ ์Šคํ† ์–ด๋Š” ๊ทธ ๊ทœ๋ชจ๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

2026๋…„ AnythingLLM, PrivateGPT, Open WebUI ๋น„๊ต

5,047ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค(์—ฐ๊ตฌ ๋…ผ๋ฌธ, ๊ณ„์•ฝ์„œ, ๊ธฐ์ˆ  ๋งค๋‰ด์–ผ, ๋‚ด๋ถ€ ์œ„ํ‚ค ๋‚ด๋ณด๋‚ด๊ธฐ)์—์„œ ์ฑ„ํŒ… ๋ชจ๋ธ๋กœ Llama 3.3 8B Q4_K_M, ๊ฐ ํ”Œ๋žซํผ์˜ ๊ธฐ๋ณธ ์ž„๋ฒ ๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด: Windows 11์˜ NVIDIA RTX 4070(12GB VRAM, 32GB ์‹œ์Šคํ…œ RAM) ๊ธฐ๋ณธ ์‹œ์Šคํ…œ; MacBook Pro M5(16GB ํ†ตํ•ฉ)๋กœ ๊ต์ฐจ ๊ฒ€์ฆ. ์ˆ˜์น˜๋Š” 3ํšŒ ์‹คํ–‰์˜ ์ค‘์•™๊ฐ’์ž…๋‹ˆ๋‹ค.

๐Ÿ“ ํ•œ ๋ฌธ์žฅ์œผ๋กœ

AnythingLLM์€ 5,000ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค์—์„œ ๊ฐ€์žฅ ๋‚ฎ์€ ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ (6%)๊ณผ ์ตœ๊ณ ์˜ ์ธ์šฉ ํ’ˆ์งˆ์„ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. PrivateGPT๋Š” ๊ฐ€์žฅ ๋‚ฎ์€ ๊ฒ€์ƒ‰ ์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ๊ฐ€์žฅ ๊น”๋”ํ•œ ์˜คํ”„๋ผ์ธ ์ž์„ธ๋ฅผ ๋ณด์˜€์œผ๋ฉฐ, Open WebUI๋Š” ๊ณต์œ  ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ๋ฉ€ํ‹ฐ ์‚ฌ์šฉ์ž ์ง€์›๊ณผ OAuth๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ฌ ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด

๊ฐœ์ธ ๋ฌธ์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(3,000๊ฐœ ๋ฌธ์„œ ์ดํ•˜)์—์„œ ๊ฐ€์žฅ ๊ฐ„ํŽธํ•œ ์„ค์ •๊ณผ ์ตœ๊ณ ์˜ ์‘๋‹ต ์ •ํ™•๋„๋ฅผ ์›ํ•œ๋‹ค๋ฉด AnythingLLM์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค. ํด๋ผ์šฐ๋“œ ์˜์กด์„ฑ ์—†์ด ์™„์ „ ์˜คํ”„๋ผ์ธ ์ž‘๋™์ด ๋ณด์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค๋ฉด PrivateGPT๋ฅผ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค. ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋ณ„๋„ ๊ณ„์ •๊ณผ ์ ‘๊ทผ ์ œ์–ด๋ฅผ ์‚ฌ์šฉํ•ด ๋™์ผํ•œ RAG ์‹œ์Šคํ…œ์„ ๊ณต์œ ํ•ด์•ผ ํ•œ๋‹ค๋ฉด Open WebUI๋ฅผ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.

๊ธฐ๋ŠฅAnythingLLMPrivateGPTOpen WebUI
์„ค์น˜ ์‹œ๊ฐ„ (์‹ ๊ทœ ์„ค์น˜ โ†’ ์ฒซ ์ฟผ๋ฆฌ)~8๋ถ„ (๋ฐ์Šคํฌํ†ฑ ์ธ์Šคํ†จ๋Ÿฌ)~25๋ถ„ (Python + Poetry + ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ)~12๋ถ„ (Docker compose + Ollama)
์ž„๋ฒ ๋”ฉ ์œ ์—ฐ์„ฑ8๊ฐœ ๋ฐฑ์—”๋“œ (Native, Ollama, LM Studio, OpenAI, Azure, Cohere, Voyage, LocalAI)HuggingFace ์ž„๋ฒ ๋”ฉ (๋ชจ๋“  sentence-transformers ๋ชจ๋ธ)Ollama ์ œ๊ณต ์ž„๋ฒ ๋”ฉ + SentenceTransformers + OpenAI ํ˜ธํ™˜
์ฒญํฌ ์ „๋žต ์˜ต์…˜ํฌ๊ธฐ + ์˜ค๋ฒ„๋žฉ ๋…ธ์ถœ; ์ž‘์—…๊ณต๊ฐ„๋ณ„ ์„ค์ •์ „์ฒด LlamaIndex ํŒŒ์ดํ”„๋ผ์ธ (์‹œ๋งจํ‹ฑ, ๋ฌธ์žฅ ์œˆ๋„์šฐ, ๊ณ„์ธต์ )ํฌ๊ธฐ + ์˜ค๋ฒ„๋žฉ; ์ „์—ญ ๊ธฐ๋ณธ๊ฐ’ + ๋ฌธ์„œ๋ณ„ ์˜ค๋ฒ„๋ผ์ด๋“œ
๊ฒ€์ƒ‰ ์ง€์—ฐ ์‹œ๊ฐ„ (p50 / p95)310ms / 880ms240ms / 720ms380ms / 1,040ms
ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ  (50๊ฐœ ์ฟผ๋ฆฌ ํ‰๊ฐ€)6%11%14%
์ธ์šฉ ํ’ˆ์งˆํŒŒ์ผ๋ช… + ํŽ˜์ด์ง€; ์ธ๋ผ์ธ ํด๋ฆญ ๊ฐ€๋ŠฅํŒŒ์ผ๋ช… + ์ฒญํฌ ID; ๊ตฌ์กฐํ™”๋œ JSONํŒŒ์ผ๋ช…๋งŒ; ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ ์—†์Œ
ํ™•์žฅ์„ฑ ํ•œ๊ณ„ (์†Œ๋น„์ž ํ•˜๋“œ์›จ์–ด)~10,000ํŽ˜์ด์ง€ / ~3,000๋ฌธ์„œ~12,000ํŽ˜์ด์ง€ / ~5,000๋ฌธ์„œ~8,000ํŽ˜์ด์ง€ / ~2,000๋ฌธ์„œ
์ตœ์  ์šฉ๋„์ธ์šฉ์ด ํฌํ•จ๋œ ํ”„๋กœ๋•์…˜๊ธ‰ ๋ฌธ์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌEU ๊ทœ์ • ์ค€์ˆ˜, ์˜คํ”„๋ผ์ธ ์„ค๊ณ„, API ์šฐ์„  ํ†ตํ•ฉ์„ ํƒ์  RAG๊ฐ€ ํฌํ•จ๋œ ๋ฉ€ํ‹ฐ ์‚ฌ์šฉ์ž ์ฑ„ํŒ… ํ”„๋ŸฐํŠธ์—”๋“œ
5,047ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค์—์„œ AnythingLLM vs PrivateGPT vs Open WebUI: AnythingLLM์ด ๊ฐ€์žฅ ๋‚ฎ์€ ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ (6%), PrivateGPT๊ฐ€ ๊ฐ€์žฅ ๋น ๋ฅธ ๊ฒ€์ƒ‰(240ms p50), Open WebUI๊ฐ€ ์ตœ๊ณ ์˜ ๋ฉ€ํ‹ฐ ์‚ฌ์šฉ์ž ์ง€์› โ€” ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘ ์†Œ๋น„์ž ํ•˜๋“œ์›จ์–ด์—์„œ ~8,000~12,000ํŽ˜์ด์ง€๊นŒ์ง€ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.
5,047ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค์—์„œ AnythingLLM vs PrivateGPT vs Open WebUI: AnythingLLM์ด ๊ฐ€์žฅ ๋‚ฎ์€ ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ (6%), PrivateGPT๊ฐ€ ๊ฐ€์žฅ ๋น ๋ฅธ ๊ฒ€์ƒ‰(240ms p50), Open WebUI๊ฐ€ ์ตœ๊ณ ์˜ ๋ฉ€ํ‹ฐ ์‚ฌ์šฉ์ž ์ง€์› โ€” ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘ ์†Œ๋น„์ž ํ•˜๋“œ์›จ์–ด์—์„œ ~8,000~12,000ํŽ˜์ด์ง€๊นŒ์ง€ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.

์–ด๋А ํ”Œ๋žซํผ์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์˜ฌ๋ฐ”๋ฅธ ์„ ํƒ์€ ํ›„์† ์ž‘์—…์„ ์œ„ํ•œ ์ธ์šฉ์ด ํ•„์š”ํ•œ์ง€, ๊ทœ์ • ์ค€์ˆ˜ ์ž์„ธ๊ฐ€ ์ค‘์š”ํ•œ์ง€, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋ฐฐํฌ๋ฅผ ๊ณต์œ ํ• ์ง€์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜์‚ฌ๊ฒฐ์ • ๋‹จ์ถ•ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค:

์ƒํ™ฉ์„ ํƒ
์—ฐ๊ตฌ ๋…ผ๋ฌธ์— ๋ถ™์—ฌ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ์ด ํฌํ•จ๋œ ๋‹ต๋ณ€์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹คAnythingLLM
50~500๊ฐœ์˜ PDF๋ฅผ ๋ณด์œ ํ•œ 1์ธ ํŒ€์œผ๋กœ ํ”„๋กœ๋•์…˜๊ธ‰ RAG๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹คAnythingLLM
EU ๊ทœ์ œ ํŒ€์„ ์œ„ํ•œ ์˜คํ”„๋ผ์ธ ๋ฐฐํฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹คPrivateGPT
์ž์ฒด ๋ฐฑ์—”๋“œ์—์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” Python ์„œ๋น„์Šค๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹คPrivateGPT
์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ์„ ์ „ํ™˜ํ•˜๊ณ  ๊ฒ€์ƒ‰ ํ’ˆ์งˆ์„ ๋น„๊ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹คPrivateGPT
์ด๋ฏธ Ollama๋ฅผ ์‹คํ–‰ ์ค‘์ด๋ฉฐ ๋ฉ€ํ‹ฐ ์‚ฌ์šฉ์ž ์ฑ„ํŒ… ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹คOpen WebUI
ํŒ€์— OAuth ๋กœ๊ทธ์ธ๊ณผ ์‚ฌ์šฉ์ž๋ณ„ ๋ฌธ์„œ ์ ‘๊ทผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹คOpen WebUI
10,000ํŽ˜์ด์ง€ ์ด์ƒ์ด ์žˆ๊ณ  ๊ณ„์† ์„ฑ์žฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹คOllama + Qdrant/Weaviate๋ฅผ ํ™œ์šฉํ•œ ๋งž์ถค ์Šคํƒ (์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘ ํ•ด๋‹น ์—†์Œ)

5,047ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค์—์„œ 3๊ฐœ ํ”Œ๋žซํผ์„ ํ…Œ์ŠคํŠธํ•œ ๋ฐฉ๋ฒ•

๋™์ผํ•œ ๋ฌธ์„œ, ๋™์ผํ•œ ์ฑ„ํŒ… ๋ชจ๋ธ(Llama 3.3 8B Q4_K_M), ๋™์ผํ•œ 50๊ฐœ์˜ ํ‰๊ฐ€๋œ ์ฟผ๋ฆฌ. ์šฐ๋ฆฌ๊ฐ€ ๊ฒฉ๋ฆฌํ•œ ๊ฒƒ์€ ์ฑ„ํŒ… ํ’ˆ์งˆ์ด ์•„๋‹Œ RAG ํ’ˆ์งˆ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํ•˜๋“œ์›จ์–ด: ๊ธฐ๋ณธ ์‹œ์Šคํ…œ์œผ๋กœ Windows 11์˜ NVIDIA RTX 4070(12GB VRAM, 32GB ์‹œ์Šคํ…œ RAM); ๊ต์ฐจ ๊ฒ€์ฆ์œผ๋กœ MacBook Pro M5(16GB ํ†ตํ•ฉ ๋ฉ”๋ชจ๋ฆฌ). ์ง€์—ฐ ์‹œ๊ฐ„ ์ˆ˜์น˜๋Š” RTX 4070 ์‹คํ–‰์—์„œ ๋„์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ฝ”ํผ์Šค: ๋„ค ๊ฐ€์ง€ ์ฝ˜ํ…์ธ  ์œ ํ˜•์— ๊ฑธ์นœ 5,047ํŽ˜์ด์ง€ โ€” 1,047ํŽ˜์ด์ง€ ๋ถ„๋Ÿ‰์˜ ์‚ฐ์—… ์ œ์–ด ๋งค๋‰ด์–ผ(๊ทธ๋ฆผ, ํ‘œ, ๋ฐฉ์ •์‹), 38ํŽ˜์ด์ง€ ๋ถ„๋Ÿ‰์˜ ์ƒ์—…์šฉ ์ž„๋Œ€ ๊ณ„์•ฝ(๋ฐ€์ง‘๋œ ๋ฒ•๋ฅ  ํ…์ŠคํŠธ), 412ํŽ˜์ด์ง€ ๋ถ„๋Ÿ‰์˜ ํŠธ๋žœ์Šคํฌ๋จธ ์—ฐ๊ตฌ ๋…ผ๋ฌธ, 3,550ํŽ˜์ด์ง€ ๋ถ„๋Ÿ‰์˜ ๋‚ด๋ถ€ ์—”์ง€๋‹ˆ์–ด๋ง ์œ„ํ‚ค ๋‚ด๋ณด๋‚ด๊ธฐ(๋งˆํฌ๋‹ค์šด, ์ฝ”๋“œ, ํ˜ผํ•ฉ ์‚ฐ๋ฌธ).
  • ์ฑ„ํŒ… ๋ชจ๋ธ: Llama 3.3 8B Q4_K_M(โ‰ˆ4.9GB)์„ ์„ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋‘์—์„œ VRAM์— ์™„์ „ํžˆ ๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. AnythingLLM๊ณผ Open WebUI๋Š” Ollama๋ฅผ ํ†ตํ•ด, PrivateGPT๋Š” ๋‚ด์žฅ llama.cpp ๋Ÿฐํƒ€์ž„์„ ํ†ตํ•ด ์„œ๋น™ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ…Œ์ŠคํŠธ๋œ ์ž„๋ฒ ๋”: ๊ฐ ํ”Œ๋žซํผ์˜ ๊ธฐ๋ณธ ์ž„๋ฒ ๋” + nomic-embed-text v1.5(768์ฐจ์›)์™€ BAAI/bge-m3(1,024์ฐจ์›)(ํ˜ธํ™˜๋˜๋Š” ๊ฒฝ์šฐ). ๊ธฐ๋ณธ ์ž„๋ฒ ๋”๋ฅผ ์ฃผ์š” ์ˆ˜์น˜์— ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ฟผ๋ฆฌ ์„ธํŠธ: 5๊ฐ€์ง€ ์œ ํ˜•์— ๊ฑธ์นœ 50๊ฐœ ์ฟผ๋ฆฌ โ€” ์‚ฌ์‹ค ๊ฒ€์ƒ‰(10๊ฐœ), ๋‹ค๋‹จ๊ณ„ ์ถ”๋ก (10๊ฐœ), ์š”์•ฝ(10๊ฐœ), ์ธ์šฉ ์ •ํ™•๋„(10๊ฐœ), ๋ชจ์ˆœ ๊ฐ์ง€(10๊ฐœ). ์•Œ๋ ค์ง„ ๋‹ต๋ณ€ ํ‚ค์™€ ๋Œ€์กฐํ•˜์—ฌ ๋™์ผํ•œ ์‚ฌ๋žŒ์ด ๋ธ”๋ผ์ธ๋“œ ํ‰๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ธก์ • ํ•ญ๋ชฉ: ๊ฒ€์ƒ‰ ์ง€์—ฐ ์‹œ๊ฐ„(50๊ฐœ ์ฟผ๋ฆฌ์—์„œ p50/p95 ms), ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ (์ตœ์†Œ ํ•œ ๊ฐ€์ง€ ์‚ฌ์‹ค ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ์‘๋‹ต ๋น„์œจ), ์ธ์šฉ ์ •ํ™•๋„(ํ•ด๋‹น ์‹œ ํŒŒ์ผ๋ช… + ํŽ˜์ด์ง€), ์ธ๋ฑ์‹ฑ ์ค‘ GPU ๋ฉ”๋ชจ๋ฆฌ ํ”ผํฌ, ๋””์Šคํฌ์˜ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํฌ๊ธฐ.

๐Ÿ“ŒNote: ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ ํ›„ ํ…Œ์ŠคํŠธ ๋จธ์‹ ์˜ ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ์„ ๋น„ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘ ์ถ”๋ก  ์ค‘ ์•„์›ƒ๋ฐ”์šด๋“œ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค โ€” Wireshark์™€ macOS ๊ต์ฐจ ๊ฒ€์ฆ์˜ Little Snitch๋กœ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜: ๊ฐ ์‹œ์Šคํ…œ์ด ๋ฌธ์„œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹

์„ธ ํ”Œ๋žซํผ์€ ๋งค์šฐ ๋‹ค๋ฅธ ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์„ ๋‚ด๋ ธ์œผ๋ฉฐ, ์ด๊ฒƒ์ด ๋ฒค์น˜๋งˆํฌ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ”Œ๋žซํผ์€ ๋™์ผํ•œ ์ผ๋ฐ˜ ํŒŒ์ดํ”„๋ผ์ธ(๋กœ๋“œ โ†’ ์ฒญํ‚น โ†’ ์ž„๋ฒ ๋”ฉ โ†’ ์ €์žฅ โ†’ ๊ฒ€์ƒ‰ โ†’ ์ƒ์„ฑ)์„ ๋”ฐ๋ฅด์ง€๋งŒ, ์„œ๋กœ ๋‹ค๋ฅธ ๋‹จ๊ณ„๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • AnythingLLM โ€” Electron ๋ฐ์Šคํฌํ†ฑ ์•ฑ + ๋‚ด์žฅ Node ์„œ๋น„์Šค. ๋ฌธ์„œ๋Š” LangChain.js ๋กœ๋”๋กœ ์ฒ˜๋ฆฌ๋˜๊ณ , ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ 1,000์ž ์ฒญํฌ์— 20์ž ์˜ค๋ฒ„๋žฉ์œผ๋กœ ๋ถ„ํ• ๋˜๋ฉฐ, ์„ ํƒํ•œ ๋ฐฑ์—”๋“œ๋กœ ์ž„๋ฒ ๋”ฉ๋˜์–ด LanceDB(๋””์Šคํฌ์˜ ์ž‘์—…๊ณต๊ฐ„๋ณ„ ํด๋”)์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰์€ ์†Œํ˜• ํฌ๋กœ์Šค ์ธ์ฝ”๋”๋ฅผ ํ†ตํ•œ ์„ ํƒ์  ์žฌ๋žญํ‚น๊ณผ ํ•จ๊ป˜ ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ธ์šฉ์€ ํŒŒ์ดํ”„๋ผ์ธ ์ „์ฒด์—์„œ ํŒŒ์ผ๋ช… + ํŽ˜์ด์ง€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด์กด๋œ ์ฒญํฌ๋ณ„๋กœ ์ถ”์ ๋ฉ๋‹ˆ๋‹ค.
  • PrivateGPT โ€” LlamaIndex๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ Python FastAPI ์„œ๋น„์Šค. ๋กœ๋”๋Š” PDF, DOCX, MD, HTML, ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ฒญํ‚น์€ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•˜๋ฉฐ(๋ฌธ์žฅ ์œˆ๋„์šฐ, ์‹œ๋งจํ‹ฑ, ๊ณ„์ธต์ ), ๊ธฐ๋ณธ๊ฐ’์€ 512ํ† ํฐ์˜ LlamaIndex SentenceSplitter๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž„๋ฒ ๋”ฉ์€ HuggingFace sentence-transformers๋กœ ๊ณ„์‚ฐ๋˜์–ด Qdrant(๋กœ์ปฌ ๋ชจ๋“œ) ๋˜๋Š” Chroma์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ์€ ์ฟผ๋ฆฌ ๋ชจ๋“œ๋ณ„ ๋ช…์‹œ์  ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ(Search, Q&A, Chat)์ด ํฌํ•จ๋œ ๋‚ด์žฅ llama.cpp ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Open WebUI โ€” Ollama์™€ ํ†ต์‹ ํ•˜๋Š” Svelte ํ”„๋ŸฐํŠธ์—”๋“œ + Python ๋ฐฑ์—”๋“œ. RAG๋Š” ๋ฏธ๋“ค์›จ์–ด๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค: ๋ฌธ์„œ๋Š” unstructured.io ํŒŒ์„œ๋ฅผ ํ†ต๊ณผํ•˜๊ณ , 1,500์ž ์ฒญํฌ์— 100์ž ์˜ค๋ฒ„๋žฉ์œผ๋กœ ๋ถ„ํ• ๋˜๋ฉฐ, Ollama๊ฐ€ ์„œ๋น™ํ•˜๋Š” ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ(๊ธฐ๋ณธ๊ฐ’์œผ๋กœ nomic-embed-text)๋กœ ์ž„๋ฒ ๋”ฉ๋˜์–ด ChromaDB์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰์€ ์žฌ๋žญํ‚น ์—†๋Š” ๋‹จ์ˆœํ•œ ๊ณ ๋ฐ€๋„ ๊ฒ€์ƒ‰์ž…๋‹ˆ๋‹ค. ์ฑ„ํŒ… ๋ชจ๋ธ์€ ๊ณ ์ • ํ”„๋กฌํ”„ํŠธ ์ ‘๋‘์‚ฌ์™€ ํ•จ๊ป˜ ์ƒ์œ„ K๊ฐœ ์ฒญํฌ๋ฅผ ์ปจํ…์ŠคํŠธ๋กœ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋Ÿฌํ•œ ๊ฒฐ์ •์ด ์ค‘์š”ํ•œ ์ด์œ : AnythingLLM์˜ LanceDB๋Š” *์“ฐ๊ธฐ*์— ๊ฐ€์žฅ ๋น ๋ฅด์ง€๋งŒ 100k ์ฒญํฌ๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ์Šค์บ”์ด ๋А๋ ค์ง‘๋‹ˆ๋‹ค. PrivateGPT์˜ Qdrant๋Š” ๋” ๋ฉ€๋ฆฌ ํ™•์žฅ๋˜์ง€๋งŒ FastAPI ํ™‰์œผ๋กœ ์ธํ•ด ์ตœ์†Œ ~50ms์˜ ์ฟผ๋ฆฌ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. Open WebUI์˜ ChromaDB๋Š” ์„ธ ๊ฐ€์ง€ ์ค‘ ์“ฐ๊ธฐ์— ๊ฐ€์žฅ ๋А๋ฆฌ์ง€๋งŒ ์šด์˜ํ•˜๊ธฐ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.
RAG ํŒŒ์ดํ”„๋ผ์ธ ์•„ํ‚คํ…์ฒ˜ ๋น„๊ต: AnythingLLM์€ ํฌ๋กœ์Šค ์ธ์ฝ”๋” ์žฌ๋žญํ‚น์ด ํฌํ•จ๋œ LangChain.js + LanceDB๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. PrivateGPT๋Š” ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ฒญํ‚น๊ณผ REST API๊ฐ€ ํฌํ•จ๋œ LlamaIndex + Qdrant๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Open WebUI๋Š” ์žฌ๋žญํ‚น ๋‹จ๊ณ„ ์—†๋Š” ๋‹จ์ผ ๋‹จ๊ณ„ ๊ณ ๋ฐ€๋„ ๊ฒ€์ƒ‰๊ณผ ํ•จ๊ป˜ unstructured.io + ChromaDB๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
RAG ํŒŒ์ดํ”„๋ผ์ธ ์•„ํ‚คํ…์ฒ˜ ๋น„๊ต: AnythingLLM์€ ํฌ๋กœ์Šค ์ธ์ฝ”๋” ์žฌ๋žญํ‚น์ด ํฌํ•จ๋œ LangChain.js + LanceDB๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. PrivateGPT๋Š” ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ฒญํ‚น๊ณผ REST API๊ฐ€ ํฌํ•จ๋œ LlamaIndex + Qdrant๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Open WebUI๋Š” ์žฌ๋žญํ‚น ๋‹จ๊ณ„ ์—†๋Š” ๋‹จ์ผ ๋‹จ๊ณ„ ๊ณ ๋ฐ€๋„ ๊ฒ€์ƒ‰๊ณผ ํ•จ๊ป˜ unstructured.io + ChromaDB๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’กTip: ์•„ํ‚คํ…์ฒ˜ ์ฐจ์ด๋Š” ์•ฝ 1,000ํŽ˜์ด์ง€ ์ดํ•˜์—์„œ๋Š” ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค โ€” ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘ ๋น ๋ฅด๊ฒŒ ๋А๊ปด์ง‘๋‹ˆ๋‹ค. ์•ฝ 5,000ํŽ˜์ด์ง€๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ๊ฒฐ์ •์  ์ฐจ์ด๊ฐ€ ๋‚ฉ๋‹ˆ๋‹ค. AnythingLLM์˜ ์žฌ๋žญํ‚น ๋‹จ๊ณ„๋Š” ~70ms๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€๋งŒ ๋ฆฌ์ฝœ์—์„œ ~3%ํฌ์ธํŠธ๋ฅผ ํšŒ๋ณตํ•ฉ๋‹ˆ๋‹ค. PrivateGPT์˜ Qdrant๋Š” ํŽ˜์ด์ง• ์—†์ด ๋””์Šคํฌ์— ์ธ๋ฑ์Šค๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. Open WebUI์˜ ์žฌ๋žญํ‚น ๋‹จ๊ณ„ ๋ถ€์žฌ๊ฐ€ ์„ธ ํ”Œ๋žซํผ ์ค‘ ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ ์ด ๊ฐ€์žฅ ๋†’์€ ์ฃผ๋œ ์ด์œ ์ž…๋‹ˆ๋‹ค.

AnythingLLM: ํ”„๋กœ๋•์…˜๊ธ‰ ์„ ํƒ์ง€

AnythingLLM์€ ์„ธ ํ”Œ๋žซํผ ์ค‘ ์œ ์ผํ•˜๊ฒŒ RAG๋ฅผ ์ผ๊ธ‰ ์ œํ’ˆ ๊ธฐ๋Šฅ์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—…๊ณต๊ฐ„, ์ธ์šฉ, ์ž„๋ฒ ๋” ์„ ํƒ, ์ฒญํฌ ์ œ์–ด๊ฐ€ ๋ชจ๋‘ GUI์— ์žˆ์Šต๋‹ˆ๋‹ค โ€” YAML์ด๋‚˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์•ˆ์— ์ˆจ๊ฒจ์ ธ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์„ค์น˜ ๊ฒฝ๋กœ: anythingllm.com์˜ ๋ฐ์Šคํฌํ†ฑ ์ธ์Šคํ†จ๋Ÿฌ(์„œ๋ช…๋จ, ~430MB, macOS/Windows/Linux) ๋˜๋Š” ์…€ํ”„ ํ˜ธ์ŠคํŒ… ๋ฉ€ํ‹ฐ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ Docker. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๋Š” ๋ฐ์Šคํฌํ†ฑ ๋นŒ๋“œ๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ํ˜•์‹: PDF, DOCX, TXT, MD, EPUB, HTML, CSV, JSON, ์›น์‚ฌ์ดํŠธ(๋‚ด์žฅ ์Šคํฌ๋ ˆ์ดํผ), ๋‚ด์žฅ Whisper๋ฅผ ํ†ตํ•œ ์˜ค๋””์˜ค(MP3, WAV, M4A).
  • ์ž„๋ฒ ๋”ฉ ์œ ์—ฐ์„ฑ: 2026๋…„ 5์›” ๊ธฐ์ค€ 8๊ฐœ ๋ฐฑ์—”๋“œ โ€” Native(์†Œํ˜• ๋‚ด์žฅ ๋ชจ๋ธ), Ollama(๋‹ค์šด๋กœ๋“œํ•œ ๋ชจ๋“  ์ž„๋ฒ ๋”), LM Studio, OpenAI, Azure OpenAI, Cohere, Voyage, LocalAI. ์ „ํ™˜ ์‹œ ์ „์ฒด ์žฌ์ธ๋ฑ์‹ฑ์ด ๊ฐ•์ œ๋˜์ง€๋งŒ ์›ํด๋ฆญ ์ž‘์—…์ž…๋‹ˆ๋‹ค.
  • ์ฒญํฌ ์ œ์–ด: ์ฒญํฌ ํฌ๊ธฐ์™€ ์˜ค๋ฒ„๋žฉ์ด ์ž‘์—…๊ณต๊ฐ„๋ณ„๋กœ ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ํ›„ Re-embed-all์ด LanceDB ์Šคํ† ์–ด๋ฅผ ์žฌ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‹œ๋งจํ‹ฑ์ด๋‚˜ ๊ณ„์ธต์  ์ฒญํ‚น์€ ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ธ์šฉ: ๊ฐ ์‘๋‹ต์€ ํŒŒ์ผ๋ช… + ํŽ˜์ด์ง€(PDF), ํŒŒ์ผ๋ช… + ์„น์…˜(MD), ํŒŒ์ผ๋ช…๋งŒ(TXT)์ด ํฌํ•จ๋œ ์†Œ์Šค ์ฒญํฌ๊ฐ€ ์žˆ๋Š” ๊ฐ์ฃผ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ธ์šฉ ํŒจ๋„์€ ์†Œ์Šค ์ฒญํฌ๋ฅผ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค โ€” ์ด๊ฒƒ์ด ๋‚ฎ์€ ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ ์˜ ์ฃผ๋œ ์ด์œ ์ž…๋‹ˆ๋‹ค.
  • 5,047ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค ์„ฑ๋Šฅ: RTX 4070์—์„œ ์ธ๋ฑ์‹ฑ์— 14๋ถ„ 42์ดˆ ์†Œ์š”(๊ธฐ๋ณธ Native ์ž„๋ฒ ๋”), GPU ๋ฉ”๋ชจ๋ฆฌ ํ”ผํฌ 6.2GB. ๊ฒ€์ƒ‰ ์ง€์—ฐ ์‹œ๊ฐ„ p50 310ms, p95 880ms. ๋””์Šคํฌ์˜ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํฌ๊ธฐ: 184MB.
  • ๊ทœ์ • ์ค€์ˆ˜ ์ฐธ๊ณ : ๊ณต์‹ ๋ฐ์Šคํฌํ†ฑ ๋นŒ๋“œ์—๋Š” ํด๋กœ์ฆˆ๋“œ ์†Œ์Šค ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค; GitHub ์ €์žฅ์†Œ๋Š” ์˜คํ”ˆ ์†Œ์Šค(MIT)์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ์˜๋ฌด ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ ์†Œ์Šค์—์„œ ๋นŒ๋“œํ•˜์‹ญ์‹œ์˜ค.

๐Ÿ’กTip: ๋ฌธ์„œ ์œ ํ˜•๋ณ„์ด ์•„๋‹Œ ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ์ž‘์—…๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋ณ„๋„์˜ ์ž‘์—…๊ณต๊ฐ„์€ ์ธ์šฉ ๊ต์ฐจ ์˜ค์—ผ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์‹ค์ œ ์ฝ˜ํ…์ธ ์— ๋”ฐ๋ผ ์ฒญํฌ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค(๋ฒ•๋ฅ  ๋ฌธ์„œ๋Š” ๋” ์ž‘์€ ์ฒญํฌ๊ฐ€ ํ•„์š”ํ•˜๊ณ , ๊ธฐ์ˆ  ๋งค๋‰ด์–ผ์€ ๋” ํฐ ์ฒญํฌ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค).

PrivateGPT: ์˜คํ”„๋ผ์ธ ์ž‘๋™์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ์„ ํƒ์ง€

PrivateGPT๋Š” ๋ฌด์—‡๋ณด๋‹ค ๋จผ์ € Python ์„œ๋น„์Šค์ด๊ณ  ๊ทธ ๋‹ค์Œ์— ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ์ด ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋Š” ์บ์ฃผ์–ผ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์ž˜๋ชป๋œ ๋„๊ตฌ์ด์ง€๋งŒ, ์ž์ฒด ๋ฐฑ์—”๋“œ์—์„œ RAG๋ฅผ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜, ๊ทœ์ • ์ค€์ˆ˜ ์ž์„ธ๋ฅผ ๊ฐ•ํ™”ํ•˜๊ฑฐ๋‚˜, ๊ฒ€์ƒ‰ ํ’ˆ์งˆ์„ ๊ณผํ•™์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ์ž„๋ฒ ๋”๋ฅผ ๊ต์ฒดํ•ด์•ผ ํ•˜๋Š” ํŒ€์—๊ฒŒ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

  • ์„ค์น˜ ๊ฒฝ๋กœ: git clone, Poetry install, make๋กœ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ. ์ƒˆ ๋จธ์‹ ์—์„œ 25๋ถ„์„ ์˜ˆ์•ฝํ•˜์‹ญ์‹œ์˜ค. GPU ๊ฐ€์†์„ ์œ„ํ•ด CUDA ํˆดํ‚ท์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Docker ์ด๋ฏธ์ง€๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ ์†Œ์Šค ์ฝ”๋“œ ๋ฆด๋ฆฌ์Šค๋ณด๋‹ค ๋’ค์ฒ˜์ง‘๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ํ˜•์‹: LlamaIndex ๋กœ๋”๋ฅผ ํ†ตํ•œ PDF, DOCX, MD, HTML, TXT, EPUB. ์‚ฌ์šฉ์ž ์ •์˜ ๋กœ๋”๋ฅผ ํ†ตํ•œ CSV์™€ JSON.
  • ์ž„๋ฒ ๋”ฉ ์œ ์—ฐ์„ฑ: ๋ชจ๋“  HuggingFace sentence-transformers ๋ชจ๋ธ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(BAAI/bge-m3, BAAI/bge-small-en-v1.5, nomic-embed-text ๋ณ€ํ˜•, mxbai-embed-large). settings.yaml์—์„œ ๊ตฌ์„ฑ; GUI ์„ ํƒ๊ธฐ ์—†์Œ.
  • ์ฒญํฌ ์ „๋žต: ์ „์ฒด LlamaIndex ํˆดํ‚ท์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” SentenceSplitter, SentenceWindowNodeParser, HierarchicalNodeParser, SemanticSplitterNodeParser. ํ›„์ž ๋‘ ๊ฐ€์ง€๋Š” ํ…Œ์ŠคํŠธ์—์„œ ๋‹ค๋‹จ๊ณ„ ์ฟผ๋ฆฌ์—์„œ AnythingLLM์˜ ๊ณ ์ • ํฌ๊ธฐ ์ฒญํ‚น์„ ~5%ํฌ์ธํŠธ ์•ž์„ฐ์Šต๋‹ˆ๋‹ค.
  • ์ธ์šฉ: API ์‘๋‹ต์˜ ๊ตฌ์กฐํ™”๋œ JSON(ํŒŒ์ผ๋ช… + ์ฒญํฌ ID + ์ ์ˆ˜). ๋‚ด์žฅ Gradio ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ด๋ฅผ ์ ‘์„ ์ˆ˜ ์žˆ๋Š” ์†Œ์Šค ํŒจ๋„๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. PDF์˜ ๊ฒฝ์šฐ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ณ , ์ผ๋ฐ˜ ํ…์ŠคํŠธ์˜ ๊ฒฝ์šฐ ์—†์Šต๋‹ˆ๋‹ค.
  • 5,047ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค ์„ฑ๋Šฅ: RTX 4070์—์„œ ์ธ๋ฑ์‹ฑ์— 18๋ถ„ 6์ดˆ ์†Œ์š”(๊ธฐ๋ณธ sentence-transformers all-MiniLM-L6-v2), GPU ๋ฉ”๋ชจ๋ฆฌ ํ”ผํฌ 4.8GB. ๊ฒ€์ƒ‰ ์ง€์—ฐ ์‹œ๊ฐ„ p50 240ms, p95 720ms โ€” ์„ธ ํ”Œ๋žซํผ ์ค‘ ๊ฐ€์žฅ ๋น ๋ฆ…๋‹ˆ๋‹ค. ๋””์Šคํฌ์˜ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํฌ๊ธฐ(๋กœ์ปฌ Qdrant): 156MB.
  • ๊ทœ์ • ์ค€์ˆ˜ ์ž์„ธ: ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ ์—†์Œ, ๋ถ„์„ SDK ์—†์Œ, FastAPI ์„œ๋น„์Šค๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ localhost์— ๋ฐ”์ธ๋”ฉ๋จ, ๋ชจ๋“  ๊ฐ€์ค‘์น˜๋Š” ๋””์Šคํฌ์— ์žˆ์Œ. EU AI๋ฒ•/GDPR ๋งฅ๋ฝ์—์„œ ๊ฐ์‚ฌํ•˜๊ธฐ ๊ฐ€์žฅ ์‰ฝ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ŒNote: PrivateGPT๋Š” ์„ธ ํ”Œ๋žซํผ ์ค‘ ์œ ์ผํ•˜๊ฒŒ ์‹ค์ œ API ํ‘œ๋ฉด์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค โ€” POST /v1/chat/completions, POST /v1/ingest/file ๋“ฑ. ์ตœ์ข… ๋ชฉํ‘œ๊ฐ€ Python ๋ฐฑ์—”๋“œ๋‚˜ n8n/Zapier ๊ฐ™์€ ์ž๋™ํ™” ๋„๊ตฌ์—์„œ RAG๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด, PrivateGPT๊ฐ€ ์œ ์ผํ•˜๊ฒŒ ํ•ฉ๋ฆฌ์ ์ธ ์ถœ๋ฐœ์ ์ž…๋‹ˆ๋‹ค.

Open WebUI: ๋ฉ€ํ‹ฐ ์‚ฌ์šฉ์ž ์ฑ„ํŒ… ํ”„๋ŸฐํŠธ์—”๋“œ

Open WebUI๋Š” RAG๋ฅผ ํฌํ•จํ•˜๋„๋ก ์„ฑ์žฅํ•œ ์ฑ„ํŒ… ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค. RAG๋ฅผ ํฌํ•จํ•˜๋„๋ก ์„ฑ์žฅํ•œ RAG ์ œํ’ˆ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ ๊ธฐ์›์ด ๋А๊ปด์ง‘๋‹ˆ๋‹ค: ์ฑ„ํŒ… ๊ฒฝํ—˜์€ ์„ธ ํ”Œ๋žซํผ ์ค‘ ๊ฐ€์žฅ ๊น”๋”ํ•˜์ง€๋งŒ, RAG๋Š” ๋ฏธ๋“ค์›จ์–ด๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ ๊ทธ๋ ‡๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

  • ์„ค์น˜ ๊ฒฝ๋กœ: Ollama์™€ ํ•จ๊ป˜ Docker compose. Docker๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋œ ๊ฒฝ์šฐ ์ƒˆ ๋จธ์‹ ์—์„œ ~12๋ถ„. ๋„ค์ดํ‹ฐ๋ธŒ ์ธ์Šคํ†จ๋Ÿฌ ์—†์Œ โ€” Docker๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ํ˜•์‹: PDF, DOCX, TXT, MD, HTML, CSV, EPUB. ์„ ํƒ์  unstructured.io ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•œ ์ด๋ฏธ์ง€ OCR.
  • ์ž„๋ฒ ๋”ฉ ์œ ์—ฐ์„ฑ: Ollama๊ฐ€ ์„œ๋น™ํ•˜๋Š” ๋ชจ๋“  ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ(nomic-embed-text, mxbai-embed-large, snowflake-arctic-embed) + SentenceTransformers + OpenAI ํ˜ธํ™˜ ์—”๋“œํฌ์ธํŠธ. ๋ณ€๊ฒฝ์€ ์„ค์ •์˜ ํ† ๊ธ€์ด์ง€๋งŒ ๋ชจ๋“  ์ปฌ๋ ‰์…˜์˜ ์ „์ฒด ์žฌ์ธ๋ฑ์‹ฑ์ด ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.
  • ์ฒญํฌ ์ „๋žต: ์ฒญํฌ ํฌ๊ธฐ์™€ ์˜ค๋ฒ„๋žฉ์€ ์ „์—ญ์œผ๋กœ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•˜๋ฉฐ(๊ธฐ๋ณธ๊ฐ’ 1,500/100) ๋ฌธ์„œ๋ณ„ ์˜ค๋ฒ„๋ผ์ด๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๋งจํ‹ฑ์ด๋‚˜ ๊ณ„์ธต์  ์Šคํ”Œ๋ฆฌํ„ฐ ์—†์Œ.
  • ์ธ์šฉ: ํŒŒ์ผ๋ช…๋งŒ, ์‘๋‹ต ์•„๋ž˜ ์ž‘์€ "Sources" ํ‘ธํ„ฐ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ ์—†์Œ, ์ฒญํฌ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ์—†์Œ. ์ด๊ฒƒ์ด ์„ธ ํ”Œ๋žซํผ ์ค‘ ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ ์ด ๊ฐ€์žฅ ๋†’์€ ์ฃผ๋œ ์ด์œ ์ž…๋‹ˆ๋‹ค.
  • 5,047ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค ์„ฑ๋Šฅ: RTX 4070์—์„œ ์ธ๋ฑ์‹ฑ์— 21๋ถ„ 18์ดˆ ์†Œ์š”(Ollama๋ฅผ ํ†ตํ•œ ๊ธฐ๋ณธ nomic-embed-text), GPU ๋ฉ”๋ชจ๋ฆฌ ํ”ผํฌ 5.4GB. ๊ฒ€์ƒ‰ ์ง€์—ฐ ์‹œ๊ฐ„ p50 380ms, p95 1,040ms โ€” ์„ธ ํ”Œ๋žซํผ ์ค‘ ๊ฐ€์žฅ ๋А๋ฆฝ๋‹ˆ๋‹ค. ๋””์Šคํฌ์˜ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํฌ๊ธฐ(ChromaDB): 212MB.
  • ๋ฉ€ํ‹ฐ ์‚ฌ์šฉ์ž: OAuth(Google, Microsoft, GitHub, ์ผ๋ฐ˜ OIDC), ์‚ฌ์šฉ์ž๋ณ„ ์ปฌ๋ ‰์…˜, ์—ญํ•  ๊ธฐ๋ฐ˜ ์ ‘๊ทผ. ๊ณต์œ  ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์„ธ ํ”Œ๋žซํผ ์ค‘ ์ตœ๊ณ .

๐Ÿ’กTip: Open WebUI ํ•œ์ •์œผ๋กœ, ๋ช…์‹œ์ ์ธ ์ธ์šฉ ํ”„๋กฌํ”„ํŠธ ์—†์ด๋„ ์ธ์šฉ์„ ์ž˜ ํ•˜๋Š” ๋ชจ๋ธ๋กœ ๊ธฐ๋ณธ ์ฑ„ํŒ… ๋ชจ๋ธ์„ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค. Qwen3 14B์™€ Llama 3.3 70B๋Š” ์š”์ฒญํ•˜์ง€ ์•Š์•„๋„ ์ถœ์ฒ˜๋ฅผ ์–ธ๊ธ‰ํ•˜์ง€๋งŒ, Llama 3.3 8B์™€ Phi-4 Mini๋Š” ์••๋ฐ• ํ•˜์— ์ธ์šฉ์„ ์ข…์ข… ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

5,047ํŽ˜์ด์ง€์—์„œ ๊ฒ€์ƒ‰ ์ง€์—ฐ ์‹œ๊ฐ„ (p50 / p95)

์ง€์—ฐ ์‹œ๊ฐ„์€ ์ฟผ๋ฆฌ ์ œ์ถœ๋ถ€ํ„ฐ ์ฒซ ๋ฒˆ์งธ ์‘๋‹ต ํ† ํฐ๊นŒ์ง€ ์—”๋“œ-ํˆฌ-์—”๋“œ๋กœ ์ธก์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฑ„ํŒ… ๋ชจ๋ธ์ด ์ด๋ฏธ ๋กœ๋“œ๋œ RTX 4070์—์„œ, 50๊ฐœ ์ฟผ๋ฆฌ์˜ ์ค‘์•™๊ฐ’; p95๋Š” 50๊ฐœ ์ค‘ 48๋ฒˆ์งธ๋กœ ๋‚˜์œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

๋‹จ๊ณ„AnythingLLMPrivateGPTOpen WebUI
์ฟผ๋ฆฌ ์ž„๋ฒ ๋”ฉ (๋ฒกํ„ฐ ์ƒ์„ฑ)40ms35ms90ms
๋ฒกํ„ฐ ๊ฒ€์ƒ‰ (top-K=6)180ms110ms210ms
์žฌ๋žญํ‚น (ํฌ๋กœ์Šค ์ธ์ฝ”๋”)70ms60ms (์„ ํƒ์ )N/A
ํ”„๋กฌํ”„ํŠธ ์กฐ๋ฆฝ + LLM TTFT20ms35ms80ms
์ด p50310ms240ms380ms
์ด p95880ms720ms1,040ms
5,047ํŽ˜์ด์ง€์—์„œ ๊ฒ€์ƒ‰ ์ง€์—ฐ ์‹œ๊ฐ„ ๋ถ„์„: PrivateGPT๊ฐ€ 240ms p50/720ms p95๋กœ ๊ฐ€์žฅ ๋น ๋ฆ„; AnythingLLM 310ms p50/880ms p95(70ms ์žฌ๋žญํ‚น ํฌํ•จ); Open WebUI๊ฐ€ ์žฌ๋žญํ‚น ๋‹จ๊ณ„ ์—†์ด 380ms p50/1,040ms p95๋กœ ๊ฐ€์žฅ ๋А๋ฆผ.
5,047ํŽ˜์ด์ง€์—์„œ ๊ฒ€์ƒ‰ ์ง€์—ฐ ์‹œ๊ฐ„ ๋ถ„์„: PrivateGPT๊ฐ€ 240ms p50/720ms p95๋กœ ๊ฐ€์žฅ ๋น ๋ฆ„; AnythingLLM 310ms p50/880ms p95(70ms ์žฌ๋žญํ‚น ํฌํ•จ); Open WebUI๊ฐ€ ์žฌ๋žญํ‚น ๋‹จ๊ณ„ ์—†์ด 380ms p50/1,040ms p95๋กœ ๊ฐ€์žฅ ๋А๋ฆผ.

๐Ÿ“ŒNote: PrivateGPT๋Š” ์›์‹œ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰์—์„œ ์šฐ์Šนํ–ˆ์Šต๋‹ˆ๋‹ค. Qdrant๋Š” ์„ธ ๊ฐ€์ง€ ์ค‘ ๊ฐ€์žฅ ์„ฑ์ˆ™ํ•œ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฉฐ ๋ฐ˜๋ณต ์ฟผ๋ฆฌ ํ•˜์— ๋ฉ”๋ชจ๋ฆฌ์— ์›Œ๋ฐ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. Open WebUI๋Š” FastAPI ๋ฏธ๋“ค์›จ์–ด ์˜ค๋ฒ„ํ—ค๋“œ์™€ ์ž˜๋ชป๋œ ๊ฒ€์ƒ‰์„ ํฌ์ฐฉํ•  ์žฌ๋žญํ‚น ๋‹จ๊ณ„์˜ ๋ถ€์žฌ๋กœ ์ธํ•ด ์ง€์—ฐ๋ฉ๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ ์œ ํ˜•๋ณ„ ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ 

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

์ฟผ๋ฆฌ ์œ ํ˜•AnythingLLMPrivateGPTOpen WebUI
์‚ฌ์‹ค ๊ฒ€์ƒ‰0%10%10%
๋‹ค๋‹จ๊ณ„ ์ถ”๋ก 20%20%30%
์š”์•ฝ0%0%10%
์ธ์šฉ ์ •ํ™•๋„ (์›๋ฌธ ์ธ์šฉ)10%20%20%
๋ชจ์ˆœ ๊ฐ์ง€0%5%0%
์ด๊ณ„ (50๊ฐœ ์ฟผ๋ฆฌ)6%11%14%
50๊ฐœ ํ‰๊ฐ€ ์ฟผ๋ฆฌ์—์„œ ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ : AnythingLLM ์ด 6%(์‚ฌ์‹ค ๊ฒ€์ƒ‰ 0%, ์š”์•ฝ 0%); PrivateGPT 11%; Open WebUI 14% โ€” ๋‹ค๋‹จ๊ณ„ ์ถ”๋ก ์€ ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘์—๊ฒŒ ๊ฐ€์žฅ ์•ฝํ•œ ์ฟผ๋ฆฌ ์œ ํ˜•์ž…๋‹ˆ๋‹ค.
50๊ฐœ ํ‰๊ฐ€ ์ฟผ๋ฆฌ์—์„œ ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ : AnythingLLM ์ด 6%(์‚ฌ์‹ค ๊ฒ€์ƒ‰ 0%, ์š”์•ฝ 0%); PrivateGPT 11%; Open WebUI 14% โ€” ๋‹ค๋‹จ๊ณ„ ์ถ”๋ก ์€ ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘์—๊ฒŒ ๊ฐ€์žฅ ์•ฝํ•œ ์ฟผ๋ฆฌ ์œ ํ˜•์ž…๋‹ˆ๋‹ค.

๐Ÿ’กTip: ๋‹ค๋‹จ๊ณ„ ์ถ”๋ก ์€ ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘ ๊ณ ์ „ํ•˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค. ํ•ด๊ฒฐ์ฑ…์€ ํ”Œ๋žซํผ์ด ์•„๋‹Œ ์ฑ„ํŒ… ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. Llama 3.3 8B๋ฅผ Qwen3 14B๋กœ ๊ต์ฒดํ•˜๋ฉด ๊ฐ ํ”Œ๋žซํผ์—์„œ ๋‹ค๋‹จ๊ณ„ ํ™˜๊ฐ์ด ~10%ํฌ์ธํŠธ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. RAG ํ’ˆ์งˆ์€ ํ•„์š”ํ•˜์ง€๋งŒ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค; ์ฑ„ํŒ… ๋ชจ๋ธ์ด ๊ฒ€์ƒ‰๋œ ์ฒญํฌ์— ๋Œ€ํ•ด ์‹ค์ œ๋กœ ์ถ”๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ์‘๋‹ต์—์„œ์˜ ์ธ์šฉ ํ’ˆ์งˆ

์ธ์šฉ ํ’ˆ์งˆ์€ RAG์—์„œ ๊ฐ€์žฅ ๊ณผ์†Œํ‰๊ฐ€๋œ ์ฐจ์›์ž…๋‹ˆ๋‹ค. ์ธ์šฉ ์—†๋Š” ์˜ฌ๋ฐ”๋ฅธ ์‘๋‹ต์€ ํ›„์† ์ž‘์—…์— ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค; ์ž˜๋ชป๋œ ์ธ์šฉ๊ณผ ํ•จ๊ป˜ ์ž์‹  ์žˆ๊ฒŒ ๋“ค๋ฆฌ๋Š” ์‘๋‹ต์€ ์‘๋‹ต์ด ์—†๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋‚˜์ฉ๋‹ˆ๋‹ค.

  • AnythingLLM โ€” ์ธ์šฉ์€ ์ธ๋ผ์ธ(๊ฐ์ฃผ ๋งˆ์ปค)์œผ๋กœ ํ‘œ์‹œ๋˜๋ฉฐ ํŒŒ์ผ๋ช… + ํŽ˜์ด์ง€๊ฐ€ ์žˆ๋Š” ๋ฌธ์ž ๊ทธ๋Œ€๋กœ์˜ ์ฒญํฌ๊ฐ€ ํฌํ•จ๋œ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํŒจ๋„๋กœ๋„ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. PDF์˜ ๊ฒฝ์šฐ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ณ (๋กœ๋”์—์„œ ํŒŒ์‹ฑ), ์ผ๋ฐ˜ ํ…์ŠคํŠธ์˜ ๊ฒฝ์šฐ ํŒŒ์ผ๋ช…๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ฆญํ•˜์—ฌ ์†Œ์Šค๋กœ ์ด๋™ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • PrivateGPT โ€” ์ธ์šฉ์€ API ์‘๋‹ต์—์„œ ๊ตฌ์กฐํ™”๋œ JSON์œผ๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค({filename, chunk_id, score, text}). ๋‚ด์žฅ Gradio ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ด๋ฅผ ์ ‘์„ ์ˆ˜ ์žˆ๋Š” "Sources" ํŒจ๋„๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. PDF์˜ ๊ฒฝ์šฐ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ณ , MD์™€ TXT์˜ ๊ฒฝ์šฐ ์—†์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์  ์†Œ๋น„๋ฅผ ์œ„ํ•ด ์ตœ์ ์ž…๋‹ˆ๋‹ค.
  • Open WebUI โ€” ํŒŒ์ผ๋ช…๋งŒ, ์‘๋‹ต ์•„๋ž˜ ์ž‘์€ "Sources:" ํ‘ธํ„ฐ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ ์—†์Œ, ์ฒญํฌ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ์—†์Œ, ํด๋ฆญํ•˜์—ฌ ์†Œ์Šค๋กœ ์ด๋™ํ•˜๋Š” ๊ธฐ๋Šฅ ์—†์Œ. ๋น„๊ณต์‹ ์ฑ„ํŒ…์—๋Š” ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ํ•™์ˆ ์ ์ด๋‚˜ ๋ฒ•์  ์ž‘์„ฑ์—๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • 10๊ฐœ์˜ ์ธ์šฉ ์ •ํ™•๋„ ์ฟผ๋ฆฌ(์›๋ฌธ ์ธ์šฉ ๊ฒ€์ƒ‰)์—์„œ AnythingLLM์ด 9/10, PrivateGPT๊ฐ€ 8/10, Open WebUI๊ฐ€ 8/10์„ ๋งžํ˜”์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Open WebUI์˜ ์‹คํŒจ๋Š” ์ฒญํฌ ํ…์ŠคํŠธ๊ฐ€ ์ธ์šฉ์— ํฌํ•จ๋˜์ง€ ์•Š์•„ ๊ฐ์ง€ํ•˜๊ธฐ ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ์œ ์—ฐ์„ฑ

๊ธฐ๋ณธ ์ž„๋ฒ ๋”๋Š” ํŠน์ • ์ฝ”ํผ์Šค์— ๊ฑฐ์˜ ์ตœ์„ ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ฒ•๋ฅ  ํ…์ŠคํŠธ, ์ฝ”๋“œ, ๋‹ค๊ตญ์–ด ์ฝ˜ํ…์ธ ๋Š” ๊ฐ๊ฐ ์„ ํ˜ธํ•˜๋Š” ์ž„๋ฒ ๋”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์ด ๊ฒ€์ƒ‰ ํ’ˆ์งˆ์„ ์กฐ์ •ํ•˜๋ ค๋Š” ๋ชจ๋“  ํŒ€์—๊ฒŒ ์Šน๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • AnythingLLM โ€” GUI์—์„œ 8๊ฐœ ๋ฐฑ์—”๋“œ, ํด๋ฆญ์œผ๋กœ ์ „ํ™˜. Re-embed-all์ด LanceDB ์ธ๋ฑ์Šค๋ฅผ ์žฌ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์ ์ด์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž„๋ฒ ๋”๋ฅผ A/B ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ์„ธ ํ”Œ๋žซํผ ์ค‘ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.
  • PrivateGPT โ€” settings.yaml์„ ํ†ตํ•œ ๋ชจ๋“  HuggingFace sentence-transformers ๋ชจ๋ธ. ๋” ๋„“์€ ์‹ค์ œ ์„ ํƒ ํญ(๋‹ค๊ตญ์–ด์šฉ bge-m3์„ ํฌํ•จํ•œ ๋ชจ๋“  ๊ฒŒ์‹œ๋œ BAAI/bge-* ๋ชจ๋ธ์ด ์ž‘๋™)์ด์ง€๋งŒ, YAML ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ์žฌ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Open WebUI โ€” Ollama + SentenceTransformers + OpenAI ํ˜ธํ™˜ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ์„œ๋น™ํ•˜๋Š” ์ž„๋ฒ ๋”. ์„ค์ •์˜ ํ† ๊ธ€; ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ์ด ์ด๋ฏธ Ollama์— ๋‹ค์šด๋กœ๋“œ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์žฌ์ธ๋ฑ์‹ฑ์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • 5,047ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค์—์„œ ํ…Œ์ŠคํŠธ: ๊ธฐ๋ณธ ์ž„๋ฒ ๋”๋ฅผ BAAI/bge-m3๋กœ ๊ต์ฒดํ•˜๋ฉด ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘์—์„œ ์ „์ฒด ๋ฆฌ์ฝœ์ด 4~7%ํฌ์ธํŠธ ํ–ฅ์ƒ๋˜์—ˆ์ง€๋งŒ, ์ธ๋ฑ์‹ฑ ์‹œ๊ฐ„์ด 3๋ฐฐ ์ฆ๊ฐ€ํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค ์ค‘ ~1GB์˜ GPU ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋กœ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๊ตญ์–ด ์ฝ”ํผ์Šค(๋…์ผ์–ด, ํ”„๋ž‘์Šค์–ด, ์ผ๋ณธ์–ด, ์ค‘๊ตญ์–ด ํ˜ผํ•ฉ)์˜ ๊ฒฝ์šฐ, bge-m3๋Š” ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘์—์„œ ๊ธฐ๋ณธ ์ž„๋ฒ ๋”๋ฅผ ๋Šฅ๊ฐ€ํ•˜์ง€๋งŒ, PrivateGPT๋งŒ Ollama๋ฅผ ์šฐํšŒํ•˜์ง€ ์•Š๊ณ  ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ์œ ์—ฐ์„ฑ: AnythingLLM์€ Ollama, OpenAI, Cohere๋ฅผ ํฌํ•จํ•œ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ 8๊ฐœ์˜ ์„ ํƒ ๊ฐ€๋Šฅํ•œ ๋ฐฑ์—”๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. PrivateGPT๋Š” 100๊ฐœ ์ด์ƒ์˜ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” bge-m3๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  HuggingFace sentence-transformers ๋ชจ๋ธ์„ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Open WebUI๋Š” SentenceTransformers์™€ ํ•จ๊ป˜ Ollama๊ฐ€ ์„œ๋น™ํ•˜๋Š” ์ž„๋ฒ ๋”๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ์œ ์—ฐ์„ฑ: AnythingLLM์€ Ollama, OpenAI, Cohere๋ฅผ ํฌํ•จํ•œ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ 8๊ฐœ์˜ ์„ ํƒ ๊ฐ€๋Šฅํ•œ ๋ฐฑ์—”๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. PrivateGPT๋Š” 100๊ฐœ ์ด์ƒ์˜ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” bge-m3๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  HuggingFace sentence-transformers ๋ชจ๋ธ์„ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Open WebUI๋Š” SentenceTransformers์™€ ํ•จ๊ป˜ Ollama๊ฐ€ ์„œ๋น™ํ•˜๋Š” ์ž„๋ฒ ๋”๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์•„๋ฌด๋„ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š๋Š” ์ˆจ๊ฒจ์ง„ ๋น„์šฉ

์œ„์˜ ๋ฒค์น˜๋งˆํฌ ์ˆ˜์น˜๋Š” ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๋น„์šฉ์€ ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ๋ฅผ ๋ง์น˜๋Š” ๊ฒƒ๋“ค์ž…๋‹ˆ๋‹ค. ๊ณ„ํšํ•˜๊ธฐ ์ „์— ์ด๊ฒƒ๋“ค์„ ํŒŒ์•…ํ•˜์‹ญ์‹œ์˜ค.

  • ๋ชจ๋ธ ์ „ํ™˜ ์‹œ ์žฌ์ž„๋ฒ ๋”ฉ: ์ž„๋ฒ ๋”๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์ „์ฒด ์žฌ์ธ๋ฑ์‹ฑ์ด ๊ฐ•์ œ๋ฉ๋‹ˆ๋‹ค โ€” ์„ธ ํ”Œ๋žซํผ ์–ด๋А ๊ฒƒ์—๋„ ์ ์ง„์  ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฒฝ๋กœ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. 5,047ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค์—์„œ ์ด ์ž‘์—…์€ 14~21๋ถ„์˜ GPU ์‹œ๊ฐ„์ด ์†Œ์š”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์†Œ๋น„์ž ํ•˜๋“œ์›จ์–ด์—์„œ 1,000ํŽ˜์ด์ง€๋‹น ~3~5๋ถ„, 24GB ์ด์ƒ GPU์—์„œ 1,000ํŽ˜์ด์ง€๋‹น ~1๋ถ„์„ ์˜ˆ์ƒํ•˜์‹ญ์‹œ์˜ค.
  • ๋””์Šคํฌ์˜ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ† ๋ฆฌ์ง€: 5,047ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค์—์„œ 184MB(AnythingLLM/LanceDB), 156MB(PrivateGPT/Qdrant), 212MB(Open WebUI/ChromaDB). ์„ ํ˜•์œผ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค โ€” 50,000ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค๋Š” ๋ฒกํ„ฐ๋งŒ์œผ๋กœ 1.5~2GB๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฑ์—… ๋น„์šฉ์ด ๋”ฐ๋ผ์˜ต๋‹ˆ๋‹ค.
  • ์ธ๋ฑ์‹ฑ ์ค‘ GPU ๋ฉ”๋ชจ๋ฆฌ: ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ์€ ์ด๋ฏธ VRAM์„ ์ฐจ์ง€ํ•˜๋Š” ์ฑ„ํŒ… ๋ชจ๋ธ๊ณผ ํ•จ๊ป˜ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. GPU ๋ฉ”๋ชจ๋ฆฌ ํ”ผํฌ๋Š” 12GB ์นด๋“œ์—์„œ 6.2GB(AnythingLLM), 4.8GB(PrivateGPT), 5.4GB(Open WebUI)์˜€์Šต๋‹ˆ๋‹ค. VRAM์— Llama 3.3 70B๊ฐ€ ์žˆ์œผ๋ฉด ์ธ๋ฑ์‹ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค โ€” ๋จผ์ € ์ฑ„ํŒ…์„ ์–ธ๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒ€์ƒ‰ ์ค‘ ์‹œ์Šคํ…œ RAM: ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋””์Šคํฌ์—์„œ ํŽ˜์ด์ง•ํ•˜์ง€๋งŒ ์›Œ๋ฐ๋œ ์บ์‹œ๋Š” RAM์„ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค. 5,000ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค์—์„œ 1~3GB์˜ ์ž”๋ฅ˜ ์‚ฌ์šฉ๋Ÿ‰, 25,000ํŽ˜์ด์ง€์—์„œ 6~10GB๋ฅผ ์˜ˆ์ƒํ•˜์‹ญ์‹œ์˜ค.
  • ์žฌ๋žญํ‚น ์—ฐ์‚ฐ: AnythingLLM์˜ ์žฌ๋žญํ‚น ํฌ๋กœ์Šค ์ธ์ฝ”๋”๋Š” GPU์—์„œ ์‹คํ–‰๋˜์–ด ์ฟผ๋ฆฌ๋‹น 60~100ms์™€ ~500MB์˜ GPU ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ’ˆ์งˆ ์ธก๋ฉด์—์„œ ๊ฐ€์น˜๊ฐ€ ์žˆ์ง€๋งŒ(๋ฆฌ์ฝœ ~3%ํฌ์ธํŠธ), ๊ณต์œ  ํ•˜๋“œ์›จ์–ด์—์„œ๋Š” ์‹ค์ œ ๋น„์šฉ์ž…๋‹ˆ๋‹ค.
  • ์œ ์ง€ ๊ด€๋ฆฌ ๋น„์šฉ: PrivateGPT๋Š” ์•ฝ ํ•œ ๋‹ฌ์— ํ•œ ๋ฒˆ LlamaIndex๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค โ€” ํ˜ธํ™˜์„ฑ์„ ๊นจ๋Š” ๋ณ€๊ฒฝ์ด ๋นˆ๋ฒˆํ•ฉ๋‹ˆ๋‹ค. Open WebUI๋Š” 1~2์ฃผ๋งˆ๋‹ค ๊ฒŒ์‹œํ•˜๋ฉฐ ๊ฐ€๋” RAG ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์žฌ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. AnythingLLM์€ ๋ฒ„์ „ ๊ฐ„ ๊ฐ€์žฅ ์•ˆ์ •์ ์ด์ง€๋งŒ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ํด๋กœ์ฆˆ๋“œ ์†Œ์Šค ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’กTip: 6๊ฐœ์›” ์ด์ƒ ์ง€์†๋  ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ, ์„ ํƒํ•œ ์ž„๋ฒ ๋”, ์ด์œ , ํ•˜๋“œ์›จ์–ด์—์„œ์˜ ์ธ๋ฑ์‹ฑ ์‹œ๊ฐ„์„ ๊ธฐ๋กํ•˜์‹ญ์‹œ์˜ค. ์žฌ์ธ๋ฑ์‹ฑ์„ ํ•ด์•ผ ํ•  ๋•Œ โ€” ๊ทธ๋ฆฌ๊ณ  ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค โ€” ๊ทธ ๋ฉ”๋ชจ๊ฐ€ ๋ช‡ ์‹œ๊ฐ„์˜ ๋””๋ฒ„๊น…์„ ์ ˆ์•ฝํ•ด ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ™•์žฅ์„ฑ ํ•œ๊ณ„: ๋ฐ๋ชจ๊ฐ€ ์‹คํŒจํ•˜๋Š” ์ง€์ 

์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘ 1,000ํŽ˜์ด์ง€ ์ดํ•˜์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•˜๋ฉฐ ์†Œ๋น„์ž ํ•˜๋“œ์›จ์–ด์—์„œ 8,000~12,000ํŽ˜์ด์ง€ ์‚ฌ์ด ์–ด๋”˜๊ฐ€์—์„œ ์‹คํŒจํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํ•œ๊ณ„๋Š” ์ธ๋ฑ์‹ฑ ์‹œ๊ฐ„์ด ์•„๋‹™๋‹ˆ๋‹ค โ€” ๊ฒ€์ƒ‰ ๋ฆฌ์ฝœ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์••๋ฐ•์ž…๋‹ˆ๋‹ค.

  • Open WebUI๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค, ์•ฝ 8,000ํŽ˜์ด์ง€์—์„œ โ€” ์žฌ๋žญํ‚น ์—†๋Š” ๋‹จ์ผ ๋‹จ๊ณ„ ๊ณ ๋ฐ€๋„ ๊ฒ€์ƒ‰์ด ์ž˜๋ชป๋œ ์ฒญํฌ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ณ , ๊ธฐ๋ณธ ChromaDB ์„ค์ •์ด ๋ฉ”๋ชจ๋ฆฌ ์••๋ฐ• ํ•˜์— ๋งŽ์ด ํŽ˜์ด์ง•ํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ ์€ ๋‹ค๋ฅธ ๋ณ€๊ฒฝ ์—†์ด 14%(5K ํŽ˜์ด์ง€)์—์„œ ~22%(10K ํŽ˜์ด์ง€)๋กœ ์ƒ์Šนํ•ฉ๋‹ˆ๋‹ค.
  • AnythingLLM์€ ์•ฝ 10,000ํŽ˜์ด์ง€์—์„œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค โ€” LanceDB ์Šค์บ”์€ ~120k ์ฒญํฌ๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ๋А๋ ค์ง€๊ณ  ์žฌ๋žญํ‚น ๋‹จ๊ณ„๊ฐ€ ๋ณ‘๋ชฉ์ด ๋˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. p95 ์ง€์—ฐ ์‹œ๊ฐ„์€ 880ms์—์„œ ~1.6์ดˆ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ ์€ 6%์—์„œ ~10%๋กœ ์ƒ์Šนํ•ฉ๋‹ˆ๋‹ค.
  • PrivateGPT๋Š” ์•ฝ 12,000ํŽ˜์ด์ง€์—์„œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค โ€” ๋กœ์ปฌ ๋ชจ๋“œ์˜ Qdrant๋Š” ์ฒญํฌ ๋ณผ๋ฅจ์„ ์ž˜ ์ฒ˜๋ฆฌํ•˜์ง€๋งŒ ๊ธฐ๋ณธ FastAPI ์„œ๋น„์Šค ์„ค์ •(uvicorn ์›Œ์ปค, ์ž„๋ฒ ๋”ฉ ๋ฐฐ์น˜ ํฌ๊ธฐ)์— ์กฐ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ์„ค์ •์œผ๋กœ PrivateGPT๋Š” ํ˜„์ €ํ•˜๊ฒŒ ์ €ํ•˜๋˜๊ธฐ ์ „์— 32GB RAM ๋จธ์‹ ์—์„œ ~25,000ํŽ˜์ด์ง€๊นŒ์ง€ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ~25,000ํŽ˜์ด์ง€๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด, ์„ธ ํ”Œ๋žซํผ ์ค‘ ์–ด๋А ๊ฒƒ๋„ ์ ํ•ฉํ•œ ๋„๊ตฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ช…์‹œ์ ์ธ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰(BM25 + ๊ณ ๋ฐ€๋„)๊ณผ ์ „์šฉ ์žฌ๋žญ์ปค๊ฐ€ ํฌํ•จ๋œ Ollama + Qdrant ๋˜๋Š” Weaviate๋ฅผ ํ™œ์šฉํ•œ ๋งž์ถค ์Šคํƒ์œผ๋กœ ์ „ํ™˜ํ•˜์‹ญ์‹œ์˜ค. ์ด ์„ธ ํ”Œ๋žซํผ์˜ ๋‚ด์žฅ ๋ฒกํ„ฐ ์Šคํ† ์–ด๋Š” ๊ทธ ๊ทœ๋ชจ๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ํ•œ๊ณ„์˜ ์ฆ์ƒ: ๊ฒ€์ƒ‰ p95 ์ง€์—ฐ ์‹œ๊ฐ„์ด 2์ดˆ๋ฅผ ์ดˆ๊ณผํ•จ, ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†์ด ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ  ์ฆ๊ฐ€, ์ฟผ๋ฆฌ ์ค‘ ์‹œ์Šคํ…œ ์Šค์™‘ ํ™œ๋™, ์–ด์ œ ์ž‘๋™ํ•˜๋˜ ์ฟผ๋ฆฌ์— "๊ด€๋ จ ์ฒญํฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ" ์‘๋‹ต.

๐Ÿ’กTip: 10,000ํŽ˜์ด์ง€๋ฅผ ์ดˆ๊ณผํ•ด ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ธ ์ง€์‹ ๋ฒ ์ด์Šค๋‚˜ ํŒ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตฌ์ถ• ์ค‘์ด๋ผ๋ฉด, PrivateGPT(์„ธ ํ”Œ๋žซํผ ์ค‘ ๊ฐ€์žฅ ๋†’์€ ํ™•์žฅ์„ฑ ์ƒํ•œ)๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ฒซ๋‚ ๋ถ€ํ„ฐ ๋งž์ถค ์Šคํƒ์œผ๋กœ ๋ฐ”๋กœ ์ด๋™ํ•˜์‹ญ์‹œ์˜ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋น„์šฉ์€ ์‹ค์ œ์ž…๋‹ˆ๋‹ค โ€” ์‹œ๊ฐ„์ด ์•„๋‹Œ ์ผ ๋‹จ์œ„๋กœ ์ธก์ •๋ฉ๋‹ˆ๋‹ค.

์˜์‚ฌ๊ฒฐ์ • ํŠธ๋ฆฌ: ์–ด๋А ํ”Œ๋žซํผ์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์ˆœ์„œ๋Œ€๋กœ ๋‹ค์„ฏ ๊ฐ€์ง€ ์ด์ง„ ์งˆ๋ฌธ์ด ๋Œ€๋ถ€๋ถ„์˜ ๋…์ž๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ์„ ํƒ์œผ๋กœ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

  • 1. ์ด ๋ฐฐํฌ๋ฅผ ๋‘ ๋ช… ์ด์ƒ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? โ†’ ์˜ˆ: ์งˆ๋ฌธ 3์œผ๋กœ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค: ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.
  • 2. ์—ฐ๊ตฌ ์ž‘์—…์— ๋ถ™์—ฌ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ(ํŒŒ์ผ๋ช… + ํŽ˜์ด์ง€)์ด ํฌํ•จ๋œ ์‘๋‹ต์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? โ†’ ์˜ˆ: AnythingLLM. ์•„๋‹ˆ์˜ค: ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.
  • 3. ์ž์ฒด ๋ฐฑ์—”๋“œ๋‚˜ ์ž๋™ํ™” ๋„๊ตฌ์—์„œ ์ด๊ฒƒ์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๊นŒ? โ†’ ์˜ˆ: PrivateGPT. ์•„๋‹ˆ์˜ค: ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.
  • 4. EU ๊ทœ์ œ ๋ถ„์•ผ์ด๊ฑฐ๋‚˜ ๊ฐ์‚ฌ ๋งฅ๋ฝ์— ์žˆ์Šต๋‹ˆ๊นŒ? โ†’ ์˜ˆ: PrivateGPT. ์•„๋‹ˆ์˜ค: ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.
  • 5. ์ด๋ฏธ Ollama๋ฅผ ์‹คํ–‰ ์ค‘์ด๋ฉฐ ๋ฉ€ํ‹ฐ ์‚ฌ์šฉ์ž ์ฑ„ํŒ… ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์›ํ•ฉ๋‹ˆ๊นŒ? โ†’ ์˜ˆ: Open WebUI. ์•„๋‹ˆ์˜ค: AnythingLLM (๊ธฐ๋ณธ ์„ ํƒ์ง€).
  • ํ™•์‹ ์ด ์—†๋‹ค๋ฉด: AnythingLLM์œผ๋กœ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค. ์„ธ ํ”Œ๋žซํผ ์ค‘ ์„ค์น˜๊ฐ€ ๊ฐ€์žฅ ์‰ฝ๊ณ , ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ ์ด ๊ฐ€์žฅ ๋‚ฎ์œผ๋ฉฐ, ๋‹ค๋ฅธ ์ž‘์—…์— ๋ถ™์—ฌ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ํ•œ๊ณ„์— ๋„๋‹ฌํ•˜๋ฉด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜์‹ญ์‹œ์˜ค.

๋กœ์ปฌ RAG ํ”Œ๋žซํผ ์„ ํƒ ์‹œ ํ”ํ•œ ์‹ค์ˆ˜๋“ค

  • ์‹ค์ˆ˜ 1: ์ž„๋ฒ ๋”๋ณด๋‹ค ํ”Œ๋žซํผ์„ ๋จผ์ € ์„ ํƒํ•˜๋Š” ๊ฒƒ. ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ์€ ๋‹ค๋ฅธ ์–ด๋–ค ๊ฒฐ์ •๋ณด๋‹ค ๊ฒ€์ƒ‰ ํ’ˆ์งˆ์„ ์ง€๋ฐฐํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๋‹ค๊ตญ์–ด ์ง€์›(bge-m3), ์ฝ”๋“œ(bge-code-v1), ๋ฒ”์šฉ(nomic-embed-text v1.5) ์ค‘ ๋ฌด์—‡์ด ํ•„์š”ํ•œ์ง€ ๊ฒฐ์ •ํ•˜์‹ญ์‹œ์˜ค; ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ง€์›ํ•˜๋Š” ํ”Œ๋žซํผ์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.
  • ์‹ค์ˆ˜ 2: ๋„ˆ๋ฌด ์ž‘์€ ์ฝ”ํผ์Šค๋กœ ๋ฒค์น˜๋งˆํฌํ•˜๋Š” ๊ฒƒ. ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘ 1,000ํŽ˜์ด์ง€ ์ดํ•˜์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ์ฝ˜ํ…์ธ  ์ตœ์†Œ 5,000ํŽ˜์ด์ง€๋กœ ๋ฒค์น˜๋งˆํฌํ•˜์‹ญ์‹œ์˜ค โ€” ์ˆœ์œ„๊ฐ€ ๋ฐ”๋€๋‹ˆ๋‹ค.
  • ์‹ค์ˆ˜ 3: ์žฌ์ธ๋ฑ์‹ฑ ๋น„์šฉ์„ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ. ์ž„๋ฒ ๋”๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ๋ฌด๋ฃŒ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋งค๋‹ฌ ์ž„๋ฒ ๋”๋ฅผ A/B ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด, ์†Œ๋น„์ž ํ•˜๋“œ์›จ์–ด์—์„œ ๋ณ€๊ฒฝ๋‹น 30~90๋ถ„์˜ ์ธ๋ฑ์‹ฑ์„ ์˜ˆ์ƒํ•˜์‹ญ์‹œ์˜ค.
  • ์‹ค์ˆ˜ 4: ์ฑ„ํŒ… ๋ชจ๋ธ ๊ฐœ์„ ์„ ๊ฑด๋„ˆ๋›ฐ๋Š” ๊ฒƒ. RAG ํ’ˆ์งˆ์€ ํ•„์š”ํ•˜์ง€๋งŒ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•œ RAG ํŒŒ์ดํ”„๋ผ์ธ์ด ์†Œํ˜• ์ฑ„ํŒ… ๋ชจ๋ธ์„ ๊ณต๊ธ‰ํ•˜๋ฉด ๋‹ค๋‹จ๊ณ„ ์ฟผ๋ฆฌ์—์„œ ํ™˜๊ฐ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค; ๋™์ผํ•œ ํŒŒ์ดํ”„๋ผ์ธ์— Qwen3 14B๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋‹จ๊ณ„ ์˜ค๋ฅ˜๊ฐ€ ~10%ํฌ์ธํŠธ ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.
  • ์‹ค์ˆ˜ 5: ์ธ์šฉ์„ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ์‘๋‹ต์„ ์‹ ๋ขฐํ•˜๋Š” ๊ฒƒ. ํ™˜๊ฐ ๋ฐœ์ƒ๋ฅ  6%์˜ AnythingLLM๋„ 50๊ฐœ ์‘๋‹ต ์ค‘ ~3๊ฐœ๋ฅผ ํ‹€๋ฆฝ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๊ฐ€ ์ค‘์š”ํ•œ ๋ชจ๋“  ์ฃผ์ œ(๋ฒ•์ , ์˜ํ•™์ , ์žฌ๋ฌด์ )์— ๋Œ€ํ•ด ์ธ์šฉ๋œ ์ฒญํฌ๋ฅผ ์—ด๊ณ  ์‘๋‹ต์ด ์‹ค์ œ๋กœ ๋’ท๋ฐ›์นจ๋˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

์–ด๋А RAG ํ”Œ๋žซํผ์ด ๊ฐ€์žฅ ํฐ ๋ฌธ์„œ ์„ธํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ?

PrivateGPT๋Š” ์†Œ๋น„์ž ํ•˜๋“œ์›จ์–ด์—์„œ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค โ€” 32GB RAM ๋จธ์‹ ์—์„œ ์กฐ์ •๋œ ์„ค์ •(uvicorn ์›Œ์ปค, ์ž„๋ฒ ๋”ฉ ๋ฐฐ์น˜ ํฌ๊ธฐ, Qdrant ์บ์‹œ)์œผ๋กœ ~25,000ํŽ˜์ด์ง€๊นŒ์ง€ ํŽธ์•ˆํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. AnythingLLM์€ ์•ฝ 10,000ํŽ˜์ด์ง€์—์„œ, Open WebUI๋Š” ์•ฝ 8,000ํŽ˜์ด์ง€์—์„œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. 25,000ํŽ˜์ด์ง€๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ์„ธ ํ”Œ๋žซํผ ์ค‘ ์–ด๋А ๊ฒƒ๋„ ์ ํ•ฉํ•œ ๋„๊ตฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค โ€” Ollama + Qdrant ๋˜๋Š” Weaviate๋ฅผ ํ™œ์šฉํ•œ ๋งž์ถค ์Šคํƒ์œผ๋กœ ์ด๋™ํ•˜์‹ญ์‹œ์˜ค.

์ด ํ”Œ๋žซํผ๋“ค ์‚ฌ์ด์—์„œ ๋ฌธ์„œ์™€ ์ž„๋ฒ ๋”ฉ์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์†Œ์Šค ๋ฌธ์„œ๋Š” ์ž์œ ๋กญ๊ฒŒ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค โ€” ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘ ๋™์ผํ•œ ํŒŒ์ผ์„ ์ˆ˜๋ฝํ•ฉ๋‹ˆ๋‹ค. ์ž„๋ฒ ๋”ฉ์€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ ํ”Œ๋žซํผ์€ ํ”Œ๋žซํผ๋ณ„ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ ์ž์ฒด ํ˜•์‹(LanceDB, Qdrant, ChromaDB)์œผ๋กœ ๋ฒกํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฏ€๋กœ, ์ „ํ™˜์€ ํ•ญ์ƒ ์žฌ์ธ๋ฑ์‹ฑ์„ ์ˆ˜๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ์†Œ๋น„์ž ํ•˜๋“œ์›จ์–ด์—์„œ 5,000ํŽ˜์ด์ง€๋‹น 30~90๋ถ„์„ ์˜ˆ์ƒํ•˜์‹ญ์‹œ์˜ค.

์–ด๋А ํ”Œ๋žซํผ์ด ์ธ์šฉ ์ •ํ™•๋„๊ฐ€ ๊ฐ€์žฅ ๋†’์Šต๋‹ˆ๊นŒ?

AnythingLLM์ž…๋‹ˆ๋‹ค. 50๊ฐœ์˜ ํ‰๊ฐ€๋œ ์ฟผ๋ฆฌ์—์„œ, ์›๋ฌธ ์ธ์šฉ ์ฟผ๋ฆฌ์—์„œ 10๋ฒˆ ์ค‘ 9๋ฒˆ ์ •ํ™•ํ•˜๊ฒŒ ํŒŒ์ผ๋ช… + ํŽ˜์ด์ง€๋ฅผ ์ธ์šฉํ–ˆ์œผ๋ฉฐ, PrivateGPT 8/10, Open WebUI 8/10๊ณผ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค. AnythingLLM์€ ๋˜ํ•œ ์„ธ ํ”Œ๋žซํผ ์ค‘ ์œ ์ผํ•˜๊ฒŒ ํด๋ฆญํ•˜์—ฌ ์†Œ์Šค๋กœ ์ด๋™ํ•˜๋Š” ํŒจ๋„์— ๋ฌธ์ž ๊ทธ๋Œ€๋กœ์˜ ์ฒญํฌ ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜์—ฌ ์ธ์šฉ ํ™•์ธ์„ ๋น ๋ฅด๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์ธ๋ฑ์‹ฑ ์ค‘ ๊ฐ ํ”Œ๋žซํผ์ด ์–ผ๋งˆ๋‚˜ ๋งŽ์€ GPU ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๊นŒ?

๊ธฐ๋ณธ ์ž„๋ฒ ๋”๋กœ 5,047ํŽ˜์ด์ง€ ์ฝ”ํผ์Šค์—์„œ: AnythingLLM ํ”ผํฌ 6.2GB, Open WebUI 5.4GB, PrivateGPT 4.8GB. ๋” ํฐ ์ž„๋ฒ ๋”(BAAI/bge-m3, 1,024์ฐจ์›)๋กœ ์ „ํ™˜ํ•˜๋ฉด ~1GB๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. VRAM์— ์ฑ„ํŒ… ๋ชจ๋ธ์ด ์ด๋ฏธ ๋กœ๋“œ๋˜์–ด ์žˆ๋‹ค๋ฉด, ์ž„๋ฒ ๋”๊ฐ€ ๊ทธ๊ฒƒ๊ณผ ๊ฒฝ์Ÿํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค โ€” 12GB ์นด๋“œ๋Š” Llama 3.3 70B๊ฐ€ ์ƒ์ฃผํ•˜๋Š” ๋™์•ˆ ์ธ๋ฑ์‹ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ž์ฒด ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

AnythingLLM์€ GUI์—์„œ 8๊ฐœ์˜ ์ž„๋ฒ ๋”ฉ ๋ฐฑ์—”๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค(Native, Ollama, LM Studio, OpenAI, Azure, Cohere, Voyage, LocalAI). PrivateGPT๋Š” settings.yaml์„ ํ†ตํ•œ ๋ชจ๋“  HuggingFace sentence-transformers ๋ชจ๋ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Open WebUI๋Š” Ollama, SentenceTransformers, OpenAI ํ˜ธํ™˜ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ์„œ๋น™ํ•˜๋Š” ์ž„๋ฒ ๋”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. PrivateGPT๊ฐ€ ๊ฐ€์žฅ ๋„“์€ ์‹ค์ œ ์„ ํƒ ํญ์„ ์ œ๊ณตํ•˜๊ณ ; AnythingLLM์ด ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ „ํ™˜ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์–ด๋А ํ”Œ๋žซํผ์ด ๋‹ค๊ตญ์–ด ๋ฌธ์„œ๋ฅผ ๊ฐ€์žฅ ์ž˜ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ?

BAAI/bge-m3(1,024์ฐจ์› ๋‹ค๊ตญ์–ด ์ž„๋ฒ ๋”)์™€ ๊ฒฐํ•ฉ๋œ PrivateGPT์ž…๋‹ˆ๋‹ค. bge-m3๋Š” ์ถ”๊ฐ€ ๊ตฌ์„ฑ ์—†์ด 100๊ฐœ ์ด์ƒ์˜ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ํ˜ผํ•ฉ ์–ธ์–ด ์ฟผ๋ฆฌ์—์„œ ์˜์–ด ์ „์šฉ ์ž„๋ฒ ๋”๋ฅผ 8~15%ํฌ์ธํŠธ ์•ž์„ญ๋‹ˆ๋‹ค. AnythingLLM๊ณผ Open WebUI๋„ Ollama๋ฅผ ํ†ตํ•ด bge-m3๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, PrivateGPT๋Š” Ollama ์šฐํšŒ ์—†์ด ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

PDF์˜ ํ‘œ์™€ ๊ทธ๋ฆผ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ?

์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘ PDF ํŒŒ์„œ๋ฅผ ํ†ตํ•ด ํ…์ŠคํŠธ๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค(AnythingLLM๊ณผ Open WebUI๋Š” pypdfium2, PrivateGPT๋Š” pdfplumber ์Šคํƒ€์ผ). ํ‘œ๋Š” ํ–‰/์—ด ๊ตฌ์กฐ๊ฐ€ ๋ถˆ์™„์ „ํ•˜๊ฒŒ ๋ณด์กด๋œ ํ…์ŠคํŠธ๋กœ ์ถ”์ถœ๋ฉ๋‹ˆ๋‹ค โ€” ๋‹จ์ˆœํ•œ ํ‘œ์—๋Š” ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋ณต์žกํ•œ ๋ ˆ์ด์•„์›ƒ์—๋Š” ์†์‹ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์—์„œ ์ด๋ฏธ์ง€ ์ฐธ์กฐ๋กœ ์ถ”์ถœ๋˜์ง€๋งŒ ๊ฒ€์ƒ‰์—๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์ด ๋งŽ์€ PDF์˜ ๊ฒฝ์šฐ, Tabula๋‚˜ Camelot ๊ฐ™์€ ๋„๊ตฌ๋กœ ๋จผ์ € ํ‘œ๋ฅผ CSV๋กœ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

์–ด๋А ํ”Œ๋žซํผ์ด ์„œ๋ฒ„์— ๋ฐฐํฌํ•˜๊ธฐ ๊ฐ€์žฅ ์‰ฝ์Šต๋‹ˆ๊นŒ?

Open WebUI โ€” Ollama์™€ ํ•จ๊ป˜ํ•˜๋Š” Docker compose๋Š” OAuth, ์—ญํ•  ๊ธฐ๋ฐ˜ ์ ‘๊ทผ, ์‚ฌ์šฉ์ž๋ณ„ ์ปฌ๋ ‰์…˜์„ ํฌํ•จํ•œ 12๋ถ„ ์„ค์ •์ž…๋‹ˆ๋‹ค. PrivateGPT๋Š” ์„œ๋ฒ„ ์นœํ™”์ ์ด์ง€๋งŒ Python + Poetry ๊ฒฝํ—˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. AnythingLLM์€ Docker ์ด๋ฏธ์ง€๋ฅผ ๋ณด์œ ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๋Š” ์‹ค์ œ๋กœ ๋ฐ์Šคํฌํ†ฑ ์•ฑ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค; ์„œ๋ฒ„ ๋ฉ€ํ‹ฐ ์‚ฌ์šฉ์ž ๋นŒ๋“œ๋Š” ๊ธฐ๋Šฅ ๋™๋“ฑ์„ฑ ๋ฉด์—์„œ ๋ฐ์Šคํฌํ†ฑ๋ณด๋‹ค ๋’ค์ฒ˜์ง‘๋‹ˆ๋‹ค.

์ƒ์—… ์ œํ’ˆ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

AnythingLLM์€ MIT ๋ผ์ด์„ ์Šค(์ƒ์—…์  ์‚ฌ์šฉ ํ—ˆ์šฉ; ๊ณต์‹ ๋นŒ๋“œ์—๋Š” ์†Œ์Šค์—์„œ ๋นŒ๋“œํ•˜์—ฌ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ํด๋กœ์ฆˆ๋“œ ์†Œ์Šค ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค). PrivateGPT๋Š” Apache 2.0(์ƒ์—…์  ์‚ฌ์šฉ ํ—ˆ์šฉ, ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ ์—†์Œ). Open WebUI๋Š” BSD-3(์ƒ์—…์  ์‚ฌ์šฉ ํ—ˆ์šฉ). ํ†ตํ•ฉ ์‹œ์ ์— ํ•ญ์ƒ ๋ผ์ด์„ ์Šค๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค โ€” ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด์„ ์Šค๋Š” ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋А ํ”Œ๋žซํผ์ด ๊ฐ€์žฅ ํ™œ๋ฐœํ•˜๊ฒŒ ๊ฐœ๋ฐœ๋ฉ๋‹ˆ๊นŒ?

Open WebUI๋Š” 1~2์ฃผ๋งˆ๋‹ค ๊ฒŒ์‹œํ•˜๋ฉฐ ๊ฐ€๋” ๋ฒ„์ „ ๊ฐ„ RAG ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์žฌ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค โ€” ๊ฐ€์žฅ ๋น ๋ฅธ ์†๋„์ด์ง€๋งŒ ์—…๋ฐ์ดํŠธ ๋ณ€๋™์ด ๊ฐ€์žฅ ํฝ๋‹ˆ๋‹ค. PrivateGPT๋Š” ์•ฝ ํ•œ ๋‹ฌ์— ํ•œ ๋ฒˆ LlamaIndex๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ฉฐ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ˜ธํ™˜์„ฑ์„ ๊นจ๋Š” ๋ณ€๊ฒฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค. AnythingLLM์€ 2~3์ฃผ๋งˆ๋‹ค ๊ฒŒ์‹œํ•˜๋ฉฐ ๋ฒ„์ „ ๊ฐ„ ๊ฐ€์žฅ ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค. ์žฅ๊ธฐ ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ, AnythingLLM์˜ ๊ฒŒ์‹œ ์ฃผ๊ธฐ๊ฐ€ ๊ฐ€์žฅ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

โ† ๊ณ ๊ธ‰ ๋กœ์ปฌ LLM์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ

๋กœ์ปฌ RAG 2026: AnythingLLM vs PrivateGPT vs Open WebUI