Articleaws.amazon.com·2026년 8월 14일·0

Custom reward functions for multi-turn reinforcement learning with Amazon Nova Forge

Quick Summary

다중 턴 강화학습에서는 보상 함수가 모델이 실제로 학습할 행동을 결정하므로, 그룹 내 변별력과 안전한 실행·관측성을 갖춘 복합 보상 설계가 핵심이다.

Custom reward functions for multi-turn reinforcement learning with Amazon Nova Forge 관련 대표 이미지

🖼️ 인포그래픽

Custom reward functions for multi-turn reinforcement learning with Amazon Nova Forge 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Custom reward functions for multi-turn reinforcement learning with Amazon Nova Forge의 핵심 내용을 4단계로 요약한 인포그래픽
Custom reward functions for multi-turn reinforcement learning with Amazon Nova Forge 핵심 내용을 4단계로 압축한 4컷 인포그래픽

💡 한 줄 요약

다중 턴 강화학습에서는 보상 함수가 모델이 실제로 학습할 행동을 결정하므로, 그룹 내 변별력과 안전한 실행·관측성을 갖춘 복합 보상 설계가 핵심이다.

📌 핵심 요약

  • 강화 미세조정은 모델이 생성한 결과를 평가 신호로 채점하며, 다중 턴 환경에서는 개별 응답이 아니라 도구 호출·코드 실행·오류 복구를 포함한 전체 궤적의 누적 보상을 최적화한다.
  • Amazon Nova Forge의 자체 오케스트레이션 방식은 고객 환경에 롤아웃을 위임하고, 해당 환경이 대화 상태·사용자 시뮬레이터·코드 실행·검증을 관리한 뒤 집계 보상과 구성 요소별 지표를 반환하게 한다.
  • 그룹 상대 정책 최적화에서는 같은 대화에서 생성한 여러 롤아웃을 보상으로 비교하므로, 그룹 안에서 항상 같은 값을 내는 보상 항목은 가중치가 높아도 이점과 기울기에 기여하지 못한다.
  • 예제는 불완전한 코딩 요청을 받은 모델이 먼저 질문하도록 가르치기 위해 정확성, 코딩 전 질문, 즉시 추측 패널티, 반복 패널티를 결합한 네 가지 구성 요소의 보상을 사용한다.
  • 정확성 평가를 위해 모델 생성 코드를 실행할 때는 자격 증명과 네트워크를 차단하고, 자원 제한·임시 디렉터리·무작위 표식을 적용하며, 각 보상 항목을 별도로 계측해야 한다.

🧩 주요 포인트

  1. 보상 항목이 그룹 내에서 변하지 않으면 학습 신호가 사라진다 → 명목상 가중치보다 실제 롤아웃 사이의 점수 차이가 중요하다.
  2. 최종 결과 보상은 희소하고 행동 보상은 편법으로 얻을 수 있다 → 결과·중간 행동·실패 패널티를 함께 설계해야 전략 간 차이가 드러난다.
  3. 질문 행동은 정확성과 독립적으로 인정하되 최종 코드 제출을 요구한다 → 질문만 반복하는 허점을 막으면서 먼저 확인하는 행동을 직접 강화할 수 있다.

🧠 상세 정리

1. 보상 함수가 결정하는 실제 학습 목표

다중 턴 강화학습에서 사용자 정의 보상 함수는 단순한 성능 측정값이 아니라 모델이 실제로 반복 학습할 행동을 결정하는 기준이다. 보상이 의도와 조금만 어긋나도 학습 곡선은 정상적으로 보이는 가운데 모델이 잘못된 전략을 익힐 수 있으며, 여러 턴에 걸쳐 행동하는 에이전트형 과제에서는 이런 오류를 발견하기가 특히 어렵다. Amazon Nova Forge는 자체 오케스트레이션 기능을 통해 사용자의 환경에서 보상 로직을 실행하면서 롤아웃, 메시지 전달, 턴별 대화 상태를 조정하며, 관리 환경을 직접 운영하지 않으려는 팀을 위한 서버리스 다중 턴 강화학습 방식도 제공한다. 원문은 이 가운데 자체 오케스트레이션 경로를 사용해 복합 보상을 설계하고, 생성 코드를 안전하게 실행하며, 구성 요소별 학습 신호를 계측하는 방법에 초점을 맞춘다.

