Skip to main content
PromptQuorumPromptQuorum
ํ™ˆ/๊ณ ๊ธ‰ ๋กœ์ปฌ LLM/๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ AI ํŒŒ์ดํ”„๋ผ์ธ 2026: ์Œ์„ฑยท๋น„์ „ยทํ…์ŠคํŠธ๋ฅผ ์˜คํ”„๋ผ์ธ์œผ๋กœ ๊ฒฐํ•ฉํ•˜๊ธฐ
Voice, Speech & Multimodal

๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ AI ํŒŒ์ดํ”„๋ผ์ธ 2026: ์Œ์„ฑยท๋น„์ „ยทํ…์ŠคํŠธ๋ฅผ ์˜คํ”„๋ผ์ธ์œผ๋กœ ๊ฒฐํ•ฉํ•˜๊ธฐ

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

2026๋…„ ๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ AI ํŒŒ์ดํ”„๋ผ์ธ์€ STT + ๋น„์ „ + LLM + TTS๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•˜๋ ค๋ฉด GPU VRAM ์ตœ์†Œ 12 GB๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Œ ์‹คํ–‰ ๊ฐ€๋Šฅ ๊ตฌ์„ฑ์€ RTX 4070(12 GB) ๋˜๋Š” Mac M5 Pro(36 GB ํ†ตํ•ฉ ๋ฉ”๋ชจ๋ฆฌ)๋กœ, ์Œ์„ฑ ์ž…๋ ฅ์—๋Š” whisper.cpp, ๋น„์ „์—๋Š” LLaVA 1.6 7B, ํ…์ŠคํŠธ ์ถ”๋ก ์—๋Š” Llama 3.3 8B, ์Œ์„ฑ ์ถœ๋ ฅ์—๋Š” Piper๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. RTX 3060 12 GB์—์„œ๋Š” ๋น„์ „ ์—†์ด ์†Œํ˜• LLM(Phi-4)์œผ๋กœ ์Šคํƒ์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, ํ•„์š”์— ๋”ฐ๋ผ ๋ชจ๋ธ์„ VRAM์— ๊ต์ฒดํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์€ ๋น„์ „ ๋ชจ๋ธ๊ณผ LLM์ด VRAM์„ ๊ณต์œ (12 GB ์ด์ƒ ํ•„์š”)ํ• ์ง€, ์•„๋‹ˆ๋ฉด ์†Œํ˜• GPU์—์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ• ์ง€ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ AI ํŒŒ์ดํ”„๋ผ์ธ์€ ๊ฐ ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ์— ํŠนํ™”๋œ ๋…๋ฆฝ ๋ชจ๋ธ๋“ค์„ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค โ€” ์Œ์„ฑ ์ž…๋ ฅ์—๋Š” whisper.cpp, ์ด๋ฏธ์ง€ ์ดํ•ด์—๋Š” LLaVA ๋˜๋Š” Llama 3.2 Vision, ํ…์ŠคํŠธ ์ถ”๋ก ์—๋Š” Ollama์˜ LLM, ์Œ์„ฑ ์ถœ๋ ฅ์—๋Š” Piper TTS โ€” ์ด ๋ชจ๋ธ๋“ค์ด 100% ์˜คํ”„๋ผ์ธ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์ผ๊ด€๋œ ์‹œ์Šคํ…œ์œผ๋กœ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” GPT-5.5์˜ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๊ธฐ๋Šฅ์— ํ•ด๋‹นํ•˜๋Š” ๋กœ์ปฌ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ๋‹จ์ผ ๋ชจ๋ธ์ด ๋ชจ๋“  ๊ฒƒ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ๊ฐ ์ž…๋ ฅ ์œ ํ˜•์„ ์ ์ ˆํ•œ ๋ชจ๋ธ๋กœ ๋ผ์šฐํŒ…ํ•˜๊ณ  ์ถœ๋ ฅ์„ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋Š” ์˜คํ”ˆ์†Œ์Šค ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค โ€” ์•„ํ‚คํ…์ฒ˜, ์ปดํฌ๋„ŒํŠธ ์Šคํƒ, ํ•˜๋“œ์›จ์–ด ๋“ฑ๊ธ‰, ๋‹ค์„ฏ ๊ฐ€์ง€ ์‹ค์šฉ์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€, ๊ทธ๋ฆฌ๊ณ  ์Œ์„ฑ๊ณผ ๋น„์ „ ์ž…๋ ฅ์„ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” Python ๋น„๋™๊ธฐ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ์š”์ 

  • ๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ์€ GPT-5.5์™€ ๊ฐ™์€ ๋‹จ์ผ ๋ชจ๋ธ์ด ์•„๋‹ˆ๋ผ ๋ณ„๋„๋กœ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜๋œ ๋„ค ๊ฐ€์ง€ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. whisper.cpp๊ฐ€ ์Œ์„ฑ์„, VLM(LLaVA ๋˜๋Š” Llama 3.2 Vision)์ด ์ด๋ฏธ์ง€๋ฅผ, LLM์ด ํ…์ŠคํŠธ ์ถ”๋ก ์„, Piper๊ฐ€ ์Œ์„ฑ ์ถœ๋ ฅ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ์„ ์˜ฌ๋ฐ”๋ฅธ ๋ชจ๋ธ๋กœ ๋ผ์šฐํŒ…ํ•˜๊ณ  ์ถœ๋ ฅ์„ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • Llama 3.2 Vision 11B๋Š” ๋‹จ์ผ ๋ชจ๋ธ๋กœ VLM๊ณผ ํ…์ŠคํŠธ LLM ๋‘ ์—ญํ• ์„ ๋ชจ๋‘ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ์™€ ์ด๋ฏธ์ง€๋ฅผ ๋™์‹œ์— ์ˆ˜์šฉํ•˜๋ฉฐ ๋‹จ์ผ ๋‹จ๊ณ„์—์„œ ์„ค๋ช…๊ณผ ์ถ”๋ก ์„ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค โ€” VRAM์„ ~15 GB(๋ณ„๋„ ๋ชจ๋ธ)์—์„œ ~8 GB(๋‹จ์ผ Llama 3.2 Vision 11B)๋กœ ์ค„์—ฌ์ค๋‹ˆ๋‹ค.
  • ์ „์ฒด ์Šคํƒ ์ตœ์†Œ ํ•˜๋“œ์›จ์–ด: RTX 4070 12 GB ๋˜๋Š” Apple M5 Pro 36 GB. RTX 3060 12 GB๋Š” ์ œํ•œ๋œ ๋ฒ„์ „(Llama 3.3 8B ๋Œ€์‹  Phi-4, ๋˜๋Š” ์ˆœ์ฐจ ๋ชจ๋ธ ๋กœ๋”ฉ)์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ๊ธฐ๋Šฅ์€ ํ•˜์ง€๋งŒ ๋” ๋А๋ฆฝ๋‹ˆ๋‹ค.
  • ๋‹ค์„ฏ ๊ฐ€์ง€ ์‹ค์šฉ์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋ณต์žก์„ฑ์„ ์ •๋‹นํ™”ํ•ฉ๋‹ˆ๋‹ค: ์Œ์„ฑ ๋ฌธ์„œ ๋ถ„์„, ์Œ์„ฑ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•œ ์‹œ๊ฐ์  Q&A, ์Šฌ๋ผ์ด๋“œ ๋ถ„์„๊ณผ ๊ฒฐํ•ฉ๋œ ํšŒ์˜ ์ „์‚ฌ, ๋กœ์ปฌ ํ™”๋ฉด ์ฝ๊ธฐ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•œ ์ ‘๊ทผ์„ฑ ๋„๊ตฌ, ๋กœ์ปฌ ๋ณด์•ˆ ์นด๋ฉ”๋ผ ๋ถ„์„.
  • ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ์„ฑ๋Šฅ์„ ์œ„ํ•ด์„œ๋Š” ๋น„๋™๊ธฐ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ์˜ค๋””์˜ค์™€ ์ด๋ฏธ์ง€ ์ž…๋ ฅ์ด ๋ชจ๋‘ ์žˆ์„ ๋•Œ STT์™€ ๋น„์ „์„ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ํ…์ŠคํŠธ LLM์€ ๋‘ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ ํ›„ ๊ฒฐํ•ฉ๋œ ์‘๋‹ต์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • LLM ์ถœ๋ ฅ์„ TTS๋กœ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๋ฉด ์ธ์ง€ ์ง€์—ฐ์ด 0.3โ€“0.7์ดˆ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค. LLM์ด ๋‚˜๋จธ์ง€ ์‘๋‹ต์„ ์ž‘์„ฑํ•˜๋Š” ๋™์•ˆ ์ฒซ ๋ฒˆ์งธ ์™„์„ฑ๋œ ๋ฌธ์žฅ๋ถ€ํ„ฐ ์˜ค๋””์˜ค ์ƒ์„ฑ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๊ฒƒ์€ GPT-5.5๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ณ„๋„ ๋ชจ๋ธ์€ "์ด์Œ์ƒˆ"๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค โ€” ๋น„์ „ ๋ชจ๋ธ์˜ ์„ค๋ช…์ด ํ…์ŠคํŠธ๋กœ LLM์— ์ „๋‹ฌ๋˜์–ด ์ผ๋ถ€ ํฌ๋กœ์Šค ๋ชจ๋‹ฌ ์ถ”๋ก ์ด ์†์‹ค๋ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์ž‘์—…์—์„œ์˜ ํ’ˆ์งˆ์€ ํ์‡„ํ˜• ํ”„๋ก ํ‹ฐ์–ด ๋ชจ๋ธ์— ๋น„ํ•ด ๋‚ฎ์ง€๋งŒ, ๊ตฌ์กฐํ™”๋œ ๋ฌธ์„œ์™€ ๋ช…ํ™•ํ•œ ์‚ฌ์ง„ ์ž‘์—…์—๋Š” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๋น ๋ฅธ ์‚ฌ์‹ค

  • ์ „์ฒด ์Šคํƒ ์ด VRAM: ~15 GB (Whisper 3 GB + LLaVA 7B 6 GB + Llama 3.3 8B 6 GB). Piper๋Š” CPU์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • ๋‹จ์ˆœํ™”๋œ ์Šคํƒ (Llama 3.2 Vision 11B): ~8 GB VRAM โ€” ๋‹จ์ผ ๋ชจ๋ธ๋กœ ๋น„์ „๊ณผ ํ…์ŠคํŠธ ์ถ”๋ก ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ์Œ์„ฑ ์ง€์—ฐ (Whisper small, RTX 4070): STT ~200โ€“500 ms. LLM ์ฒซ ํ† ํฐ 500โ€“1500 ms. Piper TTS 100 ms.
  • ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ์ง€์—ฐ (LLaVA 7B, RTX 4070): ํ•ด์ƒ๋„์™€ ํ”„๋กฌํ”„ํŠธ์— ๋”ฐ๋ผ ์ด๋ฏธ์ง€๋‹น ~2โ€“5์ดˆ.
  • ์‹ค์‹œ๊ฐ„ ๋น„๋””์˜ค ์—†์Œ: ๋กœ์ปฌ VLM์€ ์—ฐ์† ๋น„๋””์˜ค ์ŠคํŠธ๋ฆผ์ด ์•„๋‹Œ ๊ฐœ๋ณ„ ํ”„๋ ˆ์ž„์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋น„๋””์˜ค์˜ ๊ฒฝ์šฐ 1 FPS๋กœ ํ”„๋ ˆ์ž„์„ ์ถ”์ถœํ•˜์—ฌ ๊ฐ๊ฐ ์ฒ˜๋ฆฌํ•˜์‹ญ์‹œ์˜ค.
  • VLM + LLM์— ๋™์ผํ•œ Ollama ์ธ์Šคํ„ด์Šค ์‚ฌ์šฉ: Ollama๋Š” Llama 3.2 Vision์„ ๋น„์ „ ๋ชจ๋ธ๊ณผ ํ…์ŠคํŠธ ๋ชจ๋ธ๋กœ ๋™์‹œ์— ์„œ๋น™ํ•˜์—ฌ VRAM์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๋Š” MIT ๋˜๋Š” Apache 2.0 ๋ผ์ด์„ ์Šค์ž…๋‹ˆ๋‹ค (whisper.cpp MIT, LLaVA MIT, Llama 3.3 8B Llama 3 Community License, Piper MIT).

๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ AI ํŒŒ์ดํ”„๋ผ์ธ์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ AI ์‹œ์Šคํ…œ์€ ์—ฌ๋Ÿฌ ์œ ํ˜•์˜ ์ž…๋ ฅ(์Œ์„ฑ, ์ด๋ฏธ์ง€, ํ…์ŠคํŠธ)์„ ์ˆ˜์šฉํ•˜๊ณ  ์—ฌ๋Ÿฌ ์œ ํ˜•์˜ ์ถœ๋ ฅ(ํ…์ŠคํŠธ, ์Œ์„ฑ)์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ์—์„œ์˜ ๋™๋“ฑ๋ฌผ์€ GPT-5.5์ž…๋‹ˆ๋‹ค โ€” ์˜ค๋””์˜ค, ์ด๋ฏธ์ง€, ํ…์ŠคํŠธ๋ฅผ ์–ด๋–ค ์กฐํ•ฉ์œผ๋กœ๋“  ์ˆ˜์šฉํ•˜๋Š” ๋‹จ์ผ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

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

๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ์€ ๊ฐ ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ(STT, ๋น„์ „, LLM, TTS)๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋„ค ๊ฐ€์ง€ ํŠนํ™” ์˜คํ”ˆ์†Œ์Šค ๋ชจ๋ธ์„ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉฐ, ์ธํ„ฐ๋„ท์ด๋‚˜ API ํ‚ค ์—†์ด ์™„์ „ ์˜คํ”„๋ผ์ธ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

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

๋‹จ์ผ AI๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋Œ€์‹ , ๊ฐ ์ž‘์—…์— ์ตœ์ ํ™”๋œ ๋ณ„๋„ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค: ์Œ์„ฑ ์ธ์‹์šฉ ํ”„๋กœ๊ทธ๋žจ ํ•˜๋‚˜, ์ด๋ฏธ์ง€ ์ดํ•ด์šฉ ํ”„๋กœ๊ทธ๋žจ ํ•˜๋‚˜, ํ…์ŠคํŠธ ์‘๋‹ต ์ƒ์„ฑ์šฉ ํ”„๋กœ๊ทธ๋žจ ํ•˜๋‚˜, ์Œ์„ฑ ์ถœ๋ ฅ์šฉ ํ”„๋กœ๊ทธ๋žจ ํ•˜๋‚˜ โ€” ์กฐ์œจ ๋ ˆ์ด์–ด๊ฐ€ ์ด๋“ค์„ ํ•˜๋‚˜์˜ ์—ฐ๊ฒฐ๋œ ์‹œ์Šคํ…œ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • ํด๋ผ์šฐ๋“œ ์ ‘๊ทผ ๋ฐฉ์‹ (GPT-5.5): ๋ชจ๋“  ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ๋กœ ๋™์‹œ์— ํ›ˆ๋ จ๋œ ๊ฑฐ๋Œ€ ๋‹จ์ผ ๋ชจ๋ธ. ํฌ๋กœ์Šค ๋ชจ๋‹ฌ ์ถ”๋ก ์ด ํ›ˆ๋ จ ์ค‘์— ํ•™์Šต๋ฉ๋‹ˆ๋‹ค โ€” ๋ชจ๋ธ์ด ์ด๋ฏธ์ง€ ๋‚ด์šฉ๊ณผ ์Œ์„ฑ ์ฟผ๋ฆฌ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋กœ์ปฌ ์ ‘๊ทผ ๋ฐฉ์‹ (์ด ๊ฐ€์ด๋“œ): ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฐ ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ๋ณ„ ๋…๋ฆฝ์ ์ธ ํŠนํ™” ๋ชจ๋ธ. ๋” ๋ชจ๋“ˆํ™”๋˜๊ณ  ์‹คํ–‰ ๋น„์šฉ์ด ์ ์ง€๋งŒ "์ด์Œ์ƒˆ"๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค โ€” ๋น„์ „ ๋ชจ๋ธ์˜ ์ถœ๋ ฅ์ด LLM์— ์ „๋‹ฌ๋˜๊ธฐ ์ „์— ํ…์ŠคํŠธ๋กœ ์ง๋ ฌํ™”๋ฉ๋‹ˆ๋‹ค.
  • ๋กœ์ปฌ ๊ตฌ์ถ• ์ด์œ : ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ(์˜๋ฃŒ ์ด๋ฏธ์ง€, ๋…์  ๋ฌธ์„œ, ๊ธฐ๋ฐ€ ์Šคํฌ๋ฆฐ์ƒท), ๋น„์šฉ(์ฟผ๋ฆฌ๋‹น ์ˆ˜์ˆ˜๋ฃŒ ์—†์Œ), ์˜คํ”„๋ผ์ธ ๊ธฐ๋Šฅ(๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ ํ›„ ์ธํ„ฐ๋„ท ๋ถˆํ•„์š”), ๋งž์ถคํ™”(์–ด๋–ค ์ปดํฌ๋„ŒํŠธ๋“  ๊ต์ฒด ๊ฐ€๋Šฅ).
  • ๋ชจ๋“ˆ์‹ ์žฅ์ : ์–ด๋–ค ์ปดํฌ๋„ŒํŠธ๋“  ๋…๋ฆฝ์ ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋‚˜์€ ๋กœ์ปฌ STT ๋ชจ๋ธ์ด ๋‚˜์˜ค๋ฉด STT ๋ ˆ์ด์–ด๋งŒ ๊ต์ฒดํ•˜์‹ญ์‹œ์˜ค. ๋” ๋‚˜์€ VLM์ด ๋‚˜์˜ค๋ฉด ๋น„์ „ ๋ชจ๋ธ๋งŒ ๊ต์ฒดํ•˜์‹ญ์‹œ์˜ค โ€” ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋‚˜๋จธ์ง€๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋น„์šฉ: ๋กœ์ปฌ ํŒŒ์ดํ”„๋ผ์ธ vs ํด๋ผ์šฐ๋“œ API (์›”๊ฐ„)

