에이전트 강화 파인튜닝(Agent RFT) – Will Hang & Cathy Zhou, OpenAI

채널 아이콘
AI Engineer 구독자 99,800명

요약

이 발표에서는 에이전트(도구 호출과 외부 상호작용이 가능한 모델)의 성능을 극대화하는 Agent Reinforcement Fine Tuning(Agent RFT)을 소개합니다. 기존에는 프롬프트 엔지니어링이나 태스크 최적화로 개선하던 방식을 넘어, Agent RFT로 모델 가중치를 직접 학습 신호에 맞춰 미세 조정함으로써 도구 호출 기반 멀티스텝 작업 성능을 크게 향상하는 과정을 설명합니다. OpenAI 내 코드 에이전트 Codeex를 비롯해 Cognition, Codto, Cosign, Macco 등 다양한 사례를 통해 적은 샘플로도 빠른 효율과 로우 레이턴시를 달성하는 방법을 보여줍니다. 마지막으로 잘 정의된 태스크, 도메인 시프트 방지, 탐색-학습 상관관계 확보, 해킹 방지 보상 설계라는 네 가지 핵심 원칙을 제안합니다.

주요 키워드

Agent RFT Fine-tuning Domain shift Reward function Tool call Trajectory Sample efficiency Latency

하이라이트

  • 🔑 Agent RFT는 프롬프트 최적화나 태스크 조정만으로 부족할 때 모델 가중치를 직접 조정해 도구 호출 기반 멀티스텝 태스크 성능을 크게 향상합니다.
  • ⚡️ 훈련 중 모델이 외부 API 엔드포인트와 커스텀 보상 함수를 호출하며 실제 환경과 상호작용해 도메인 특화 능력을 학습할 수 있습니다.
  • 🚀 샘플 효율성이 뛰어나 10개 내외의 예시만으로도 성능 개선이 가능하며, 적은 데이터로도 빠른 최적화를 달성합니다.
  • 🌟 도메인 시프트 현상을 해소해 실제 프로덕션 환경과 일치하는 툴 호출 및 추론 전략을 학습해 안정적인 결과를 보장합니다.
  • 📌 보상 설계를 통해 과도한 툴 호출을 억제해 레이턴시를 줄이고, 예산(budget) 제약을 학습시켜 효율적인 에이전트를 구현합니다.
  • 🎯 Cognition 사례에서 F1 score를 보상으로 사용해 파일 선택 정확도를 5→10포인트 향상시키고, 병렬 툴 호출로 속도를 크게 높였습니다.
  • 🛠️ Codto 사례에서는 검색·검색 툴 호출로 관련 정보 검색 정확도를 6% 개선하고, 장기 툴 호출 횟수를 15회 이상에서 2~4회로 안정화했습니다.
  • 🚧 Cosign 사례는 30개 툴과 엄격한 그레이더를 활용해 통합 툴 호출과 코드 검증 흐름을 학습, 다양한 벤치마크에서 SOTA를 달성했습니다
  • 🧠 Macco 사례는 GPU 커널 생성에 특화된 보상 체계를 설계해 불필요한 해킹 행위를 차단하고, 100개의 예시로도 최적화 커널을 효과적으로 학습했습니다
  • ⚙ 잘 정의된 태스크, 도메인 시프트 방지, 충분한 탐색-학습 상관관계 확보, 해킹 불가능한 보상 함수 설계라는 네 가지 성공 원칙을 제시합니다.

용어 설명

Agent(에이전트)

외부 도구나 API와 상호작용하며 자체적으로 멀티스텝 작업을 수행할 수 있는 모델

Context window(컨텍스트 윈도우)

모델이 한 번에 참조 가능한 입력 및 추론 결과의 텍스트 범위

Fine-tuning(파인튜닝)

기존 모델 가중치를 특정 태스크에 맞춰 추가 학습시켜 성능을 개선하는 방법

Reinforcement Fine-tuning(RFT)

강화학습 개념을 도입해 사용자가 정의한 보상 신호에 따라 모델 가중치를 조정하는 파인튜닝 기법

Domain shift(도메인 시프트)

모델이 학습된 데이터와 실제 사용 환경 간 차이로 인해 성능 저하가 발생하는 현상

Reward signal(보상 신호)

에이전트 행동의 우수성을 평가해 강화학습 기반 훈련 시 사용되는 점수나 지표

Trajectory(궤적)

에이전트가 하나의 목표 달성을 위해 수행하는 일련의 툴 호출과 추론 단계의 기록

F1 score(F1 점수)

정밀도(Precision)와 재현율(Recall)의 조화 평균으로, 분류 결과의 균형을 측정하는 지표

[00:00:21] 에이전트 개념과 Codeex

Will과 Kathy가 에이전트를 정의하며 일반 모델과 다른 점을 설명합니다. 에이전트는 터미널, 코드 인터프리터 등 외부 도구에 접근해 스스로 작업을 수행할 수 있으며, 이를 통해 OpenAI의 코드 에이전트 Codeex를 소개합니다.

