처음엔 잘 되던 대화가 길어질수록 이상해지는 경험, 있으실 겁니다.

AI가 지쳐서가 아닙니다. 매 턴마다 지금까지의 대화 전체를 처음부터 다시 읽고 있기 때문입니다.

토큰, 컨텍스트 윈도우, ICL, RAG를 맥락이라는 하나의 축으로 꿰어보겠습니다.


3년 반쯤 이 도구들을 쓰면서 알게 된 것 하나를 말씀드리려고 합니다.

프롬프트를 잘 쓰는 것보다 중요한 게 있더군요. 맥락을 어떻게 관리하느냐입니다. 같은 프롬프트를 넣어도 대화 초반에 넣었을 때와 스무 번쯤 주고받은 뒤에 넣었을 때 결과가 다릅니다.

왜 그런지 알면 대처가 됩니다. 오늘은 그 이야기입니다.

먼저, 지난번 이야기를 바로잡습니다

앞선 편에서 한국어가 토큰을 더 많이 쓴다고 말씀드리면서 학습 데이터에 영어가 많아서라고 했습니다. 틀린 말은 아닌데, 이렇게만 두면 오해가 생깁니다. 한국어라는 언어가 원래 비효율적이라는 뜻으로 읽히거든요.

그렇지 않습니다. 정확히 말하면 언어의 한계가 아니라 도구의 한계입니다.

토큰을 나누는 방식과 그것을 숫자로 바꾸는 방식은 사람이 설계합니다. 영어권에서 만든 도구는 영어를 잘 나누도록 오래 다듬어졌고, 한국어는 그만한 연구와 투자가 아직 쌓이지 않았습니다. 실제로 한국어를 염두에 두고 만든 모델들은 같은 문장을 훨씬 적은 조각으로 처리합니다.

즉 한글이 손해를 보는 게 아니라, 한글용 도구가 아직 덜 다듬어진 것입니다. 이건 시간과 투자로 좁혀지는 격차고, 실제로 좁혀지고 있습니다.

교실에서 아이들에게 설명할 때도 이 구분이 중요합니다. "우리말은 AI가 다루기 어려운 언어야"와 "아직 우리말용 도구가 덜 만들어졌어"는 아이들에게 남기는 게 완전히 다릅니다.

컨텍스트 윈도우 — 한 번에 볼 수 있는 크기

AI가 한 번에 읽을 수 있는 분량에는 한계가 있습니다. 이걸 컨텍스트 윈도우라고 합니다.

책상 위에 펼쳐놓을 수 있는 종이의 넓이라고 생각하시면 됩니다. 넓이는 정해져 있고, 새 종이를 올리려면 아래 있던 게 밀려납니다.

모델이 좋아지면서 이 넓이는 계속 커지고 있습니다. 그런데 넓어졌다고 문제가 사라지지는 않았습니다. 왜 그런지가 오늘의 핵심입니다.

ICL — 가르치지 않고 가르치는 법

우리가 대화 중에 AI에게 뭔가를 알려주면 그다음 답변이 달라집니다. 이걸 In Context Learning, 맥락 내 학습이라고 합니다.

중요한 건 이겁니다. 모델 자체는 조금도 바뀌지 않습니다. 학습이라는 말이 붙어 있지만 실제로 배우는 게 아니라, 프롬프트 안에 들어 있는 예시와 맥락만 보고 그 자리에서 흉내 내는 겁니다.

그래서 두 가지가 따라옵니다.

하나. 멀티턴 대화가 곧 학습 세션입니다. 앞에서 주고받은 내용이 뒤 답변에 영향을 줍니다. 우리가 대화를 이어가며 "아니 그거 말고", "좀 더 짧게"라고 고쳐가는 과정이 사실은 그 자리에서 가르치는 과정입니다.

둘. 새 대화를 시작하면 전부 사라집니다. 어제 세 시간 동안 공들여 맞춰놓은 어투도, 새 창을 열면 처음부터입니다.

연수에서 저는 이걸 「첫 키스만 50번째」로 설명합니다. 기억이 매일 리셋되는 여자 주인공에게 남자 주인공이 매일 아침 다시 맥락을 건네주는 영화죠. AI와의 대화가 정확히 그 구조입니다.

그런데 이 구조가 비효율적입니다

여기서부터가 잘 알려지지 않은 부분입니다.

AI는 대화가 이어질 때 매 턴마다 지금까지의 전체 대화를 처음부터 다시 읽습니다.

3턴째 질문을 하면 이런 일이 벌어집니다.

본문 이미지

10턴이면 20개 덩어리를 다시 읽고, 30턴이면 60개를 다시 읽습니다. 사람으로 치면 한 마디 할 때마다 그날 나눈 대화 전체를 처음부터 다시 훑고 입을 여는 셈입니다.

결과는 이렇습니다.

  • 느려집니다. 읽을 게 계속 늘어나니까요
  • 초점이 흐려집니다. 정작 중요한 지시가 스무 개 덩어리 사이에 묻힙니다
  • 앞부분이 희미해집니다. 길어진 문서에서 가운데 있는 내용이 잘 반영되지 않는 현상이 알려져 있습니다

대화가 길어질수록 답이 이상해지는 게 착각이 아니라는 뜻입니다. 구조상 그렇게 됩니다.

