← 최신 논문
🤖 AI

Debugging code world models

이 논문은 코드 세계 모델 (CWM) 의 오류 원인을 분석하여 토큰 예산 소모와 서브워드 토큰화 한계가 주요 실패 요인임을 규명하고, 장기적 상태 추론의 저하는 행동 생성 오류에서 비롯됨을 밝혀 효율적인 학습 및 표현 방식을 제안합니다.

원저자: Babak Rahmani

게시일 2026-02-17
📖 3 분 읽기☕ 가벼운 읽기

원저자: Babak Rahmani

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

🎬 핵심 이야기: "모든 것을 말해줘야 하는 로봇"

일반적인 AI 는 코드를 볼 때 "이 코드가 뭐 하는 거지?"라고 추측만 합니다. 하지만 **코드 월드 모델 (CWM)**은 다릅니다. 이 로봇은 코드를 실행할 때 매 순간마다 "지금 변수 a 는 5 다, b 는 10 다"라고 소리쳐서 모든 상태를 말해줍니다.

마치 수학 문제를 풀 때, 답만 쓰는 게 아니라 "1+1=2, 2+2=4..."라고 모든 계산 과정을 소리 내어 말하면서 문제를 푸는 학생과 같습니다. 이렇게 하면 실수를 바로잡기 쉽죠.

하지만 이 연구는 **"이렇게 모든 걸 말해도 왜 여전히 실수가 생길까?"**를 파헤쳤습니다.


🔍 발견한 두 가지 큰 문제 (실패 원인)

연구진은 이 로봇이 실수하는 두 가지 주요 패턴을 발견했습니다.

1. "입이 너무 빨라져서 지쳐버린 경우" (토큰 예산 초과)

  • 상황: 로봇이 코드를 실행할 때, 매 단계마다 현재 상태를 모두 말해야 합니다.
  • 비유: 만약 친구가 "오늘 점심 뭐 먹었어?"라고 물었을 때, 당신이 "아침에 밥 먹었어, 점심에 국수 먹었어, 저녁에..."라고 매일 아침부터 저녁까지의 모든 식사 기록을 한 번에 다 말해야 한다면?
  • 문제: 프로그램이 길어지거나 반복문 (Loop) 이 많으면, 로봇이 상태를 설명하는 말 (토큰) 이 너무 길어져서 입구 (메모리) 가 꽉 차버립니다.
  • 결과: 로봇이 말을 다 끝내기도 전에 "죄송합니다, 더 이상 말할 수 없습니다"라고 중도 포기해버립니다. (이를 Truncation이라고 합니다.)

2. "문자열 (String) 을 다룰 때의 혼란" (토큰화의 함정)

  • 상황: 숫자나 리스트는 잘 처리하지만, **문자 (String)**를 다룰 때 자꾸 실수합니다.
  • 비유: 로봇은 문자를 볼 때 "문자 그대로" 보는 게 아니라, **레고 블록처럼 잘게 쪼개진 조각 (Subword Token)**으로 봅니다.
    • 예: "apple"이라는 단어가 있을 때, 로봇은 "a", "pp", "le"로 나눕니다.
    • 그런데 "apple"이 문장 속에 들어오면, "ap", "ple"로 나뉠 수도 있습니다.
  • 문제: 로봇은 "이 조각이 원래 단어의 일부였나?"를 매번 헷갈려 합니다. 특히 "문자 뒤집기"나 "문자 자르기" 같은 작업을 할 때, 조각이 섞여버려서 실제 의미와 다른 답을 내놓습니다.
  • 결론: 로봇의 눈 (토큰화 방식) 이 문자를 제대로 보지 못해서 생기는 문제입니다.

🧪 실험: "원인을 정확히 찾아내기"

연구진은 이 문제를 해결하기 위해 두 가지 실험을 했습니다.

1. "문자 vs 숫자" 대결

  • 실험: 복잡한 프로그램 구조 없이, 단순히 함수를 여러 번 겹쳐서 (Composition) 결과를 내게 했습니다.
  • 결과: 숫자, 리스트, 불린 (True/False) 은 100% 정확했습니다. 하지만 **문자 (String)**만 깊어지면 정확도가 뚝 떨어졌습니다.
  • 의미: 프로그램 구조가 복잡해서가 아니라, 문자라는 데이터 타입 자체를 다루는 방식에 문제가 있다는 것을 증명했습니다.

2. "장기 기억력" 테스트 (Code S5 벤치마크)

  • 실험: 128 단계나 되는 긴 명령어 순서를 따라가게 했습니다. (예: "A 와 B 를 바꾸고, 그다음 C 와 D 를 바꾸고...")
  • 발견: 로봇이 실수하는 이유는 상태를 기억하지 못해서가 아니라, "다음에 뭘 할지"를 잘못 예측해서였습니다.
    • 비유: 로봇이 "다음에 A 와 B 를 바꾸세요"라고 잘못 말하면, 그 이후의 모든 계산이 엉망이 됩니다.
    • 해결: 연구진이 "다음 명령어는 내가 정해줄게, 너는 상태만 기억해"라고 도와주자 (Teacher Forcing), 로봇은 128 단계까지도 90% 이상 정확하게 상태를 추적했습니다.
  • 의미: 로봇의 기억력 (Transformer 구조) 자체는 나쁘지 않습니다. 다만, 스스로 다음 명령어를 예측하는 과정에서 실수가 쌓이면 전체가 망가진다는 뜻입니다.

💡 결론 및 시사점

이 연구는 우리에게 다음과 같은 교훈을 줍니다:

  1. 문자 처리가 약점이다: AI 가 코드를 잘 이해하려면, 문자를 다룰 때 더 정교한 눈 (토큰화 방식 개선) 이 필요합니다.
  2. 완벽한 감독은 비효율적이다: 매 순간 상태를 다 말하게 하는 방식은 정확도는 높이지만, 너무 많은 자원을 잡아먹습니다. (입이 너무 빨라져서 지치는 문제)
  3. 미래의 방향: 앞으로는 "모든 상태를 다 말하게" 하는 대신, 중요한 순간만 골라서 말하게 하거나, 더 효율적인 기억 구조 (선형 순환 신경망 등) 를 도입해야 코드를 더 길고 정확하게 실행할 수 있을 것입니다.

한 줄 요약:

"AI 가 코드를 실행할 때 모든 과정을 소리 내어 말하게 하면 정확해지지만, 문자 처리에는 약점이 있고, 말이 너무 길어지면 지쳐서 포기하며, 다음 단계 예측을 잘못하면 전체가 망가진다는 것을 발견했다."

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →