쓸모 쓸모연구소 · 실전 노트
제 740 호이번 주 새 글 260 편2026 · 10 · 30
챗GPT·제미나이⁠·AI 소식
챗GPT · Claude

LLM 원리 쉽게 이해하기, 토큰⁠·어텐션부터 RAG·파인튜닝까지

LLM 원리를 비개발자 눈높이로 학습, 추론, 활용 방법 고르기 세 꼭지로 나눠 설명합니다. 토큰과 파라미터가 무엇인지, 모델이 다음 토큰을 어떻게 고르는지 따라가고, 어떤 문제를 프롬프트로 풀고 언제 RAG를 붙이며 언제 파인튜닝까지 가야 하는지 판단 기준을 정리했습니다. 누가 "RAG 붙이면 됩니다", "학습시켜야죠"라고 할 때 그 말이 실제로 무슨 뜻인지 스스로 판단할 수 있게 하는 것이 목표입니다.

LLM 원리 쉽게 이해하기, 토큰·어텐션부터 RAG·파인튜닝까지 삽화
삽화 · 쓸모연구소

LLM 원리, 세 꼭지로 나눠 보기

LLM(대규모 언어 모델, ChatGPT나 Claude 같은 AI의 바탕 모델)을 이해할 때는 세 덩어리로 나누면 편합니다.

  • LLM이 어떻게 학습되는가
  • 학습된 모델이 어떻게 추론하는가
  • 프롬프트⁠·RAG·파인튜닝을 언제 무엇으로 고르는가

아래 설명은 이해를 돕기 위해 비유를 많이 쓰고, 일부 용어는 묶어서 단순하게 풀었습니다. 정확한 기술 용어가 필요하면 각 단계의 영어 이름으로 더 찾아보면 됩니다.

1부. 학습: 글뭉치에서 모델이 되기까지

글이 숫자가 되고, 숫자가 토큰이 된다

출발점은 코퍼스입니다. 인터넷에 흩어진 글을 한데 모은 아주 긴 글뭉치입니다. 규모를 가늠해 보면, Hugging Face가 공개한 학습용 웹 글 데이터셋 FineWeb은 약 15조 토큰, 디스크 용량으로 약 44TB입니다.

컴퓨터는 글자를 UTF-8 인코딩으로 0과 1의 묶음으로 저장합니다. 그래서 모든 글은 숫자의 나열(시퀀스)로 바꿀 수 있습니다.

다음은 압축입니다. 사진을 JPG로 줄이듯 자주 반복되는 조합을 하나로 묶어 단어집(Vocabulary)을 만들고, 그렇게 나온 묶음 하나하나를 토큰이라고 부릅니다. 토큰은 단어와 같지 않습니다. 한 단어가 여러 토큰으로 쪼개지기도 하고, 자주 붙어 다니는 글자들이 한 토큰이 되기도 합니다.

모델마다 단어집이 다릅니다. 같은 글이라도 모델에 따라 토큰 수가 다르게 나오는 이유입니다. 직접 세어 보는 방법은 아래 "직접 해 볼 수 있는 두 가지"에 단계로 정리했습니다.

학습이란 다음 토큰을 맞히는 게임

문장 끝 토큰 하나를 가리고 신경망에게 맞히게 합니다. 신경망은 단어집 전체에 순위를 매기는데, 처음에는 완전히 랜덤이라 틀립니다.

정답을 알려 주면 어디서 잘못했는지 거슬러 올라가 값을 조금씩 고칩니다. 이것이 역전파(backpropagation)입니다. 틀린 이유를 되짚는 "반성문"이라고 생각하면 쉽습니다.

이때 고치는 대상이 파라미터입니다. DJ 믹서의 노브(조절 손잡이)를 떠올리면 됩니다. 70B 모델이면 노브가 700억 개라는 뜻입니다. 노브를 어디에 얼마만큼 돌려 놓았는지가 가중치입니다.

  • 단어집 크기: 모델마다 다릅니다. GPT-4에 쓰인 토크나이저(cl100k)는 약 10만 개이고, 최근 모델들은 15만~20만 개 안팎을 씁니다.
  • 토큰과 파라미터: 둘은 수가 서로 상관없습니다. 세탁기에 빗대면 토큰은 세탁물, 파라미터는 세탁 코스입니다.
  • 언제 멈추나: 학습은 틀린 정도(로스, loss)를 줄이는 과정이고, 더 줄지 않으면 멈춥니다.

