Transformer로 만든 RPN 계산기
My calculator is a transformer
·2026.04.30 23:49
Residual stream을 register로 보고 결정적 RPN 계산기를 Transformer로 구현했다.
Residual stream을 register처럼 다루고, attention을 정보 라우터로 써서 표준 Transformer 안에 결정적 RPN interpreter를 넣는다.
- 표준 decoder-only Transformer의 residual을 persistent state로 해석해, layer마다 값을 읽고 쓰는 modify operation처럼 사용한다.
W_Q/W_K/W_V/W_O는 register를 선택하고 복사한 뒤 residual 공간의 다른 위치로 재배치하는 역할을 하며, 특히W_O가 head 출력을 target register로 옮긴다.Register,Head,Layer,@compute추상화를 두고 컴파일러가 이름 기반으로 offset과 행렬을 채우게 한다. 초기에는 one-hot과 block-identity 방식으로 시작한다.- RPN을 택한 이유는 stack이 필요하지만 문법 파싱이 거의 없어, interpreter 구조를 설명하기에 적합하기 때문이다. 예시
3 4 + 3 3 + *는 42로 계산된다. - 표준 Transformer에는 루프가 없으므로, 충분한 depth를 확보하거나 다음 실행으로 넘길 breadcrumb를 남겨 상태를 이어간다.
관련 코드는 radarsat1/rpn_transformer에 공개돼 있으며, Transformer를 실제 LLM의 고정된 작동 원리로 보지는 않고 가능한 상태 공간의 한 예로 제시한다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.