2. 강화 미세조정과 다중 턴 학습의 차이

강화 미세조정은 주석이 달린 추론 경로와 모범 답안을 중심으로 학습하는 지도 미세조정과 달리, 현재 모델이 직접 생성한 출력에 평가 신호를 부여하고 그 결과를 바탕으로 원하는 행동을 강화한다. 다중 턴 강화 미세조정은 이 방식을 한 번의 응답에서 끝내지 않고, 질문하기, 도구 호출하기, 코드 실행하기, 실수를 인식하고 복구하기처럼 여러 단계로 이어지는 전체 궤적에 적용한다. 따라서 채점 대상도 단일 답변의 품질이 아니라 에피소드 전체에서 축적된 결과와 행동이며, 보상 함수는 이 궤적을 어떤 기준으로 좋은 것으로 볼지를 정의한다. 원문에 인용된 비교 그림은 공통 체크포인트에서 동일한 계산량으로 사후 학습했을 때 강화학습이 모든 과제 변형의 분포 밖 일반화를 개선한 반면 지도 미세조정은 이를 저하시킨 결과를 제시한다.

3. 실습 환경과 사용자 정의 보상 설정

제시된 실습을 따르려면 Nova 사용자 정의 소프트웨어 개발 도구와 다중 턴 강화 미세조정 인터페이스를 제공하는 Amazon Nova Forge 구독이 필요하다. 기반 환경으로는 이전 글에서 구축한 Amazon SageMaker HyperPod 클러스터, Amazon Elastic Container Service에서 운영하는 고객 관리 환경, 롤아웃 데이터와 체크포인트를 저장할 Amazon Simple Storage Service 버킷이 요구된다. 보상 환경과 안내 코드는 공개 예제 저장소인 aws-samples/sample-nova-multi-turn-rl-infra에서 제공되며, 사용자는 이를 자체 구현의 출발점으로 활용할 수 있다. 사용자 정의 환경은 선택 사항이므로 배포 전에 cdk.json에서 use_custom_env를 참으로 설정하고 custom_env_id에 환경 식별자를 지정해야 하며, 기본 설정을 유지하면 내장 단어 맞히기 환경이 사용된다.

4. 그룹 상대 정책 최적화의 학습 신호

Nova Forge에서 보상 함수는 별도로 학습된 보상 모델이 아니라 사용자가 코드로 작성하는 채점기이며, 출력의 정답 여부를 규칙으로 검증하거나 다른 대규모 언어 모델에 판단을 맡기는 방식으로 구현할 수 있다. 강화 미세조정은 현재 모델에서 여러 완성 결과를 표본 추출해 채점하고, 높은 보상을 받은 결과가 더 자주 생성되도록 모델 가중치를 조정한다. 그룹 상대 정책 최적화는 각 대화마다 여러 개의 롤아웃을 생성한 뒤 보상 순위를 비교하고, 그룹에서 정규화한 보상인 이점을 이용해 모델을 갱신한다. 이때 학습에 영향을 주는 것은 보상의 절대 크기가 아니라 같은 그룹 안에서 발생하는 차이이므로, 모든 롤아웃에서 동일한 값을 내는 구성 요소는 이점에도 기울기에도 기여하지 않는다. 따라서 가장 높은 가중치를 준 항목이라도 실제 출력 사이에 점수 변화가 없다면 학습 신호는 사실상 사라질 수 있다.

5. 다중 턴 롤아웃의 실행과 평가 흐름

