← 최신 논문
🤖 machine learning

Domain-Adaptable Reinforcement Learning for Code Generation with Dense Rewards

본 논문은 로봇 공학과 같은 코드 생성 작업에서 도메인별 제약 조건에 대한 기능적 정확성과 적응성을 크게 향상시키기 위해 근접 정책 최적화를 사용하고 실행을 인식하는 맞춤형 보상 시스템을 활용하여 대규모 언어 모델을 미세 조정하는 강화 학습 프레임워크를 소개합니다.

원저자: Erfan Aghadavoodi Jolfaei, Daniel Maninger, Abhinav Anand, Mert Tiftikci, Mira Mezini

게시일 2026-05-21
📖 3 분 읽기☕ 가벼운 읽기

원저자: Erfan Aghadavoodi Jolfaei, Daniel Maninger, Abhinav Anand, Mert Tiftikci, Mira Mezini

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

매우 재능은 있지만 경험이 부족한 견습 프로그래머가 있다고 상상해 보세요. 이 견습생 (대형 언어 모델) 은 문법 규칙을 따르고 훌륭해 보이는 코드를 작성할 수 있지만, 실제로 그 코드를 실행하면 종종 충돌하거나 이상하게 작동하거나 요청한 작업을 수행하지 못합니다.

이 논문은 **강화 학습 (Reinforcement Learning)**이라는 방법을 사용하여 이 견습생을 훈련시키는 새로운 방식을 소개합니다. 다만 한 가지 특별한 점이 있습니다. 프로젝트가 완전히 끝난 후에야 "잘했다" 또는 "실패"라고 말하는 대신, 견습생이 취하는 모든 단계마다 즉각적이고 상세한 피드백을 제공한다는 것입니다.

간단한 비유를 사용하여 이 시스템이 어떻게 작동하는지 살펴보겠습니다.

1. 문제: "전부 아니면 전무"식 등급

전통적으로 AI 에게 코딩을 가르칠 때는 전체 프로그램이 작성될 때까지 기다린 후 코드를 실행합니다.

  • 작동하면: AI 는 금색 별을 받습니다.
  • 충돌하면: AI 는 큰 "F"를 받습니다.

문제는 AI 가 왜 실패했는지 모른다는 점입니다. 첫 줄에서 실수를 했을까요? 마지막 줄에서였을까요? 아니면 전체 아이디어가 잘못되었을까요? 이는 학생이 10 페이지 분량의 에세이를 작성하여 제출하고, 아무런 코멘트 없이 단일 "F"를 받는 것과 같습니다. 그들은 어떤 단락을 수정해야 할지 모릅니다.

2. 해결책: "밀집 보상 (Dense Reward)" 코치

저자들은 견습생이 타이핑하는 동안 바로 옆에 서 있는 엄격하지만 도움이 되는 코치처럼 작동하는 프레임워크를 개발했습니다. 마지막에 한 번의 큰 등급을 매기는 대신, 코치는 견습생이 입력하는 단어 (토큰) 하나하나마다 점수를 매깁니다.

이를 밀집 보상 (Dense Reward) 시스템이라고 합니다. 코치가 각 단계에서 확인하는 내용은 다음과 같습니다.

  • 구문 확인 (문법 경찰): 문장 구조가 올바른가요? (예: 콜론이나 괄호를 잊어버렸나요?)
  • 스타일 및 안전성 확인 (코드 검사관): 코드가 지저분한가요? 보안 취약점이 있나요? (이를 확인하기 위해 "Ruff"라는 도구를 사용합니다.)
  • "만약에" 확인 (시뮬레이터): 이것이 로봇이라면, 이 행동이 로봇이 벽에 부딪히게 만들까요? 시스템이 코드를 시뮬레이션하여 물리적으로 가능한지 확인합니다.
  • "방황 금지" 확인: 코치는 견습생이 원래의 훈련 스타일에서 너무 멀리 벗어나지 않도록 하여 안정성을 유지시킵니다.

3. 학습이 일어나는 방식 (루프)

논문은 다음과 같은 세 단계의 루프가 반복적으로 일어난다고 설명합니다.

  1. 롤아웃 (실전 연습): AI 는 한 단어씩 코드를 생성합니다.
  2. 평가 (성적표): 코드가 완성되는 즉시 시스템은 위에서 언급한 모든 검사를 실행합니다. 전체 작품에 대한 "점수"를 계산할 뿐만 아니라, 어떤 특정 단어가 좋은 점수나 나쁜 점수에 기여했는지도 파악합니다.
    • 비유: 코드가 5 번째 줄의 오타로 인해 실패하면, 시스템은 1 번째 줄이 아닌 5 번째 줄에 가중치 있게 패널티를 부과해야 한다는 것을 알고 있습니다.
  3. 최적화 (교훈): AI 는 이러한 점수를 사용하여 자신의 뇌를 업데이트합니다. "아, 이 특정 문맥에서 이 특정 단어를 입력하면 충돌이 발생하구나. 다음에는 다른 단어를 선택해야겠다"라고 학습합니다.

4. 결과: "고장 난" 것에서 "작동하는" 것으로

저자들은 이 방법을 두 가지 매우 다른 유형의 작업에 대해 테스트했습니다.

  • 일반 코딩 (사무직): AI 에게 표준 Python 프로그램을 작성하도록 요청했습니다.
    • 결과: AI 는 약 46% 의 작업만 올바르게 수행하던 것에서 **65%**까지 향상되었습니다. 실제로 실행되고 까다로운 엣지 케이스를 처리하는 코드를 작성하는 법을 배웠습니다.
  • 로봇 코딩 (현장직): AI 에게 로봇이 이동하고 작업을 수행하도록 하는 코드를 작성하도록 요청했습니다.
    • 결과: 훈련 전에는 로봇의 코드가 움직이기 시작하기 전에 거의 항상 충돌했습니다 (96% 실패율). 훈련 후 로봇은 **51%**의 경우 작업을 성공적으로 수행할 수 있었습니다. 코드가 "환경 인식형"이 되어, 로봇이 벽을 통과하거나 너무 무거운 물체를 들어 올리려 시도하지 않는 법을 배웠습니다.

핵심 교훈

이 논문은 AI 에게 최종 등급뿐만 아니라 코딩 과정의 모든 단계에 대한 즉각적이고 상세한 피드백을 제공함으로써, 문법적으로 정확할 뿐만 아니라 안전하고 기능적이며 현실 세계에 적용 가능한 코드를 작성하도록 가르칠 수 있음을 증명합니다.

저자들은 단순히 AI 를 더 똑똑하게 만든 것이 아니라, 컴퓨터에서 실행되거나 물리적 로봇을 움직이는 행동이든, 그 행동의 결과를 더 신중하게 인식하고 고려하도록 만들었습니다.

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

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

Digest 사용해 보기 →