์ ๋‹นํ•œ ์‚ฌ์šฉ๋Ÿ‰(ํ•˜๋ฃจ 100๊ฐœ ์ด์ƒ์˜ ์ฟผ๋ฆฌ)์œผ๋กœ ๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ์€ 3โ€“6๊ฐœ์›” ์•ˆ์— ๋ณธ์ „์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋ฒผ์šด ์‚ฌ์šฉ๋Ÿ‰(ํ•˜๋ฃจ 10๊ฐœ ์ฟผ๋ฆฌ)์œผ๋กœ๋Š” ์†์ต๋ถ„๊ธฐ์ ์ด 12โ€“18๊ฐœ์›”๋กœ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.

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

๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ์€ ํ•˜๋“œ์›จ์–ด ์ผํšŒ์„ฑ ํˆฌ์ž($600โ€“3,500) ํ›„ API ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ $0/์›”์ด๋ฉฐ, ์ฟผ๋ฆฌ ๋ณผ๋ฅจ์— ๋”ฐ๋ผ GPT-5.5 API ๋น„์šฉ($135โ€“225/์›”) ๋Œ€๋น„ 3โ€“18๊ฐœ์›” ์•ˆ์— ์†์ต๋ถ„๊ธฐ์ ์— ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋Ÿ‰GPT-5.5 APIGoogle Cloud๋กœ์ปฌ
์Œ์„ฑ ์ฟผ๋ฆฌ 100๊ฑด/์ผ$90โ€“150/์›”$60โ€“120/์›”$0
์ด๋ฏธ์ง€ ๋ถ„์„ 50๊ฑด/์ผ$45โ€“75/์›”$30โ€“60/์›”$0
ํ•ฉ์‚ฐ (์ผ๋ฐ˜์ )$135โ€“225/์›”$90โ€“180/์›”$0
ํ•˜๋“œ์›จ์–ด (์ผํšŒ์„ฑ)$0$0$600โ€“3,500
์†์ต๋ถ„๊ธฐ์ โ€”โ€”3โ€“18๊ฐœ์›”

์ ๋‹นํ•œ ์‚ฌ์šฉ๋Ÿ‰(ํ•˜๋ฃจ 100๊ฐœ ์ด์ƒ์˜ ์ฟผ๋ฆฌ)์œผ๋กœ ๋กœ์ปฌ ํŒŒ์ดํ”„๋ผ์ธ์€ 3โ€“6๊ฐœ์›” ์•ˆ์— ๋ณธ์ „์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋ฒผ์šด ์‚ฌ์šฉ๋Ÿ‰(ํ•˜๋ฃจ 10๊ฐœ ์ฟผ๋ฆฌ)์œผ๋กœ๋Š” ์†์ต๋ถ„๊ธฐ์ ์ด 12โ€“18๊ฐœ์›”๋กœ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š”

๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ์€ ๋ผ์šฐํ„ฐ-์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ ํŒจํ„ด์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค: ์ž…๋ ฅ์ด ๊ฒฝ๊ณ„์—์„œ ์œ ํ˜•๋ณ„๋กœ ๋ถ„๋ฅ˜๋˜๊ณ , ์ ์ ˆํ•œ ๋ชจ๋ธ๋กœ ๋ผ์šฐํŒ…๋˜๋ฉฐ, ์ตœ์ข… ์‘๋‹ต ์ƒ์„ฑ ์ „์— ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ์ถœ๋ ฅ์„ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.

  • ์ž…๋ ฅ ์œ ํ˜•: ๋งˆ์ดํฌ ์˜ค๋””์˜ค(์Œ์„ฑ), ์นด๋ฉ”๋ผ ๋˜๋Š” ํŒŒ์ผ ์ด๋ฏธ์ง€(๋น„์ „), ํ‚ค๋ณด๋“œ ํ…์ŠคํŠธ(ํ…์ŠคํŠธ).
  • ๋ผ์šฐํ„ฐ ๋กœ์ง: ๊ฒฝ๊ณ„์—์„œ ์ž…๋ ฅ ์œ ํ˜•์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋””์˜ค โ†’ STT ๋ชจ๋ธ. ์ด๋ฏธ์ง€ โ†’ VLM. ํ…์ŠคํŠธ โ†’ LLM ์ง์ ‘. ์˜ค๋””์˜ค์™€ ์ด๋ฏธ์ง€๊ฐ€ ํ•จ๊ป˜ ๋„์ฐฉํ•˜๋ฉด ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋ธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ: ๊ฐ ์ž…๋ ฅ ์œ ํ˜•์ด ์ ์ ˆํ•œ ๋ชจ๋ธ์„ ํ˜ธ์ถœํ•˜๊ณ  ํ…์ŠคํŠธ ์„ค๋ช…/์ „์‚ฌ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
  • ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ: ๋ชจ๋“  ๋ชจ๋ธ ์ถœ๋ ฅ์„ ์ˆ˜์ง‘ํ•˜๊ณ , ํ…์ŠคํŠธ LLM์„ ์œ„ํ•œ ๋‹จ์ผ ํ”„๋กฌํ”„ํŠธ๋กœ ๊ฒฐํ•ฉํ•˜๊ณ , LLM ์‘๋‹ต์„ ์–ป์–ด ์Œ์„ฑ ์ถœ๋ ฅ์„ ์œ„ํ•œ TTS๋‚˜ ํ™”๋ฉด์˜ ํ…์ŠคํŠธ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.
  • ์ถœ๋ ฅ ์œ ํ˜•: ์Œ์„ฑ ์‘๋‹ต(Piper TTS), ํ™”๋ฉด ํ…์ŠคํŠธ, ๋˜๋Š” ๋‹ค๋ฅธ ์‹œ์Šคํ…œ๊ณผ์˜ ํ†ตํ•ฉ์„ ์œ„ํ•œ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ(JSON).
  • ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ: STT์™€ VLM์ด ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์˜ค๋””์˜ค ์ฟผ๋ฆฌ๋Š” ๋‘ ์ž‘์—…์„ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ์ˆœ์ฐจ ์ฒ˜๋ฆฌ ๋Œ€๋น„ ์ด ์ง€์—ฐ์„ 40โ€“60% ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปดํฌ๋„ŒํŠธ ์Šคํƒ

๊ฐ ์ปดํฌ๋„ŒํŠธ์˜ VRAM ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ ์—ญํ• ์„ ํฌํ•จํ•œ ์ „์ฒด ์Šคํƒ์ž…๋‹ˆ๋‹ค.

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

์ „์ฒด ๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์Šคํƒ์€ ~15 GB์˜ VRAM์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค: Whisper large-v3(3 GB) + LLaVA 1.6 7B(6 GB) + Llama 3.3 8B(6 GB); Piper TTS๋Š” VRAM ๋น„์šฉ ์—†์ด CPU์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

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

Llama 3.2 Vision 11B๋ฅผ ๋น„์ „ ๋ชจ๋ธ๊ณผ ํ…์ŠคํŠธ ๋ชจ๋ธ ๋‘ ์—ญํ•  ๋ชจ๋‘์— ์‚ฌ์šฉํ•˜๋ฉด VRAM์„ 8 GB๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” Whisper๊ฐ€ ๊ณ„์† ์Œ์„ฑ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  Piper๊ฐ€ ์Œ์„ฑ ์ถœ๋ ฅ์„ ๋‹ด๋‹นํ•˜๋Š” ๋™์•ˆ, ์ด ๋‹จ์ผ ๋ชจ๋ธ์ด ์‚ฌ์ง„ ์ดํ•ด์™€ ๋Œ€ํ™”๋ฅผ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋ ˆ์ด์–ด๋„๊ตฌ๋ชจ๋ธVRAM์—ญํ• 
STTwhisper.cppWhisper large-v3~3 GB์Œ์„ฑ โ†’ ํ…์ŠคํŠธ ์ „์‚ฌ
๋น„์ „OllamaLLaVA 1.6 7B~6 GB์ด๋ฏธ์ง€ โ†’ ํ…์ŠคํŠธ ์„ค๋ช…
์ถ”๋ก OllamaLlama 3.3 8B Q4~6 GBํ…์ŠคํŠธ โ†’ ํ…์ŠคํŠธ ์‘๋‹ต
TTSPiperen_US-lessac-mediumCPU ์ „์šฉํ…์ŠคํŠธ โ†’ ์Œ์„ฑ ์ถœ๋ ฅ
ํ•ฉ๊ณ„ (๋ณ„๋„ ๋ชจ๋ธ)~15 GB์ „์ฒด ํŒŒ์ดํ”„๋ผ์ธ

๐Ÿ’กTip: VRAM์„ ~8 GB๋กœ ์ค„์ด๋ ค๋ฉด LLaVA + Llama 3.3 8B ์กฐํ•ฉ ๋Œ€์‹  Llama 3.2 Vision 11B๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. Llama 3.2 Vision์€ ๋‹จ์ผ ๋ชจ๋ธ์—์„œ ์ด๋ฏธ์ง€ ์„ค๋ช…๊ณผ ํ…์ŠคํŠธ ์ถ”๋ก ์„ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋ณ„๋„์˜ VLM์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

