ํต์ฌ ์์
- 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๋ฅผ ์ ํํ์ญ์์ค.
| ๊ธฐ๋ฅ | AnythingLLM | PrivateGPT | Open 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 / 880ms | 240ms / 720ms | 380ms / 1,040ms |
| ํ๊ฐ ๋ฐ์๋ฅ (50๊ฐ ์ฟผ๋ฆฌ ํ๊ฐ) | 6% | 11% | 14% |
| ์ธ์ฉ ํ์ง | ํ์ผ๋ช + ํ์ด์ง; ์ธ๋ผ์ธ ํด๋ฆญ ๊ฐ๋ฅ | ํ์ผ๋ช + ์ฒญํฌ ID; ๊ตฌ์กฐํ๋ JSON | ํ์ผ๋ช ๋ง; ํ์ด์ง ๋ฒํธ ์์ |
| ํ์ฅ์ฑ ํ๊ณ (์๋น์ ํ๋์จ์ด) | ~10,000ํ์ด์ง / ~3,000๋ฌธ์ | ~12,000ํ์ด์ง / ~5,000๋ฌธ์ | ~8,000ํ์ด์ง / ~2,000๋ฌธ์ |
| ์ต์ ์ฉ๋ | ์ธ์ฉ์ด ํฌํจ๋ ํ๋ก๋์ ๊ธ ๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ | EU ๊ท์ ์ค์, ์คํ๋ผ์ธ ์ค๊ณ, API ์ฐ์ ํตํฉ | ์ ํ์ RAG๊ฐ ํฌํจ๋ ๋ฉํฐ ์ฌ์ฉ์ ์ฑํ ํ๋ฐํธ์๋ |
์ด๋ ํ๋ซํผ์ ์ ํํด์ผ ํฉ๋๊น?
์ฌ๋ฐ๋ฅธ ์ ํ์ ํ์ ์์ ์ ์ํ ์ธ์ฉ์ด ํ์ํ์ง, ๊ท์ ์ค์ ์์ธ๊ฐ ์ค์ํ์ง, ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ฐฐํฌ๋ฅผ ๊ณต์ ํ ์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๋ค์ ์์ฌ๊ฒฐ์ ๋จ์ถํค๋ฅผ ์ฌ์ฉํ์ญ์์ค:
| ์ํฉ | ์ ํ |
|---|---|
| ์ฐ๊ตฌ ๋ ผ๋ฌธ์ ๋ถ์ฌ ๋ฃ์ ์ ์๋ ์ธ์ฉ์ด ํฌํจ๋ ๋ต๋ณ์ด ํ์ํฉ๋๋ค | 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๋ ์ธ ๊ฐ์ง ์ค ์ฐ๊ธฐ์ ๊ฐ์ฅ ๋๋ฆฌ์ง๋ง ์ด์ํ๊ธฐ ๊ฐ์ฅ ๊ฐ๋จํฉ๋๋ค.
๐ก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๋ฒ์งธ๋ก ๋์ ๊ฒฐ๊ณผ์ ๋๋ค.
| ๋จ๊ณ | AnythingLLM | PrivateGPT | Open WebUI |
|---|---|---|---|
| ์ฟผ๋ฆฌ ์๋ฒ ๋ฉ (๋ฒกํฐ ์์ฑ) | 40ms | 35ms | 90ms |
| ๋ฒกํฐ ๊ฒ์ (top-K=6) | 180ms | 110ms | 210ms |
| ์ฌ๋ญํน (ํฌ๋ก์ค ์ธ์ฝ๋) | 70ms | 60ms (์ ํ์ ) | N/A |
| ํ๋กฌํํธ ์กฐ๋ฆฝ + LLM TTFT | 20ms | 35ms | 80ms |
| ์ด p50 | 310ms | 240ms | 380ms |
| ์ด p95 | 880ms | 720ms | 1,040ms |
๐Note: PrivateGPT๋ ์์ ๋ฒกํฐ ๊ฒ์์์ ์ฐ์นํ์ต๋๋ค. Qdrant๋ ์ธ ๊ฐ์ง ์ค ๊ฐ์ฅ ์ฑ์ํ ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฉฐ ๋ฐ๋ณต ์ฟผ๋ฆฌ ํ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ฐ ์ํ๋ก ์ ์ง๋ฉ๋๋ค. Open WebUI๋ FastAPI ๋ฏธ๋ค์จ์ด ์ค๋ฒํค๋์ ์๋ชป๋ ๊ฒ์์ ํฌ์ฐฉํ ์ฌ๋ญํน ๋จ๊ณ์ ๋ถ์ฌ๋ก ์ธํด ์ง์ฐ๋ฉ๋๋ค.
์ฟผ๋ฆฌ ์ ํ๋ณ ํ๊ฐ ๋ฐ์๋ฅ
ํ๊ฐ = ์ฝํผ์ค์ ์ฌ๋ฐ๋ฅธ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ ๋ ์๋ต์ ์ต์ ํ ๊ฐ์ง ์ฌ์ค ์ค๋ฅ๊ฐ ์๋ ๊ฒฝ์ฐ. ์๋ ค์ง ๋ต๋ณ ํค์ ๋์กฐํ์ฌ ๋ธ๋ผ์ธ๋ ํ๊ฐํ์ต๋๋ค. ์ ํ๋ณ 10๊ฐ ์ฟผ๋ฆฌ, ํ๋ซํผ๋น ์ด 50๊ฐ. ์์น๋ ์ต์ ํ ๊ฐ์ง ์ค๋ฅ๊ฐ ์๋ ์๋ต์ ๋น์จ์ ๋๋ค.
| ์ฟผ๋ฆฌ ์ ํ | AnythingLLM | PrivateGPT | Open WebUI |
|---|---|---|---|
| ์ฌ์ค ๊ฒ์ | 0% | 10% | 10% |
| ๋ค๋จ๊ณ ์ถ๋ก | 20% | 20% | 30% |
| ์์ฝ | 0% | 0% | 10% |
| ์ธ์ฉ ์ ํ๋ (์๋ฌธ ์ธ์ฉ) | 10% | 20% | 20% |
| ๋ชจ์ ๊ฐ์ง | 0% | 5% | 0% |
| ์ด๊ณ (50๊ฐ ์ฟผ๋ฆฌ) | 6% | 11% | 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๋ฅผ ์ฐํํ์ง ์๊ณ ๋ค์ดํฐ๋ธ๋ก ์ง์ํฉ๋๋ค.
ํ์ฅ์ฑ ํ๊ณ: ๋ฐ๋ชจ๊ฐ ์คํจํ๋ ์ง์
์ธ ํ๋ซํผ ๋ชจ๋ 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์ ๊ฒ์ ์ฃผ๊ธฐ๊ฐ ๊ฐ์ฅ ์์ธก ๊ฐ๋ฅํฉ๋๋ค.