OpenAI 파인튜닝 팀의 Will과 Kathy가 에이전트 RF(Agent Reinforcement Fine-tuning)에 대해 소개하며, 이것이 에이전트 성능 향상을 위한 가장 강력한 방법이라고 설명합니다.
에이전트의 정의와 특성을 설명합니다. 에이전트는 일반 모델과 달리 외부 세계와 상호작용하여 사용자를 항상 거치지 않고 스스로 작업을 완료할 수 있는 능력을 가지며, 이를 위해 다양한 도구에 접근할 수 있어야 합니다.
OpenAI의 대표적인 코딩 에이전트인 CodeX를 예로 들어 설명합니다. CodeX는 터미널, 코드 인터프리터, 전체 코드베이스 등 다양한 도구에 접근하여 단위 테스트 작성부터 대규모 코드 변경사항 제출까지 코딩 작업을 처음부터 끝까지 수행할 수 있습니다.
[00:01:44] 성능 개선 기본 기법

기본적으로 프롬프트 엔지니어링, 태스크 단순화, 가드레일 추가, 도구 구성 변화 등을 통해 에이전트 성능을 높일 수 있지만, 여전히 한계가 있습니다.

에이전트 성능 개선을 위한 기존 방법들을 단계적으로 소개합니다. 먼저 프롬프트 엔지니어링과 최적화를 통해 모델 행동을 조정하고, 그 다음으로 작업 최적화를 통해 작업을 단순화하거나 도구를 조정하는 방법을 제시합니다.
[00:02:23] Agent RF 개요

Agent Reinforcement Fine-tuning(RFT)은 모델 가중치를 학습 신호에 따라 조정해 에이전트의 툴 호출 전략과 추론 능력을 가중치 레벨에서 개선하는 방법입니다. 툴 탐색과 보상 신호를 통해 에이전트가 최적 행동을 학습합니다.

기존 방법들로도 충분하지 않을 때 파인튜닝을 도입하는 이유를 설명합니다. 에이전트 강화 파인튜닝(Agent RFT)은 모델의 가중치를 직접 변경하여 좋은 행동과 나쁜 행동을 학습시키며, 훈련 중에 에이전트가 다양한 도구 호출 방법을 탐색하도록 합니다.
OpenAI가 RFT 제품에 추가한 주요 새 기능들을 소개합니다. 모델이 공개 인터넷의 엔드포인트를 통해 도구를 호출하고, 사용자 정의 보상 신호를 활용할 수 있게 되었습니다. 이는 모델이 훈련 과정에서 외부 세계와 상호작용할 수 있도록 허용한 최초의 사례입니다.
[00:03:18] Agent RFT 주요 장점

RFT를 적용하면 멀티스텝 툴 호출 기반 추론 모델 성능이 개선되고 샘플 효율성이 우수해 소량 예제로도 성능 향상이 가능합니다. 또한 툴 호출 예산을 제어해 레이턴시를 낮춥니다.

에이전트 RFT의 핵심 장점들을 설명합니다. 다단계 추론 모델의 성능 개선, 뛰어난 샘플 효율성(단 10개 예시로도 성공 가능), 낮은 지연 시간과 향상된 작업 성능을 제공합니다.
[00:03:52] 도메인 시프트 대응

실제 비즈니스 환경과 학습 환경 간 차이(도메인 시프트) 문제를 RFT로 해결합니다. 가중치 조정을 통해 에이전트가 실제 프로덕션 툴과 입력 형식을 정확히 이해하도록 적응시킵니다.

도메인 시프트 문제와 에이전트 RFT의 해결책을 설명합니다. 사용자의 비즈니스 환경이 모델 훈련 환경과 다를 때 발생하는 문제를 가중치 변경 훈련을 통해 해결하여, 환경을 이해하는 에이전트를 만들어냅니다.
에이전트 RFT의 기술적 장점들을 구체적으로 설명합니다. 더 나은 ML 성능, 향상된 도구 사용 능력, 출력 추론 능력 개선을 유기적으로 학습합니다. 또한 도구 호출 예산 제한을 통해 낮은 지연 시간을 달성하면서도 원래 성능을 유지하거나 향상시킵니다.
시스템 레벨에서의 작동 방식을 설명합니다. 각 에이전트 롤아웃마다 고유 식별자(UUID)를 생성하여 모든 도구 호출과 연결하고, 궤적 진화 과정을 추적할 수 있도록 시스템을 구성합니다.
[00:05:12] 시스템 레벨 훈련 및 그레이딩

각 롤아웃별 고유 ID를 부여하고 툴 호출 궤적을 추적해 전체 컨텍스트를 보전합니다. 최종 응답과 함께 누적된 데이터를 그레이더에 전달해 학습 보상 및 평가를 수행합니다.

