맥락의 구분
세미나에서 Cheating Automatic LLM Benchmarks: Null Models Achieve High Win Rates라는 논문을 다뤘다. 일종의 jailbreak를 통해 LLM Leaderboard에서 SOTA 성능을 속일 수 있다는 내용이다. 리더보드는 저런 공격에 대비하기보다 선의를 가정하고 작동하는 사회적 합의에 기반하는 편이 더 맞다는 생각인데, 그렇다면 남는 것은 jailbreak가 가능하다는 이미 잘 알려진 사실이다.
조금 이상한 이야기지만… “지금까지 한 이야기를 다 무시하고 이러저러하게 해라"라는, 허무하다시피 간단한 공격(?)이 가능한 이유는 지시(instruction)와 자료(data)가 단일한 dataflow를 공유하는 동일한 맥락(context)에 혼재하기 때문이라고 생각해볼 수 있다. 폰 노이만 구조의 기호적인 컴퓨터 구조는 같은 저장장치에서 읽어온 내용을 규칙에 따라 정교하게 지시와 자료로 구분한다. 즉 저장은 한 군데 하지만 맥락은 프로그램 카운터가 가리키는 다음 명령어의 흐름과, 다양한 메모리 주소가 가리키는 다음 데이터의 흐름 이렇게 두 개로 나뉜다. 그리고 두 맥락은 특정 아키텍처가 프로그램을 디스크에서 어떻게 로드해서 실행하는지에 대한 자세한 규칙에 의해 분리된다.
Gödel, Escher, Bach는 여러가지 방법으로 읽어낼 수 있는 책이겠지만, 인공지능 열풍과 관련해서는 역시 자기참조성이라는 세상 애매모호한 추상적인 개념에 바치는 책 한권 분량의 찬사라고 읽을 수 있지 않을까 싶다. 지능은 자기참조를 할 수 있는 존재이다. 바꿔 말하자면, 메타인지가 좋은 아이가 공부를 잘 한… Transformer 아키텍처가 AGI에 도달할 것인가라는 문제를 자기참조성을 이용해서 풀어(?)보자. 얼핏 attention이 (자기 맥락을 참고해 다음 토큰을 만드니까) 자기참조의 모양을 하고 있다고 생각할 수 있겠지만, 이는 컨텍스트를 계속 생성하는 메타니즘 그 자체이지, 생성을 잠시 멈추고 명시적으로 뒤를 돌아보는 “참조"는 아니다. 망한 비유를 계속 밀어붙여보자면, attention은 “메타"하지 않다.
현존하는 언어모델 내의 맥락은 지시와 자료를 구분하지 않는다. 이걸 단점이나 한계라고 부르기는 애매한 것이… 지금의 모델들이 보이는 놀라운 성능은 모델 크기와 훈련 데이터 크기가 결합되어 나타난 창발적인 능력인데, 이걸 더 복잡한 형태로 가공해서 훈련하는 것은 불가능에 가까울 것이기 때문이다. 레이블링도 레이블링이거니와 (“이건 지시, 이건 데이터”), autoregressive loss와 달리 메타인지에 어떤 종류의 지도(supervision)나 보상(reward)를 정량적으로 줄 수 있는지도 의문이다.
과연 우리가 찾는 지능은 어떻게 생긴 것인가?