베이스 모델, 그리고 파인튜닝

여기까지가 프리트레인(Pre-training, 사전 학습)이고, 결과물이 베이스 모델입니다. 수천 개 단위의 GPU와 막대한 전력이 들어가는 단계라 이 규모로 학습할 수 있는 곳은 많지 않습니다.

베이스 모델은 아직 때와 장소, 상황에 맞춰 대답하지 못합니다. 인터넷 글을 이어 쓰는 데만 익숙하기 때문입니다. 그래서 대화하는 법을 익히는 추가 훈련인 포스트 트레인(Post-training, 사후 학습)을 거치고, 그중 하나가 파인튜닝입니다.

파인튜닝은 크게 두 갈래입니다.

  • 전체 가중치를 다시 계산하는 방식(풀 파인튜닝)
  • 기존 가중치는 그대로 두고 "확장 키트"처럼 작은 추가분만 계산하는 방식. LoRA가 대표적이고, 계산할 양이 적어 더 저렴합니다.

사람의 평가나 보상을 이용하는 강화학습도 포스트 트레인에 쓰입니다. 강화학습은 정답 데이터를 하나하나 주는 대신 무엇이 좋은 결과인지 보상(리워드)을 설계하고, 모델이 보상을 많이 받는 쪽으로 스스로 고쳐 가게 하는 방식입니다.

학습 "레시피"(데이터 구성, 순서, 기법)가 모델마다 달라서 벤치마크 순위도 들쑥날쑥합니다. 같은 크기의 모델이라도 잘하는 분야가 다른 이유입니다.

컨텍스트 윈도우는 클수록 좋을까

컨텍스트 윈도우는 모델이 한 번에 읽을 수 있는 입력 길이입니다. 크다고 늘 좋은 것은 아닙니다. 쌓인 내용이 많아지면 어텐션(뒤에서 설명)이 흩어져 집중도가 떨어지고, 중간에 있는 중요한 내용을 놓치기 쉽습니다. 긴 대화를 오래 이어 가면 답이 흐려지는 것도 이 때문입니다.

2부. 추론: 모델이 다음 토큰을 고르는 순서

학습이 끝난 모델이 내 질문을 받았을 때 안에서 벌어지는 일을 순서대로 따라가 보겠습니다.

토큰화와 임베딩

입력 문장을 토큰으로 쪼개고, 토큰마다 붙은 고유 번호(ID)로 바꿉니다. 그다음 임베딩을 합니다. 임베딩은 토큰 번호를 뜻을 담은 숫자 묶음(벡터)으로 바꾸는 과정입니다. 뜻이 비슷한 토큰은 비슷한 숫자 묶음이 됩니다.

레이어와 어텐션

임베딩된 값은 여러 개의 레이어(층)를 차례로 지나갑니다. 레이어마다 같은 종류의 계산이 되풀이됩니다.

레이어 안의 핵심은 어텐션입니다. 토큰 하나가 앞선 토큰들과 얼마나 관계가 깊은지를 잽니다. "로이는 우리 집에 사는 고양이"라는 문장이라면 로이와 고양이의 관계가 높게 잡힙니다. 그래서 모델은 로이가 고양이 이름이라는 맥락을 붙잡습니다.

이 구조가 트랜스포머(Transformer)이고, 2017년 구글 연구진의 논문 "Attention Is All You Need"에서 나왔습니다. 그 전의 방식은 문장이 길어질수록 앞 내용을 잊어버리는 약점이 컸습니다.

어텐션 결과는 MLP(어텐션 뒤에 붙는 계산 층)에서 한 번 더 가공됩니다. 어텐션 헤드 여러 개가 서로 다른 관계를 동시에 보고, 앞 레이어의 계산 상태(히든 스테이트)가 다음 레이어로 넘어갑니다.

로짓, 소프트맥스, 샘플링

