먼저, 내가 이런 주제에 의견을 낼 자격이 대체 뭐냐고 물을 수 있다.

나는 무작위 알고리즘에 쓰이는 결정론적 수열을 전문으로 하는 컴퓨터 과학자다.

블루 노이즈에 관한 동료 심사 학술 논문, 무리수와 무리수를 의사난수 생성원으로 사용할 때의 이점에 관한 블로그 글, 중국인의 나머지 정리를 이용해 객체를 상수 시간에 섞고 그룹화하며 임의 접근과 역조회까지 하는 경량 암호 기술에 관한 글을 읽어보라. 같은 주제의 유튜브 영상도 볼 수 있다. 나는 이런 주제가 흥미롭다고 생각한다. 관심이 있다면 다음 자료를 추천한다.

Beyond White Noise For Real Time Rendering (YouTube): https://www.youtube.com/watch?v=tethAU66xaA

Constant Time Stateless Shuffling And Grouping (EA Blog Post): https://www.ea.com/seed/news/constant-time-stateless-shuffling

Irrational Numbers (Blog Post): https://blog.demofox.org/2020/07/26/irrational-numbers/

결정론은 알지만 AI와 머신러닝도 아느냐고? 나는 머신러닝의 저수준 영역을 다루며, 요즘 머신러닝 분야에서 흔히 쓰는 고도로 추상화된 단계로 올라가는 걸 좋아하지 않는다. 그래도 역전파, 쌍대수(순방향 자동미분), ADAM 같은 것은 알고 있다. AI 겨울 동안에는 게임 개발을 하지 않을 때 엑셀로 신경망을 구현하며 추위를 달랬다.

Machine Learning For Game Developers (YouTube): https://www.youtube.com/watch?v=sTAqWRsEiy0

공개하지 않을 꽤 흥미로운 머신러닝 특허도 출원 중이다. 안타깝게도 그 특허가 터미네이터의 스카이넷 같은 것을 만드는 데 도움이 될까 두렵다. 안전할 거라 생각해 게임 회사에 특허를 맡기려 했지만, 이제 미국 파시스트당의 Jared Kushner와 Jamal Khashoggi의 살해와 시신 훼손을 지시한 사우디 왕자가 EA와 내 특허를 소유하게 됐다. 인류에게는 애석한 일인 것 같다.

재미있는 점은 그 특허의 핵심 기능이 결정론적 머신러닝이라는 것이다.

그래, 나도 운동한다.

결정론 논쟁

사람들이 대규모 언어 모델(LLM)이 결정론적이지 않다고 불평하는 것이 답답하다. 결정론을 원하는 게 아니라 결과가 옳기를 원하는 것인데, 그 사실을 깨닫지 못하기 때문이다.

2×2 순열 행렬을 살펴보자.

각 칸은 같은 질문을 여러 번 했을 때의 결과를 나타낸다.

  • 1번: 무작위 답변을 내놓고 틀린다.
  • 2번: 매번 같은 답변을 내놓고 틀린다.
  • 3번: 무작위 답변을 내놓지만 맞는다.
  • 4번: 매번 같은 답변을 내놓고 맞는다.

LLM의 문제는 결정론이 아니라고 주장하는 사람은 2번이나 4번을 원하며 둘 중 어느 쪽이어도 괜찮다고 말하는 셈이다. “맞는지는 상관없고 매번 똑같이 작동하기만 하면 된다”고 말하는 것이다. 그렇게 생각한다면 축하한다. 이제 숨을 의식적으로 쉬고 있을 것이다. (이 느낌을 기억하라. 틀렸을 때 드는 느낌이다. 자주 느끼는가?)

사람들이 실제로 원하는 것은 3번과 4번이다. 무작위인지 아닌지는 상관없고, 그저 정답을 원한다.

정답인 상태에서 답이 무작위로 달라져도 정답이라는 사실은 달라지지 않는다. 달라진다면 정답으로 여기지 않을 것이고, 3번 칸에도 포함되지 않을 것이다.

LLM이 코드를 생성하거나 파이썬 스크립트가 더 적합할 만한 일련의 단계를 실행하는 경우도 마찬가지다. 4번이라면 완전히 만족할 것이다. 3번이어도 결과가 옳으므로 충분히 만족할 것이다. “코드 생성이나 유틸리티 실행에서는 편차가 전혀 없어야 한다”고 말한다면, 그 조건도 ‘옳다’는 정의에 포함되며 그에 맞는 결과를 얻으면 된다. 원하는 정답을 얻지 못했다면 다른 칸에 해당한다.

다른 관점

LLM은 학습과 추론 모두 결정론적으로 실행할 수 있다. 사용하는 모든 의사난수 생성기의 시드를 설정하고, CPU나 GPU 스레드가 비결정론적으로 실행되지 않게 하면 된다. 이는 충분히 가능하며 그리 어려운 일도 아니다. 분위기 코딩만 안다면 마법처럼 느껴질 수 있지만, 실제로는 대단할 것 없는 일이다.

그러면 만족할까? 물론 아니다. 모든 질문의 결과가 2번이나 4번에 놓이지만, 어느 칸에 들어갈지는 선택할 수 없다. 네트워크 출력의 유일한 변화 요인은 입력이다.

(아, 반올림 모드를 빠뜨렸나? 여러 컴퓨터와 컴파일러에서 프로그램 결정론을 구현할 수 있는지 의견을 내기 전에 실시간 전략 게임이 어떻게 작동하는지부터 배우라.)

또 다른 관점

이런 반론이 들린다.

“하지만 용어를 혼동하고 있어. 네트워크는 고차원 공간의 분포를 나타내고 출력은 그중 하나의 표본이야. 의사난수 값 하나를 입력으로 삼아 표본 하나를 뽑는다고 결정론적이 되는 건 아니지.”

맞는 말이다.

내가 그림판으로 그린 도식에서 3번 칸을 생각해보자. 같은 질문을 반복해도 무작위이면서 올바른 답변을 내놓는다. 어떻게 그럴 수 있을까? 지지집합이 더 넓은 확률분포이기 때문이다.

4번 칸의 분포는 디랙 델타 함수에 가깝다. 차이는 그것뿐이다.

그래, 분포라는 건 안다. 그래서 뭐란 말인가.

또 다른 관점

우주가 결정론적인지에 관한 논쟁도 있다.

우리가 알기로는 우주는 완전히 결정론적이다. 다만 양자 수준에서는 예외일 수 있으며, 양자 수준의 비결정성이 어째서인지 거시적 규모에서는 결정론으로 바뀌는 것처럼 보인다. 우리가 아는 한 중심극한정리 때문일 수도 있다.

그렇다면 우주는 이미 결정론적이니 마음을 놓아도 된다. 원하는 대로 모든 것이 정확히 되어 있다. 그래도 만족스럽지 않은가? 결정론이 아니라 정답을 원하기 때문이다.

그리고 그 달콤한 음료에서 몇 걸음 물러나는 것도 좋겠다. 건강에 해롭다.

이 글은 분류되지 않음에 게시됐다. 고유 링크를 저장할 수 있다.