이 글은 업스테이지 Kevin Ko 님이 페이스북에 남긴 질문에서 시작했다.

만약 어떤 모델의 context length가 1T~10T 토큰 수준이라면, 수년간 했던 모든 대화를 요약 없이 원본으로 context에 들고 있고 매번 토큰 레벨 어텐션으로 참조할 수 있다면 더 이상 학습과 추론을 구분할 수 있을까?

처음 이 질문을 읽었을 때는 꽤 그럴듯하다고 생각했다. 모델이 수년 동안 나와 나눈 대화를 전부 기억할 수 있다고 해보자. 내가 어떤 답변을 좋아하는지, 어떤 일을 하고 있는지, 이전에 어떤 결정을 내렸는지, 자주 사용하는 코드 스타일은 무엇인지 모두 알고 있다. 필요할 때마다 과거 대화를 정확히 찾아 현재 답변에 반영할 수도 있다. 그렇다면 사용자 입장에서는 이 모델이 나를 학습한 것과 거의 다르지 않게 느껴질 것이다.

하지만 내부에서 일어나는 일까지 같아지는 것은 아니다. 학습은 모델의 가중치를 바꾸고, 추론은 이미 만들어진 가중치를 그대로 사용한다. 긴 컨텍스트는 모델 안에 새로운 능력을 만들어내기보다, 이미 가진 능력으로 참고할 수 있는 자료를 크게 늘려준다. 두 방식은 원리적으로 다르지만, 조건이 맞으면 결과만 놓고 봤을 때는 매우 비슷해질 수 있다.

모델이 알고 있는 것과 지금 보고 있는 것

사람이 “내 고양이 이름은 모모야”라는 문장을 읽으면 곧바로 의미를 이해한다. LLM은 조금 다르게 처리한다. 먼저 문장을 토큰이라는 작은 조각으로 나누고, 각 토큰을 숫자로 바꾼 뒤, 이 숫자들 사이의 관계를 계산한다.

단순화하면 다음과 비슷하다.

내 / 고양이 / 이름 / 은 / 모모 / 야

각 토큰은 다시 벡터라는 숫자 묶음으로 변환된다. 모델은 이 벡터들을 여러 층에 통과시키면서 어떤 단어가 어떤 단어와 연결되는지 계산한다. 이 과정에서 모델의 지식은 사전처럼 한 문장씩 저장되어 있지 않다. “고양이는 작은 포유류다” 같은 문장이 모델 내부 어딘가에 그대로 들어 있는 것이 아니라, 고양이와 강아지, 사료, 반려동물, 야옹 같은 표현이 수많은 문맥에서 함께 등장하며 만들어진 관계가 가중치 전체에 분산되어 있다.

우리가 모델이 무언가를 “알고 있다”고 말할 때, 실제로는 이런 관계와 패턴이 내부에 압축되어 있다는 뜻에 가깝다. 반면 컨텍스트는 모델이 지금 읽고 있는 자료다. 사용자의 질문, 앞에서 나눈 대화, 첨부한 문서, 코드, 검색 결과가 여기에 포함된다.

이 차이는 사람의 기억과 참고 자료에 비유하면 이해하기 쉽다. 모델의 가중치는 머릿속에 익힌 지식과 능력에 가깝고, 컨텍스트는 지금 책상 위에 펼쳐놓은 문서에 가깝다. 둘 다 문제를 푸는 데 도움이 되지만 같은 것은 아니다.

학습은 패턴을 모델 안에 남긴다

LLM의 기본 학습 과정은 앞의 문장을 보고 다음 토큰을 예측하는 일에서 시작한다. 예를 들어 학습 데이터에 “프랑스의 수도는 파리이다”라는 문장이 있다면, 모델은 “프랑스의 수도는” 다음에 어떤 토큰이 올지 예측한다.

처음에는 “파리”가 아니라 “런던”이나 “도시” 같은 단어에 더 높은 확률을 줄 수도 있다. 예측이 틀리면 얼마나 틀렸는지를 계산하고, 그 오차를 줄이는 방향으로 모델의 가중치를 조금씩 바꾼다. 이런 과정이 책, 논문, 코드, 대화, 수학 풀이, 웹 문서처럼 방대한 데이터에 반복된다.

