에이전트 RL: 올바른 Token-In, Token-Out 구현 방식
·2026.06.01 09:00
에이전트 RL 학습 시 디코딩된 토큰을 재인코딩하여 발생하는 토큰 불일치 문제를 방지해야 한다.
LLM을 에이전트로 학습시키기 위해 RL(강화학습) 루프에 도구 호출(tool call) 기능을 추가하면 학습 곡선이 불안정해지거나 오류가 발생할 수 있다. 이는 모델의 응답을 파싱하고 대화 내용을 다시 토큰화하는 과정에서 Token-In, Token-Out (TITO) 불변성이 깨지기 때문이다.
텍스트를 디코딩한 후 다시 인코딩하면 원래의 토큰 ID와 다른 결과가 나올 수 있다. 이 경우 **그래디언트(gradient)**가 모델이 실제로 샘플링하지 않은 시퀀스에 계산되어, 수학적으로 잘못된 신호가 전달되고 학습이 망가진다.
이를 해결하기 위한 두 가지 전략은 다음과 같다:
- 모델별 렌더러(Renderer) 사용: 각 모델 패밀리에 맞춰 메시지 포맷팅과 턴 간 연결을 처리하는 전용 인터페이스를 구축한다. 구현은 까다롭지만 정확하다.
- 재인코딩 방지 원칙: "디코딩한 토큰을 다시 인코딩하지 않는다"는 규칙을 따른다. 채팅 템플릿이 도구 메시지에 대해 접두사 보존(prefix-preserving) 속성을 갖도록 설계하면 복잡한 예외 상황을 피할 수 있다.
결국 RL의 핵심은 모델이 생성한 정확한 토큰에 대해서만 최적화를 수행하는 것이다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.