Jev의 차이는 어디서 올까 — 헤드 교체와 RLCD

TL;DR

  • RLHF는 사람이 읽고 선호하는 응답을 학습한다.
  • 헤드 교체만으로 작업 완료를 위한 학습을 대신하기는 어렵다.
  • Jev의 프로덕션 성능에는 RLCD의 기여가 클 것이라 생각한다.

시작하며

Jev가 나오고 Kev, Jeff, Strands Decider, OpenAI Decisions처럼 분류나 점수 예측을 빠르게 붙여볼 수 있는 모델과 API들이 나왔다. 긴 답변을 생성하는 대신 정해진 선택지와 확률을 돌려주므로, 앱의 초기 버전에 AI 판단을 넣기 좋아 보였다.

일부 프로젝트가 공개한 벤치마크에서는 Jev와의 차이가 작아 보였다. 하지만 내가 써본 과제에서는 Jev 쪽이 꽤 더 잘된다는 느낌을 받았다.

오픈모델이 벤치마크에서 상용모델을 이겼다고 해도, 실제로는 조금만 어려운 일을 시키면 오동작하는 경우와 비슷하다.

벤치마크 점수가 비슷하더라도, 내가 써본 범위에서는 아직 Jev를 대체하기 어려워 보였다.

이 차이를 보면서 관심이 생긴 것이 결정과 그 확률을 학습하는 Jev의 RLCD다. Jev를 만든 TypeSafe는 사람이 선호하는 답변과 소프트웨어가 바로 사용할 판단에 서로 다른 학습 목표가 필요하다고 주장한다. 나는 이 문제의식에 동의하고, Jev의 특별한 점은 RLCD에 있을 것이라고 추측한다.

내가 생각하는 차이는 사람이 읽기에 좋은 응답을 만드는 것과, 소프트웨어가 작업을 완료하기에 좋은 판단을 내놓는 것 사이에 있다. 기존 모델의 출력을 바꾸는 부분인 헤드만 교체한다고 해서, 학습 목적까지 후자에 맞춰지는 것은 아니다.

그래서 작업 완료에 필요한 판단을 보상하는 강화학습이 필요하다고 생각한다. RLHF로 학습한 모델의 헤드만 바꾼 경우와 RLCD를 적용한 경우가 프로덕션에서 성능 차이를 보이는 것이 자연스럽다는 것이 내 주장이다.

다만 TypeSafe는 새 모델 구조와 병렬 출력 방식, RLCD를 함께 소개한다. 공개 자료에서 RLCD만의 기여를 분리한 비교 실험을 찾지는 못했다. 이 학습 목적의 차이가 Jev의 실사용 차이를 만든다는 것이 내 가설이다.1

1. 벤치마크 점수와 실제 작업의 차이

결정 모델을 바꾸면 같은 질문을 이해하는 방식부터 달라질 수 있다. AI 평가 도구를 만드는 Arize가 공개한 비교에 이런 사례가 있다.2

이 실험은 답변의 내용이 주어진 자료로 뒷받침되는지 판단하게 한다. 같은 테스트 사례 1,338개에 대해 “모든 주장이 근거를 갖고 있는가?”와 “근거 없는 주장이 포함되어 있는가?”를 각각 물었다. 질문의 긍정과 부정이 반대이므로 기대하는 답의 방향도 뒤집혀야 한다.

모델 모든 주장에 근거가 있는가? 근거 없는 주장이 있는가?
Jev 1.13 0.93 0.93
OpenAI Decisions 0.90 0.89
Kev 9B 0.85 0.54
Strands Decider 2B 0.75 0.26

표의 값은 정답률이 아니라 ROC AUC다. 여기서는 근거 있는 답변과 근거 없는 답변을 모델의 점수로 얼마나 잘 구별하는지 나타내며, 1에 가까울수록 좋고 0.5면 무작위 수준이다. 모델명에 붙은 B는 매개변수 수를 10억 단위로 표시한 것이다.

Jev와 OpenAI Decisions는 두 표현에서 비슷한 결과를 냈지만, Kev와 Strands Decider는 크게 달라졌다.

이 판단을 코드에서 근거 없는 답변을 걸러내는 데 사용한다면, 질문을 반대로 이해하는 오류는 잘못된 답변을 그대로 통과시키는 동작으로 이어진다. 정해진 선택지와 확률을 반환하더라도, 그 값을 사용한 작업은 실패할 수 있다.

이 표가 RLHF 때문에 오류가 생겼거나 RLCD 덕분에 줄었다는 것을 입증하지는 않는다. 다만 비슷한 API와 벤치마크 점수가 실제 작업에서도 같은 동작을 보장하지는 않는다는 사례로 참고할 수 있다.

