LLM에 대해 망상하기
양적 변화가 질적 변화를 야기한다. 나는 이 말을 변증법의 맥락보다는 상전이(phase transition)의 맥락으로 생각한다.
LLM - 거대 언어 모델 또한 그런 예시라고 생각한다. 파라미터의 개수가 "지능"(그러니까 지능처럼 보이는 무언가)을 야기했다. 물론 나는 <Scaling Laws for Neural Language Models> 같은 논문을 읽어본 적은 없다. 그냥 카더라만 주워 듣고 그런가보다 하는 거지.
그러니까 이 글은 망상이다.
LLM에서 언급되는 27B 따위는 파라미터다. 모델을 기술하는 변수의 개수. 그러니까 모델의 복잡미묘함을 다루기 위해 270억 개의 변수가 필요하다는 것이다.
하지만 그 270억 개의 파라미터를 전부 의식적으로 다룰 수는 없을 것이다. 보다 조작 가능하게 바꾸는 것이 일반적일 테고, 그러기 위해 어떠한 인터페이스를 씌울 것이다. 나는 그것이 벡터 DB 등에서 말하는 벡터라고 봤다.
그 벡터란 어떤 벡터일까? 당연히 270억 개의 차원을 갖는 파라미터 공간의 원소는 아닐 것이다. 애초에 용량이 안 되겠지. 270억 개의 차원을 가정하면 차원 당 1바이트만 쳐도 벡터 1개에 27GB다. 말이 안 된다.
따라서 벡터 DB가 말하는 벡터는 보다 축소된 차원일 것이다.(몇 개의 차원이 적당할지는 모르겠다. 대충 1024 정도 아닐까? 2^10으로 예쁘잖아) 이렇게 270억 개의 파라미터를 작은 숫자의 차원으로 표현(represent)하는 과정에서 "손실"이 발생할 수밖에 없다. 예시를 들자면, 우리는 그림자만 보고 3차원의 형상을 정확히 예측할 수는 없다. 육각형의 그림자는 사실 정육면체를 대각선으로 비춘 결과일 수 있다. 고차원의 정보를 저차원에 사영(projection)하는 순간 정보는 손실된다. 이는 어쩔 수 없는 트레이드오프다.
하지만 연구자들은 충분히 깊이 생각했을 것이므로 이 손실의 반대편에서 그들은 조작 가능성을 얻었을 것이다. 그러니까 각 벡터의 차원이 semantic하거나, 특정 추상성을 바탕으로 grouping을 잘하거나 했을 거라는 뜻이다. 따라서 여기서 임베딩(embedding)이라는 표현은 조금 애매한 것 같다. 파라미터 공간은 정의역(domain)으로 삼는 소규모 차원의 공역(codmain)이 존재할 뿐이지. 이러한 공역이 바로 벡터 DB가 다루는 벡터 공간일 것이고, 실제 벡터들은 치역(range)으로 존재할 것이다.
즉 파라미터 공간을 보다 조작 가능하게 만들어둔 "벡터 인터페이스"가 둘러싸고 있다고 본다. 이러한 벡터 구조가 수많은 파라미터 공간의 추상화된 존재로써 하위 구조를 "은닉"하고 있는 셈이다. 우리는 자연어를 그러한 벡터 인터페이스에 입력한다.
그러니까 전체 구조는 대충 이럴 것이다. 자연어를 토큰 단위로 분해하고, 하나의 토큰이 벡터 하나로 치환되고, 그 벡터 하나가 벡터 인터페이스를 거쳐 파라미터 공간에 들어가 어떠한 결과를 받는데, 그 결과는 확률 분포일 것이다. 이러한 확률 분포는 하나의 맥락이 되어 토큰이 입력될 때마다 더욱 미묘한 맥락을 형성시킬 것이고, 그것이 "지능"처럼 여겨지는 것이다. 즉 모델의 파라미터는 "같은 자연어의 집합에 대하여 더욱 미묘한 반응을 보일 수 있는 정도"라고 퉁쳐도 아주 틀린 말은 아닐 거라 본다.
챗봇과 이야기해보니 내가 아주 틀린 추론을 한 건 아닌 것 같긴 하다.(물론 몇 번의 반론을 통해 내 의도를 보다 잘 전달하기는 해야 했다) 하지만 이런 망상에 무슨 의미가 있을까? 망상은 가설로써 기능할 때 말고는 즐거움만 줄 뿐이다. 그리고 LLM은 가설을 테스트하기에는 너무나도 복잡한 대상이다. 이제부터 많은 것들이 추상화라는 이름으로 은닉되겠지. 보다 물성에 가까운 대상을 이해해야만 살아남을 수 있지 않을까. 아마도 이것만은 망상이 아닐 것이다.