언어 모델의 확률장을 비행하는 설치 작업
Distance of Thinking
요약
모델의 실제 메커니즘을 그대로 인터랙션으로 만든 작업이다. 관람객이 조종하는 비행 경로가 모델의 다음 토큰을 고르고, 그 경로가 그대로 답이 된다. 화면의 확률은 흉내 낸 값이 아니라 로컬 모델이 실제로 내놓은 logprobs다.
- 6개
- 11단계
- 4일
개요
관람객은 우주선을 몰고 모델이 계산한 확률의 터널을 지난다. 통과한 단어가 하나씩 답으로 확정된다. 클라우드 API 대신 로컬 모델을 쓴다. 그래서 전시장에서 인터넷 없이 돌아간다.
문제
이 작업은 AI를 '생각하는 존재'가 아니라 다음 토큰의 확률을 반복해서 계산하는 시스템으로 다룬다. 조건은 하나였다. 확률을 은유로 그리지 않고 모델이 실제로 계산한 값을 쓴다.
이 작업은 환각을 확률이 낮은 쪽으로 수렴한 결과로 모델링했다. 실제 언어 모델에서 환각이 왜 생기는지를 설명하는 주장은 아니다. 작업이 보여주는 것은 "낮은 확률을 계속 고르면 문장이 어떻게 무너지는가"까지다.
핵심 결정
답을 따로 만들지 않는다 – 비행 경로가 곧 답이다
보여주는 것과 실제로 일어나는 것이 달라서는 안 됐다. 샘플링에 직접 개입해야 답이 관람객의 선택이 된다.
통과한 토큰이 하나씩 확정되어 문장이 된다. 가만히 날면 가장 확률 높은 경로를 따른다. 개념과 구현이 같은 말을 한다.
확률은 흉내 내지 않고, 모델이 실제로 낸 값을 쓴다
클라우드 모델은 실제 확률을 공개하지 않아, 모델의 내부 상태를 보여준다고 말할 수 없었다.
로컬 Ollama의 logprobs로 실제 후보와 확률을 받는다. 3차원 좌표는 장식이 아니라 의미와 확률을 담는다. 토큰의 위치는 임베딩에서, 정면과 바깥 고리의 거리는 확률에서 나온다.
언어에 따라 모델을 바꾼다
한국어를 잘 쓰는 EXAONE이 영어 문장에서는 같은 말을 되풀이했다.
한국어 프롬프트는 EXAONE 3.5, 영어는 Llama 3로 답한다.
흔들기 입력을 버리고, 기울기는 조종에만 쓴다
센서를 흔들어 문장을 무너뜨리면 원인이 관람객의 손에 남는다. 작업의 전제에서 원인은 낮은 확률이어야 했다.
불안정성은 낮은 확률의 토큰으로 날아갈 때만 쌓인다. 입력 하나를 버려서 작업의 주장과 조작이 어긋나지 않게 했다.
색 없이, 흑과 백만으로
경고색을 쓰는 순간 흔한 'AI UI'처럼 보인다.
의미는 밀도, 투명도, 크기, 움직임으로만 전한다. 레퍼런스는 이케다 료지의 data-verse다.
과정
작동 방식
- 토큰으로 나누기 – 관람객이 입력한 문장을 실제 Llama 3 토크나이저로 나눈다.
- 의미 공간 – 토큰마다 4,096차원 임베딩을 받아 3차원으로 투영하고, 가까운 토큰끼리 선으로 잇는다.
- 다음 토큰 후보 – 모델에 한 토큰씩 요청해 상위 6개 후보와 그 확률을 받는다. 가장 확률 높은 후보가 정면에, 낮은 후보가 바깥 고리에 놓여 터널을 이룬다.
- 조종 – 기울기 센서(MPU6050)로 가지를 고르고, 로터리 다이얼로 온도를 바꾼다. 온도는 화면의 장을 넓힌다. 같은 값이 모델에도 그대로 전달된다.
- 무너지는 문장 – 낮은 확률의 가지로 벗어날수록 작업이 불안정성 값을 올리고, 철자가 어긋난 '유령' 단어를 낸다. 모델의 출력이 아니라 작업이 정한 규칙이다.
전시 준비
- 전시 모드 – 운영 UI를 숨기고, 75초 동안 입력이 없으면 스스로 도는 화면으로 넘어간다.
- 예열 – 관람 전에 모델을 미리 불러오는 버튼. 생성이 실패해도 로컬 대체 흐름이 화면을 이어간다.
- 네트워크 – 센서를 읽는 Web Serial은 보안 컨텍스트에서만 돌아간다. 그래서 클라우드 배포 대신 사설 네트워크의 HTTPS 주소 하나로 운영한다.
회고
맞았던 것
- 보여주는 것이 사실이어야 설득된다. 확률을 흉내 내는 대신 실제 값을 쓰기로 하자, 작업의 주장과 구현이 같은 말을 했다.
- 로컬 모델을 고른 것. 실제 확률을 받을 수 있고, 전시장에서 인터넷 없이 돌아간다. 클라우드 API였다면 둘 다 잃었다.
- 입력을 하나 버린 것. 흔들기를 빼자 조작과 작업의 전제가 어긋나지 않았다.
틀렸던 것
- 한 모델로 두 언어를 감당할 수 있다고 봤다. 한국어를 잘 쓰는 모델이 영어에서는 같은 말을 되풀이했다. 언어에 따라 모델을 나눴다.
- 흔들어서 문장을 무너뜨리는 것이 좋은 인터랙션이라고 봤다. 재미는 있었지만 원인이 관람객의 손으로 옮겨가, 작업이 말하려던 것과 반대가 됐다.
- 센서를 쓰면서 클라우드에 올리면 된다고 봤다. Web Serial은 보안 컨텍스트를 요구했다. 사설 네트워크의 HTTPS 한 주소로 운영 방식을 다시 짰다.
다음에 확인할 것
- 관람객이 '확률'을 읽어내는지 모른다. 전시장에서 관람 기록을 남기지 않았다. 이 작업이 개념을 전달하는지 측정한 값은 없다.
- 실물 조형물은 만들지 못했고, 아두이노 컨트롤러는 실제 연결 테스트를 마치지 못했다. 지금까지의 조종은 모두 마우스 대체 입력이다.
- 장시간 안정성 – 몇 시간을 연달아 돌렸을 때 로컬 모델과 시리얼 연결이 버티는지 확인하지 않았다.