영상 링크: Code World Model: Building World Models for Computation – Jacob Kahn, FAIR Meta
채널명: AI Engineer
코드 월드 모델: 연산을 위한 월드 모델 구축 핵심 요약
- 발표자는 Meta FAIR의 Jacob Kahn으로, Code World Model(CWM)의 목표와 구조를 상세하게 설명함
- CWM은 “월드 모델”을 코드 실행 맥락에 적용해, 코드의 미래 상태 예측 및 추론 능력을 기르기 위해 설계됨
- 단순한 코드 문법 토큰 예측을 넘어서, 코드 실행의 트랜지션과 상태 변화를 명시적으로 추적하고 이를 모델링함
- GitHub 저장소 수준 데이터(풀 리퀘스트, CI 테스트 등)와 방대한 규모의 실행 트레이스를 수집해 모델 학습에 활용
- CWM은 320억 개 파라미터의 트랜스포머 기반 대규모 언어모델로, 긴 콘텍스트 길이와 엔드투엔드 사전학습/후행학습 구조를 가짐
- 모델은 Bash 환경 내에서 제한적 도구만 사용하여 엔지니어와 가까운 환경에서 에이전트적 추론과 실행을 연습함
- 비동기식 강화학습 프레임워크를 통해 샘플러, 트레이너, 큐, 중간 체크포인트 싱크 등 복합적인 학습 루프를 운영
- 실행 트레이스 예측 능력이 뛰어나 코드 함수의 라인별 실행 및 변수 값 추적, 코드 디버깅, 미완성 코드 완성(Neural Debugger)이 가능
- 컴퓨터과학의 난제(예: Halting Problem)까지, 실제 실행 없이 시뮬레이션적 추론으로 문제 구조를 근사할 수 있음을 시사
- 모델 및 기술 리포트가 Hugging Face, GitHub 등에 공개되어 있으며, 실제 실험 코드 활용이 가능함
세부 요약 - 주제별 정리
CWM의 목표는 코드 실행 맥락에서 추론과 계획, 의사결정이 가능한 모델을 구축하는 데 있음
- 연산을 위한 월드 모델의 개념을 코드에 적용하려는 시도를 설명
- 기존의 언어모델과 월드 모델의 이분법을 비판하며, 월드 모델을 문제 파라미터화의 일종으로 해석
- “과거 관찰 및 액션”을 바탕으로 “미래 관찰”을 예측하는 것이 월드 모델의 핵심 기능
- 코드 분야는 규칙 기반의 제한적 환경이기 때문에 추론 실험장으로 적합하다고 설명
코드 예측에서 코드 구문 예측을 넘어서 실행 과정을 명시적으로 모델링함
- 기존 토큰 기반 오토리그레시브 모델은 코드의 문법만 예측
- CWM은 “프로그램 실행 트레이스”를 명시적으로 추적
- 각 행의 실행 상태(프레임, 로컬 변수, 메모리 등)를 기록하여 모델의 입력/출력으로 삼음
- 단일 함수에서 전체 저장소, 분산 시스템 등 복잡도 높은 코드까지 실행 트레이스를 적용 가능
- 자연어 설명이 결합된 실행 트레이스 등 다층적 표현 방식으로 확장 가능
프로그램의 트랜지션 함수를 모델링하여 상태 변화와 액션을 고수준에서 파라미터화함
- “상태-액션-다음 상태(State-Action-Next State)“의 반복적 과정으로 프로그램 실행 및 에이전트의 의사결정 과정을 파악
- 월드 모델을 적용하면, 실제 실행 없이 생각 속 환경에서 액션의 결과를 시뮬레이션하고 피드백을 적용할 수 있음
- 코드 환경에서는 프로그램 실행이 곧 환경과 상호작용이 되며, “마음 속 시뮬레이션”을 할 수 있게 됨
시퀀셜 실행 트레이스 방식이 체인 오브 쏘트(chain-of-thought) 양식으로 LLM에 적용됨
- 현재 상태와 액션(예: 다음 코드 줄 실행)에 따른 새로운 상태 예측 구조로, LLM이 자동회귀 방식으로 시퀀스를 생성
- 모델이 마치 인간의 사고흐름처럼 코드를 따라가며 실행 상태를 예측할 수 있도록 설계
대규모 GitHub 데이터와 실행 트레이스 수집 및 데이터 생성 방식
- 방대한 GitHub 데이터(이벤트, PR, 저장소 레벨 데이터)를 활용
- 단일 코드만이 아니라 리포지토리 전체, 시스템 단위, 코드 대회 문제 등 복합 예시 데이터 포함
- PR 데이터를 변화시키고, 테스트/CI 통과 후 실행 트레이스 생성
- 저장소 레벨 트레이스는 함수 수준을 넘어 복잡한 코드 환경도 모델링함
CWM 모델 구조와 전체 학습 프로세스는 대규모, 종합적 파이프라인으로 구성됨
- 320억 파라미터의 트랜스포머 기반(연구용), 긴 콘텍스트 길이를 가짐
- 수조 단위 토큰 사전학습, 도메인 특화 mid-training, 롱콘텍스트 mid-training, 추가 핀튜닝(Instruction & Reasoning), RL 및 에이전트 추론 훈련
- 프롬프트-에이전트-행동-피드백의 에이전트 루프를 환경과의 상호작용으로 모델링
- 환경 피드백(토큰, 보상, 로그 확률, 컴파일러 출력 등)이 다양하게 반환
제한된 도구(Bash 중심)와 실제 엔지니어와 유사한 환경에서 모델이 훈련됨
- CWM은 Bash 중심으로 설계, 최소한의 도구만 활용(타 모델 대비)
- Bash 명령을 통해 파일 환경 상태를 변경, 편집 도구(edit tool) 및 컨텐츠 생성, 제출까지 전체 워크플로우를 학습
- 기초 학습(SFT), RL 이전 실패 사례 거절 샘플링 등 다양한 강화 학습 방법 적용
- 실제 엔지니어가 코딩하는 환경과 최대한 유사하게 환경을 설정
비동기 RL 루프와 모델 업데이트 방식이 고도의 병렬성과 높은 처리량을 보장함
- 샘플러가 다양한 트레이스를 생성/수집, 트레이너가 이력을 채점하여 그라디언트 계산 및 학습
- 생산자-소비자 큐 구조로 병목을 최소화하고, 다양한 체크포인트와 트레이스를 동시 관리
- 트레이스 진행 중에도 즉시 모델 업데이트(체크포인트 교체) 가능 → on-policy 근사, 처리량 극대화
- 처리량 증가 덕분에 작은 모델임에도 높은 성능을 달성
CWM은 코드 실행 트레이스 예측과 코드 디버깅에서 높은 활용성을 보임
- 주어진 함수에 대해 Line by Line으로 실행 트레이스를 정확히 예측하고, 변수 값 등도 정밀 추적 가능
- “Neural Debugger”로서, 일부만 완성된 코드의 문맥 추론 및 보완, 추상적인 코드 의도를 자연스럽게 파악/완성함
- 기존 LLM 방식(자연어 프롬프트)과 달리, 코드 스니펫 내에서 의도와 구조를 더 정밀히 반영할 수 있음
코드 실행 시뮬레이션으로 복잡한 컴퓨터과학 문제도 근사적으로 다룰 수 있음을 시사함
- Halting Problem(정지 문제)처럼 이론적으로 증명 불가능한 문제도, 실행 시뮬레이션을 통해 근사적 추론 가능
- 실제 코드를 실행하지 않고도 시스템/함수 실행 과정을 내재적 월드 모델로 시뮬레이션하면, 고비용 환경에서도 효율적 디버깅/분석 가능
- 월드 모델화를 통해 “불가능한 문제”의 실행 패턴/구조를 일부 해석할 수 있음을 강조
모델 공개 및 사용 안내와 추가 리소스 제공
- CWM은 Hugging Face, GitHub에서 바로 활용 및 실험 가능
- 논문 및 기술 리포트에 학습 세부, 포스트 트레이닝 기법, 데이터 설명 등이 공개되어 있음
- 개발자 친화적 코드 및 환경 제공