학습 방식의 효과를 확인하려면 같은 기반 모델과 작업 조건에서 헤드만 교체한 경우와 작업에 필요한 판단을 위한 RL을 적용한 경우를 비교해야 한다. 학습 데이터와 갱신하는 가중치의 범위가 결과에 미친 영향도 나눠 살펴야 한다.

그때 개별 질문의 정답률과 예측 확률이 얼마나 맞는지뿐 아니라, 그 출력을 사용하는 소프트웨어가 실제로 작업을 끝냈는지도 봐야 한다. 필요한 정보를 확인하고, 조건에 맞는 처리를 실행하고, 완료한 뒤 중단하는 동작까지 평가에 포함되어야 한다.

2. RLCD는 무엇을 다르게 학습하려는가

2.1. 사람이 읽는 응답과 소프트웨어가 사용하는 판단

강화학습(RL, Reinforcement Learning)은 모델이 정해진 보상을 더 많이 얻는 행동을 하도록 학습하는 방법이다. 보상이 무엇을 평가하느냐에 따라 잘하게 되는 일도 달라진다.

사람의 피드백을 이용하는 RLHF(Reinforcement Learning from Human Feedback)에서는 여러 답변 중 사람이 더 선호한 답변을 학습 신호로 사용한다. 지시를 따르도록 학습한 InstructGPT는 사람이 작성한 시범 답변으로 먼저 학습하고, 이후 답변의 선호 순위로 보상 모델을 만들어 강화학습에 사용했다.3

이런 학습은 사람이 읽고 도움이 된다고 평가하는 응답을 만드는 데 유용하다. 여기서 읽기 좋다는 것은 말투만을 뜻하지 않는다. 설명이 이해하기 쉽고, 요청에 잘 답한 것처럼 보이며, 사람이 이어서 판단하고 행동하기 좋은 응답까지 포함한다.

소프트웨어가 그 출력을 받아 작업을 이어갈 때는 성공 조건이 달라진다. 어떤 처리를 실행할지, 필요한 정보가 부족하면 무엇을 더 확인할지, 언제 작업을 끝내도 되는지를 결정해야 한다. 그 판단이 잘못되면 이후 코드가 정확히 실행되어도 원하는 결과를 얻지 못한다.

TypeSafe도 사람이 선호하는 응답과 사람이 지켜보지 않는 자동화에 필요한 신뢰성을 다른 학습 목표로 설명한다. 사람이 읽고 선호했다는 평가가 그 출력으로 실제 작업을 완료할 수 있다는 평가를 대신하지는 않는다는 문제의식이다.4

2.2. 공식 문서로 간단히 정리한 RLCD

TypeSafe의 공식 설명에서 RLCD는 Reinforcement Learning for Calibrated Decisions, 즉 결정과 보정된 확률을 학습하기 위한 강화학습이다. 자유로운 문장을 생성하는 대신, 정해진 선택지에 대한 판단과 그 확률을 소프트웨어가 바로 사용할 수 있게 만드는 것이 목표다.41

예를 들어 고객 문의가 환불 요청일 확률을 예측한다고 하자. 모델이 약 80%라고 답한 문의를 충분히 모았을 때, 실제로도 약 80%가 환불 요청이면 그 구간의 확률이 잘 보정되어 있다고 할 수 있다. 이것이 calibration, 즉 확률 보정이다.

이때 80%는 그 문의 하나의 정답을 보장하지 않는다. 모든 문의에 같은 확률을 반환해 전체 비율만 맞춰도 분류에는 도움이 되지 않는다. 어떤 문의인지 구별하는 능력과 불확실성을 정확하게 표현하는 능력이 함께 필요하다.

확률을 믿고 쓸 수 있다면 코드에서 확실한 문의는 바로 분류하고, 애매한 문의는 추가 정보를 찾거나 더 큰 모델로 넘길 수 있다. Jev API의 선택·점수형 질문에서 반환하는 confidence는 확률 분포를 요약한 값이므로, 개별 선택지의 확률과 구분해서 읽어야 한다.5

공개 자료에서 확인할 수 있는 것은 이런 학습 목표다. 확인한 공식 문서와 출시 글에는 Jev의 학습 데이터나 구체적인 보상 계산식을 재현할 만큼의 설명은 없다. 전체 업무의 완료 결과를 직접 보상으로 쓰는지도 알 수 없으므로, RLCD를 특정 손실 함수나 공개된 학습 코드와 동일한 것으로 설명하기는 어렵다.