๐Ÿ’กTip: ๋Œ€์•ˆ VLM: Qwen2-VL 7B(~6 GB VRAM) โ€” ๋‹ค๊ตญ์–ด OCR ๋ฐ ๋ฌธ์„œ ์ดํ•ด์—์„œ LLaVA๋ณด๋‹ค ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค. ํ•œ๊ตญ์–ด, ์ผ๋ณธ์–ด, ์ค‘๊ตญ์–ด ๋ฌธ์„œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ์„ ์œ„ํ•œ ํ•˜๋“œ์›จ์–ด ๋“ฑ๊ธ‰

์šฉ๋Ÿ‰๊ณผ VRAM ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ๋‹ค์„ฏ ๊ฐ€์ง€ ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. ๊ฐ๊ฐ ์ „์ฒด ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์Šคํƒ์˜ ๋‹ค๋ฅธ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋“ฑ๊ธ‰GPURAM์‹คํ–‰ ๊ฐ€๋Šฅ์ง€์—ฐ (์Œ์„ฑ + ์ด๋ฏธ์ง€ ์ฟผ๋ฆฌ)
๊ธฐ๋ณธRTX 3060 12 GB16 GBSTT + Phi-4 (๋น„์ „์€ ๋ณ„๋„๋กœ, ์ˆœ์ฐจ์ )5โ€“10์ดˆ
์ค‘๊ฐ„RTX 4070 12 GB32 GB7B ๋ชจ๋ธ๋กœ ์ „์ฒด ์Šคํƒ(LLaVA 7B + Llama 3.3 8B, ๋น ๋“ฏํ•˜๊ฒŒ ๋งž์Œ)3โ€“6์ดˆ
๊ณ ๊ธ‰RTX 4090 24 GB64 GBVLM 13B + LLM 8B ๋™์‹œ ์ „์ฒด ์Šคํƒ2โ€“4์ดˆ
Apple ์ค‘๊ฐ„M5 Pro 36 GB36 GB ํ†ตํ•ฉMetal์„ ํ†ตํ•œ 8B ๋ชจ๋ธ๋กœ ์ „์ฒด ์Šคํƒ(๊ถŒ์žฅ). Qwen2-VL 7B + Llama 3.3 8B๋Š” Whisper large-v3๋ฅผ ์œ„ํ•œ ์—ฌ์œ  ๊ณต๊ฐ„๊ณผ ํ•จ๊ป˜ 36 GB์— ํŽธ์•ˆํ•˜๊ฒŒ ๋“ค์–ด๋งž์Šต๋‹ˆ๋‹ค.2โ€“4์ดˆ
Apple ๊ณ ๊ธ‰M5 Max 128 GB128 GB ํ†ตํ•ฉ70B ๋ชจ๋ธ๋กœ ์ „์ฒด ์Šคํƒ โ€” ์ตœ๊ณ  ๋กœ์ปฌ ํ’ˆ์งˆ1โ€“3์ดˆ

์ง€์—ฐ์€ ์Œ์„ฑ ์ฟผ๋ฆฌ ์ข…๋ฃŒ ์‹œ์ ๋ถ€ํ„ฐ TTS ์žฌ์ƒ ์‹œ์ž‘๊นŒ์ง€ ์ธก์ •ํ•˜๋ฉฐ, ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’กTip: 128 GB ํ†ตํ•ฉ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํƒ‘์žฌํ•œ M5 Max๋Š” ์ตœ๊ณ ์˜ ๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. Whisper large-v3(3 GB) + Llama 3.2 Vision 90B(~64 GB) + Piper TTS๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ๊ฐ€์žฅ ๋†’์€ ํ’ˆ์งˆ์˜ ๋กœ์ปฌ VLM ๋ชจ๋ธ๋กœ ๋ฌธ์„œ ๋ฐ ์‚ฌ์ง„ ์ž‘์—…์—์„œ GPT-5.5์— ๊ทผ์ ‘ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๋‹จ์ผ GPU ๊ตฌ์„ฑ๋„ 2โ€“3๋ฐฐ ๋” ๋น„์‹ผ ๋‹ค์ค‘ GPU ์„ค์ • ์—†์ด๋Š” ์ด๋ฅผ ๋”ฐ๋ผ์žก์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์‚ฌ๋ก€ 1: ์Œ์„ฑ ์ œ์–ด ๋ฌธ์„œ ๋ถ„์„๊ธฐ

๋ฌธ์„œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด ์Œ์„ฑ์œผ๋กœ ์งˆ๋ฌธํ•˜๋ฉด ํŒŒ์ดํ”„๋ผ์ธ์ด ์Œ์„ฑ์„ ์ „์‚ฌํ•˜๊ณ , ๋ฌธ์„œ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ ํ›„ ๋‹ต์„ ์†Œ๋ฆฌ ๋‚ด์–ด ์ฝ์–ด์ค๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด STT + VLM + LLM + TTS ๊ฒฐํ•ฉ์˜ ์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.

  • ์˜ˆ์‹œ: ์ฒญ๊ตฌ์„œ๋ฅผ ์ดฌ์˜ํ•˜๊ณ  "์ด ๊ฒฐ์ œ ๊ธˆ์•ก๊ณผ ๋‚ฉ๋ถ€ ๊ธฐํ•œ์ด ์–ธ์ œ์ž…๋‹ˆ๊นŒ?"๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.
  • ํŒŒ์ดํ”„๋ผ์ธ: Whisper๊ฐ€ ์งˆ๋ฌธ์„ ์ „์‚ฌ โ†’ ์ด๋ฏธ์ง€๋ฅผ LLaVA ๋˜๋Š” Llama 3.2 Vision์œผ๋กœ ์ „์†ก โ†’ VLM์ด ์ฒญ๊ตฌ์„œ์˜ ํ…์ŠคํŠธ์™€ ๊ตฌ์กฐ๋ฅผ ์ถ”์ถœ โ†’ LLM์ด ์งˆ๋ฌธ + VLM ์ถœ๋ ฅ์„ ๊ฒฐํ•ฉ โ†’ Piper๊ฐ€ ๋‹ต์„ ์†Œ๋ฆฌ ๋‚ด์–ด ์ฝ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กฌํ”„ํŠธ: "์ด๋ฏธ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค: [VLM ์„ค๋ช…]. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌป์Šต๋‹ˆ๋‹ค: [์ „์‚ฌ]. ์ด๋ฏธ์ง€ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์งˆ๋ฌธ์— ๋‹ตํ•˜์‹ญ์‹œ์˜ค."
  • ์ตœ์  VLM: ์ฒญ๊ตฌ์„œ ๋ฐ ๋ฌธ์„œ์˜ OCR ์ •ํ™•๋„๋ฅผ ์œ„ํ•œ MiniCPM-V 2.6 ๋˜๋Š” Llama 3.2 Vision 11B.
  • ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ๊ฐ€์น˜: ์˜๋ฃŒ ๊ธฐ๋ก, ๋ฒ•์  ๋ฌธ์„œ, ์žฌ๋ฌด ๋ช…์„ธ์„œ โ€” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ๊ธฐ๋ฅผ ๋– ๋‚˜์ง€ ์•Š๊ณ  ์™„์ „ํžˆ ๋กœ์ปฌ์—์„œ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์‚ฌ๋ก€ 2: ์‹œ๊ฐ์  Q&A ์–ด์‹œ์Šคํ„ดํŠธ

์นด๋ฉ”๋ผ๋ฅผ ๋ฌผ์ฒด๋‚˜ ์žฅ๋ฉด์— ํ–ฅํ•˜๊ณ  ์Œ์„ฑ์œผ๋กœ ์งˆ๋ฌธํ•˜๋ฉด ์Œ์„ฑ ์‘๋‹ต์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ์Œ์„ฑ ์ƒํ˜ธ์ž‘์šฉ์ด ๊ฐ€๋Šฅํ•œ Google Lens์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋กœ์ปฌ ๋™๋“ฑ๋ฌผ์ž…๋‹ˆ๋‹ค.

  • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ: ์ฐฝ๊ณ  ์žฌ๊ณ (์„ ๋ฐ˜์„ ์ดฌ์˜ํ•˜๊ณ  "SKU-4429๋Š” ๋ช‡ ๊ฐœ๋‚˜ ์žˆ์Šต๋‹ˆ๊นŒ?"๋ผ๊ณ  ์งˆ๋ฌธ), ํ˜„์žฅ ๊ฒ€์‚ฌ(๊ธฐ๊ณ„ ์†์ƒ์„ ์ดฌ์˜ํ•˜๊ณ  "์ด๊ฒƒ์„ ์šด์˜ํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๊นŒ?"๋ผ๊ณ  ์งˆ๋ฌธ), ์ ‘๊ทผ์„ฑ(์‹œ๊ฐ ์žฅ์• ์ธ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๋ฌผ์ฒด ์„ค๋ช…).
  • ๊ตฌํ˜„: OpenCV cv2.VideoCapture(0).read()๋กœ ์นด๋ฉ”๋ผ ํ”„๋ ˆ์ž„์„ ์บก์ฒ˜ํ•˜๊ณ , JPEG๋กœ ์ €์žฅํ•˜์—ฌ Whisper ์ „์‚ฌ์™€ ํ•จ๊ป˜ VLM์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ์  ๋ชจ๋ธ: ์ผ๋ฐ˜์ ์ธ ๋ฌผ์ฒด ๋ฐ ์žฅ๋ฉด ์ดํ•ด๋ฅผ ์œ„ํ•œ LLaVA 1.6 7B ๋˜๋Š” Llama 3.2 Vision 11B.
  • ์ง€์—ฐ: RTX 4070์—์„œ ์ด๋ฏธ์ง€ ์บก์ฒ˜ + VLM ์ฒ˜๋ฆฌ + LLM + TTS์— 3โ€“6์ดˆ. ๋” ์ž‘์€ VLM(๋‹จ์ˆœ ๋ฌผ์ฒด ์‹๋ณ„์„ ์œ„ํ•œ Moondream 2)์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์‚ฌ๋ก€ 3: ํšŒ์˜ ์ „์‚ฌ + ์Šฌ๋ผ์ด๋“œ ๋ถ„์„