그 결과 모델은 단순한 사실 목록만 익히는 것이 아니다. 언어의 구조와 단어 사이의 관계, 질문에 답하는 방식, 코드를 작성하는 패턴, 문맥에 따라 의미가 달라지는 방식까지 함께 배운다. 예를 들어 Apple이라는 단어는 주변에 iPhone이 있으면 회사로 읽히고, eat이나 fruit가 있으면 과일로 읽힌다. 모델은 단어 하나에 고정된 뜻을 붙이는 대신, 주변 문맥에 따라 어떤 의미가 자연스러운지 판단하는 방향으로 학습된다.

이런 의미에서 학습은 방대한 데이터에서 반복되는 구조를 모델 내부에 압축하는 과정이라고 볼 수 있다. 학습이 끝난 모델은 원본 데이터를 그대로 들고 있지 않지만, 그 데이터에서 자주 나타난 관계와 패턴을 내부에 남긴다.

추론은 이미 가진 능력으로 현재 자료를 읽는 과정이다

추론할 때는 모델의 가중치가 바뀌지 않는다. 이미 학습된 모델이 현재 주어진 컨텍스트를 읽고 다음 토큰을 계산할 뿐이다.

예를 들어 사용자가 이렇게 물었다고 해보자.

내 고양이 이름은 모모야. 내 고양이 이름이 뭐였지?

모델은 앞부분의 “모모”를 참고해 답한다. 이때 어텐션은 질문 속 “고양이 이름”과 앞에서 등장한 “고양이 이름은 모모”를 연결하는 역할을 한다. 모델은 이 관계를 바탕으로 다음 토큰으로 “모모”가 나올 가능성을 높인다.

하지만 이 과정에서 모델의 내부가 새롭게 바뀌지는 않는다. 모델이 “모모”라는 이름을 자신의 지식으로 저장한 것이 아니라, 현재 컨텍스트에 들어 있는 정보를 읽어 사용했을 뿐이다. 대화가 끝나고 그 정보가 더 이상 입력되지 않으면, 모델은 내 고양이 이름을 알 수 없다.

학습과 추론은 앞부분만 보면 비슷하다. 둘 다 토큰을 처리하고, 어텐션과 여러 층을 거쳐 다음 토큰을 예측한다. 차이는 그다음에 생긴다. 학습에서는 예측과 정답을 비교하고, 틀린 만큼 가중치를 수정한다. 추론에서는 정답과 비교하지 않고, 가중치도 그대로 둔다.

쉽게 말하면 학습은 읽고 틀린 뒤 내부를 고치는 과정이고, 추론은 현재 상태로 자료를 읽고 답하는 과정이다.

왜 긴 컨텍스트는 학습처럼 보일까?

원리적으로는 다르지만, 실제 사용 경험에서는 경계가 흐려질 수 있다. 사용자가 몇 년 동안 다음과 같은 선호를 반복해서 말했다고 해보자.

답변이 너무 길지 않았으면 좋겠다.
코드 리뷰에서는 성능보다 가독성을 먼저 봐줬으면 한다.
기술 설명에는 예시가 있는 편이 좋다.
제품 전략에서는 단기 매출보다 장기 유지율을 더 중요하게 생각한다.

이 기록이 모두 컨텍스트에 들어 있다면 모델은 사용자의 취향에 맞춰 답할 수 있다. 코드 리뷰를 요청하면 가독성을 먼저 보고, 기술 설명에는 예시를 넣고, 전략을 검토할 때는 장기 유지율을 더 중요하게 다룰 것이다. 사용자에게는 모델이 자신을 오랫동안 학습한 것처럼 보일 수 있다.

그러나 모델 내부에서는 아무것도 바뀌지 않았다. 모델은 매번 과거 기록을 읽고, 그 안에서 선호를 찾아 현재 답변에 반영하고 있을 뿐이다.

