이 글은 업스테이지 Kevin Ko님의 페이스북에 올라온 글을 보고 궁금증을 해소하기 위해 작성된 글이다.
kevin : 만약 어떤 모델의 context length가 1T~10T 토큰 수준이라면, 수년간 했던 모든 대화를 요약 없이 원본으로 context에 들고 있고 매번 토큰 레벨 어텐션으로 참조할 수 있다면 더 이상 학습과 추론을 구분할 수 있을까?
긴 컨텍스트는 학습을 대체할 수 있을까?
LLM 모델은 context를 통해 방금 내가 한 말을 기억하고, 앞에서 정한 조건을 따라오고, 긴 문서를 넣으면 그 안의 정보를 찾아 답한다. 사용자의 과거 대화, 업무 문서, 코드베이스, 회의록, 선호까지 모두 context에 넣을 수 있다면 모델은 마치 그 내용을 별도로 학습한 것처럼 행동할 수 있다.
그렇다면 이런 질문이 생긴다.
만약 context가 매우 길어져서 수년간의 모든 정보와 대화를 원문 그대로 넣을 수 있다면, 학습과 추론은 결과상으로 구분될 수 있을까?
이 질문은 단순히 “context window가 얼마나 길어질까?”의 문제가 아니다. 더 근본적으로는 LLM이 지식을 어디에 저장하고, 어떻게 현재 입력을 이해하며, 어떤 조건에서 새로운 정보를 배운 것처럼 보이는가에 대한 질문이다.
결론부터 말하면
학습과 추론은 내부 메커니즘상 분명히 다르다. 학습은 모델의 weight를 바꾸고, 추론은 weight를 고정한 채 현재 context를 읽는다.
하지만 이 말만으로는 부족하다. 왜냐하면 실제 사용 경험에서는 추론이 학습처럼 보이는 경우가 많기 때문이다.
더 정확한 결론은 이것이다.
모델이 이미 보유한 능력으로 해결 가능한 범위의 문제라면, 충분한 context를 활용한 inference는 출력 행동만 놓고 볼 때 학습과 구분하기 어려워질 수 있다. 그러나 그 범위를 벗어나는 순간, 학습과 추론의 차이는 다시 선명해진다.
이 글은 이 한 문장을 이해하기 위한 글이다.
모델은 문장을 그대로 읽지 않는다
먼저 LLM이 입력을 어떻게 처리하는지부터 보자.
사람은 문장을 의미 단위로 읽는다. 예를 들어 다음 문장을 보면 바로 뜻을 이해한다.
“내 고양이 이름은 모모야.”
하지만 모델은 이 문장을 그대로 읽지 않는다. 먼저 작은 조각으로 나눈다. 이 조각을 토큰이라고 한다.
단순화하면 다음과 같다.
내 / 고양이 / 이름 / 은 / 모모 / 야
실제 토크나이저는 단어보다 더 잘게 쪼갤 수도 있고, 언어마다 다르게 처리할 수도 있다. 중요한 것은 모델이 “문장”을 직접 보는 것이 아니라 토큰의 시퀀스를 본다는 점이다.
각 토큰은 다시 숫자 ID로 바뀐다.
고양이 → 15231
이름 → 9842
모모 → 44782
그러나 이 숫자 자체는 의미가 없다. 15231이라는 숫자에 고양이다움이 들어 있는 것은 아니다. 그래서 모델 안에는 각 토큰 ID에 대응하는 벡터 표가 있다. 이것을 embedding matrix라고 한다.
예를 들어 이런 식이다.
고양이 → [0.42, -0.71, 0.33, ...]
이 벡터는 사람이 직접 설계한 의미표가 아니다. 사람이 “고양이 = 동물성 0.9, 귀여움 0.7, 반려동물성 0.8” 같은 식으로 값을 넣은 것이 아니다. 학습 과정에서 다음 토큰을 더 잘 맞히도록 수많은 숫자가 조정되면서 결과적으로 만들어진 표현이다.
처음에는 이 embedding도 거의 랜덤이다. 그런데 모델이 엄청난 양의 텍스트를 보며 다음 토큰을 예측하는 과정을 반복하면, “고양이”, “강아지”, “사료”, “반려동물”, “야옹”, “동물” 같은 토큰들은 서로 관련된 방향으로 배치된다. 이 배치는 인간이 명시적으로 준 지식이 아니라, 예측을 잘하기 위해 형성된 수학적 구조다.
즉, LLM의 지식은 사전처럼 저장되어 있지 않다. 모델 내부의 수많은 weight와 embedding에 분산된 확률적 구조로 존재한다.
학습은 세계를 weight에 압축하는 과정이다
LLM의 기본 학습 목표는 단순하다. 앞의 토큰들이 주어졌을 때 다음 토큰을 맞힌다. 이걸 계속 반복한다.
예를 들어 학습 데이터에 이런 문장이 있다고 하자.
“프랑스의 수도는 파리이다.”
모델은 이런 식의 문제를 푼다.
“프랑스의 수도는” 다음에 올 토큰은 무엇인가?
처음 모델은 틀린다. 정답인 “파리”에 낮은 확률을 줄 수도 있고, “런던”이나 “도시” 같은 토큰에 높은 확률을 줄 수도 있다. 모델이 틀리면 loss가 커진다. loss는 쉽게 말해 “얼마나 틀렸는가”를 나타내는 값이다.
학습은 이 loss를 줄이는 방향으로 모델 내부의 weight를 조금씩 바꾸는 과정이다. 이때 역전파가 사용된다. 모델이 어떤 예측을 했고, 그 예측이 얼마나 틀렸으며, 어떤 weight를 어느 방향으로 바꾸면 다음에는 덜 틀릴지를 계산한다.
이 과정은 한 문장에 대해 한 번 일어나고 끝나는 것이 아니다. 수많은 문장, 코드, 논문, 대화, 수학 풀이, 지시문, 설명문에 대해 반복된다.
그 결과 모델 내부에는 단순한 단어 빈도표가 아니라 거대한 압축 구조가 만들어진다.
모델은 단어 관계를 배운다.
문장 구조를 배운다.
개념 간 연관을 배운다.
코드 패턴을 배운다.
수학적 풀이의 흔한 경로를 배운다.
질문에 답하는 형식을 배운다.
사람이 선호하는 답변의 특징을 배운다.
어떤 문맥에서 어떤 의미가 활성화되는지를 배운다.
물론 빈도는 중요하다. 자주 등장하는 패턴은 모델에 더 많이 반영될 가능성이 높다. 하지만 학습은 단순히 “많이 나온 것을 외우는 과정”이 아니다.
예를 들어 “Apple”이라는 단어를 보자.
“Apple released a new iPhone.”
“Apple is a fruit.”
모델은 Apple이 항상 회사라고 외우지 않는다. 문맥을 보고 회사인지 과일인지 구분하는 방향으로 학습된다. 즉 모델이 배우는 것은 단어 자체의 고정된 의미가 아니라 문맥에 따른 조건부 관계다.
그래서 학습은 이렇게 정의할 수 있다.
학습은 수많은 데이터를 통해 반복되는 구조와 관계를 모델의 weight에 압축하는 과정이다.
학습이 끝난 모델은 원문 데이터를 그대로 들고 있는 것이 아니다. 대신 그 데이터들에서 반복적으로 드러난 언어적, 개념적, 추론적 패턴을 weight 공간 안에 분산적으로 품고 있다.
추론(inference)은 weight를 바꾸지 않고 현재 context를 읽는 과정이다
추론 시점에는 모델의 weight가 바뀌지 않는다. 이미 학습된 weight를 고정한 상태에서, 현재 주어진 context를 읽고 다음 토큰을 계산한다.
예를 들어 사용자가 이렇게 말했다고 하자.
“내 고양이 이름은 모모야. 내 고양이 이름이 뭐였지?”
모델은 이 문장을 토큰으로 쪼개고, 각 토큰을 embedding vector로 바꾼다. 그다음 Transformer layer들을 통과시키면서 context 안의 토큰들이 서로를 참조하게 한다. 이때 핵심적으로 쓰이는 메커니즘이 self-attention이다.
self-attention은 쉽게 말해 이런 질문을 계산하는 장치다.
지금 이 토큰을 해석하려면 context 안의 어떤 토큰들을 얼마나 참고해야 하는가?
위 예시에서 질문 부분의 “고양이”, “이름”, “뭐였지”는 앞쪽의 “고양이 이름은 모모”와 관련이 있다. 모델은 attention을 통해 “모모” 쪽 정보를 강하게 참조할 수 있다. 그러면 다음 토큰으로 “모모”가 나올 확률이 높아진다.
그러나 여기서 모델이 새로 학습한 것은 아니다. “모모”라는 정보가 모델 weight에 저장된 것이 아니다. 모델은 단지 현재 context 안에 있는 정보를, 이미 학습된 언어 이해 능력으로 해석해 사용한 것이다.
추론은 대략 다음 순서로 일어난다.
context 입력 → 토큰화 → embedding 조회 → 위치 정보 반영 → self-attention과 MLP layer 통과 → 다음 토큰 확률 계산 → 토큰 하나 출력 → 다시 반복
모델은 답변 전체를 한 번에 쓰지 않는다. 매 순간 다음 토큰 하나를 고르고, 그 토큰을 다시 context 뒤에 붙인 뒤, 다시 다음 토큰을 고른다. 우리가 보는 자연스러운 문장은 이 반복의 결과다.
추론은 모델을 바꾸는 과정이 아니라, 이미 바뀌어 있는 모델을 사용해 현재 입력을 해석하는 과정이다.
학습과 추론의 차이
헷갈리기 쉬운 지점이 있다. 학습 때도 attention이 쓰이고, 추론 때도 attention이 쓰인다. 그렇다면 학습과 추론은 사실상 같은 것 아닐까? 결론은 아니다.
학습과 추론은 앞쪽 계산, 즉 forward pass는 비슷하다. 입력 토큰이 embedding으로 바뀌고, self-attention과 MLP layer를 지나 다음 토큰 확률이 나온다.
차이는 그 다음에 있다.
학습에서는 모델이 예측한 다음 토큰과 실제 정답 토큰을 비교한다. 틀렸으면 loss를 계산한다. 그리고 역전파로 weight를 수정한다.
추론에서는 정답 비교가 없다. loss를 계산하지 않는다. 역전파도 없다. weight도 바뀌지 않는다. 모델은 현재 context에서 가장 적절한 다음 토큰을 고를 뿐이다.
즉 이렇게 정리할 수 있다.
학습은 attention으로 읽고, 틀린 만큼 weight를 고친다.
추론은 attention으로 읽고, weight는 그대로 둔 채 답을 낸다.
어찌보면 이 당연한 차이가 학습과 추론을 가른다.
context는 모델의 지식이 아니라 작업 자료다
긴 context를 이해할 때 가장 중요한 비유는 이것이다.
학습된 weight는 모델의 머릿속에 들어 있는 압축된 세계관이다.
context는 지금 책상 위에 펼쳐져 있는 작업 자료다.
책상 위에 자료가 많으면 당연히 더 많은 것을 참고할 수 있다. 사용자의 과거 대화, 업무 문서, 코드베이스, 회의록, 논문, 정책 문서를 context에 넣으면 모델은 훨씬 구체적인 답을 할 수 있다.
하지만 자료가 많다고 해서 모델 자체가 똑똑해지는 것은 아니다. 그 자료를 읽고 해석하는 능력은 이미 학습된 weight에서 나온다.
같은 100페이지짜리 논문을 두 모델에게 넣어준다고 생각해보자.
약한 모델은 표면적인 요약은 할 수 있지만, 실험 설계의 결함이나 수식의 전제를 놓칠 수 있다. 강한 모델은 같은 논문을 읽고도 방법론의 약점, baseline의 부적절성, 통계적 한계, 주장과 증거의 간극을 짚어낼 수 있다.
context는 정보를 제공한다. 하지만 정보의 의미를 구성하고 해석하는 역량은 학습된 모델의 능력에 달려있다.
왜 긴 context는 학습처럼 보이는가
그렇다면 처음 질문으로 돌아가자.
수년 치 대화 기록을 전부 context로 넣을 수 있다면, 모델은 정말 학습한 것처럼 보일 수 있을까?
대부분의 경우에는 그렇게 보일 수 있다.
예를 들어 사용자가 몇 년 동안 이런 말을 해왔다고 하자.
“나는 답변이 너무 장황한 것을 싫어한다.”
“코드 리뷰에서는 성능보다 가독성을 먼저 봐줬으면 좋겠다.”
“기술 설명은 예시가 있을 때 잘 이해된다.”
“마크다운 표가 너무 많으면 읽기 어렵다.”
“제품 전략에서는 단기 매출보다 장기 유지율을 중요하게 본다.”
이 모든 기록이 context에 들어 있다면, 모델은 사용자의 선호를 반영해서 답할 수 있다. 코드 리뷰를 요청하면 가독성을 먼저 보고, 전략 검토를 요청하면 장기 유지율을 중요하게 보고, 기술 설명을 요청하면 예시를 넣되 장황하지 않게 쓸 수 있다. 사용자 입장에서는 모델이 자신을 학습한 것처럼 보인다.
하지만 내부적으로는 다르다. 모델이 사용자의 선호를 weight에 새긴 것이 아니다. 매번 context 안의 과거 기록을 읽고, 그때그때 반영하는 것이다.
학습은 공부해서 머릿속에 익힌 것이다.
긴 context 추론은 시험장에 모든 노트를 가져와서 찾아보는 것이다.
노트가 충분히 많고, 찾는 속도가 빠르고, 필요한 정보를 안정적으로 찾을 수 있다면, 겉보기에는 공부한 사람과 비슷해 보일 수 있다. 그러나 원리는 다르다. 공부한 사람은 노트를 치워도 어느 정도 답할 수 있다. 노트만 보고 답한 사람은 노트가 사라지면 그 정보를 잃는다.
추론이 학습처럼 보이는 정확한 조건
긴 context가 있다고 해서 모든 inference가 학습처럼 보이는 것은 아니다. 반대로, 특정 조건에서는 inference가 학습과 거의 구분되지 않을 정도로 잘 작동한다.
그 조건은 다음과 같다.
문제 해결에 필요한 핵심 능력은 이미 모델의 weight에 있고, context는 그 능력을 적용할 추가 정보만 제공하는 경우다.
예를 들어 회사 내부 용어가 있다고 하자.
“레드박스는 긴급 장애 대응 프로토콜이다. 레드박스가 발동되면 온콜 엔지니어는 15분 안에 대응하고, PM은 고객 공지를 준비한다.”
이 정의를 context에 넣은 뒤 묻는다.
“레드박스 상황에서 PM은 뭘 해야 해?”
모델은 답할 수 있다.
“PM은 고객 공지를 준비해야 한다.”
이때 모델은 “레드박스”라는 내부 용어를 weight에 새로 학습한 것이 아니다. 하지만 context 안의 정의를 읽고, 이미 갖고 있던 언어 이해 능력과 규칙 적용 능력으로 답했다.
사용자 입장에서는 모델이 새 용어를 배운 것처럼 보인다.
왜 가능한가?
모델은 이미 “A는 B를 의미한다”는 정의문을 이해할 수 있다.
이미 “상황 X에서 역할 Y는 무엇을 해야 하는가”라는 질문을 처리할 수 있다.
이미 문서 안의 규칙을 찾아 적용할 수 있다.
이미 업무 역할과 책임이라는 일반적 개념을 알고 있다.
즉 context가 제공한 것은 새로운 지능이 아니라 새로운 사실 정보다. 그 사실 정보를 다룰 능력은 이미 weight 안에 있었다.
이런 경우에는 inference가 학습처럼 보인다.
문서 기반 질의응답.
내부 용어 정의 적용.
회의록에서 액션 아이템 추출.
사용자가 방금 알려준 스타일로 문장 다시 쓰기.
코드베이스의 naming convention을 보고 새 함수 작성하기.
몇 개의 예시를 보고 간단한 규칙을 적용하기.
이런 작업들은 모델이 이미 언어 이해, 패턴 인식, 규칙 적용, 요약, 코드 작성 능력을 갖고 있다면 context만으로도 잘 수행할 수 있다. 따라서 이 문장은 맞다. 적당한 지능만으로도 수행 가능한 문제라면, 충분한 context를 활용한 inference는 학습과 행동적으로 구분하기 어려워진다. 다만 여기서 “구분하기 어렵다”는 말은 내부 메커니즘이 같다는 뜻이 아니다. 출력만 봤을 때 비슷하다는 뜻이다.
어디서 다시 차이가 드러나는가
inference가 학습처럼 보이는 조건을 이해했다면, 반대로 어디서 차이가 드러나는지도 알 수 있다.
차이는 context가 제공한 정보만으로는 부족하고, 모델 내부의 개념 체계 자체가 바뀌어야 할 때 드러난다.
예를 들어 context에 이렇게 적었다고 하자.
“우리 회사의 신규 의사결정 프레임워크 X는 OKR, RICE, JTBD, 시스템 사고를 변형한 독자적 방법론이다.”
그리고 바로 묻는다.
“프레임워크 X를 기반으로 내년 조직 설계를 최적화해줘.”
이건 단순히 정의를 찾아 답하는 문제가 아니다. 프레임워크 X의 전제, 적용 조건, 예외, trade-off, 실패 사례, 다른 방법론과의 관계, 조직의 실제 제약까지 이해해야 한다. 몇 문장의 context만으로 안정적으로 다루기 어렵다.
또 다른 예를 보자.
새로운 프로그래밍 언어의 복잡한 memory model을 context에 몇 문장으로 설명한 뒤, 대규모 동시성 버그를 고치라고 하면 모델은 불안정할 수 있다. 새로운 수학 체계를 몇 개의 정의만으로 설명한 뒤 복잡한 정리를 증명하라고 해도 마찬가지다.
이런 문제들은 단순 정보 적용이 아니다. 모델 내부의 개념 구조, 추상화 능력, 장기적 일관성, 오류 수정 경험이 중요하다.
여기서는 학습과 inference의 차이가 다시 뚜렷해진다.
학습은 반복된 예시를 통해 모델 내부 weight를 조정한다.
추론은 현재 context를 보고 그 자리에서 적용한다.
context만으로도 어느 정도 흉내는 낼 수 있다. 하지만 안정적이고 깊은 일반화는 어렵다.
그래서 다음 구분이 중요하다.
context가 부족한 사실을 제공하는 경우에는 inference가 학습처럼 보이기 쉽다.
모델의 능력 자체가 부족한 경우에는 context만으로는 한계가 드러난다.
새로운 개념을 context로 넣으면 모델은 배운 것인가
모델이 학습하지 않은 새로운 개념이 context 안에 등장하면, 모델은 그것을 이해할 수 있을까?
어느 정도는 가능하다. 이것이 in-context learning이다.
예를 들어 이렇게 정의한다고 하자.
“블릭스는 숫자 n에 대해 n²+1을 반환하는 연산이다. 예를 들어 블릭스(2)=5, 블릭스(3)=10이다.”
이제 묻는다.
“블릭스(4)는?”
모델은 17이라고 답할 수 있다. “블릭스”라는 단어를 사전학습에서 본 적이 없어도, context 안의 정의와 예시를 보고 규칙을 추론한 것이다.
이 경우 모델은 새 용어를 꽤 잘 다룬다. 하지만 이것은 새 개념을 weight에 저장한 것이 아니다. 현재 context 안에서 임시로 정의를 사용한 것이다.
context에서 정의가 사라지면 “블릭스”는 다시 알 수 없는 단어가 된다. 물론 같은 대화 안에서는 계속 이어질 수 있지만, weight에 안정적으로 통합된 것은 아니다.
복잡한 새 개념은 더 어렵다. 새로운 수학 이론, 회사 내부 운영 체계, 특정 산업의 세밀한 의사결정 기준, 새로운 프로그래밍 언어의 semantics 같은 것은 몇 문장으로 안정적으로 다루기 어렵다.
모델이 새 개념을 잘 다루려면 적어도 다음 조건이 필요하다.
개념이 기존 학습된 개념과 잘 연결되어 있어야 한다.
context 안에 정의, 예시, 반례, 적용 규칙이 충분해야 한다.
모델 자체의 추론 능력이 충분해야 한다.
반복 사용되는 개념이라면 fine-tuning이나 memory로 안정화하는 편이 낫다.
즉 context는 새로운 정보를 줄 수 있다. 하지만 새로운 정보를 모델 내부의 안정적인 능력으로 통합하는 것은 학습에 가깝다.
학습은 압축이고, context는 비압축 참조다
학습과 긴 context inference의 가장 큰 차이는 압축이다.
학습은 수많은 데이터를 weight 안에 압축한다. 모델은 모든 원문을 그대로 들고 있는 것이 아니라, 반복되는 패턴과 구조를 파라미터에 녹인다.
반대로 context는 원문 또는 원문에 가까운 자료를 현재 입력에 제공한다. 모델은 그 자료를 읽고 attention으로 필요한 부분을 참조한다.
예를 들어 사용자가 5년 동안 여러 번 “짧고 명확한 답변을 좋아한다”고 말했다고 하자.
개인화 학습이 된 모델은 이 반복되는 선호를 내부 정책처럼 압축할 수 있다.
“이 사용자는 간결한 답변을 선호한다.”
반면 긴 context 모델은 매번 과거 대화 속에서 이 선호를 찾아 읽고 반영한다.
둘 다 결과적으로 짧은 답변을 만들 수 있다. 하지만 하나는 내부에 압축된 것이고, 다른 하나는 외부 자료를 참조한 것이다.
이 차이는 비용과 안정성에서 중요하다.
매번 5년 치 대화를 다 읽는 것은 비싸고 느리다. 오래된 정보와 최신 정보가 충돌할 수도 있다. 반면 학습된 선호는 빠르고 안정적일 수 있지만, 잘못 학습되면 수정하기 어렵고 최신 변화에 둔감할 수 있다.
그래서 실제 시스템에서는 둘 중 하나만 쓰지 않는다.
자주 반복되고 안정적인 패턴은 학습이나 장기 memory에 압축하는 것이 유리하다. 일시적이고 최신성이 중요한 정보는 context나 retrieval로 넣는 것이 유리하다. 복잡한 판단 능력은 base model 자체가 강해야 한다.
왜 긴 context만으로는 충분하지 않은가
긴 context는 강력하다. 하지만 긴 context만 키운다고 frontier model 경쟁이 끝나지는 않는다.
이유는 명확하다.
context는 자료의 양을 늘리고, 모델 개선은 자료를 해석하는 능력을 높인다.
긴 context는 더 많은 문서를 볼 수 있게 해준다. 하지만 문서 안에서 중요한 정보를 찾고, 모순을 해결하고, 추상화하고, 새 문제에 적용하는 능력은 모델에서 나온다.
책을 100권 준다고 모두가 좋은 연구자가 되는 것은 아니다. 좋은 연구자는 필요한 부분을 찾고, 주장과 근거를 구분하고, 전제를 의심하고, 기존 지식과 연결하고, 반례를 생각하고, 결론의 한계를 판단할 수 있어야 한다.
LLM도 마찬가지다. 긴 context는 책상 크기를 키운다. 좋은 모델은 그 책상 위 자료를 제대로 읽는 두뇌를 만든다.
따라서 미래의 강한 AI 시스템은 단순히 context만 긴 모델도 아니고, 단순히 weight만 큰 모델도 아닐 가능성이 높다. 강한 base model, 긴 context, retrieval, memory, tool use, fine-tuning, post-training이 결합된 시스템이 될 가능성이 크다.
왜냐하면 각 요소의 역할이 다르기 때문이다.
base model은 기본 지능과 세계 해석 능력을 제공한다.
context는 현재 작업에 필요한 자료를 제공한다.
retrieval은 많은 자료 중 관련 있는 것만 가져온다.
memory는 반복되는 사용자 정보와 선호를 안정적으로 유지한다.
fine-tuning은 특정 도메인이나 행동 패턴을 weight에 반영한다.
tool use는 계산, 검색, 실행, 검증을 외부 시스템에 맡긴다.
이 중 어느 하나만으로는 충분하지 않다.
LLM의 이해는 어디에서 발생하는가
LLM이 context를 이해한다고 말할 때, 그것이 인간처럼 의식적으로 의미를 경험한다는 뜻은 아니다. 그러나 기능적으로 보면 모델은 입력 토큰들을 벡터 공간에 놓고, attention과 MLP layer를 통해 관계를 계산하고, 그 결과로 다음 토큰 확률을 만든다.
이 과정에서 “이해처럼 보이는 것”은 세 요소의 결합으로 생긴다.
- 첫째, 학습된 weight.
이것은 모델이 세상을 해석하는 렌즈다. 언어, 개념, 문법, 상식, 문제풀이 패턴, 선호된 답변 방식이 여기에 압축되어 있다. - 둘째, 현재 context.
이것은 지금 모델에게 주어진 작업 자료다. 사용자 질문, 대화 기록, 문서, 코드, 검색 결과, 지시문이 여기에 포함된다. - 셋째, inference-time computation.
이것은 학습된 렌즈로 현재 자료를 읽고, 어떤 정보를 참조할지 계산하고, 다음 토큰을 생성하는 과정이다. self-attention과 multi-head attention은 이 과정에서 context 안의 관계를 동적으로 계산한다.
이 세 가지를 구분하면 많은 혼란이 풀린다.
모델이 context 안의 정보를 사용했다고 해서 그 정보를 학습한 것은 아니다.
모델이 과거 대화를 반영했다고 해서 weight가 바뀐 것은 아니다.
모델이 낯선 용어를 처리했다고 해서 그 개념이 내부 지식으로 안정적으로 통합된 것은 아니다.
반대로 context가 없어도 모델이 답할 수 있다면, 그것은 관련 구조가 이미 weight에 압축되어 있기 때문이다.
결론: 학습과 추론은 다르지만, 일부 영역에서는 행동적으로 겹친다
LLM의 학습과 추론을 이해할 때 가장 중요한 기준은 이것이다.
정보가 어디에 있는가? 모델이 바뀌었는가? 문제 해결에 필요한 능력이 이미 모델 안에 있는가?
학습은 모델 내부를 바꾼다. 추론은 모델 내부를 바꾸지 않고 현재 context를 해석한다.
학습된 weight는 압축된 지식과 능력이다. context는 현재 참고할 수 있는 작업 자료다. attention은 그 작업 자료 안에서 무엇을 얼마나 볼지 정하는 동적 메커니즘이다.
따라서 원리적으로 학습과 추론은 구분된다. context가 아무리 길어져도, weight가 바뀌지 않는다면 그것은 학습이 아니다.
하지만 여기서 멈추면 중요한 절반을 놓친다.
모델이 이미 충분한 기본 능력을 갖고 있고, context가 필요한 사실이나 규칙을 제공하며, 문제가 그 정보를 읽고 적용하는 수준이라면, inference는 학습과 행동적으로 구분하기 어려워질 수 있다.
이것이 긴 context가 강력한 이유다.
긴 context는 모델에게 새로운 두뇌를 주는 것이 아니다. 이미 가진 두뇌가 참고할 수 있는 자료를 크게 늘려준다.
그래서 단순 회상, 문서 기반 질의응답, 내부 용어 적용, 스타일 모방, 규칙 적용, 간단한 예시 기반 추론에서는 context inference가 학습처럼 보일 수 있다.
하지만 새로운 개념 체계를 깊이 내재화해야 하거나, 반복 경험을 통해 실수를 줄여야 하거나, context에 없는 상황까지 안정적으로 일반화해야 하거나, 모델 자체의 추론 능력이 부족한 문제에서는 학습과 inference의 차이가 다시 드러난다.
결국 가장 정확한 정리는 이것이다.
학습은 능력을 형성하고 압축한다. context는 현재 사용할 정보를 제공한다. inference는 형성된 능력으로 그 정보를 읽고 적용한다.
긴 context는 학습을 완전히 대체하지 않는다. 그러나 이미 학습된 능력으로 처리 가능한 문제에서는, context를 통한 inference가 학습과 거의 같은 효과를 낼 수 있다.
이 관점에서 보면 LLM의 발전 방향도 분명해진다.
더 큰 context만으로는 충분하지 않다. 더 큰 model만으로도 충분하지 않다.
좋은 AI 시스템은 강한 base model, 충분한 context, 정교한 retrieval, 안정적인 memory, 필요한 경우의 fine-tuning, 그리고 도구 사용을 결합해야 한다.
인간도 비슷하다.
우리는 모든 것을 외우지 않는다. 필요한 것은 기억하고, 필요한 것은 기록하고, 필요한 것은 찾아본다. 하지만 기록을 아무리 많이 가지고 있어도, 그것을 해석하는 사고력이 없으면 좋은 판단을 할 수 없다.
LLM도 마찬가지다.
학습은 해석 능력의 형성이다. context는 기억의 확장이다. inference는 그 능력으로 현재의 자료를 읽고 답을 만드는 행위다.
그래서 긴 context가 학습처럼 보이는 순간은 분명히 있다. 하지만 그것이 학습과 같은 것은 아니다.
정확히 말하면, 긴 context는 학습을 지우는 것이 아니라 학습된 능력이 작동할 수 있는 표면적 범위를 넓힌다.