ํšŒ์˜ ์ค‘ Whisper๋ฅผ ์ง€์†์ ์œผ๋กœ ์‹คํ–‰ํ•˜์—ฌ ์ „์‚ฌ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , ์ฃผ๊ธฐ์ ์œผ๋กœ ์Šฌ๋ผ์ด๋“œ ์Šคํฌ๋ฆฐ์ƒท์„ ์บก์ฒ˜ํ•˜์—ฌ VLM์œผ๋กœ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์— ์ „์‚ฌ + ์Šฌ๋ผ์ด๋“œ ๋‚ด์šฉ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋กœ์ปฌ ์š”์•ฝ๊ณผ ์‹คํ–‰ ํ•ญ๋ชฉ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค โ€” ํด๋ผ์šฐ๋“œ ์—†์Œ, ๋ฐ์ดํ„ฐ ๋…ธ์ถœ ์—†์Œ.

  • STT: ํšŒ์˜ ์ค‘ faster-whisper๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ชจ๋“œ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ „์‚ฌ ๋ฒ„ํผ์— ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ˆ„์ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋น„์ „: ์ƒˆ ์Šฌ๋ผ์ด๋“œ๊ฐ€ ๋‚˜ํƒ€๋‚  ๋•Œ๋งˆ๋‹ค(์Šคํฌ๋ฆฐ์ƒท ์ฐจ์ด๋กœ ๊ฐ์ง€), ์ด๋ฏธ์ง€๋ฅผ ์บก์ฒ˜ํ•˜์—ฌ ์„ค๋ช…์„ ์œ„ํ•ด LLaVA์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฐํ•ฉ: ํšŒ์˜ ์ข…๋ฃŒ ์‹œ(๋˜๋Š” ์š”์ฒญ ์‹œ) ์ „์‚ฌ + ์Šฌ๋ผ์ด๋“œ ์„ค๋ช…์„ Llama 3.3 8B์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค: "์ด ํšŒ์˜๋ฅผ ์š”์•ฝํ•˜๊ณ  ์‹คํ–‰ ํ•ญ๋ชฉ์„ ๋‚˜์—ดํ•˜์‹ญ์‹œ์˜ค. ์ „์‚ฌ: [...]. ์Šฌ๋ผ์ด๋“œ ๋‚ด์šฉ: [...]."
  • ์ถœ๋ ฅ: ์†Œ๋ฆฌ ๋‚ด์–ด ์ฝ๋Š” ์š”์•ฝ(Piper TTS) + ๋กœ์ปฌ์— ์ €์žฅ๋œ ํ…์ŠคํŠธ ํŒŒ์ผ.
  • GDPR ๊ฐ€์น˜: ๋ชจ๋“  ํšŒ์˜ ์ฒ˜๋ฆฌ๊ฐ€ ๋กœ์ปฌ์ž…๋‹ˆ๋‹ค. ์˜ค๋””์˜ค, ์ „์‚ฌ, ์Šฌ๋ผ์ด๋“œ๊ฐ€ ์–ด๋–ค ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋กœ๋„ ์ „์†ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฒ•์ , ์˜๋ฃŒ์ , ๊ธฐ์—… ํ™˜๊ฒฝ์—์„œ ๊ทœ์ • ์ค€์ˆ˜ ๊ฐ€๋Šฅ.

์‚ฌ์šฉ ์‚ฌ๋ก€ 4: ๋กœ์ปฌ ์ ‘๊ทผ์„ฑ ๋„๊ตฌ

๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ์€ ์‹œ๊ฐ ๋˜๋Š” ์šด๋™ ์žฅ์• ๊ฐ€ ์žˆ๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ํ™”๋ฉด ์ฝ๊ธฐ ๋„๊ตฌ ๋ฐ ์Œ์„ฑ ์ œ์–ด UI ์–ด์‹œ์Šคํ„ดํŠธ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ํด๋ผ์šฐ๋“œ ์ ‘๊ทผ์„ฑ ์„œ๋น„์Šค์˜ ๊ฐœ์ธ ์ •๋ณด ์šฐ๋ ค ์—†์ด ์˜คํ”„๋ผ์ธ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  • ํ™”๋ฉด ์ฝ๊ธฐ: 2์ดˆ๋งˆ๋‹ค ์Šคํฌ๋ฆฐ์ƒท ์บก์ฒ˜ โ†’ LLaVA๊ฐ€ ํ™”๋ฉด์— ์žˆ๋Š” ๋‚ด์šฉ ์„ค๋ช… โ†’ Piper๊ฐ€ ์†Œ๋ฆฌ ๋‚ด์–ด ์ฝ์Œ. ๋‹ค์Œ์— ์„ค๋ช…ํ•  ๋‚ด์šฉ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ์Œ์„ฑ ๋ช…๋ น(Whisper)์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ์Œ์„ฑ ํƒ์ƒ‰: Whisper๊ฐ€ ์Œ์„ฑ ๋ช…๋ น์„ ์ „์‚ฌ โ†’ LLM์ด ์˜๋„๋ฅผ ํ•ด์„ โ†’ pyautogui๋ฅผ ํ†ตํ•ด ํ‚ค๋ณด๋“œ/๋งˆ์šฐ์Šค ๋™์ž‘ ์‹คํ–‰. ์ธํ„ฐ๋„ท ๋ถˆํ•„์š”.
  • ๊ฐœ์ธ ์ •๋ณด ํ˜œํƒ: ์žฅ์• ๊ฐ€ ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” ์ข…์ข… ๋ฏผ๊ฐํ•œ ํ™˜๊ฒฝ(์˜๋ฃŒ ํฌํ„ธ, ๊ธˆ์œต ๊ณ„์ •)์—์„œ ์ ‘๊ทผ์„ฑ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋„๊ตฌ๋Š” ํ™”๋ฉด ๋‚ด์šฉ์ด ์ œ3์ž์—๊ฒŒ ์ „์†ก๋˜์ง€ ์•Š๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ œํ•œ๋œ ์—ฐ๊ฒฐ์—์„œ์˜ ์‚ฌ์šฉ: ๋ณ‘์›, ์ •๋ถ€ ๊ฑด๋ฌผ, ์ธํ„ฐ๋„ท์ด ์ œํ•œ๋œ ์ง€์—ญ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค โ€” ๊ธฐ๊ด€ ์ ‘๊ทผ์„ฑ ๋ฐฐํฌ์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ ‘๊ทผ์„ฑ์„ ์œ„ํ•œ ๋ชจ๋ธ ์„ ํƒ: ๋น ๋ฅธ ํ™”๋ฉด ์„ค๋ช…์„ ์œ„ํ•œ Moondream 2(2 GB VRAM, ํ”„๋ ˆ์ž„๋‹น ~1์ดˆ). ๋” ํ’๋ถ€ํ•œ ์„ค๋ช…์„ ์œ„ํ•œ LLaVA 7B(6 GB VRAM, ํ”„๋ ˆ์ž„๋‹น ~3์ดˆ).

์‚ฌ์šฉ ์‚ฌ๋ก€ 5: ๋กœ์ปฌ ๋ณด์•ˆ ์นด๋ฉ”๋ผ ๋ถ„์„