시험에 비유하면 차이가 더 분명해진다. 학습은 공부한 내용을 머릿속에 익혀 시험을 보는 것이고, 긴 컨텍스트 추론은 필요한 자료를 전부 시험장에 가져가 찾아보며 답하는 것이다. 자료가 충분하고 필요한 부분을 빠르게 찾을 수 있다면 둘의 결과는 비슷할 수 있다. 하지만 자료가 사라지면 차이가 드러난다. 공부한 사람은 어느 정도 계속 답할 수 있지만, 자료에만 의존한 사람은 그 정보를 다시 사용할 수 없다.

긴 컨텍스트가 학습처럼 작동하는 조건

긴 컨텍스트가 언제나 학습처럼 보이는 것은 아니다. 모델이 이미 문제를 처리할 기본 능력을 갖고 있고, 컨텍스트가 그 능력을 적용할 새로운 사실이나 규칙을 제공할 때 가장 잘 작동한다.

회사 내부에서 “레드박스”라는 용어를 사용한다고 해보자.

레드박스는 긴급 장애 대응 절차다. 레드박스가 발동되면 온콜 엔지니어는 15분 안에 대응하고, PM은 고객 공지를 준비한다.

이 설명을 컨텍스트에 넣고 “레드박스 상황에서 PM은 무엇을 해야 하나?”라고 물으면 모델은 “고객 공지를 준비해야 한다”고 답할 수 있다. 모델은 레드박스라는 용어를 사전학습에서 본 적이 없더라도, 정의문을 이해하고 규칙을 적용하는 능력은 이미 갖고 있다.

컨텍스트가 새롭게 제공한 것은 레드박스라는 사실과 그 규칙이다. 그 사실을 읽고 적용하는 능력은 모델의 가중치 안에 이미 있었다. 문서 기반 질의응답, 회의록에서 할 일 추출하기, 내부 용어 적용하기, 사용자가 준 문체 따라 쓰기, 코드베이스의 기존 규칙을 보고 새 함수를 작성하는 일이 여기에 해당한다.

이런 작업에서는 긴 컨텍스트가 매우 강력하다. 새로운 지식을 실제로 모델 안에 저장하지 않았는데도, 출력만 보면 배운 모델과 거의 같은 행동을 할 수 있다.

모델의 능력이 부족하면 차이가 다시 드러난다

반대로 컨텍스트가 아무리 길어도 해결하기 어려운 문제가 있다. 필요한 정보가 없는 것이 아니라, 그 정보를 다룰 능력이 모델에 부족한 경우다.

예를 들어 회사의 새로운 의사결정 방식이 있다고 해보자.

우리 회사의 프레임워크 X는 OKR, RICE, JTBD와 시스템 사고를 결합한 독자적인 방법론이다.

이 설명만 넣고 “프레임워크 X를 활용해 내년 조직 구조를 설계해줘”라고 하면 안정적인 답을 얻기 어렵다. 이 문제는 정의를 찾아 그대로 적용하는 것으로 끝나지 않는다. 프레임워크의 전제와 예외, 조직의 현실적인 제약, 다른 방법론과의 차이, 선택에 따른 손익까지 함께 판단해야 한다.

새로운 프로그래밍 언어의 메모리 모델을 몇 문장으로 설명한 뒤 복잡한 동시성 버그를 고치게 하거나, 새로운 수학 체계를 짧게 소개한 뒤 어려운 정리를 증명하게 하는 경우도 비슷하다. 컨텍스트는 정보를 줄 수 있지만, 모델의 추론 능력 자체를 그 자리에서 새롭게 만들어주지는 않는다.

같은 논문을 서로 다른 모델에 넣었을 때 결과가 다른 이유도 여기에 있다. 약한 모델은 내용을 요약할 수는 있어도 실험 설계의 허점이나 통계적 한계를 놓칠 수 있다. 더 강한 모델은 같은 자료를 읽고도 주장과 증거 사이의 간극, 부적절한 비교 기준, 숨겨진 전제를 찾아낼 수 있다.