내가 RLCD에서 주목하는 것은 소프트웨어가 작업을 이어가는 데 필요한 결정과 불확실성을 학습 목표로 삼았다는 점이다. 앞의 환불 문의도 어느 담당자에게 보낼지와 추가 확인이 필요한지를 정해야 실제 처리가 진행된다. 나는 RLCD를 이런 작업 완료를 위한 판단에 모델을 맞추는 접근으로 이해한다.

3. 헤드 교체와 작업 완료를 위한 학습의 차이

헤드는 모델 내부에서 계산한 정보를 최종 출력으로 바꾸는 부분이다. 다음 단어를 예측하는 헤드를 선택지별 점수를 내는 헤드로 바꾸면, 긴 문장 대신 선택지와 확률을 반환하게 만들 수 있다.

하지만 기반 모델을 고정하고 헤드만 학습한다면, 기반 모델이 입력에서 어떤 정보를 읽고 표현하는지는 그대로 남는다. 새 헤드가 그 정보를 다르게 활용할 수는 있어도, 작업을 완료하는 데 필요한 판단을 충분히 학습했는지는 별개의 문제다.

앞의 문의 분류를 환불 자동화에 연결한다고 하자. 환불 문의라는 사실을 알아낸 뒤에도 주문을 조회할지, 추가 정보를 요청할지, 환불을 실행할지 결정해야 한다. 주문 정보가 부족한데 환불 실행을 고르면, 출력 형식이 정확해도 작업은 잘못 진행된다.

이때 필요한 것은 주어진 상태에서 어떤 결정을 내려야 작업이 제대로 끝나는지를 배우는 것이다. 사람이 읽기에 그럴듯한 응답을 보상받도록 학습했다는 사실만으로, 이런 처리 단계의 판단과 불확실성까지 충분히 학습했다고 기대하기는 어렵다.

나는 이 학습 목적의 차이를 해소하지 않은 채 헤드만 교체하면, 프로덕션에서 요구하는 동작과 어긋나는 사례가 많이 생길 것이라고 생각한다. 그래서 작업 완료에 도움이 되는 판단을 보상하는 RL이 필요하고, 그 방향으로 학습하는 RLCD에 Jev의 차별점이 있을 것이라고 추측한다.

실제 제품을 비교할 때는 무엇을 추가로 학습했는지도 구분해야 한다. 공개 구현을 읽어보면 Kev, Jeff, Strands Decider를 모두 “RLHF 모델의 헤드만 바꾼 것”으로 묶을 수 없다.

프로젝트 공개 문서에서 확인한 차이
Kev 0.8B·4B·9B는 Qwen 사전학습 모델에서 출발해 작은 추가 가중치인 어댑터와 헤드를 학습한다. 27B는 후속 학습을 거친 모델의 전체 가중치를 미세조정한다.6
Jeff (firelex/jeff) 기반 모델의 전체 가중치를 미세조정하고, 학습 후 확률도 보정한다.7
Strands Decider Qwen 사전학습 모델의 출력 헤드를 바꾸고, 기반 모델에도 작은 추가 가중치를 학습하는 LoRA를 적용한다.8

이 구현들은 출발 모델과 추가 학습 범위가 서로 다르다. 따라서 앞의 벤치마크를 RLHF 모델의 단순 헤드 교체와 RLCD의 통제된 비교로 읽어서는 안 된다.


  1. TypeSafe, Introducing System One Models & Jev. 모델 구조·병렬 출력 방식·RLCD를 함께 소개한다. ↩ ↩2

  2. Arize, Decision model benchmark. 질문 반전 실험의 공개 결과 중 네 모델을 인용했다. 이 글을 위해 실험을 재실행한 것은 아니다. ↩

  3. Long Ouyang 외, Training language models to follow instructions with human feedback. InstructGPT의 시범 답변 학습과 사람의 선호를 이용한 강화학습을 설명한다. ↩

  4. TypeSafe, AI primer. RLHF에 대한 문제의식과 RLCD의 학습 목표, 확률 보정의 의미를 설명한다. ↩ ↩2

  5. TypeSafe, Confidence. 선택지의 확률과 분포에서 계산하는 confidence의 차이를 설명한다. ↩

  6. jaredpalmer/kev, Models 및 학습 설명. ↩

  7. firelex/jeff, Train your own. 이 글의 Jeff는 해당 저장소를 가리킨다. ↩

  8. Strands Decider, Architecture. ↩

  • #ai
  • #jev
  • #decision-model
  • #reinforcement-learning
  • #rlcd
  • #evaluation