์ต๊ทผ ๋ก์ปฌ ํ๊ฒฝ์์ ๋ํ ์ธ์ด ๋ชจ๋ธ(LLM)์ ๋๋ฆฌ๋ ๊ฒ์ด ๋์คํ๋๋ฉด์, ๋จ์ํ ์ฑํ ์ ๋๋๋ ๋จ๊ณ๋ฅผ ๋์ด ์ค์ง์ ์ธ **’๊ฐ์ธ์ฉ ์๋น์ค’**๋ฅผ ๋ง๋๋ ์ฌ๋ฏธ๊ฐ ์ปค์ง๊ณ ์์ต๋๋ค. ์ด๋ฒ ํ๋ก์ ํธ๋ ๊ธฐ์กด ์์ฉ ์๋น์ค์ ๋ํ ๊ฐ์ฆ์์ ์์ํด, ๋ด ํ๋๋์คํฌ์ ์์ ์ ์๋ฒฝํ๊ฒ ํต์ ํ๋ ๋๋ง์ AI ์์ ๋น์๋ฅผ ๊ตฌ์ถํ ๊ธฐ๋ก์ ๋๋ค.
1. ์ ์ง์ ๋ง๋ค์๋? (Motivation)
๊ทธ๋์ ์์ ๊ด๋ฆฌ์ ์คํธ๋ฆฌ๋ฐ์ ์ํด Plexamp๋ฅผ ์ ์ฉํด ์์ต๋๋ค. ํ์ง๋ง ๋ ์ด ๊ฐ์๋ก ํ์์ ์ผ๋ก ๋ณํ๋ ์ง์ ์ ์ฑ ๊ณผ ๋งค๋ฌ ์ง๋ถํด์ผ ํ๋ ๊ตฌ๋ ๋ชจ๋ธ, ๊ทธ๋ฆฌ๊ณ ์ปค์คํฐ๋ง์ด์ง์ ํ๊ณ์ ์ง์น๊ณ ๋ง์์ต๋๋ค.
“๋ด ๋ฐ์ดํฐ๋ฅผ ๋ด๊ฐ ๊ฐ์ฅ ํธํ ๋ฐฉ์์ผ๋ก, ๋น์ฉ ๊ฑฑ์ ์์ด ์ฐ๊ณ ์ถ๋ค.”
๋ํ, ์๋ง ๊ณก์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๋์ผ๋ก ํ๋ ์ด๋ฆฌ์คํธํํ์ฌ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅ์ ๊ฐ๊น์ต๋๋ค. ์ฌ๋์ด ์ผ์ผ์ด ๊ด๋ฆฌํ๋ค ๋ณด๋ฉด ๊ฒฐ๊ตญ ๋ฃ๋ ๊ณก๋ง ๋ฃ๊ฒ ๋๊ณ , ์ด๋ฆ์กฐ์ฐจ ๊ธฐ์ต๋์ง ์๋ ์๋ง์ ๋ช ๊ณก์ ํ๋๋์คํฌ ๊น์ํ ๊ณณ์์ ์ ๋ค๊ฒ ๋ฉ๋๋ค. ์ด๋ ๋ช ๋ฐฑํ ์ ์ฅ ๊ณต๊ฐ์ ๋ญ๋น์ด์ ์์คํ ๋ฐ์ดํฐ์ ๋ฐฉ์น์ ๋๋ค.
์ด ๊ฐ๊ฒฐํ ๋ชฉํ๋ฅผ ์ํด ๋ก์ปฌ GPU ์๋ฒ์ ์คํ์์ค AI ๋๊ตฌ๋ค์ ๊ฒฐํฉํ๊ธฐ๋ก ํ์ต๋๋ค.
2. ์์คํ ์ค๊ณ: RAG(Retrieval-Augmented Generation)
๋จ์ํ ํค์๋ ๊ฒ์์ ์คํ๋ ๋ชจํธํ ํํ์ ์ทจ์ฝํฉ๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ์ฉ์์ ์๋๋ฅผ ๋ฒกํฐ(Vector)๋ก ์ดํดํ๋ RAG ์ํคํ ์ฒ๋ฅผ ์ฑํํ์ต๋๋ค.
- ์๋ฒ ๋ฉ ๋ชจ๋ธ:
mxbai-embed-large(Ollama๋ฅผ ํตํด ๋ก์ปฌ ๊ตฌ๋) - ๋ฒกํฐ DB: ChromaDB (์ ์ฌ๋ ๊ธฐ๋ฐ ๊ณก ๊ฒ์)
- ์ธํฐํ์ด์ค: ํ ๋ ๊ทธ๋จ ๋ด API (์ธ์ ์ด๋์๋ ์ ๊ทผ ๊ฐ๋ฅ)
- ์ธํ๋ผ: Docker & Docker Compose (๊ฐํธํ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ)
3. ํต์ฌ ์ค์ ํต์ฌ: ๋ฐ์ดํฐ ๊ด๋ฆฌ๊ฐ ์ ๋ถ๋ค! (Data Cleaning)
์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ๊ฐ์ฅ ๋ผ์ ๋ฆฌ๊ฒ ๋๋ ์ ์ **”Garbage In, Garbage Out”**์ ๋๋ค. ์๋ฌด๋ฆฌ ๋ฐ์ด๋ AI ๋ชจ๋ธ์ ์จ๋, ์์ค ๋ฐ์ดํฐ(ํ์ผ๋ช , ํ๊ทธ)๊ฐ ์๋ง์ด๋ฉด ๊ฒ์ ๊ฒฐ๊ณผ๋ ์ฒ์ฐธํฉ๋๋ค.
ํนํ ์๋์ฐ์ ๋ฆฌ๋
์ค๋ฅผ ์ค๊ฐ๋ ํ๊ฒฝ์์ ๋ฐ์ํ๋ **ํ๊ธ ์ธ์ฝ๋ฉ ๊นจ์ง(NFD/NFC ์ถฉ๋)**๊ณผ ๋ถํ์ํ ๊ด๊ณ ์ฑ ์ ๋ฏธ์ฌ([MV], Official, Kpop)๋ ๊ฒ์ ์ ํ๋๋ฅผ ๋จ์ด๋จ๋ฆฌ๋ ์ฃผ๋ฒ์ด์์ต๋๋ค.
๐ ๏ธ ๋ฐ์ดํฐ ์ ํ ํ๋ก์ธ์ค
๋จ์ํ ์ ์คํฌ๋ฆฝํธ ๋์ Python์ ๊ฐ๋ ฅํ ์ ๋์ฝ๋ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ ํ์ฉํ์ต๋๋ค.
- ์ธ์ฝ๋ฉ ์ ๊ทํ:
unicodedata.normalize('NFC', ...)๋ฅผ ํตํด ์๋ชจ ๋ถ๋ฆฌ ํ์์ ์๋ฒฝํ ํด๊ฒฐ. - ๋ฐ์ดํธ ๋จ์ ์ ์ด: ํ์ผ๋ช ์ด ์์ ํ ๊นจ์ง ์ํ์์๋ ๋ฐ์ดํธ ๋ ๋ฒจ์์ ๋ณต๊ตฌ๋ฅผ ์๋ํ์ฌ ์ ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ์ต์ํ.
- ์ง๋ฅํ ์ธ๋ฑ์ฑ: ํ์ผ๋ช ๋ฟ๋ง ์๋๋ผ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก์ ID3 ํ๊ทธ๋ฅผ ํ๋์ ๋ฌธ์ฅ์ผ๋ก ์กฐํฉํด AI๊ฐ ์ดํดํ๊ธฐ ์ฌ์ด ๋งฅ๋ฝ์ ์ ๊ณต.
๋ฐ์ดํฐ๊ฐ ๊นจ๋ํด์ง๋ ์๊ฐ, AI์ ๊ฒ์ ์ฑ๋ฅ์ ๋น์ฝ์ ์ผ๋ก ์์นํ์ต๋๋ค.
4. ์ด๋ฒ ํ๋ก์ ํธ์ ๊ฐ์ฅ ํฐ ์์: “์ฑ ๋ง๋ค๊ธฐ๊ฐ ๋๋ฌด ์ฝ๋ค”
๊ณผ๊ฑฐ์ ์ด๋ฐ ์์คํ ์ ๊ตฌ์ถํ๋ ค๋ฉด ๋ณต์กํ ๊ฒ์ ์์ง ๋ก์ง๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ์์ฃผ๊ฐ ๊ฑธ๋ ธ์ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ง๊ธ์ ๋ค๋ฆ ๋๋ค.
- AI์์ ํ์ : ๋ก์ปฌ LLM๊ณผ ๋ํํ๋ฉฐ ๋ณต์กํ ํ์ด์ฌ ์คํฌ๋ฆฝํธ์ ๋์ปค ์ค์ ์ ์์๊ฐ์ ์ง๋ผ ์ ์์ต๋๋ค.
- ๋ชจ๋ํ๋ ๋๊ตฌ: Ollama์ ChromaDB ๊ฐ์ ๋๊ตฌ๋ค์ด ์ถ์ํ๊ฐ ์ ๋์ด ์์ด, ์กฐ๋ฆฝ ์์ฃผ๋ก ๊ฐ๋ฐ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ด์ ๋ ๊ฑฐ์ฐฝํ ๊ฐ๋ฐ ํ์ด๋ ํฐ ์๋ณธ ์์ด๋, ๊ฐ์ธ์ด ๋ณธ์ธ์ ๋ถํธํจ์ ํด๊ฒฐํ๋ ์์ค ๋์ ์ฑ์ ๋ฉฐ์น ๋ง์ ๋๋ฑ ๋ง๋ค ์ ์๋ ์๋๊ฐ ๋์์ต๋๋ค.
5. ๊ฒฐ๊ณผ ๋ฐ ํฅํ ๊ณํ
- ์ฑ๋ฅ: ์์ฒ ๊ณก์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ “์ ๋๋ ๊ณก ์ฐพ์์ค” ํน์ “๊ฐ์ ์ด๋ฆ”๋ง ์ ๋ ฅํด๋ 0.5์ด ์ด๋ด์ ์ ํํ ๊ณก์ ์ ์กํฉ๋๋ค.
- ์์ : ๊ตฌ๋ ๋ฃ๋ ์๊ณ , ์ ์ฑ ๋ณํ์ ํ๋๋ฆด ์ผ๋ ์์ต๋๋ค. ๋ชจ๋ ๋ฐ์ดํฐ๋ ๋ด ์๋ฒ ์์์๋ง ์์ ํ๊ฒ ํ๋ฆ ๋๋ค.
๋ฌผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ผ๋ง๋ ์ ๋ง๋๋๋์ ๋ฐ๋ผ ๋ง์ ์ฐจ์ด๊ฐ ์์ต๋๋ค!!
๐ฎ ํฅํ ๊ณํ
- ์๋ ํ๋ ์ด๋ฆฌ์คํธ: ์ฌ์ฉ์์ ์์ฒญ ๊ธฐ๋ก์ ๋ถ์ํด ์ทจํฅ์ ๋ง๋ ๊ณก์ ๋จผ์ ์ ์ํ๋ ๊ธฐ๋ฅ.
- ์ค๋์ค ๋ถ์ ๊ฒฐํฉ: ํ ์คํธ๋ฅผ ๋์ด ์ค๋์ค ํํ ์์ฒด๋ฅผ ๋ถ์ํด ‘๋น์ทํ ๋๋์ ๊ณก’์ ์ฐพ๋ ๋ฉํฐ๋ชจ๋ฌ ๊ฒ์ ๋์ .
๋๋ง์ ๋ฐ์ดํฐ๋ฅผ AI์ ํ์ผ๋ก ์ฌ๋ฐ๊ฒฌํ๋ ๊ณผ์ ์ ๋งค์ฐ ์ฆ๊ฑฐ์ ์ต๋๋ค. ์์ฉ ์๋น์ค์ ์ ์ฝ์์ ๋ฒ์ด๋ ๋๋ง์ ๋์งํธ ์ํ ๋ฅผ ๊ตฌ์ถํ๊ณ ์ถ์ ๋ถ๋ค์ด๋ผ๋ฉด, ์ง๊ธ ๋น์ฅ ๋ก์ปฌ AI ์์ด์ ํธ ๊ฐ๋ฐ์ ๋์ ํด ๋ณด์๊ธธ ๊ถํฉ๋๋ค.