마지막 레이어를 지나면 다음 토큰 후보들이 점수로 나옵니다. 이 점수가 로짓(logit)입니다. 로짓을 합이 1이 되는 확률로 바꾸는 것이 소프트맥스(softmax)입니다.

마지막이 샘플링입니다. 온도(Temperature), Top-K, Top-P가 후보 중 어디까지 뽑을지 정합니다.

  • 온도가 높으면 낮은 순위 후보도 뽑혀 더 다양하고 창의적인 답이 나오고, 낮으면 상위 후보만 써서 답이 일정해집니다.
  • Top-K는 상위 K개 후보만, Top-P는 확률을 위에서부터 더해 P에 닿을 때까지의 후보만 남깁니다.
  • 마지막에는 남은 후보 중에서 확률대로 "동전 던지기"를 해 하나를 고릅니다.
  • API로 모델을 부를 때는 이 값을 직접 넣을 수 있습니다. 채팅 앱에서는 보통 사용자가 직접 정하지 않습니다. 일부 추론 모델은 API에서도 온도 설정을 받지 않습니다.

첫 답이 늦고, 그다음이 빠른 이유

처음 받은 입력을 통째로 처리하는 구간이 프리필(prefill)입니다. 답이 나오기 전 "생각 중"처럼 보이는 시간입니다. 그 뒤로는 앞에서 계산한 키(Key)와 밸류(Value) 값을 저장해 두고 다시 계산하지 않아서 빠릅니다. 이 저장소를 KV 캐시(KV Cache)라고 합니다.

대답이 끝나는 것도 모델이 "여기서 멈춘다"는 뜻의 스톱 토큰을 내놓기 때문입니다. 대화형 모델이 알맞은 곳에서 말을 맺는 법은 포스트 트레인에서 익힙니다.

추론하는 동안 파라미터는 바뀌지 않습니다. 바뀌는 건 학습할 때뿐입니다. 채팅에서 내가 가르쳐 준 내용을 다음 대화에서 모델이 모르는 것도 그래서입니다. 기억 기능이 있는 서비스는 대화 내용을 따로 저장했다가 입력에 다시 넣어 주는 방식입니다.

추론 깊이와 긴 컨텍스트

  • 긴 컨텍스트: 입력이 길어지면 어텐션이 따져야 할 관계가 급격히 늘어 계산이 많아지고, 중요한 내용을 놓칠 수 있습니다.
  • 추론 깊이 조절: 요즘 모델에 있는 "생각하기(thinking)"나 추론 강도 설정은 모델 구조(레이어 수)를 바꾸는 것이 아닙니다. 답을 내기 전에 중간 풀이 토큰을 얼마나 많이 만들게 할지를 정하는 설정입니다. 깊게 생각하게 할수록 시간과 토큰 비용이 늘어납니다.

직접 해 볼 수 있는 두 가지

노트북이나 PC가 있으면 바로 해 볼 수 있는 활동 두 가지입니다.

준비물

  • 인터넷이 되는 노트북⁠·PC와 웹브라우저
  • 토큰 수를 세어 주는 웹 서비스 Tiktokenizer(tiktokenizer.vercel.app). OpenAI 플랫폼의 Tokenizer 페이지(platform.openai.com/tokenizer)를 써도 됩니다.

활동 1. 토큰 수 세어 보기

1단계. 토큰을 세어 주는 서비스를 엽니다

  • 위치: 브라우저 주소창에 tiktokenizer.vercel.app 입력
  • 대안: OpenAI 플랫폼의 Tokenizer 페이지나 플레이그라운드에 들어가도 됩니다.
  • 확인: 왼쪽에 글을 쓰는 입력 영역이 보입니다.

2단계. 왼쪽 입력 영역에 아무 글이나 씁니다

  • 확인: 글이 입력됩니다. 한국어 문장과 영어 문장을 둘 다 넣어 보면 차이가 잘 보입니다.

3단계. 총 토큰 수를 읽습니다

  • 확인: 이 글이 총 몇 토큰인지 숫자가 나옵니다.