IP ์นด๋ฉ”๋ผ์—์„œ ํ”„๋ ˆ์ž„์„ ์บก์ฒ˜ํ•˜๊ณ , ๋กœ์ปฌ์—์„œ ์›€์ง์ž„์„ ๊ฐ์ง€ํ•˜์—ฌ ์›€์ง์ž„์ด ๊ฐ์ง€๋  ๋•Œ๋งŒ VLM ๋ถ„์„์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค โ€” ํด๋ผ์šฐ๋“œ ์นด๋ฉ”๋ผ ์„œ๋น„์Šค๋‚˜ ์ œ3์ž ๋น„๋””์˜ค ์ €์žฅ ์—†์Œ.

  • ํ”„๋ ˆ์ž„ ์บก์ฒ˜: OpenCV๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ RTSP(cv2.VideoCapture("rtsp://camera-ip:554/stream"))๋กœ IP ์นด๋ฉ”๋ผ์—์„œ 5โ€“10์ดˆ๋งˆ๋‹ค ํ”„๋ ˆ์ž„์„ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค. USB ์นด๋ฉ”๋ผ์˜ ๊ฒฝ์šฐ ์žฅ์น˜ ์ธ๋ฑ์Šค 0์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์›€์ง์ž„ ๊ฐ์ง€: cv2.absdiff()๋กœ ์—ฐ์† ํ”„๋ ˆ์ž„ ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์›€์ง์ž„ ์ž„๊ณ„๊ฐ’ ์ดํ•˜์˜ ํ”„๋ ˆ์ž„์€ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค โ€” ์ด๋Š” ์ •์  ์žฅ๋ฉด์—์„œ ๋ถˆํ•„์š”ํ•œ VLM ํ˜ธ์ถœ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • VLM ๋ถ„์„: ์›€์ง์ž„์ด ๊ฐ์ง€๋˜๋ฉด ํ”„๋ ˆ์ž„์„ VLM์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค: "๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์„ค๋ช…ํ•˜์‹ญ์‹œ์˜ค. ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?"
  • ์•Œ๋ฆผ ์ถœ๋ ฅ: ์‘๋‹ต์ด ์‚ฌ๋žŒ์ด๋‚˜ ์ด์ƒ์„ ๋‚˜ํƒ€๋‚ด๋ฉด ๋กœ์ปฌ ๋ฐ์Šคํฌํ†ฑ ์•Œ๋ฆผ๊ณผ Piper TTS ๊ณต์ง€๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค("์ •๋ฌธ์—์„œ ์‚ฌ๋žŒ ๊ฐ์ง€๋จ"). ํด๋ผ์šฐ๋“œ ์•Œ๋ฆผ ์„œ๋น„์Šค ๋ถˆํ•„์š”.
  • ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ์žฅ์ : Ring๊ณผ Nest๋Š” ๊ฐ๊ฐ AWS์™€ Google ์„œ๋ฒ„๋กœ ๋น„๋””์˜ค๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ ๋ชจ๋“  ๋…นํ™”๋ฅผ ์‚ฌ์šฉ์ž์˜ ํ•˜๋“œ์›จ์–ด์— ๋ณด๊ด€ํ•ฉ๋‹ˆ๋‹ค โ€” ๊ตฌ๋… ์—†์Œ, ์ œ3์ž ๋น„๋””์˜ค ์ €์žฅ ์—†์Œ, ์™ธ๋ถ€ ์„œ๋น„์Šค์™€ ๋ฐ์ดํ„ฐ ๊ณต์œ  ์—†์Œ.
  • ์†๋„๋ฅผ ์œ„ํ•œ ์ตœ์  VLM: ๋น ๋ฅธ ํ”„๋ ˆ์ž„ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ Moondream 2(ํ”„๋ ˆ์ž„๋‹น ~1์ดˆ, ~2 GB VRAM) ๋˜๋Š” ๋” ํ’๋ถ€ํ•œ ์žฅ๋ฉด ์„ค๋ช…์„ ์œ„ํ•œ LLaVA 7B(ํ”„๋ ˆ์ž„๋‹น ~3์ดˆ, ~6 GB VRAM).
  • ํ•˜๋“œ์›จ์–ด ์ฐธ๊ณ : ์ด ์Šคํƒ์„ 24/7 ์‹คํ–‰ํ•˜๋Š” ์ „์šฉ Mac Mini M5(~$600)๋Š” ๋Œ€๊ธฐ ์ค‘ ~15โ€“25W๋ฅผ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค โ€” Ring Doorbell Pro ๊ตฌ๋…๋ณด๋‹ค ์—ฐ๊ฐ„ ์ „๊ธฐ๋ฃŒ๊ฐ€ ๋” ์ ์Šต๋‹ˆ๋‹ค.

Python ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ ๊ตฌ์ถ•

Python ๋น„๋™๊ธฐ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ์„ ์˜ฌ๋ฐ”๋ฅธ ๋ชจ๋ธ๋กœ ๋ผ์šฐํŒ…ํ•˜๊ณ  ์ถœ๋ ฅ์„ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. asyncio๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด STT์™€ ๋น„์ „ ์ฒ˜๋ฆฌ๊ฐ€ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

python
#!/usr/bin/env python3
"""Local multimodal orchestrator: voice + vision + text, all offline."""

import asyncio
import base64
import subprocess
import tempfile
import sounddevice as sd
import soundfile as sf
import numpy as np
import requests

OLLAMA_URL = "http://localhost:11434/api/generate"
WHISPER_BIN = "./whisper.cpp/main"
WHISPER_MODEL = "./whisper.cpp/models/ggml-small.bin"
VISION_MODEL = "llava:7b"
TEXT_MODEL = "llama3.1:8b"
PIPER_VOICE = "voices/en_US-lessac-medium.onnx"
SAMPLE_RATE = 16000

async def transcribe_audio(audio: np.ndarray) -> str:
    with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
        sf.write(f.name, audio, SAMPLE_RATE)
        loop = asyncio.get_event_loop()
        result = await loop.run_in_executor(None, lambda: subprocess.run(
            [WHISPER_BIN, "-m", WHISPER_MODEL, "-f", f.name, "--no-timestamps", "--no-prints"],
            capture_output=True, text=True
        ))
    return result.stdout.strip()

async def describe_image(image_path: str) -> str:
    with open(image_path, "rb") as f:
        image_b64 = base64.b64encode(f.read()).decode("utf-8")
    loop = asyncio.get_event_loop()
    response = await loop.run_in_executor(None, lambda: requests.post(
        OLLAMA_URL,
        json={
            "model": VISION_MODEL,
            "prompt": "Describe the content of this image in detail, including any text visible.",
            "images": [image_b64],
            "stream": False,
        },
    ))
    return response.json()["response"]

async def reason(transcript: str, image_description: str | None = None) -> str:
    if image_description:
        prompt = (
            f"The user asked (via voice): {transcript}\n\n"
            f"The image shows: {image_description}\n\n"
            "Answer the question based on the image content. Be concise โ€” 2-3 sentences."
        )
    else:
        prompt = transcript
    loop = asyncio.get_event_loop()
    response = await loop.run_in_executor(None, lambda: requests.post(
        OLLAMA_URL,
        json={"model": TEXT_MODEL, "prompt": prompt, "stream": False},
    ))
    return response.json()["response"]

async def speak(text: str) -> None:
    with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
        await asyncio.get_event_loop().run_in_executor(None, lambda: subprocess.run(
            f'echo "{text}" | piper --model {PIPER_VOICE} --output_file {f.name}',
            shell=True, check=True
        ))
        data, sr = sf.read(f.name)
        sd.play(data, sr)
        sd.wait()

async def process_query(audio: np.ndarray, image_path: str | None = None) -> None:
    if image_path:
        transcript, image_desc = await asyncio.gather(
            transcribe_audio(audio),
            describe_image(image_path),
        )
    else:
        transcript = await transcribe_audio(audio)
        image_desc = None

    if not transcript or len(transcript) < 3:
        return

    print(f"You: {transcript}")
    if image_desc:
        print(f"Image: {image_desc[:100]}...")

    response = await reason(transcript, image_desc)
    print(f"Assistant: {response}")
    await speak(response)

async def main():
    print("Multimodal assistant ready. Ctrl+C to stop.")
    while True:
        audio = sd.rec(int(5 * SAMPLE_RATE), samplerate=SAMPLE_RATE, channels=1, dtype="int16")
        sd.wait()
        await process_query(audio)

if __name__ == "__main__":
    asyncio.run(main())

์„ฑ๋Šฅ ์ตœ์ ํ™”

์ „์ฒด ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์Šคํƒ์—์„œ ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ์ง€์—ฐ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ์ตœ์ ํ™”:

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

