📚 이 글은 마인크래프트 AI 주지스님 워크스루 3편입니다.
① 서피스프로8에서 SLM 가볍게 테스트 – Ollama로 1.5B~3B 모델 로컬 실행해보기
② SLM에게 참고자료를 줬더니, 3B와 8B가 다르다 – Llama 3B vs. 8B RAG 테스트 비교
③ RAG는 결국 ‘프롬프트를 잘 만들어 주는 도구’네
④ RAG 자료창고 짓기 전 알아야 할 것들
⑤ 임베딩을 오해하며 이해하기
⑥ 질문에서 답까지 – RAG 파이프라인, 로컬에서 완성
⑦ 같은 질문, 다른 크기 — 1B/3B/8B가 반야심경에 답하다
llama 3B와 8B 모델로 RAG 테스트한 결과를 보면 지금 상태에선 8B 모델을 이용해야 할 것 같다.
내가 어제 RAG를 테스트하기 위해 SLM에 참고자료를 준 방법은,
프롬프트 창에 요청사항과 그 요청사항을 수행하기 위한 참고자료를 함께 ‘손으로’ 입력해 준 거였다.
그럼 실제로 RAG 구현은 어떻게 해야할까?
AI 학습 vs. RAG
먼저 AI를 학습시키는 것과 RAG를 적용하는 것이 어떻게 다른 건지 정리해 보면,
왜 지금 내가 RAG를 실제로 만들어보려는 건지 또 실제 RAG는 어떻게 구현하는 건지 이해하기 수월할 것 같다.
AI를 학습시키는 걸 간략히 표현하면,
학습과정에서 AI모델이 수많은 텍스트를 보면서 ‘이런 맥락 다음엔 이런 단어가 나올 확률이 높다’는 패턴을 수억~수천억 개의 파라미터에 새겨넣는 거다.
학습이 끝나면 학습에 쓰인 텍스트는 모델 안에 그대로 보관되지 않고, 그 텍스트가 남긴 ‘통계적 흔적’만 파라미터 속에 흩어져 남는다.

그래서 모델에게 뭔가를 물으면 실제로 그 내부에서 도서관에서 자료를 찾듯 해당 정보를 찾는게 아니라,
그 통계적 흔적들을 조합해서 그럴듯한 다음 단어를 매번 새로 만들어 내고,
그 흔적이 약하면 그럴 듯하게 지어내 버려서 할루시네이션이 생기는 거다.
그런데 이렇게 AI를 학습시키는데는 GPU도 많이 필요하고 그래서 돈도 많이 필요하고,
이미 학습이 끝난 모델에 새 정보를 추가하기가 어려워..
이와 달리 RAG는 자료를 파라미터에 반영하지 않고 프롬프트에 참고할 자료를 보여주고 바로 참고하게 만드는 구조다.
비유하자면,
우리는 시험공부할 때 시험범위의 지식을 머리속에 구조화한다.(AI학습)
암기도 이해한 후에 해야 잘 외워진다.
하지만 실제 시험장에선 세부적으로 생각 안나는 단어들이나 내용들이 있을 수 있어. 아.. 그거 그 둘째 페이지 중간 쯤에 나와 있었는데.. 뭐였더라 하고.
오픈북 시험은 그럴 때 유용한 거다.(RAG)
셤공부를 안하면 오픈 북 셤도 잘 보기 어려워.(파라미터가 너무 작은 모델은 RAG를 줘도 이를 제대로 쓰지 못해.. 3B 모델은 참고자료를 줘도 답변이 시원찮았거든)
SLM에 RAG 위한 참고자료 입력 방법
내 계획은 마인크래프트에 절을 짓고, 거기에 SLM을 이용해서 주지스님을 만들어서
게임참여자들이 ‘왜 이리 사는게 힘들고 고달프죠..스님?’이라고 물으면 주지스님이 답변해 주도록 만드는 거다.
실제로 이걸 프로그램으로 구현하면 어떻게 되는 걸까?

