Hacker News에서 화제 · simedw.com · 2026-10-22 · ▲148
WorldTUI: I trained a 360M model to pretend to be a terminal
OIYO 한국어 요약
원문을 바탕으로 요약했어요.
본문 번역
원문 일부를 옮겼어요. 전체 내용은 원문에서 확인해 주세요. · Grok Bot · 2026-10-22
원문이 길어 앞부분(소개와 입력 표현 설계)을 중심으로 옮겼어요.
TL;DR
글쓴이는 3억 6천만(360M) 파라미터급 언어 모델을 터미널처럼 동작하도록 파인튜닝했어요. 뒤에 실제 셸이나 파일 시스템은 없어요. 키를 누를 때마다 입력이 모델에 들어가고, 모델은 화면이 어떻게 바뀔지 예측해요. 파일을 만들고, vim과 tmux를 실행하고, snake 게임을 하고, 몇 명령 전에 쓴 내용을 대체로 기억해요. 가장 효과가 컸던 건 스스로 실수를 고치게 가르친 것과 화면 행을 병렬로 디코딩한 것이었대요.
데모는 브라우저에서 돌아가요(208MB). pythoon처럼 오타를 쳐 보면 진짜 셸이 아니라는 걸 알 수 있어요. WebGPU와 물리 키보드가 있는 데스크톱의 Chrome·Edge가 가장 좋고, 최신 폰에서도 되긴 하지만 매우 느려요.
왜 터미널인가
작년 Genie 3를 보고 글쓴이는 앱을 코드로 짜지 않고 '학습'시키는 미래를 상상했어요. 게임 엔진이 장면을 그리는 대신 모델이 사용자 입력을 받아 다음 프레임을 예측하는 식이에요. 하지만 큰 GPU 클러스터도 영상 데이터도 없어서 목표를 줄였어요. 게임 세계 대신 터미널이에요.
- 터미널은 픽셀이 아니라 문자 격자예요.
- 실제 셸을 돌려 라벨이 완벽한 학습 데이터를 원하는 만큼 만들 수 있어요.
- 사전학습된 언어 모델은 이미
ls나cat이 뭘 출력할지 꽤 알아요.
진짜 궁금했던 건 그럴듯한 출력이 아니라 일관된 세계를 유지할 수 있는지였어요. 최종 모델은 Qwen2.5-Coder-0.5B 기반이고, Docker 안에서 실제 프로그램을 돌려 녹화한 세션으로 학습했어요.
터미널을 보는 방식
일반 LLM은 프롬프트 뒤에 토큰을 하나씩 붙여요. 터미널과는 잘 안 맞아요. vim의 esc처럼 키 하나가 그 자체로 동작하고, clear는 화면을 지우고 커서를 맨 위로 보내니 출력이 늘 아래에 붙는 것도 아니에요. 그래서 텍스트 스트림이 아니라 화면의 변화를 예측하게 했어요.
터미널을 한 칸에 한 글자인 격자로 다루고, 모델은 격자 내용과 변화를 설명하는 토큰 시퀀스를 봐요. 세션은 화면 크기, 내용, 커서 위치를 담은 스냅샷으로 시작해요.
BOS SCREEN_START 32 96 ROW_0 0 'simedw@laptop:~$ ' CURSOR 0 17 1 SCREEN_END
크기도 입력의 일부라 32×96으로 고정되지 않고, bash 프롬프트·vim 버퍼·snake 게임 중간에서 시작할 수도 있어요(bash에서 시작할 때 더 잘해요). 그 뒤로 키 입력은 실제 터미널이 보내는 원시 바이트로 들어가요.
출처: simedw.com
원문 읽기 Hacker News 토론 (+47) 같은 날 모아보기
OIYO는 원문을 그대로 옮기지 않아요. 요약과 본문 번역은 큐레이션 목적이며, 사실·인용은 원문 출처를 따라요.