๊ฐ€์žฅ ํฐ ๋‘ ๊ฐ€์ง€ ์ตœ์ ํ™”๋Š”: (1) ์˜ค๋””์˜ค์™€ ์ด๋ฏธ์ง€ ๋ชจ๋‘ ์žˆ์„ ๋•Œ asyncio๋กœ STT์™€ VLM์„ ๋ณ‘๋ ฌ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ, (2) LLM ์ถœ๋ ฅ์„ ๋ฌธ์žฅ๋ณ„๋กœ TTS์— ์ŠคํŠธ๋ฆฌ๋ฐํ•˜์—ฌ LLM์ด ์™„๋ฃŒ๋˜๊ธฐ ์ „์— ์˜ค๋””์˜ค๊ฐ€ ์‹œ์ž‘๋˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ์—†์ด ํŒŒ์ดํ”„๋ผ์ธ์€: STT(0.5์ดˆ) โ†’ VLM(3์ดˆ) โ†’ LLM(1์ดˆ) โ†’ TTS(0.1์ดˆ) = ์ด 4.6์ดˆ. STT + VLM ๋ณ‘๋ ฌ๋กœ: max(STT, VLM)(3์ดˆ) โ†’ LLM(1์ดˆ) โ†’ TTS(0.1์ดˆ) = 4.1์ดˆ. TTS ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์‚ฌ์šฉ์ž๋Š” 4.6์ดˆ ๋Œ€์‹  3.5์ดˆ์— ์˜ค๋””์˜ค๋ฅผ ๋“ฃ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • STT + VLM ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ: asyncio.gather(transcribe_audio(), describe_image())๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์ž‘์—…์„ ๋™์‹œ์— ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. STT ๋ชจ๋ธ ํฌ๊ธฐ์— ๋”ฐ๋ผ 0.3โ€“2์ดˆ๋ฅผ ์ ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋ธ์„ ์›œ ์ƒํƒœ๋กœ ์œ ์ง€: Ollama๋Š” ์š”์ฒญ ์‚ฌ์ด์— VRAM์— ๋ชจ๋ธ์„ ์ž๋™์œผ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ŠคํŠธ๋ฆฌ๋ฐ ๋ชจ๋“œ์˜ whisper.cpp๋Š” ๋กœ๋“œ๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ ์‚ฌ์ด์— ์žฌ๋กœ๋“œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
  • LLM โ†’ TTS ์ŠคํŠธ๋ฆฌ๋ฐ: ์ŠคํŠธ๋ฆฌ๋ฐ LLM ์ถœ๋ ฅ์—์„œ ๋ฌธ์žฅ ๊ฒฝ๊ณ„(., !, ?)๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. LLM์ด ๊ณ„์† ์ƒ์„ฑํ•˜๋Š” ๋™์•ˆ ์™„์„ฑ๋œ ๊ฐ ๋ฌธ์žฅ์„ Piper์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • VRAM ๊ด€๋ฆฌ: ์ด VRAM์ด ๋น ๋“ฏํ•˜๋ฉด ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ํ›„ VLM์„ ์–ธ๋กœ๋“œํ•˜๊ณ (Ollama HTTP ์‚ญ์ œ ์—”๋“œํฌ์ธํŠธ) ํ…์ŠคํŠธ LLM์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ~2โ€“3์ดˆ๊ฐ€ ์ถ”๊ฐ€๋˜์ง€๋งŒ 8 GB GPU์—์„œ๋„ ์ „์ฒด ์Šคํƒ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • Llama 3.2 Vision์„ ๊ฒฐํ•ฉ VLM + LLM์œผ๋กœ ์‚ฌ์šฉ: ๋ชจ๋ธ ์ „ํ™˜ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค โ€” ๋‹จ์ผ ๋ชจ๋ธ์ด ์‹œ๊ฐ์  ์„ค๋ช…๊ณผ ํ…์ŠคํŠธ ์ถ”๋ก ์„ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ ˆ์ถฉ์ : ์ „์šฉ Llama 3.3 8B์— ๋น„ํ•ด ์ˆœ์ˆ˜ ํ…์ŠคํŠธ ์ถ”๋ก ์ด ์•ฝ๊ฐ„ ์•ฝํ•ฉ๋‹ˆ๋‹ค.
  • TTS ์ฒซ ์˜ค๋””์˜ค ๋ชฉํ‘œ: Piper๋Š” ํ…์ŠคํŠธ๋ฅผ ๋ฐ›์€ ํ›„ 50โ€“100 ms์— ์ฒซ ์˜ค๋””์˜ค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ธ์ง€ TTS ์ง€์—ฐ 1์ดˆ ๋ฏธ๋งŒ์„ ์œ„ํ•ด ํ•œ ๋ฒˆ์— ํ•œ ๋ฌธ์žฅ์”ฉ ์ŠคํŠธ๋ฆฌ๋ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•œ๊ณ„์™€ ์†”์งํ•œ ํ‰๊ฐ€

๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ์€ GPT-5.5๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฒฉ์ฐจ๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜๋ฉด ์ขŒ์ ˆ์„ ์˜ˆ๋ฐฉํ•˜๊ณ  ํ•œ๊ณ„๋ฅผ ๊ฐ์•ˆํ•œ ์„ค๊ณ„๋ฅผ ๋•์Šต๋‹ˆ๋‹ค.

  • ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ ์ด์Œ์ƒˆ: ๋น„์ „ ์ถœ๋ ฅ์ด ํ…์ŠคํŠธ LLM์— ์ „๋‹ฌ๋˜๊ธฐ ์ „์— ํ…์ŠคํŠธ๋กœ ์ง๋ ฌํ™”๋ฉ๋‹ˆ๋‹ค. LLM์€ ์ด๋ฏธ์ง€ ํŠน์„ฑ์— ๋Œ€ํ•ด ์ง์ ‘ ์ถ”๋ก ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค โ€” ์ด๋ฏธ์ง€์˜ ํ…์ŠคํŠธ ์„ค๋ช…์— ๋Œ€ํ•ด ์ถ”๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฏธ๋ฌ˜ํ•œ ์‹œ๊ฐ์  ์ถ”๋ก ์ด ํ•„์š”ํ•œ ์ž‘์—…์—์„œ ์ •๋ณด๋ฅผ ์žƒ์Šต๋‹ˆ๋‹ค.
  • ์‹ค์‹œ๊ฐ„ ๋น„๋””์˜ค ์—†์Œ: ๋กœ์ปฌ VLM์€ ์—ฐ์† ๋น„๋””์˜ค๊ฐ€ ์•„๋‹Œ ๊ฐœ๋ณ„ ํ”„๋ ˆ์ž„์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋น„๋””์˜ค์˜ ๊ฒฝ์šฐ 0.5โ€“2 FPS๋กœ ํ”„๋ ˆ์ž„์„ ์ถ”์ถœํ•˜์—ฌ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, "์ด ๋น„๋””์˜ค์˜ ๋งˆ์ง€๋ง‰ 5์ดˆ ๋™์•ˆ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๊นŒ?"๋ผ๊ณ  ๋ฌผ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • VLM ํ’ˆ์งˆ ๊ฒฉ์ฐจ: ๋กœ์ปฌ ๋น„์ „ ๋ชจ๋ธ(LLaVA 7B, Llama 3.2 Vision 11B)์€ ๋ณต์žกํ•œ ์ธํฌ๊ทธ๋ž˜ํ”ฝ, ์†๊ธ€์”จ, ๋ชจํ˜ธํ•œ ์žฅ๋ฉด, ์‹œ๊ฐ์  ์ดํ•ด์™€ ํ•จ๊ป˜ ๊ด‘๋ฒ”์œ„ํ•œ ์„ธ๊ณ„ ์ง€์‹์ด ํ•„์š”ํ•œ ์ž‘์—…์—์„œ GPT-5.5 Vision์— ๋’ค์ฒ˜์ง‘๋‹ˆ๋‹ค.
  • VRAM ์••๋ฐ•: ๋‹จ์ผ GPU์—์„œ ์„ธ ๊ฐ€์ง€ ๋ชจ๋ธ์„ ๋™์‹œ์— ์‹คํ–‰ํ•˜๋ ค๋ฉด ์‹ ์ค‘ํ•œ VRAM ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. 12 GB GPU์—์„œ๋Š” ํ•œ๊ณ„์— ์žˆ์Šต๋‹ˆ๋‹ค โ€” OOM(๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ) ์˜ค๋ฅ˜๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋ธ ํฌ๊ธฐ๋ฅผ ์‹ ์ค‘ํ•˜๊ฒŒ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํด๋ผ์šฐ๋“œ ๋Œ€๋น„ ์ง€์—ฐ: ํด๋ผ์šฐ๋“œ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํ˜ธ์ถœ(GPT-5.5)์€ ์˜ค๋””์˜ค + ์ด๋ฏธ์ง€ + ํ…์ŠคํŠธ์— 1โ€“3์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๋กœ์ปฌ ํŒŒ์ดํ”„๋ผ์ธ์€ ๋™๋“ฑํ•œ ํ•˜๋“œ์›จ์–ด์—์„œ 3โ€“8์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค โ€” ๋” ๋А๋ฆฌ์ง€๋งŒ ์™„์ „ํ•œ ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ์™€ ์ฟผ๋ฆฌ๋‹น ๋น„์šฉ ์—†์Œ.
  • ์ผ๊ด€์„ฑ: ๋กœ์ปฌ ๋ชจ๋ธ์€ ๊ด‘๋ฒ”์œ„ํ•œ RLHF๋ฅผ ๊ฐ–์ถ˜ ํด๋ผ์šฐ๋“œ ๋ชจ๋ธ๋ณด๋‹ค ๋” ๊ฐ€๋ณ€์ ์ธ ์ถœ๋ ฅ ํ’ˆ์งˆ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋น„์ „ ์„ค๋ช…๊ณผ LLM ์‘๋‹ต ๋ชจ๋‘์—์„œ ๊ฐ€๋” ํ™˜๊ฐ์ด ๋ฐœ์ƒํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์‹ญ์‹œ์˜ค.

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

๋น„์ „๊ณผ ํ…์ŠคํŠธ ์ถ”๋ก  ๋ชจ๋‘์— ๋‹จ์ผ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ. Llama 3.2 Vision 11B๋Š” ๋‹จ์ผ ๋ชจ๋ธ์—์„œ ์ด๋ฏธ์ง€ ์ดํ•ด์™€ ํ…์ŠคํŠธ ์ถ”๋ก ์„ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค โ€” ๋ณ„๋„์˜ LLaVA + Llama 3.3 8B ์„ค์ •์„ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” VRAM์„ ~15 GB์—์„œ ~8 GB๋กœ ์ค„์ด๊ณ  Ollama API ํ˜ธ์ถœ ํ•˜๋‚˜๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ ˆ์ถฉ์ ์€ ์ „์šฉ Llama 3.3 8B์— ๋น„ํ•ด ์ˆœ์ˆ˜ ํ…์ŠคํŠธ ์ถ”๋ก  ์ž‘์—…์˜ ์„ฑ๋Šฅ์ด ์•ฝ๊ฐ„ ์ €ํ•˜๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋น„๋””์˜ค ์ž…๋ ฅ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ?