단일 턴 강화 미세조정에서는 보상 함수를 Amazon Lambda 함수로 등록하고 학습 설정에서 해당 함수의 식별자를 지정할 수 있지만, 장시간 대화와 채점이 필요한 다중 턴 과제는 한 번의 Lambda 호출이 지원하는 15분 제한을 넘을 수 있다. 자체 오케스트레이션 경로에서는 롤아웃 위임 설정을 활성화하고 Amazon Elastic Container Service 같은 곳의 환경 컨테이너에서 대화 및 보상 로직을 실행한다. 컨테이너는 사용자 시뮬레이터의 응답, 턴별 대화 상태, 생성 코드 실행, 검증기 호출을 관리한 뒤 완성된 에피소드를 학습 시스템에 돌려준다. 보상 처리기는 먼저 과제 로직을 수행하고, 이어 정확성·중간 행동·패널티 같은 구성 요소로 전체 궤적을 채점한 다음, 롤아웃별 aggregate_reward_score와 선택적인 metrics_list를 반환한다. 학습은 이 과정을 반복하면서 개별 응답이 아니라 전체 행동 순서의 누적 보상을 높이는 방향으로 모델을 조정한다.

6. 결과·행동·패널티를 결합하는 이유

하나의 스칼라 보상은 모델이 편법으로 최대화하기 쉽고, 에피소드 마지막에만 주어지는 보상은 초기 학습 단계에서 지나치게 희소할 수 있으므로 실무형 다중 턴 보상은 보통 세 종류의 신호를 결합한다. 결과 보상은 최종 코드가 단위 테스트를 통과했는지 또는 작업 흐름이 완료됐는지처럼 궁극적으로 원하는 성과를 측정하지만, 학습 초반에는 대부분 0에 가까워 충분한 방향을 제공하지 못할 수 있다. 행동 보상은 행동 전에 질문했는지, 올바른 도구를 호출했는지, 반복을 피했는지 같은 중간 전략을 강화하지만, 실제 진전 없이도 점수를 얻는 허점이 생길 수 있다. 패널티는 추측, 반복, 지연 같은 명확한 실패 방식을 불리하게 만들어 좋은 전략과 나쁜 전략 사이에 학습 가능한 차이를 만든다. 세 신호를 적절히 조합해야 한 구성 요소가 다른 신호를 가리거나 굶기지 않으면서 모델이 원하는 과정과 최종 결과를 함께 학습할 수 있다.

7. 먼저 질문하도록 가르치는 코딩 과제

원문의 사례는 서로 다른 500개의 프로그래밍 과제로 구성된 다중 턴 협업 코딩 환경이며, Amazon Nova Lite 2.0을 그룹 상대 정책 최적화와 저순위 적응 방식으로 학습한다. 모델은 핵심 조건이 빠진 짧은 코딩 요청을 받고, 사용자 시뮬레이터는 전체 명세를 비공개로 보유한 채 모델이 질문할 때만 관련 세부 사항을 공개한다. 각 턴에서 모델은 명확화 질문을 하거나 코드를 제출할 수 있으며, 질문하면 시뮬레이터의 답을 받은 뒤 대화가 계속되고 코드를 제출하면 에피소드가 종료된다. 제출된 코드는 숨겨진 단위 테스트로 검증되어 정확성 점수를 얻으며, 과제 설계의 의도는 정보 없이 추측하면 잘못된 코드를 만들고 먼저 질문하면 숨겨진 요구 사항을 파악해 올바른 코드를 작성하게 하는 것이다. 즉, 질문을 단순한 대화 형식이 아니라 성공적인 코드 작성에 필요한 전략으로 만들면서도 보상 함수가 그 행동을 직접 식별해 강화하도록 구성한다.

8. 네 가지 구성 요소의 구체적 보상

복합 보상은 네 항목의 가중 합으로 구성되며, 정확성은 가중치 1.0으로 최종 코드가 통과한 숨겨진 단위 테스트의 비율을 사용한다. asked_before_coding은 가중치 0.6으로, 첫 번째 턴에 질문한 뒤 코드를 제출하면 1.0, 더 늦게 질문하고 제출하면 0.6, 질문하지 않았거나 질문만 하고 끝까지 코드를 제출하지 않으면 0을 반환한다. guessed_immediately는 가중치 0.4의 패널티로 첫 턴부터 질문 없이 코드를 제출하면 -1.0을 부여하며, loop_penalty는 가중치 0.2로 마지막 두 턴이 80% 넘게 유사하면 -0.5를 부여한다. 질문 보상은 정확성 달성 여부와 독립적으로 지급되므로 원하는 중간 행동을 직접 강화하지만, 최종 코드 제출을 조건으로 둬 질문만 무한히 반복하는 허점을 차단한다. 동시에 즉시 추측을 명시적으로 불리하게 만들어 질문 전략과 추측 전략 사이의 그룹 내 보상 차이를 복원하고, 최적화에 필요한 기울기가 생기도록 한다.