자료는 같지만 자료를 읽는 능력은 다르다. 모델이 모르는 사실이 부족한 경우에는 컨텍스트가 큰 도움이 되지만, 모델의 능력 자체가 부족한 경우에는 컨텍스트만으로 한계를 넘기 어렵다.

새로운 개념을 컨텍스트에 넣으면 배운 것일까?

모델은 컨텍스트 안에서 낯선 개념을 어느 정도 다룰 수 있다. 이를 흔히 인컨텍스트 러닝이라고 부른다.

예를 들어 다음과 같이 정의해보자.

블릭스는 숫자 n을 입력받아 n²+1을 반환하는 연산이다.
블릭스(2)=5이고, 블릭스(3)=10이다.

이제 블릭스(4)를 물으면 모델은 17이라고 답할 수 있다. 모델은 블릭스라는 단어를 처음 봤지만, 정의와 예시를 통해 규칙을 추론했다. 겉으로 보면 새로운 개념을 배운 것처럼 보인다.

그러나 이 개념이 모델의 가중치에 저장된 것은 아니다. 현재 컨텍스트 안에서만 임시로 사용하고 있을 뿐이다. 블릭스의 정의가 사라진 새로운 대화에서는 다시 알 수 없는 단어가 된다.

간단한 규칙은 이런 방식으로 잘 처리할 수 있다. 하지만 개념이 복잡해질수록 충분한 정의와 예시, 반례, 적용 조건이 필요하다. 모델이 그 개념과 연결할 수 있는 기존 지식이 부족하면, 컨텍스트 안에서 설명해도 제대로 활용하기 어렵다.

따라서 인컨텍스트 러닝의 “러닝”은 일반적인 학습과는 조금 다른 뜻으로 이해해야 한다. 새로운 정보를 현재 작업에서 사용할 수 있게 되었다는 뜻이지, 그 정보가 모델의 안정적인 지식이나 능력으로 통합되었다는 뜻은 아니다.

학습은 압축하고, 컨텍스트는 참조한다

학습과 긴 컨텍스트의 또 다른 차이는 정보를 다루는 방식에 있다.

학습은 수많은 데이터에서 반복되는 패턴을 모델의 가중치 안에 압축한다. 반면 컨텍스트는 원문이나 원문에 가까운 자료를 현재 입력에 제공하고, 모델이 그때그때 필요한 부분을 찾아 사용하게 한다.

사용자가 5년 동안 여러 번 짧은 답변을 선호한다고 말했다고 해보자. 개인화 학습이 된 모델은 이 반복된 선호를 “이 사용자는 짧고 명확한 답변을 좋아한다”는 식의 내부 경향으로 반영할 수 있다. 반면 긴 컨텍스트를 사용하는 모델은 매번 과거 대화에서 비슷한 표현을 찾아 현재 답변에 반영한다.

결과는 비슷할 수 있지만 비용과 안정성은 다르다. 매번 수년 치 기록을 읽는 것은 느리고 비싸다. 오래된 취향과 최근의 취향이 충돌할 수도 있고, 관련 없는 기록이 현재 답변에 영향을 줄 위험도 있다.

반대로 학습이나 장기 기억에 반영해두면 빠르고 안정적으로 적용할 수 있지만, 잘못 반영된 정보를 고치기 어렵고 최근 변화를 놓칠 수 있다. 그래서 실제 시스템은 하나의 방식만 고집하기보다 여러 방법을 함께 사용한다. 반복되고 안정적인 정보는 학습이나 장기 기억에 반영하고, 최신성이 중요하거나 일시적인 정보는 컨텍스트나 검색을 통해 제공하는 편이 자연스럽다.

컨텍스트가 길어진다고 모델이 더 똑똑해지는 것은 아니다

긴 컨텍스트는 분명 강력하다. 더 많은 문서와 대화를 한 번에 참고할 수 있고, 중간에 요약하면서 정보가 사라지는 문제도 줄일 수 있다. 하지만 컨텍스트 길이만 늘어난다고 모델의 능력까지 자동으로 좋아지는 것은 아니다.