위에 정리된 것처럼 3단계로 돌아간다.
게임참여자(플레이어)가 주지스님에게 말을 걸면,
코드가 자동으로 “불교 자료 창고”에서 그 질문과 관련된 구절을 찾아오고(1단계: 검색),
찾아온 구절과 게임참여자의 질문을 합쳐서 프롬프트 형태로 만들어주고(2단계: 조립),
그 프롬프트를 8B 모델에게 보내서 답을 받아서 화면에 주지스님 대사로 출력하는 거다(3단계: 생성).
내가 어제 손으로 했던 게 바로 2단계였다.
반야심경 해설본을 직접 복사해서 프롬프트 창에 붙여넣고, “이걸 참고해서 설명해줘”라고 함께 입력했던 것.
프로그램(코드)을 쓰면 그 귀찮은 복붙 작업을 자동으로 대신 해주는 거다.
결국 내가 한땀한땀 ‘손으로’ 복붙했든, 코드가 자동으로 해 줬든,
8B 모델이 실제 프롬프트 창으로 받는 건 “참고자료 + 질문”이 합쳐진 프롬프트 하나다.
자.. 다음에 이어서 해볼 건, 위의 1단계 검색을 실제로 파이썬 코드로 만들어보는 것.
그게 마인크래프트 절에 주지스님을 앉히기 위한 다음 숙제다.
그런데.. 이까지 이해하고 보니,
“불교자료창고” 만들 일이 또 아득해지네..
좋은 답변을 할 수 있도록 만들려면 결국 이 자료창고에 좋은 자료가 구조적으로 쌓여야 할 것 같은데..
자료를 쌓기 전에, 어디에 어떻게 얼마나 쌓아야 할지부터 공부해야 할거 같은데?
이 과정도 별도의 꽤나 큰 작업일 듯하다.
아무튼 오늘은 이까지 정리.
(2026.7.2. 네이버 블로그에 포스팅했던 글인데, 이곳으로 이사왔습니다.)
Q. AI 모델을 학습시키는 것과 RAG를 적용하는 것은 어떻게 다른가요?
A. 학습은 텍스트가 남긴 통계적 패턴을 모델의 파라미터 안에 새겨 넣는 과정이고, RAG는 파라미터를 건드리지 않은 채 프롬프트에 참고자료를 함께 제시해서 그 자리에서 참고하게 만드는 방식입니다. 시험에 비유하면 학습은 시험범위를 미리 암기해두는 것이고, RAG는 오픈북 시험처럼 필요한 순간에 자료를 펼쳐보는 것에 가깝습니다.
Q. 파라미터 크기가 작은 언어모델(SLM)도 RAG를 통해 참고자료를 잘 활용할 수 있나요?
A. 모델 크기에 따라 차이가 있습니다. 파라미터가 너무 작은 모델은 프롬프트에 참고자료를 함께 줘도 이를 제대로 소화하지 못하고 답변의 질이 떨어지는 경우가 있는데, 이는 오픈북 시험도 평소 공부가 안 되어 있으면 자료를 봐도 제대로 못 푸는 것과 비슷한 이치입니다. 따라서 RAG를 설계할 때는 참고자료 검색 방식뿐 아니라, 그 자료를 실제로 활용할 수 있는 최소한의 모델 크기도 함께 고려해야 합니다.
Q. AI가 할루시네이션을 일으키는 이유는 무엇인가요?
A. AI 모델은 질문을 받으면 내부에 저장된 자료를 찾아서 답하는 게 아니라, 학습 과정에서 남은 통계적 흔적들을 조합해 그럴듯한 다음 단어를 매번 새로 만들어냅니다. 이때 특정 주제에 대한 흔적이 약하면, 모델은 그 빈틈을 그럴듯하게 지어내서 채우게 되는데 이것이 할루시네이션입니다.
Q. RAG 시스템은 실제로 어떤 단계를 거쳐 답변을 만들어내나요?
A. 크게 검색, 조립, 생성의 3단계로 동작합니다. 먼저 질문과 관련된 자료를 자료창고에서 찾아내고(검색), 찾아온 자료와 질문을 하나의 프롬프트 형태로 합친 뒤(조립), 그 프롬프트를 모델에 전달해 답을 받습니다(생성). 이 구조를 이해하면 RAG가 결국 “프롬프트를 자동으로 잘 만들어주는 도구”에 가깝다는 것을 알 수 있습니다.
