Understanding by Reconstruction: Reversing the Software Development Process for LLM Pretraining

이 논문은 정적 코드 저장소로부터 다중 에이전트 시뮬레이션과 검색 기반 최적화를 통해 계획, 추론, 디버깅과 같은 잠재적 에이전트 궤적을 역추적하여 생성된 재구성 데이터를 LLM 사전 학습에 활용함으로써, 복잡한 소프트웨어 엔지니어링 작업에 필요한 심층 추론 능력을 획기적으로 향상시킨다는 새로운 패러다임을 제시합니다.

Zhiyuan Zeng, Yichi Zhang, Yong Shan, Kai Hua, Siyuan Fang, Zhaiyu Liu, Jiaheng Liu, Haozhe Wang, Yining Zheng, Ming Ding, Ke Shen, Ge Zhang, Wenhao Huang, Xipeng Qiu

게시일 2026-03-13
📖 3 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

🧱 "완성된 집"이 아니라 "건축 과정"을 배우다: LLM 의 새로운 학습법

이 논문은 인공지능 (LLM) 이 코드를 작성할 때 왜 종종 "왜 이렇게 만들었는지"를 모르고, 복잡한 소프트웨어를 만드는 데 어려움을 겪는지 그 이유를 파헤치고 새로운 해결책을 제시합니다.

핵심 아이디어는 **"이해는 재구성을 통해 이루어진다 (Understanding by Reconstruction)"**는 것입니다.


1. 문제: "완성된 케이크"만 보고 요리법을 배우는 것

지금까지 AI 는 방대한 양의 **기존 코드 (저장소)**를 읽으며 학습했습니다. 하지만 이는 마치 이미 완성된 케이크만 보고 요리책을 외우는 것과 같습니다.

  • 현재의 방식: AI 는 "케이크가 이렇게 생겼구나"라고 외웁니다. 하지만 "왜 계란을 먼저 깨뜨렸는지", "왜 오븐 온도를 180 도로 맞췄는지", "실수했을 때 어떻게 고쳤는지"는 알 수 없습니다.
  • 결과: AI 는 짧은 문장이나 간단한 코드는 잘 만들지만, 복잡한 시스템을 설계하거나 장기적인 계획을 세우는 데는 실패합니다. 마치 "목적지"만 보고 "지도"를 보지 않은 것과 같죠.

2. 해결책: "건축 현장"을 다시 재현해 보기

저자들은 AI 에게 완성된 코드를 보여주는 대신, 그 코드가 만들어지기까지의 '과정'을 다시 만들어서 보여줍니다. 이를 **'재구성을 통한 이해 (Understanding by Reconstruction)'**라고 부릅니다.

마치 건축 현장의 CCTV 영상을 다시 편집해서 보여주고, "왜 이 벽을 먼저 세웠는지, 배관을 어떻게 깔았는지"를 설명하는 것과 같습니다.

🛠️ 어떻게 만들었나요? (3 단계 과정)

1 단계: 가상 건축가 팀 시뮬레이션 (Multi-Agent Simulation)

  • 실제 GitHub 에 있는 완성된 코드 (예: 계산기 앱) 를 가져옵니다.
  • AI 가 **수석 건축가 (Main Agent)**와 현장 기술자 (Sub-Agent) 역할을 맡게 합니다.
  • 수석 건축가: "우선 기초를 다지고, 그다음 전선을 깔고, 마지막으로 벽을 치자"라는 계획을 세웁니다.
  • 기술자: 각 파일 (벽돌) 을 하나씩 만들며, "이 벽돌을 쌓으려면 저기 있는 기둥을 먼저 확인해야 해"라고 다른 파일을 읽어보고 (Read Tool) 코드를 작성합니다 (Write Tool).
  • 핵심: AI 가 엉뚱한 소리를 하지 않도록, 실제 코드의 구조 (파일 관계, 의존성) 를 진실한 나침반처럼 사용하여 시뮬레이션을 유도합니다.

2 단계: 사고 과정 다듬기 (Search-based Optimization)

  • 처음에 AI 가 만든 "건축 계획서 (사고 과정)"는 다소 어설프거나 비효율적일 수 있습니다.
  • 저자들은 **"이 계획으로 실제 건물을 지을 확률이 얼마나 높은가?"**를 계산하며, 더 논리적이고 정확한 사고 과정을 찾아냅니다.
  • 마치 건축 설계도를 여러 번 수정하며, "이렇게 하면 더 튼튼하겠다"는 최적의 안을 고르는 과정과 같습니다.

3 단계: 학습 데이터로 활용

  • 이렇게 만들어진 "계획 → 실행 → 수정 → 완성"의 긴 과정을 AI 가 학습합니다.
  • AI 는 단순히 코드를 외우는 것이 아니라, **"왜 이 코드가 필요한지, 어떤 순서로 만들어야 하는지"**를 깊이 있게 이해하게 됩니다.

3. 결과: 무엇이 달라졌나요?

이 새로운 방식으로 학습한 AI (Llama-3-8B) 는 놀라운 변화를 보였습니다.

  • 긴 문맥 이해 (Long-Context): 아주 긴 문서나 복잡한 프로젝트 전체를 읽어도, 앞부분과 뒷부분의 연결고리를 놓치지 않습니다. (마치 긴 소설을 읽을 때 등장인물의 관계를 잊지 않는 것)
  • 코딩 능력: 단순히 코드를 짜는 것을 넘어, 시스템 전체를 설계하는 능력이 향상되었습니다.
  • 논리적 추론: 코드를 작성할 때의 논리가 일반적인 문제 해결 능력 (수학, 논리 퀴즈 등) 으로도 확장되었습니다.

🌟 한 줄 요약

"완성된 결과물 (케이크) 만 보여주고 요리법을 가르치는 대신, 요리사가 재료를 고르고, 실패하고, 다시 시도하는 '생생한 요리 과정'을 보여줌으로써 AI 가 진짜 요리사 (소프트웨어 엔지니어) 가 되게 만들었습니다."

이 연구는 AI 가 단순히 "지식"을 암기하는 것을 넘어, "생각하는 과정"을 배우게 함으로써 더 똑똑하고 유연한 인공지능을 만드는 길을 열었습니다.