18. LLM은 무엇을 학습하는가
메신저에 “오늘 점심 뭐 먹”까지 입력하면 “지?”가 저절로 따라붙는다. 코드 에디터에 함수 이름을 절반만 쳐도 나머지가 정확히 채워진다. 이 예측이 놀라운 이유는 정답이 맞아서가 아니다. 이 시스템에게 “한국어 조사 규칙”이나 “이 프로젝트의 함수 명명 관습”을 누구도 따로 가르쳐 준 적이 없다는 사실이 더 놀랍다.
이런 언어 모델을 학습시킬 때 주어지는 목표는 단 하나, 다음에 올 단어를 맞히는 것이다. 방대한 텍스트를 읽으며 이 단순한 게임을 수억 번 반복한 결과, 문법도 문맥도 특정 분야의 관용적 표현도 모델 내부 어딘가에 자리를 잡는다. 누구도 “이 문장 다음에는 이런 조사가 온다”는 규칙을 입력해 주지 않았는데도, 반복되는 패턴 속에서 그 규칙에 해당하는 무언가가 저절로 형성된다.
17장에서 본 아이의 학습과 이 장면은 겉모습이 비슷해 보인다. 둘 다 정의를 먼저 받지 않고 사례들 속에서 반복되는 것을 스스로 찾아낸다는 점은 분명하다. 하지만 여기서 서둘러 둘을 같은 것으로 묶으면 중요한 차이를 놓치게 된다. 아이는 고양이를 잘못 부르고 정정받을 때, 그 순간 하나의 사건으로 배운다. 몇 번의 경험만으로도 범주의 경계가 움직인다. 반면 언어 모델은 같은 종류의 조정을 만들어 내기 위해 사람의 일생과는 비교할 수 없는 양의 텍스트를 필요로 한다. 아이가 세계 속에서 몸으로 사례를 만나는 것과 달리, 모델은 이미 누군가 언어로 옮겨 놓은 기록만을 재료로 삼는다. 배우는 방식도, 필요한 사례의 양도, 사례를 얻는 경로도 전혀 다르다.
그럼에도 두 경우 모두에서 눈여겨볼 만한 공통점이 하나 남는다. 어느 쪽도 사례 하나하나를 그대로 저장하지 않는다는 사실이다. 만약 언어 모델이 학습한 문장을 통째로 외워서 저장해 두었다면, 한 번도 본 적 없는 새로운 문장 앞에서는 아무 말도 하지 못했을 것이다. 실제로 벌어지는 일은 그 반대다. 수많은 문장을 관통하는 반복된 규칙성만 남기고 개별 문장의 구체적인 표현은 흘려보낸다. 이 압축이 있었기에 처음 보는 문장 앞에서도 다음 단어를 그럴듯하게 예측할 수 있다.
결국 아이와 언어 모델을 나란히 놓고 남는 결론은 “둘이 같은 방식으로 배운다”가 아니다. 메커니즘도, 재료도, 속도도 전혀 다른 두 시스템이 우연히 같은 종류의 작업, 즉 사례들 속에서 반복되는 구조를 추려 내어 새로운 사례에 적용하는 일을 하고 있다는 사실이 남을 뿐이다. 사례를 통째로 기억하는 것과 사례를 관통하는 규칙만 남기는 것, 이 둘의 차이는 생각보다 미묘하고 그 경계에서 종종 예상치 못한 실패가 벌어진다.