컨텍스트는 모델이 볼 수 있는 자료의 양을 늘린다. 학습은 그 자료에서 무엇이 중요한지 파악하고, 관계를 찾고, 모순을 해결하고, 새로운 문제에 적용하는 능력을 만든다.

책을 100권 책상 위에 올려놓는다고 모두가 좋은 연구자가 되는 것은 아니다. 좋은 연구자는 필요한 부분을 찾고, 주장과 근거를 구분하고, 전제를 의심하고, 서로 다른 자료를 연결하고, 반례와 한계를 생각할 수 있어야 한다.

LLM도 같다. 긴 컨텍스트는 책상을 넓히고, 더 좋은 모델은 그 책상 위의 자료를 읽는 능력을 높인다.

그래서 미래의 강한 AI 시스템은 단순히 컨텍스트가 긴 모델 하나로 완성되기 어렵다. 기본 모델은 이해와 추론 능력을 제공하고, 컨텍스트는 현재 작업에 필요한 자료를 제공한다. 검색은 방대한 자료 중 관련 있는 부분을 가져오고, 장기 기억은 반복되는 사용자 정보와 선호를 유지한다. 필요하다면 특정 분야에 맞춘 추가 학습이 사용되고, 계산과 실행, 검증은 외부 도구가 맡는다.

각 요소의 역할이 다르기 때문에 하나만으로 나머지를 모두 대신하기는 어렵다.

학습과 추론은 다르지만 결과는 비슷해질 수 있다

다시 처음 질문으로 돌아가 보자. 수년간의 대화를 하나도 요약하지 않고 전부 컨텍스트에 넣을 수 있다면, 학습과 추론을 구분할 수 있을까?

내부에서 일어나는 일을 보면 구분할 수 있다. 가중치가 바뀌었다면 학습이고, 가중치를 그대로 둔 채 현재 컨텍스트를 읽었다면 추론이다. 컨텍스트가 아무리 길어져도 이 차이는 사라지지 않는다.

그러나 출력 행동만 보면 경계가 흐려질 수 있다. 모델이 이미 충분한 기본 능력을 갖추고 있고, 필요한 정보가 컨텍스트에 들어 있으며, 문제가 그 정보를 찾아 적용하는 수준이라면 추론만으로도 학습한 모델과 비슷하게 행동할 수 있다. 사용자의 선호를 반영하고, 회사의 내부 규칙을 적용하고, 과거의 결정을 참고하고, 기존 코드 스타일을 따라가는 일은 긴 컨텍스트만으로도 상당 부분 가능하다.

하지만 새로운 개념 체계를 깊게 익혀야 하거나, 반복된 경험을 통해 실수를 줄여야 하거나, 주어진 자료 바깥의 상황까지 안정적으로 일반화해야 할 때는 차이가 다시 드러난다. 컨텍스트는 참고할 자료를 늘려주지만, 모델이 가진 능력의 한계를 자동으로 넘어주지는 않는다.

학습은 지식과 능력을 모델 안에 형성하고 압축한다. 컨텍스트는 현재 사용할 수 있는 정보를 제공한다. 추론은 이미 형성된 능력으로 그 정보를 읽고 적용한다.

인간도 모든 것을 머릿속에 외우지는 않는다. 중요한 것은 기억하고, 나머지는 기록하며, 필요할 때 찾아본다. 하지만 기록을 아무리 많이 가지고 있어도 그것을 해석할 사고력이 없다면 좋은 판단을 내릴 수 없다.

LLM도 마찬가지다. 긴 컨텍스트는 학습을 없애지 않는다. 대신 학습된 능력이 활용될 수 있는 범위를 크게 넓힌다. 긴 컨텍스트가 학습처럼 보이는 순간은 분명히 있지만, 그것이 곧 학습과 같은 것은 아니다.

긴 컨텍스트는 모델에게 새로운 두뇌를 주는 것이 아니다. 이미 가진 두뇌가 펼쳐볼 수 있는 책상을 넓혀주는 것이다.