9. 생성 코드의 안전한 실행과 구성 요소 계측

정확성 보상은 모델이 생성한 코드를 실제 단위 테스트로 실행해야 하지만, 강화학습 중의 출력은 탐색 과정에서 만들어진 검증되지 않은 코드이므로 신뢰해서는 안 된다. 실행 컨테이너 자체가 분리되어 있더라도 생성 코드에 자격 증명이나 네트워크 접근을 제공하지 않고, 자원 제한을 적용하며, 매 실행마다 임시 디렉터리를 사용하는 추가 보호가 필요하다. 모델이 표준 오류에 예상 표식을 직접 출력해 성공한 것처럼 위조하지 못하도록 실행마다 무작위 표식을 생성해야 하며, 더 강한 격리가 필요한 실행은 별도의 전용 샌드박스에 맡길 수 있다. 최종 집계 보상만 기록하면 특정 항목이 모든 롤아웃에서 같은 값이거나 전혀 작동하지 않는 문제를 놓칠 수 있으므로, 정확성·질문 행동·즉시 추측·반복 패널티를 metrics_list에 각각 보고해야 한다. 이러한 분리 계측은 학습 곡선이 정상처럼 보일 때도 각 구성 요소가 실제 변별력과 학습 신호를 제공하는지 확인하게 해준다.

🧾 핵심 주장 / 시사점

  • 복합 보상에서 큰 가중치는 강한 학습 효과를 보장하지 않으며, 같은 그룹의 롤아웃을 서로 다르게 평가할 때만 해당 항목이 최적화에 기여한다.
  • 원하는 행동을 최종 정답에 종속시키지 않고 독립적으로 보상하면 희소한 결과 신호를 보완할 수 있지만, 과제 완료 조건을 함께 두어 행동 보상만 반복해서 얻는 허점을 막아야 한다.
  • 다중 턴 보상의 신뢰성은 채점 공식뿐 아니라 실행 격리와 구성 요소별 관측 가능성에 달려 있으므로, 안전한 코드 실행과 세부 지표 보고가 보상 설계의 일부로 취급되어야 한다.

✅ 액션 아이템

  • Amazon Nova Forge 오케스트레이션을 통해 대화 상태·사용자 시뮬레이터·코드 실행·검증을 고객 환경에서 운영하고 집계 보상과 각 구성 요소 보상을 분리해 계측한다.
  • 그룹 상대 정책 최적화에서 같은 대화의 여러 롤아웃을 비교할 때 보상 항목이 그룹 내에서 변하지 않으면 가중치가 높아도 기울기에 기여하지 않으므로 변별력 있는 항목을 설계한다.
  • 불완전한 코딩 요청에는 정확성·코딩 전 질문·즉시 추측 패널티·반복 패널티를 결합해 질문 행동을 허용하고 최종 코드 제출을 유도하는 보상을 적용한다.

❓ 열린 질문

  • Amazon Nova Forge 오케스트레이션에서 반환되는 집계 보상과 구성 요소별 지표 간 정합성은 어떻게 점검할 수 있는가?
  • 그룹 상대 정책 최적화에서 보상 항목이 대화 내에서 일정값을 유지할 때 가중치보다 점수 차이를 확보하려면 어떤 설계를 추가해야 하는가?
  • 최종 결과 보상이 희소하고 행동 보상이 조작될 수 있을 때 정확성·코딩 전 질문·반복 패널티 조합으로 질문 반복을 어느 수준까지 억제할 수 있는가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.