4단계. 어디서 어디까지가 한 토큰인지 봅니다

  • 확인: 단어나 띄어쓰기와 다르게 묶인 구간이 색으로 구분돼 보입니다. "왜 이렇게 불편하게 세지?" 싶겠지만, 자주 나오는 조합을 묶어 단어집을 줄이기 위해서입니다.

5단계. 모델을 다른 것으로 바꿉니다

  • 위치: 화면 위쪽의 모델(인코딩) 선택 목록
  • 확인: 선택된 모델이 바뀝니다.

6단계. 같은 글의 토큰 수와 묶음이 달라지는지 봅니다

  • 확인: 모델마다 단어집이 달라 같은 글이라도 토큰 수와 묶이는 위치가 달라집니다. 직접 본 결과로 확인하면 됩니다.

활동 2. 추론 과정 시각화 사이트 보기

추론 과정을 3D로 시각화해 둔 사이트가 있습니다. 브렌던 바이크로프트(Brendan Bycroft)가 만든 LLM Visualization(bbycroft.net/llm)입니다. 비슷한 사이트로 조지아공대 연구진이 만든 Transformer Explainer(poloclub.github.io/transformer-explainer)도 있습니다.

7단계. 시각화 사이트를 엽니다

  • 위치: 브라우저 주소창에 bbycroft.net/llm 입력
  • 확인: 작은 GPT 모델의 내부를 시각화해 놓은 화면이 열립니다.

8단계. 왼쪽 시나리오의 재생 버튼을 누릅니다

  • 위치: 화면 왼쪽 설명 영역
  • 확인: 토큰이 임베딩되고 레이어를 지나 다음 토큰이 나오기까지의 과정이 차례로 재생됩니다. 앞에서 단순하게 묶어 설명한 부분이 실제로는 어떻게 생겼는지 볼 수 있습니다.

다 했는지 확인

  • 같은 글의 토큰 수를 두 모델 이상에서 비교했다 (6단계)
  • 토큰이 단어⁠·띄어쓰기와 다르게 묶이는 것을 확인했다 (4단계)
  • 시각화 사이트에서 재생 버튼을 눌러 한 번 재생했다 (8단계)

막힐 때

  • 사이트가 열리지 않는다: 주소를 다시 확인하고, 사이트 이름(Tiktokenizer, LLM Visualization)으로 검색해 들어갑니다.
  • 모델을 바꿔도 토큰 수가 같다: 같은 계열 인코딩끼리는 결과가 비슷할 수 있습니다. 계열이 다른 모델로 바꿔 다시 확인합니다.
  • 시각화 화면이 느리다: 3D 그래픽을 많이 쓰는 사이트라 PC 브라우저에서 여는 편이 낫습니다.

3부. 프롬프트⁠·RAG·파인튜닝, 언제 무엇을 고르나

결론은 생각보다 명료합니다. 모델 성능이 워낙 좋아져서 웬만하면 파인튜닝까지 갈 일은 많지 않습니다.

프롬프트와 지침

일반적인 일 대부분은 프롬프트와 지침으로 풀립니다. 스킬을 만들거나 에이전트를 짜는 것까지 "프롬프트"라고 부르면 표현이 넓긴 하지만, 모델에게 글로 된 지시와 자료를 넣어 준다는 기본 원리는 같습니다.

파인튜닝

파인튜닝을 검토할 만한 조건은 이렇습니다.

  • 반복적인 형식⁠·행동: 늘 같은 JSON 형태로 답해야 하는 경우 등
  • 특화된 태스크
  • 비용 최적화: 결국 가장 큰 이유입니다. 다만 규모가 있어야 의미가 있습니다.

비용은 가정으로 따져 보면 이해가 쉽습니다. 하루 100만 번 호출하는 일이 있고 그 비용이 한 달에 수천만 원이라고 가정해 봅시다. 호출마다 긴 시스템 프롬프트(모델에게 늘 붙여 보내는 기본 지시문)가 들어간다면, 그 지시 내용을 파인튜닝으로 모델에 익혀 두고 시스템 프롬프트를 빼서 입력 토큰을 줄일 수 있습니다. 실제 견적이 아니라 원리를 보여 주는 가정입니다.

RAG