그래서 압축합니다

해결은 단순합니다. 길어진 대화를 그대로 끌고 가지 말고, 핵심만 압축해서 새로 시작하는 것.

▼ 그대로 복사해서 쓰는 프롬프트

javascript
지금까지의 대화를 핵심만 요약해 줘.

────────────────
■ 요약에 꼭 남길 것
────────────────
• 내가 요청한 것과 조건
• 우리가 합의한 형식과 어투
• 하지 말라고 한 것
• 아직 결정하지 않은 것

────────────────
■ 형식
────────────────
• 새 대화창에 그대로 붙여넣을 수 있는 형태로
• 20줄 안쪽

이 요약을 복사해서 새 대화를 열고 맨 처음에 붙여넣습니다. 그러면 맥락은 유지되고 읽을 분량은 확 줄어듭니다.

저는 대화가 스무 번쯤 오가거나, 답변이 눈에 띄게 겉돌기 시작하면 이걸 씁니다. 처음엔 번거로워 보이는데, 한 번 해보시면 답변 품질이 확 돌아오는 걸 느끼실 겁니다.

RAG — 다 넣지 말고 필요한 것만 꺼내오기

압축의 다음 단계가 있습니다.

지금까지는 필요한 자료를 프롬프트에 통째로 붙여 넣었습니다. 학교 규정을 참고하게 하려면 규정 전체를 복사해 넣는 식이죠. 이걸 다 넣기 방식이라고 부르겠습니다.

간단하고 직관적이지만 한계가 뚜렷합니다. 책상 넓이를 넘으면 못 넣고, 넣더라도 정작 필요한 한 조항이 나머지에 묻힙니다.

RAG는 반대로 갑니다. 자료를 미리 잘게 나눠 저장해두고, 질문이 들어오면 관련 있는 조각만 찾아서 프롬프트에 끼워 넣습니다. 세 단계로 움직입니다.

  1. 검색 — 저장해둔 자료에서 관련 있는 부분을 찾고
  2. 결합 — 찾은 조각을 질문에 붙여서
  3. 생성 — 그 맥락을 근거로 답변

연수에서는 도서관에 비유합니다. AI에게 바로 묻는 대신, 사서에게 관련된 책을 먼저 받아서 그 책을 펴놓고 답하게 하는 것.

본문 이미지

제가 2023년에 만든 울산 문화재GPT가 이 구조였습니다. 문화재 자료를 따로 정리해 지식베이스로 만들어두고, 아이들이 질문하면 거기서 근거를 찾아 답하게 했습니다. 그냥 물었을 때와 답의 정확도가 확연히 달랐습니다.

다 넣기RAG
방식문서를 통째로 프롬프트에관련 조각만 찾아서
준비필요 없음저장·검색 구조 필요
한계책상 넓이에 묶임자료를 무한히 늘릴 수 있음
정확도묻힐 수 있음관련 정보만 주니 더 정확
출처알기 어려움어느 자료를 봤는지 추적 가능

마지막 줄이 학교에서는 특히 중요합니다. 근거를 댈 수 있느냐의 문제니까요.

지금은 파일을 올리거나 프로젝트에 자료를 넣어두는 것만으로도 비슷한 효과를 볼 수 있습니다. 이 이야기는 뒤에 따로 한 편을 들여 다루겠습니다.

오늘의 정리

  • 한국어가 토큰을 많이 쓰는 건 언어의 한계가 아니라 도구의 문제입니다
  • AI는 매 턴마다 대화 전체를 처음부터 다시 읽습니다
  • 그래서 길어질수록 느려지고 흐려집니다. 착각이 아닙니다
  • 압축해서 새로 시작하는 습관이 답변 품질을 지켜줍니다
  • 자료가 많으면 다 넣지 말고 필요한 조각만 꺼내오는 구조로 갑니다

다음 편에서는 방향을 바꿔서, 답변 자체의 정확도를 끌어올리는 다섯 가지 기법을 다루겠습니다. 예시를 몇 개 줘야 하는지, 왜 단계별로 생각하게 하면 정답률이 오르는지, 그리고 제가 ABA라고 부르는 방법까지.


덧붙임

오늘 다룬 내용은 제가 전국 연수에서 가장 자주 쓰는 대목들입니다. 처음 듣기엔 어려운데, 한 번 잡아두면 도구가 바뀌어도 그대로 쓸 수 있는 것들이기도 합니다.

학교에서 쓸 만한 AI 플랫폼을 하나하나 짚은 『AI 플랫폼 학교를 바꾸다』도 같이 보시면 도움이 될 겁니다. 그 책이 어떤 도구가 있는지를 다뤄다면, 이 연재는 그 도구를 어떻게 부릴지를 다룹니다.

예스24 보러 가기 → https://www.yes24.com/product/goods/195098723

궁금한 점이나 현장에서 막혔던 상황은 댓글로 남겨주세요. 사례로 풀어보겠습니다.

글 석희철 · 초등교사, 우리아이(AI) 개발팀장

#컨텍스트윈도우 #InContextLearning #RAG #프롬프트엔지니어링 #챗GPT활용법 #생성형AI #AI교육 #교사AI활용 #초등교사 #교사연수 #에듀테크 #AI플랫폼학교를바꾸다 #석희철 #미래교육창작소