OpenCV(cv2.VideoCapture)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋””์˜ค์—์„œ ํ”„๋ ˆ์ž„์„ ์ถ”์ถœํ•˜๊ณ  VLM์„ ํ†ตํ•ด ๊ฐ ํ”„๋ ˆ์ž„์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. 1 FPS์˜ 1๋ถ„ ๋น„๋””์˜ค์˜ ๊ฒฝ์šฐ 60๊ฐœ์˜ ํ”„๋ ˆ์ž„์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค โ€” ๊ฐ ์ฒ˜๋ฆฌ์— 2โ€“5์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๋ฏ€๋กœ ์ „์ฒด ๋น„๋””์˜ค ๋ถ„์„์— 2โ€“5๋ถ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ๋น„๋””์˜ค ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ๊ฒฝ์šฐ 2โ€“3์ดˆ๋งˆ๋‹ค 1๊ฐœ์˜ ํ”„๋ ˆ์ž„๋งŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ •์  ํ”„๋ ˆ์ž„์„ ๊ฑด๋„ˆ๋›ฐ๊ธฐ ์œ„ํ•ด ์›€์ง์ž„ ๊ฐ์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์™„์ „ํ•œ ๋น„๋””์˜ค ์ดํ•ด(ํ”„๋ ˆ์ž„ ๊ฐ„ ๊ฐ์ฒด ์ถ”์ , ์‹œ๊ฐ„์  ์‹œํ€€์Šค ์ดํ•ด)๋Š” ํ˜„์žฌ ๋กœ์ปฌ VLM์˜ ๊ธฐ๋Šฅ์„ ๋„˜์–ด์„ญ๋‹ˆ๋‹ค.

์ „์ฒด ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์Šคํƒ์„ ์œ„ํ•œ ์ตœ์†Œ GPU VRAM์€ ์–ผ๋งˆ์ž…๋‹ˆ๊นŒ?

๊ณต์œ  VRAM ๊ตฌ์„ฑ(๋ชจ๋“  ๋ชจ๋ธ์ด ๋™์‹œ์— VRAM์—)์—์„œ Whisper large-v3 + LLaVA 7B + Llama 3.3 8B์—๋Š” 15 GB๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Llama 3.2 Vision 11B๊ฐ€ VLM๊ณผ ํ…์ŠคํŠธ LLM ๋ชจ๋‘๋ฅผ ๋Œ€์ฒดํ•˜๋ฉด 8 GB VRAM์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. 12 GB GPU(RTX 4070)์—์„œ๋Š” ์†Œํ˜• ์–‘์žํ™”๋กœ ์•„์ฃผ ๋น ๋“ฏํ•˜๊ฒŒ ๋ณ„๋„ ๋ชจ๋ธ ์ „์ฒด ์Šคํƒ์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, ๊ฒฐํ•ฉ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์œ„ํ•ด Llama 3.2 Vision 11B๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 8 GB VRAM(RTX 4060)์—์„œ๋Š” ๊ณต๊ฒฉ์  ์–‘์žํ™”(Q3_K)๋กœ Llama 3.2 Vision 11B๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋น„์ „๊ณผ ํ…์ŠคํŠธ ์ฟผ๋ฆฌ ์‚ฌ์ด์— ๋ชจ๋ธ์„ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.

๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ์ด PDF๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ง์ ‘์€ ์•ˆ ๋ฉ๋‹ˆ๋‹ค โ€” ๋กœ์ปฌ VLM์€ PDF๊ฐ€ ์•„๋‹Œ ์ด๋ฏธ์ง€ ์ž…๋ ฅ์„ ์ˆ˜์šฉํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € pdf2image(pip install pdf2image) ๋˜๋Š” pypdfium2(pip install pypdfium2)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PDF ํŽ˜์ด์ง€๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐ ํŽ˜์ด์ง€ ์ด๋ฏธ์ง€๋ฅผ VLM์— ๋ณ„๋„๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. 10ํŽ˜์ด์ง€ PDF์˜ ๊ฒฝ์šฐ 10๊ฐœ์˜ ๋ณ„๋„ ์ด๋ฏธ์ง€ ์„ค๋ช…์„ ์ƒ์„ฑํ•œ ํ›„, ๊ฒฐํ•ฉ๋œ ๋ถ„์„์ด๋‚˜ ์š”์•ฝ์„ ์œ„ํ•ด ๋ชจ๋“  ์„ค๋ช…์„ ํ…์ŠคํŠธ LLM์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ PDF ์ง€์›๋ณด๋‹ค ๋А๋ฆฌ์ง€๋งŒ ๊ตฌ์กฐํ™”๋œ ๋ฌธ์„œ์—์„œ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ๋ƒ…๋‹ˆ๋‹ค.

๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ์ด ์˜๋ฃŒ ๋˜๋Š” ๋ฒ•์  ์‚ฌ์šฉ์„ ์œ„ํ•œ GDPR์— ์ ํ•ฉํ•ฉ๋‹ˆ๊นŒ?

์šด์˜ ์ค‘ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ์ „ํ˜€ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š” ๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ์€ ๋‚ด๋ถ€ ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ์„ค๊ณ„์ƒ ์ค€์ˆ˜๋ฉ๋‹ˆ๋‹ค โ€” ๊ฐœ์ธ ๋ฐ์ดํ„ฐ๊ฐ€ ์‹œ์Šคํ…œ์„ ๋– ๋‚˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ณ„์•ฝ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ค€์ˆ˜ ์—ฌ๋ถ€ ํ™•์ธ: ์šด์˜ ์ค‘ Wireshark๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํŒŒ์ดํ”„๋ผ์ธ ํ”„๋กœ์„ธ์Šค์—์„œ ๋ฐœ์‹  ํŒจํ‚ท์ด ์—†์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค โ€” ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ๋Œ€ํ™” ๊ธฐ๋ก์ด๋‚˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์ €์žฅ์†Œ๋Š” ๋ณด์กด ์š”๊ฑด์˜ ์ ์šฉ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ๋ณด์กด ์ •์ฑ…์ด ์žˆ๋Š” ์ž„์‹œ ์ธ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ์†Œ ๋˜๋Š” ์•”ํ˜ธํ™”๋œ ๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ์— ์›น ๊ฒ€์ƒ‰์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ์™€ ํ…์ŠคํŠธ LLM ์‚ฌ์ด์— ๊ฒ€์ƒ‰ ๋‹จ๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. LLM ์ถ”๋ก  ๋‹จ๊ณ„ ์ „์— ์ปจํ…์ŠคํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด DuckDuckGo API๋‚˜ ๋กœ์ปฌ RAG ์‹œ์Šคํ…œ(AnythingLLM, PrivateGPT)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด LLM์€ ์ „์‚ฌ + ์ด๋ฏธ์ง€ ์„ค๋ช… + ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ถ”๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ง€์—ฐ์ด 0.5โ€“2์ดˆ ์ถ”๊ฐ€๋˜์ง€๋งŒ ์‹œ๊ฐ์  ๋ถ„์„๊ณผ ํ•จ๊ป˜ ์‹œ์‚ฌ์„ฑ ์งˆ๋ฌธ์— ๋‹ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์Šคํƒ์„ 24/7 ์‹คํ–‰ํ•  ๋•Œ ์ „๊ธฐ ์†Œ๋น„๋Ÿ‰์€ ์–ผ๋งˆ์ž…๋‹ˆ๊นŒ?

VRAM์— ๋ชจ๋ธ์ด ์›œ ์ƒํƒœ์ธ ๋Œ€๊ธฐ: ~50โ€“80 W(๋ฐ์Šคํฌํ†ฑ GPU), ~15โ€“25 W(Mac Mini M5 Pro). ํ™œ์„ฑ ์ฒ˜๋ฆฌ: ~150โ€“300 W(๋ฐ์Šคํฌํ†ฑ GPU), ~30โ€“60 W(Mac Mini M5 Pro). $0.15/kWh์—์„œ ์›”๊ฐ„ ๋น„์šฉ: ์•ฝ $5โ€“15(Mac Mini) ๋˜๋Š” $15โ€“35(๋ฐ์Šคํฌํ†ฑ). ์ด๋Š” ๋น„์Šทํ•œ ์ฟผ๋ฆฌ ๋ณผ๋ฅจ์œผ๋กœ ํด๋ผ์šฐ๋“œ API๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ ์Šต๋‹ˆ๋‹ค โ€” ์ „์ฒด ์Šคํƒ์„ 24/7 ์‹คํ–‰ํ•˜๋Š” Mac Mini๋Š” ํ•˜๋ฃจ 100๊ฐœ ์ฟผ๋ฆฌ ๊ธฐ์ค€ GPT-5.5 API 2์ผ ์‚ฌ์šฉ๋ณด๋‹ค ์›” ์ „๊ธฐ๋ฃŒ๊ฐ€ ๋” ์ ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜

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

๋กœ์ปฌ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ 2026: ์Œ์„ฑ + ๋น„์ „ + ํ…์ŠคํŠธ | PromptQuorum