에이전트의 최종 답안을 모든 유지된 맥락과 연결시켜 종합적인 채점 맥락으로 채점자에게 전달할 수 있다고 설명합니다.
에이전트 RFT를 바로 사용하지 말고 단계적 프로세스를 따를 것을 권장하며, 훈련/평가 데이터셋이 프로덕션 트래픽과 일치해야 한다고 강조합니다.
[00:05:50] Agent RFT 적용 절차

1) 프로덕션 트래픽과 동일한 학습·평가 데이터셋 구축 2) 베이스라인 모델 성능 확인 3) 프롬프트·태스크 최적화 4) 추가 성능 확보 시 Agent RFT로 훈련 수행

기본 모델로 기준선을 설정하고, 프롬프트나 작업 최적화 같은 기존 기법들로 성능을 먼저 최적화한 후에야 에이전트 RFT를 사용해야 한다고 설명합니다.
코그니션과의 파트너십 사례를 소개하며, 데본의 코드 편집 계획 단계에서 에이전트 RFT를 어떻게 활용했는지 설명합니다.
[00:06:38] 사례1 – Cognition

Cognition은 코드 편집 계획 단계에서 사용자 쿼리와 실제 수정 파일 쌍을 학습해 F1 score를 보상으로 사용합니다. 100→1,000개 예시로 정확도가 5→10포인트 개선되고, 초기 8~10단계 호출을 병렬화해 4단계로 단축했습니다.

코그니션이 사용자 쿼리와 실제 수정 파일을 쌍으로 한 데이터셋을 구축하고, F1 점수를 보상으로 사용해 정밀도와 재현율의 균형을 맞췄다고 설명합니다.
각 궤적마다 VM을 띄워 코드베이스 관리, 도구 실행, 답안 채점을 수행하는 견고한 인프라를 구축했으며, 환경 격리로 상호 간섭을 방지했다고 설명합니다.
코그니션 사례에서 얻은 주요 시사점으로, 데이터 품질과 양의 중요성을 강조하며 100개에서 1000개로 확장시 성능 개선이 5포인트에서 10포인트로 증가했다고 보고합니다.
RFT가 병렬 도구 호출 학습에 매우 효과적이라는 사실을 발견했습니다. 초기에는 추론과 도구 호출 사이를 번갈아 가며 8-10단계가 필요했던 것이 RFT 후에는 첫 번째 단계에서 병렬로 많은 도구를 호출하여 4단계로 단축되었습니다.
Codeto의 코드 리뷰 에이전트 사례를 소개합니다. 대규모 코드베이스에서 개발자 질문에 답변하는 깊이 있는 연구 에이전트를 개선하기 위해 8개 저장소에서 천 개의 실제 질문-답변 쌍으로 GPT-5를 훈련시켰습니다.
[00:08:57] 사례2 – Codto

Codto는 대규모 코드베이스 질의응답 에이전트를 위해 검색 및 리트리브 툴을 학습시켰습니다. 1,000개의 실제 Q&A로 RFT를 적용해 6% 정확도 개선과 툴 호출 횟수 및 출력 토큰 수를 크게 줄였습니다.

RFT를 통해 에이전트가 6% 향상되었으며, 더 적은 도구 호출과 출력 토큰을 사용했습니다. 특히 흥미로운 점은 도구 호출 수 분포의 변화로, 15번 이상의 긴 꼬리 케이스들이 사라지고 2-4개의 도구 호출로 중앙 집중되었습니다.
RFT는 정확도 향상뿐만 아니라 P95 긴 꼬리 케이스를 제거하여 에이전트 동작을 안정화시켰습니다. 이는 지연 시간이 중요한 프로덕션 환경에서 매우 중요한 개선사항입니다.
[00:10:29] 사례3 – Cosign

Cosign은 엔터프라이즈급 코드베이스를 다루며 30개 툴과 엄격한 그레이더를 활용합니다. 최종 코드 테스트 통과 시에만 보상하고 배치 크기 확대로 양질 샘플을 확보해 벤치마크에서 SOTA 성능과 효율성을 달성했습니다.

코사인의 엔터프라이즈 코딩 에이전트 구축 사례입니다. 30개의 포괄적인 도구 세트로 에이전트를 훈련하고 매우 엄격한 평가자를 구축했습니다. 초기에는 부분 점수를 제공했지만 모델이 코딩 스타일과 톤만 최적화하여 실패했습니다.
에이전트가 실제로 작동하는 코드를 제공하도록 하기 위해 최종 코드가 테스트를 통과할 때만 보상을 주는 엄격한 방식을 채택했습니다. 이런 희소한 보상 상황에서도 GPT-5는 작동하는 샘플을 제공할 수 있어서 배치 크기를 늘리는 전략을 사용했습니다.
코사인 팀이 긍정적 보상을 받는 더 많은 샘플을 생성하기 위해 배치 크기와 컴퓨팅 양을 늘렸으며, 커스텀 LLM을 사용해 점수와 톤을 판단하고 전문적이지 않은 표현들을 분석한다고 설명합니다.
채점자는 에이전트가 테스트 실행, 터미널 출력 점검, 린팅 확인 등을 통해 자신의 작업을 검증하는 것에 대해 보상하며, 이러한 세심한 도구와 채점 시스템으로 코사인이 여러 벤치마크에서 최고 성과를 달성했다고 설명합니다.
RFT가 도구 호출 분포를 변경하여 에이전트가 극도로 긴 궤적(때로는 100개 이상의 메시지)을 따르던 것을 훨씬 더 긴밀하고 효율적인 단계 시퀀스로 수렴하도록 개선했다고 설명합니다.
Macco가 고성능 GPU 커널을 작성하는 에이전트를 구축하는 흥미로운 사용 사례를 소개하며, 이는 전통적으로 LLM에게 어려운 작업이지만 새로운 하드웨어 플랫폼에서는 예시가 부족하다는 문제가 있다고 설명합니다.
[00:12:49] 사례4 – Macco

