네 연구소 소형 모델로 만든 금융 드라마 게임 'Thousand Token Wood v2'
한 개발자가 허깅페이스 'Build Small' 해커톤 출품작으로 소형 언어모델 여러 개를 한자리에 세워 만든 금융 드라마 게임 'Thousand Token Wood'의 두 번째 버전 엔지니어링 리포트를 공개했다. 첫 버전은 미세조정한 0.5B 모델 하나 위에서 다섯 숲 생물이 물물교환을 하고, 플레이어는 충격을 가하며 거품과 붕괴가 생겨나는 것을 지켜보는 샌드박스였다.
v2에서 플레이어는 '숲의 후원자(Patron of the Wood)'라는 그림자 금융가가 된다. 이자를 받고 돈을 빌려주고, 진짜이거나 심어둔 정보를 흘리고, 시장을 공매도하고, 뇌물을 주고 동맹을 중개한다. 그동안 치안관은 알아서는 안 될 정보로 거래한 플레이어를 추적한다. 생물들은 자신이 어떤 대우를 받았는지 기억하고 되갚으려 한다.
가장 큰 변화는 내부 구조다. 이제 각 생물이 서로 다른 연구소의 소형 모델로 사고한다. v2는 네 모델을 동시에 굴리는데, OpenAI의 gpt-oss-20b, OpenBMB의 MiniCPM3-4B, NVIDIA의 Nemotron-Mini-4B, 그리고 개발자가 직접 미세조정한 Qwen 0.5B다. 서로 다른 데이터와 후처리로 학습된 네 모델은 소형 모델치고 가장 이질적이며, 참여자가 진짜로 다르게 행동할 때 시장이 흥미로워진다는 것이 핵심이라고 그는 설명한다.
네 모델을 한 플랫폼에 올리자 진짜 교훈이 드러났다. 어려움은 거의 전적으로 모델링이 아니라 서빙 계층에 있었다. 현재 vLLM 0.22.1은 로드 시 커널을 JIT 컴파일하며 CUDA 툴킷(nvcc)을 요구하는데, 가벼운 베이스 이미지에는 이것이 없어 네 모델 모두 'could not find nvcc'로 똑같이 실패했다. CUDA devel 이미지를 바탕으로 바꾸자 한 번에 해결됐다. 이는 gpt-oss만의 문제가 아니라 해당 vLLM 버전 전체의 문제였다.
모델별로는 사소한 함정이 있었다. gpt-oss-20b는 네이티브 MXFP4 양자화로 돌아가 24GB짜리 L4 GPU에 여유 있게 들어가 고급 GPU가 필요 없었지만, 답을 분석 서두로 감싸는 채널 형식을 써서 최종 채널을 따로 추출해야 했다. MiniCPM3는 trust_remote_code가 필요했고 Nemotron은 깔끔하게 로드됐다. 이종 모델 네 개를 다루기 쉽게 만든 것은 모든 모델의 출력이 통과하는 관용적 JSON 파싱·복구 계층이었다. 이 계층을 한 번 만들어 두면 모델 추가가 리팩터링이 아니라 설정 항목 하나로 끝난다.
v2의 극적 핵심은 내부자 정보다. 플레이어가 생물에게 흘리는 정보는 진짜(다음 시장 광풍에 대한 진짜 예측)일 수도, 가짜(미끼)일 수도 있다. 진짜 정보로 이득을 보면 '열기(heat)'가 오르고, 임계치를 넘으면 치안관이 조사에 착수해 벌금이나 자산 동결, 추방으로 이어진다. 게임이 성립하려면 정보의 진위가 생물에게 숨겨져야 하므로, 숨은 플래그는 프롬프트 밖 플레이어 장부에만 두고 공개 이벤트 기록에서는 제거된다. 모든 생물의 전체 프롬프트를 매 턴 검사해 금지된 토큰을 찾는 테스트가 이 게임에서 가장 중요하다고 그는 강조한다.
메모리도 드라마를 값싸게 만드는 장치다. 생물들은 후원자와 서로에 대한 부호 있는 감정을 지니며 사건에 따라 갱신된다. 적대적으로 돌아선 생물은 대출을 거부하고 더 나쁜 호가를 부르며, 동맹을 맺은 생물들은 서로 가격을 깎지 않고 카르텔처럼 행동한다. 함정은 프롬프트 팽창이다. 기록을 그대로 넣으면 소형 모델이 그 안에서 익사한다. 그래서 정수 감정에서 뽑아낸 한 줄 요약('오나에게는 따뜻하고 후원자에게는 경계한다')만, 그것도 가장 강한 감정 몇 개로 제한해 보여준다.
대표 실행 결과는 다음과 같다. 협의체의 네 연구소 모델은 모두 32B 한도 아래였고 Modal에서 서빙됐다. 미세조정한 0.5B 모델은 자기매수 0%, 유효 제안 100%로 자신을 가르친 3B 교사 모델을 능가했다. 진실 방화벽은 검사한 모든 프롬프트에서 정보의 숨은 플래그 누출이 0건이었다. 진짜 정보로 미리 잡은 포지션은 플러스 손익으로 정산됐지만 가짜 정보는 그렇지 않았다.
개발자가 정리한 교훈은 이렇다. 소형 모델은 신뢰할 만한 형식 생성기이지만 미덥지 못한 추론기이며, 그 간극은 규모가 아니라 구조와 프롬프트, 작은 미세조정으로 메운다. 서빙 계층만 탄탄하면 이종 모델 협의체는 설정 비용만 한 번 들 뿐 동종 협의체보다 흥미롭다. 에이전트에게 준 비밀 정보는 프롬프트 지시가 아니라 데이터 흐름의 방화벽 문제이며 테스트로 증명해야 한다. 그리고 지속적 메모리는 프롬프트가 늘 제한된 요약만 보는 한, 에이전트를 살아 있게 느끼게 하는 가장 값싼 방법이다.