RAG(검색 증강 생성)는 문서를 벡터(숫자의 조합)로 바꿔 저장해 두고, 질문과 뜻이 가까운 부분만 찾아 프롬프트에 넣어 주는 방식입니다.

  • 왜 쓰나: 긴 자료를 통째로 넣으면 어텐션이 흩어지고 컨텍스트 윈도우 한도를 넘길 수도 있어서입니다.
  • 언제 맞나: 근거를 대야 하는 답변, 자주 바뀌는 최신 정보. 이런 것은 매번 파인튜닝을 돌릴 수 없으니 RAG가 맞습니다.
  • 함께 쓰는 경우: 잘 짠 프롬프트에 RAG까지 같이 쓰는 경우가 꽤 많습니다.

둘 다 도구가 아니라 방법론

RAG와 파인튜닝은 특정 제품이 아니라 방법론입니다. RAG는 학습이 아니라 프롬프트에 검색 결과를 끼워 넣는 기법이고, 파인튜닝은 파라미터를 건드립니다. 그래서 RAG는 문서만 바꾸면 바로 최신 정보가 반영되고, 파인튜닝은 다시 학습해야 바뀝니다.

판단 기준을 한 번에 줄이면 이렇습니다. 새 정보를 계속 참고해야 하면 RAG, 같은 형태의 출력을 아주 큰 규모로 반복해야 하거나 특정 행동⁠·형식을 모델에 익히는 편이 비용상 나으면 파인튜닝을 검토합니다. 나머지 많은 문제는 좋은 프롬프트와 지침, 에이전트 구조로 풀립니다.

모델은 무엇부터 따져 고르나

모델을 고를 때는 성능표보다 환경 조건을 먼저 묻습니다.

  • 내 컴퓨터나 사내 서버에서 돌려야 하는지(로컬)
  • 인터넷과 분리된 망에서 써야 하는지(망 분리)
  • 클라우드 API를 써도 되는지
  • 고객사나 회사의 규정(컴플라이언스) 제약은 무엇인지

이 조건 안에서 비용이 가장 맞는 모델을 고르고, 운영하면서 더 나은 모델이 나오면 중간에 바꾸기도 합니다. 우리가 쓰는 GPT 같은 대화형 모델도 결국 베이스 모델에 포스트 트레인(파인튜닝 포함)을 거쳐 나온 결과물입니다.

자주 묻는 질문

토큰과 파라미터는 무엇이 다른가요?

토큰은 모델이 읽고 쓰는 글의 단위이고, 파라미터는 학습으로 조정되는 모델 내부의 값입니다. 세탁기에 빗대면 토큰은 세탁물, 파라미터는 세탁 코스입니다. 두 수는 서로 상관이 없습니다.

같은 글인데 모델마다 토큰 수가 다른 이유는 무엇인가요?

모델마다 단어집(토크나이저)이 달라서입니다. 자주 나오는 글자 조합을 어떻게 묶어 두었는지가 달라, 같은 문장도 쪼개지는 위치와 개수가 달라집니다. 요금이 토큰 단위로 매겨지니 비용 비교 때도 이 차이를 봐야 합니다.

RAG와 파인튜닝 중 무엇을 먼저 해야 하나요?

대부분은 프롬프트와 지침부터 시작하고, 자주 바뀌는 자료나 근거가 필요한 답이면 RAG를 붙입니다. 파인튜닝은 같은 형식의 출력을 아주 큰 규모로 반복해 비용을 줄여야 할 때 검토합니다.

채팅에서 알려 준 내용을 AI가 학습하나요?

대화하는 동안 모델의 파라미터는 바뀌지 않습니다. 다음 대화에서 내용을 기억하는 서비스는 대화를 따로 저장했다가 입력에 다시 넣어 주는 방식입니다. 다만 서비스에 따라 대화 내용을 이후 모델 학습에 쓰는지는 각 회사의 데이터 설정과 정책을 확인해야 합니다.

이 글의 본문은 아래 원본 유튜브 영상의 내용을 바탕으로 쓸모연구소가 다시 정리해 쓴 것입니다. 세부 내용과 최신 정보는 원본 영상과 공식 안내에서 확인해 주세요.

원본 영상 보러가기 ↗