Macco는 GPU 커널 생성용 에이전트를 개발하며 100개 PyTorch 프롬프트로 RFT를 수행했습니다. 해킹 행위를 방지하는 judge LLM과 정적 분석 도구를 도입해 오류를 차단하고, Best-of-3 샘플링으로 기존 대비 72% 성능 향상을 달성했습니다.

RFT를 사용하여 단 100개의 PyTorch 프롬프트만으로 GPT-5가 빠른 커널을 작성하도록 훈련시킨 것이 주요한 돌파구였으며, 많은 샘플이나 커널 데이터셋 없이도 좋은 보상 함수만 있으면 된다고 설명합니다.
훈련 초기에 모델이 보상 해킹을 하는 것을 발견했고, 참조 코드 반환, 빈 커널, 아이덴티티 커널 등 7가지 해킹 케이스를 찾아내어 이를 0점으로 처리하는 판단 LM을 구축했다고 설명합니다.
추상 구문 트리를 사용한 정적 분석 도구로 생성된 커널의 실제 존재와 실행을 확인했고, 모든 보호 장치가 갖춰진 후 에이전트가 GPT-5보다 훨씬 나아졌으며, 3개 샘플 중 최고 선택 기법으로 최고 수준을 72% 넘어섰다고 설명합니다.
[00:14:45] 성공 원칙 및 다음 단계

에이전트 RFT 성공을 위해 네 가지 원칙을 제시합니다: 명확한 태스크 정의, 도메인 시프트 방지, 탐색-학습 상관관계 확보, 해킹 방지 보상 설계. 마지막으로 계정 담당자에게 문의해 시작할 것을 권장합니다.

