DiffuCoder 논문 리뷰


DIFFUCODER

abstract

  • dLLM : Diffusion Large Language Model
    • 디코더를 기존의 방식이 아닌 디퓨전 방식을 사용
  • dLLM은 Auto Regressive(AR, 기존 방식) LLM에 대한 설득력 있는 대체재
    • 전체 순서를 조작가능
    • 특히 코드 생성에 유용
  • 그러나 현재 코딩에서의 dLLM의 훈련과 추론 메커니즘은 여전히 충분히 연구되지 않음
  • dLLM의 디코딩에서의 미해결 문제를 풀고 코딩에서의 잠재력을 펼치기 위해 dLLM의 디노이징 과정과 강화학습 방법들을 체계적으로 조사

    논문에서 쓴 모델과 훈련 데이터 양

  • DiffuCoder -> 7B
  • 130B 코드 토큰 학습
  • 이를 실험체로 디코딩 방식을 분석, 기존 AR 모델과의 차이를 밝혀냄
    • dLLM이 semi AR 방식 없이 어떻게 생성을 결정할 수 있는지
    • temperature를 올리면 토큰 선택 뿐만 아니라 생성 명령도 다양화 하는지

      RL

  • 토큰 로그 가능도(토큰이 선택될 가능성에서 로그를 씌운 것)의 분산을 줄이고 훈련 효율성을 평가하고 유지하기 위해 coupled-GRPO 사용
    • 훈련에 사용되는 완성된 문장들에 상보적인(상호보완적인) 마스크를 씌우는 새로운 샘플링 기법

Introduction

  • LLM은 text -> code 생성에 큰 성과를 거둠
  • 이 성공이 주로 AR 방식으로 구축되는 동안 MDMs(masked diffusion models)가 대체재로 나타남
  • 이는 비슷한 사이즈의 AR LLM과 동등한 성능을 보이는 LLaDA, Dream과 같은 dLLM으로 이어짐
  • AR 방식이 왼쪽->오른쪽으로 순서에 맞게 하나씩 진행(병렬 불가능)
  • MDMs는 전체 시퀀스를 병렬로 다듬는다
  • 최근 Mercury, Gemini 같은 규모의 dLLM은 dLLM이 최고의 AR 코드 모델과 겨룰 수 있다는 것을 보여줌
  • 이런 오픈소스 dLLM들이 코딩 과제를 어떻게 수행하는지는 밝혀지지 않음
    • 훈련과 추론 메커니즘이 완전히 해석되지 않았다
  • DPO 훈련을 한 LLaDA1.5, GRPO 훈련을 한 d1, MMaDA같은 기존의 post-training(후처리) 시도들은 문제가 있다.
    • 성능이 미약
    • 준 자기회기(semi-AR) 디토딩에 지나치게 의존(비교적 작은 크기를 가진 블록을 디코딩)
      • 디퓨전 방식으로 블록들만 생성, 블록 내부는 기존 AR 방식으로 디코딩
  • 이는 디퓨전의 근본에 반하는 행위
  • 이 문제 해결을 위해
    • dLLM의 디코딩 행위에서 인사이트 획득
    • diffusion-native 강화학습 방식 설립