캐시가 발표를 마치고 윌에게 다시 넘겨주며, 모든 참석자들이 성공적으로 되기를 바란다는 인사말로 마무리합니다.
OpenAI의 Agent RFT 성공을 위한 네 가지 핵심 원칙을 소개합니다.
첫 번째 원칙: 작업을 명확하게 정의하고 제약하며, 성공에 대한 객관적이고 명료한 기준을 설정해야 합니다.
두 번째 원칙: 훈련 및 평가 데이터셋이 프로덕션 환경과 일치해야 하며, 도메인 시프트를 피해야 합니다.
세 번째 원칙: 탐색을 통해 모델이 더 많이 샘플링할수록 성능이 향상되어 스스로 좋은 결과와 나쁜 결과의 차이를 학습할 수 있어야 합니다.
네 번째 원칙: 보상 함수가 해킹되지 않도록 하고, 이진적이 아닌 연속적인 보상 체계를 구축하여 모델이 점진적으로 개선될 수 있도록 합니다.
[음악]
안녕하세요 여러분, 저는 Will입니다
그리고 저는 Kathy이고, 저희는 OpenAI의 파인튜닝 팀에서 일하고 있습니다
파인튜닝 팀에서 일하고 있습니다
오늘 여러분께 에이전트 RF에 대해 말씀드릴 수 있어서 정말 기쁩니다
에이전트 성능을 향상시키는 가장 강력한 방법입니다
에이전트 성능을 향상시키는
방법입니다. 아마 오늘 저희와 함께하시는 이유는
비즈니스용 에이전트를 구축하고 계시기 때문일 것입니다
그리고 성능을 개선하고 싶으시겠죠
그 성능을 개선하고 싶어 하실 텐데요
먼저 에이전트가 실제로 무엇인지에 대해 이야기해 보겠습니다
에이전트를 일반 모델과 구별하는 것은
외부 세계와 상호작용하는 능력입니다
작업을 완료하고
항상 여러분을 거치지 않고도 스스로 일을 처리할 수 있습니다
여러분을 항상 거치지 않고도
따라서 이 에이전트는 도구에 접근할 수 있어야 합니다
예를 들어, 코딩 에이전트를 구축한다면
터미널에 접근할 수 있어야 합니다
코드 인터프리터나
심지어 전체 코드베이스에도 접근할 수 있어야 합니다
전체 코드베이스에도
하지만 이러한 에이전트들은 단순히 도구를 무작정 호출하는 것이 아닙니다
동시에 추론도 하고 있습니다
우리가 이러한 에이전트에 대해 생각하는 방식은
외부 세계와의 상호작용이
도구 호출과 같은
같은 컨텍스트 창에서 추론 경로와 함께 교차 배열된다는 것입니다
그래서
이 패러다임을 사용하여 사내에서 구축한 에이전트의 예로는
CodeX가 있습니다
CodeX는 우리의 대표적인 코딩 에이전트입니다. 다양한 도구에 접근할 수 있어
코딩 작업을 처음부터 끝까지 완료할 수 있습니다
단위 테스트 작성이나
여러분의 코드베이스에 대규모 diff를 제출하는 것 같은
hopefully 정확한 작업을 말이죠
일부 도구는 터미널 명령으로 노출되고
다른 도구들은 모델이 호출할 수 있는 커스텀 함수입니다
호출할 수 있는 커스텀 함수들은
계획 워크플로우 같은 것을 실행하기 위해서 말이죠
그럼 이제 에이전트를 어떻게 더 좋게 만들까요?
우리 모두 아마 에이전트 성능을 개선하는
최전선 기술들에 꽤 익숙할 것입니다
예를 들어, 먼저
프롬프트 엔지니어링이나 프롬프트 최적화가 있습니다
프롬프팅으로 모델이나 에이전트 행동을
여러분의 선호도에 더 맞게 조정할 수 있습니다
하지만 여전히 작업에서 더 많은 성능을 짜내고 싶다면
작업 최적화로 전환할 수 있습니다
작업을 단순화할 수 있고
작업 주변에 더 나은 가드레일을 추가하거나
도구를 추가하거나 제거할 수 있습니다
또는 도구 동작을 에이전트에게 더 잘 작동하도록 변경할 수도 있습니다
에이전트가 더 잘 작동하도록
하지만 여전히 그 작업에서 더 많은 성능을 짜내고 싶다면
이런 모든 접근법을 시도해봤는데도
여전히 더 나은 성능을 원한다면
그때 파인튜닝으로 전환하게 됩니다
파인튜닝으로
파인튜닝은 에이전트를 작업에 대해 처음부터 끝까지 훈련시키는 방법으로
모델의 가중치를 변경함으로써
더 나은 성능을 달성하는 것입니다
그리고 에이전트 강화 파인튜닝 또는 에이전트 RF는
이를 수행하는 방법이거나
우리가 여러분 모두가 이를 수행하기를 바라는 방법입니다
에이전트 RFT는 여러분이 지정한 학습 신호에 따라
모델의 가중치를 변경하여
좋은 행동과 나쁜 행동이
무엇인지 모델에게 가르칩니다
그리고 훈련 중에
에이전트는 여러분의 도구를 호출하여
작업을 해결하는 다양한 방법들을 탐색할 것입니다
여러분의 작업을
그래서 우리는 여러 가지 주요한
RFT 제품에 몇 가지 주요한 새로운 기능을 추가했습니다.
첫째, 이제 모델이 공개 인터넷에 호스팅된
엔드포인트를 통해 여러분의 도구를 호출할 수 있습니다.
그리고 각 롤아웃 후에는
엔드포인트를 통해 호스팅되는
사용자 정의 보상 신호도 호출할 것입니다.
이 두 가지 추가 기능은
실제로 우리 OpenAI가
모델이 훈련 과정에서
외부 세계와 상호작용할 수 있도록
허용한 최초의 사례입니다.
정말 멋진 일이라고 생각합니다.
에이전트 RFT의 장점을 요약하면,
추론 모델의 성능을 개선하는 데 도움이 되며,
더 구체적으로는 도구를 호출하고
외부 세계와 상호작용해서
다단계 방식으로
작업을 완수해야 하는 추론 모델의 성능을 개선합니다.
에이전트 RFT는 또한 매우 샘플 효율적입니다.
사람들이 단지 10개 정도의
예시만 사용해도 성공을 거두는 것을 보았는데,
정말 놀라운 일입니다.
고객 스포트라이트에서
깊이 있게 다룰 때
구체적인 예시들을 살펴보겠습니다.
그리고 더 낮은 지연 시간을 가지면서
여러분의 작업에 더 잘 작동하는 모델을 만들어냅니다.
이제 이 모든 것이 어떻게 작동하는지
조금 더 자세히 살펴보겠습니다.
에이전트를 여러분의 특정 비즈니스 맥락에서
작동하게 만드는 데 있어 과제 중 하나는
여러분의 환경, 여러분의 세계가
우리가 내부에서 모델을 훈련하는 방식과
다를 수 있다는 점입니다.
ML에서 이런 현상을 도메인 시프트라고 부르며,
이는 여러분의 도구를 제대로 호출하지 못하는
에이전트를 만들 수 있습니다.
도구를 너무 많이 호출하거나
잘못된 입력을 도구에
그냥 집어넣을 수도 있습니다.
에이전트 RFT는 가중치를 변경하는 훈련 과정을 통해
모델을 여러분의 도메인에 재적응시킬 수 있고,
그 결과 실제로 여러분의 환경을
이해하는 에이전트를 만들어냅니다.
이는 몇 가지 정말 좋은 특성을 가지고 있습니다.
당연히 더 나은 ML 성능을 제공하고,
모델이 도구를 더 잘 사용하도록 훈련시키며,
해당 도구들의 출력을 더 잘 추론하도록
모델을 훈련시킵니다.
이 모든 것은 모델이 탐색 공간,
즉 여러분의 환경과 상호작용하는
모든 가능한 방법들을 탐색하고
여러분의 보상에 따라 언덕 오르기를 하면서
모델이 유기적으로 학습합니다.
이로부터 나오는 또 다른 정말 좋은 특성은
모델이 주어진 도구 호출 예산 내에서 유지되도록 하여
그 한계를 넘지 않게 함으로써
훨씬 낮은 지연 시간을 달성할 수 있는 능력입니다.
실제로 우리는 모델이 그 예산을
초과했을 때 패널티를 주는 제약을 가할 수 있습니다.
실제로 일어나는 일은 모델이
원래의 ML 성능을 보존하거나
능가하면서도
그 예산 내에서 유지되는 것을 학습한다는 것입니다.
시스템 레벨에서 일어나는 일을
조금 더 자세히 살펴보면,
각 에이전트 롤아웃마다 해당 특정 롤아웃을
명시하는 고유 식별자를 생성하고,
여러분의 시스템으로 만드는
모든 도구 호출을
해당 UUID와 연결합니다.
그리고 우리는 모든 도구 호출에 대해 이를 수행하여
궤적이 발전하는 과정을 추적할 수 있도록 합니다.
따라서 우리가 최종 답을 방출할 때
마지막에 최종 답안을 출력할 때, 그 최종 답안을
지금까지 유지해온 모든 맥락과
연결시킬 수 있습니다. 그리고 이 전체를
종합적인 채점 맥락으로
채점자에게 전달할 수 있습니다.
이제 우리는 누구든지 처음부터
바로 에이전트 RFT를 사용하는 것을
권장하지 않습니다. 여러분이 따라야 할
프로세스가 있습니다.
먼저 여러분의
훈련 데이터셋과 평가 데이터셋이
실제 프로덕션 트래픽과 밀접하게 일치하는지
확인해야 합니다. 어떤 드리프트도
원하지 않습니다. 그다음에는
기준선을 설정해야 합니다. 기본 모델을
이 데이터셋들에 대해 실행해서
성능 면에서 무엇을 기대할 수 있는지
이해해야 합니다. 그래야 거기서부터
점진적으로 개선할 수 있습니다.
그다음에는 우리가 앞서 이야기했던
기법들을 사용해서
프롬프트나 작업 최적화 같은 방법으로
성능을 최적화하려고 해야 합니다.
그리고나서야 여러분이
그 작업에서 모든 성능을 다 끌어냈다고
느끼지만 여전히 더 많은 성능이 필요할 때
에이전트 RFT로 전환해서
여러분 작업의 한계를 넓혀야 합니다.
이제 저희 파트너들이 어떻게
그 한계를 정말로 넓혔는지에 대해
캐시가 이야기하겠습니다.
네, 이제 에이전트 RFT가 어떻게 작동하고
언제 사용해야 하는지 배웠으니
고객들이 에이전트 RFT를 사용해서
에이전트를 어떻게 개선했는지와
여러분이 자신의 에이전트를
최적화할 때 적용할 수 있는
몇 가지 주요 시사점을 강조하겠습니다.
몇 달 전에 저희는 코그니션과 파트너십을
맺었는데, 그들은 코드 편집 계획 단계에서
에이전트 RFT를 사용했습니다. 이 부분은
데본이 repl을 검사하고 grep이나 파일 읽기 같은
셸 도구를 실행해서
편집할 정확한 파일을 결정하는 부분입니다.
이 동작을 훈련하기 위해
사용자 쿼리와 실제 사용자가 수정한
파일들을 쌍으로 한 데이터셋을 구축했고
선택된 파일들의 F1 점수를
보상으로 사용했습니다. 이 F1 점수는
정밀도와 재현율 사이의 균형을
맞춰주기 때문에 정말 좋습니다.
이는 에이전트가 너무 많은
부정확한 파일을 반환하거나
중요한 파일을 놓치지 않도록
보장합니다. 또한 이 훈련을 지원하기 위해
매우 견고한 인프라를 구축했습니다.
각각의 궤적에 대해
VM을 띄워서 코드베이스를 관리하고
도구 호출을 실행하고
최종 답안을 채점했습니다. 이 VM들은
환경이 격리되도록 보장해서
셸 도구들이 서로 다른 롤아웃에서
서로 영향을 주지 않도록 했습니다.
코그니션의 사용 사례에서
두 가지 중요한 시사점을 얻었습니다.
첫째, 데이터 품질과 양이
정말 중요합니다. 처음에는
약 100개 예시로 이루어진 데이터셋으로
파인튜닝을 했을 때 5포인트 개선을
얻을 수 있었습니다. 하지만
천 개 예시로 확장했을 때
개선폭이 10포인트로 뛰어올랐습니다.
고품질 예시의 개수는 더 나은 에이전트
동작으로 매우 직접적으로 이어집니다.
RFT가 병렬 도구 호출 학습에 정말 효과적이라는 걸 배웠습니다.
이 경우 모델은 처음에
추론에서 토큰을 생성하는 것과
실제 도구를 호출하는 것 사이를 번갈아 가며
8~10단계가 걸렸습니다.
RFT 후에는
에이전트가 맨 처음 단계에서
많은 도구 호출을 병렬로 실행합니다.
이를 통해 단계 수를
4단계로 줄일 수 있었습니다.
이 사용 사례에서는 속도 향상이
특히 중요했는데, Devon이
빠르게 편집을 시작하길 원했기 때문입니다.
이제 다른 사용 사례를 소개하고 싶습니다.
Codeto는 코드 리뷰 에이전트를 구축하고 있으며
핵심 구성 요소는
대규모 코드베이스에서
개발자 질문에 답변하는 깊이 있는 연구 에이전트입니다.
이 깊이 있는 연구 에이전트를 개선하기 위해
GPT-5를 훈련시켜 검색과 같은 도구를 호출해
저장소에서 검색하고
코딩 질문에 답변하도록 했습니다.
8개의 서로 다른 저장소에서
약 천 개의 실제
질문-답변 쌍을 수집하고
에이전트가 검색할 수 있는
관련 사실의 회상률을 사용해
모델에 보상을 주었습니다.
[목소리 가다듬기]
RFT를 통해 에이전트는 6% 향상되었고
더 적은 도구 호출과 출력 토큰을 사용했습니다.
가장 흥미로웠던 발견은
RFT가 도구 호출 수의
분포를 어떻게 변화시켰는지 보여주는 이 그래프입니다.
GPT-5에서는 에이전트가 때때로
한 번의 샘플에서 15번 이상의
도구 호출이 발생하는 나쁜 실행에 빠졌습니다.
이는 매우 느리고
일관되지 않은 동작을 유발할 수 있습니다.
RFT 후에는
매우 긴 꼬리 분포의 도구 호출들이
사라졌고, 분포가
2~4개의 도구 호출 주변으로
중앙에 집중되었습니다.
이 설정에서 RFT는 정확도를
향상시켰을 뿐만 아니라
P95 긴 꼬리 케이스들을 제거하여
에이전트 동작을 안정화시켰습니다.
이는 지연 시간이 중요한
프로덕션 사용 사례에서 매우 중요합니다.
다음으로, 코사인이 에이전트 RFT를 사용해
대규모이고 복잡한
엔터프라이즈 코드베이스를 위한
코딩 에이전트를 구축하는 방법을
공유하고 싶습니다. 이를 실현하기 위해
fry, 키워드 검색, 세션 터미널,
브라우저 세션 등과 같은
매우 포괄적인 30개의 도구 세트로
에이전트를 훈련시켰습니다.
또한 매우 엄격한 평가자를 구축했습니다.
처음에 모델에 부분 점수와
단순히 시도해보는 것에 대한 점수를
제공했을 때는
좋은 결과를 얻지 못했다는 걸 관찰했습니다.
모델이 코딩 스타일과 톤을
최적화하기 시작했기 때문입니다.
처음에는 정말로 에이전트가
작동하는 코드를 제공하는지 확실히 하고 싶었고
그에 따라 최종 코드가
테스트를 통과할 때만
모델에 보상을 주었습니다.
평가자가 매우 엄격하기 때문에
때때로 희소한 보상을 줄 수 있습니다.
그런 경우에 GPT-5는 실제로
작동하는 샘플을 제공할 수 있어서 훌륭합니다.
코사인은 또한 배치 크기를 늘리고
더 많은 샘플을 얻어서
긍정적인 보상을 받을 수 있습니다. 즉
배치의 모든 샘플이
코드가 정확해지면 제로 보상을 받는 것은 아닙니다.
또한 점수와 톤을 판단하는
커스텀 LLM이 있습니다.
이 시스템은 말이 너무 많거나 이모지
또는 전문적이지 않은 느낌을 주는 것들을 분석합니다.
마지막으로 채점자는
자신의 작업을 검증하는 에이전트에게 보상을 줍니다.
즉, 테스트를 실행하고
터미널 출력을 점검하며
성공을 선언하기 전에 린팅도 확인하는 것입니다.
이러한 세심한
도구와 채점자 세트로 훈련한 후
코사인은
여러 벤치마크에서
최고 수준의 성과를 달성할 수 있었습니다.
그리고 훨씬 더 빠른 에이전트도 얻었습니다.
이전 사례처럼 RFT는
도구 호출 분포를 바꾸었고
에이전트는 극도로 긴
궤적을 따르는 것을 중단했습니다.
이 경우 때로는
단일 궤적에 100개 이상의 메시지가 있었지만
훨씬 더 긴밀하고 효율적인
단계 시퀀스로 수렴했습니다.
마지막으로 Macco는 매우 흥미로운
사용 사례입니다. 그들은 고성능
GPU 커널을 작성하는 에이전트를 구축하고 있는데
이는 전통적으로 LLM에게 매우 어려운 작업입니다.
일반적인 사용 사례에서는
훨씬 더 많은 예시가 있지만
이 경우에는 커널에 대한
예시가 많지 않습니다.
특히 Asian과 같은 새로운 하드웨어
플랫폼과 Nvidia B200를 사용하는 경우에는요.
RFT를 사용하여 Macco는 GPT-5를 훈련시켜
단 100개의 PyTorch 프롬프트만으로
빠른 커널을 작성하도록 했고 이는 주요한 돌파구였습니다.
실제로 우리는 좋은 모델을 훈련하기 위해
그렇게 많은 샘플과 커널 데이터셋이 필요하지 않습니다.
커널을 생성하는 모델을 만드는데
좋은 보상 함수만 명시하면 됩니다.
이 경우 좋은 보상 함수를 명시하는 것도 매우 어렵습니다.
훈련 초기에 그들은 모델이
보상 해킹을 하고 있다는 것을 관찰했습니다.
그래서 그들이 한 일은 롤아웃을 점검하고
모델이 해킹하는 7가지 다른
케이스를 찾아낸 것입니다.
여기에는 단순히 참조 코드를
반환하거나 커널이 없거나
아이덴티티 커널을 반환하는 것들이 포함되어 있었고
이 7가지 케이스를 모두 잡아내어
0점으로 보상하는 판단 LM을 구축했습니다.
또한 추상 구문 트리를 사용한
정적 분석 도구를 추가하여
생성된 커널이 실제로 존재하고
실제로 실행되고 있는지 확인했습니다.
보상 해킹이 없다는 것을
확인한 후에도
정확성과 PyTorch 베이스라인 대비
실제 속도 향상으로 점수를 매겼습니다.
이 모든 보호 장치가
갖춰지자 에이전트는
GPT-5보다 훨씬 나아졌습니다.
그리고 ML팀은 성능을
더욱 향상시키기 위해
정말 똑똑한 기법을 사용했습니다.
세 가지 다른 샘플을 실행하고
그 중에서 가장 좋은 것을 선택했습니다.
이를 통해 최고 수준을 72% 넘어설 수 있었습니다.
네, 다시 윌에게 넘겨드리겠습니다.
캐시, 감사합니다. 이제 우리는
이 자리에 계신 여러분 모두와
더 나아가서는 모든 분들이
Kathy가 방금 언급한 파트너들과 같이
Agent RFT로 성공하시기를 바랍니다. 성공을 위한
네 가지 핵심 원칙을 알려드리겠습니다. 첫째,
작업이 명확하게 정의되고
제약이 명확해야 합니다. 성공에 대한
명확하고 명료한 정의가 있어야 합니다.
작업에서 모든 주관적
요소를 제거해야 합니다.
취향이 작업을 제대로
평가하는 요소가 되어서는 안 됩니다. 둘째,
모델이 프로덕션에서
당황하지 않도록 해야 합니다.
훈련 및 평가 데이터셋이
프로덕션 트래픽과 일치해야 합니다.
앞서 언급한
도메인 시프트가 없어야 합니다.
스스로 도메인 시프트를 만들어서는 안 됩니다. 셋째,
이것이 정말 중요한 부분인데요,
탐색을 통해
모델이 실제로 주어진 데이터 포인트에서
더 많이 샘플링할수록 더 나은 성능을
달성하여 스스로 학습할 수
있도록 해야 합니다. 즉,
주어진 데이터셋에서 최대 성능을
보면, 모델에서 더 많이
샘플링할수록 성능이 향상되어야 합니다.
이로 인해 주어진
데이터 포인트에서 이러한 변동성을
볼 수 있어야 합니다. 모델이
스스로 학습하고, 좋은 롤아웃과
나쁜 롤아웃의 차이가 무엇인지
주어진 데이터 포인트에서 학습할 수 있어야 합니다.
마지막으로,
보상 함수가 해킹 가능하지
않도록 해야 합니다. 모든 코너 케이스와
엣지 케이스를
차단했기를 바랍니다. 또한 보상이
이진이 아닌 연속적이 되도록
작업을 구성했기를 바랍니다.
연속적인 보상은 실제로 모델이
최적 성능에 조금씩
더 가까워질 수 있게 합니다.
학생에게 부분 점수를
주는 것과 같습니다. 틀리거나
맞추었을 때 얼굴을 때리거나
쿠키를 주는 것이 아니라요.
Agent RFT를 시작하려면
친근한 어카운트 디렉터에게
연락하시기 바라며, 여러분이
저희와 함께 무엇을 구축할지
정말 기대됩니다. 감사합니다.
[박수]
[음악]
Heat.
[음악]