Coinbase의 9B 사기 모델이 Opus 4.5를 능가하다: 검증 가능한 보상(Reward), 계층별 출력(Tier-Only Output)
요약
Coinbase가 자체 사기 데이터로 오픈 웨이트 Qwen3.5-9B 모델을 후처리하여, Coinbase의 독자적인 사기 벤치마크에서 Claude Opus 4.5를 능가하는 성과를 보였습니다. 이 에이전트는 기존 ML/규칙 엔진 하류 단계에서 선별된 트랜잭션만 검토하며, 위험 수준(RISK_LEVEL)을 계층적으로 출력합니다. 이는 모델의 전문화와 시스템 통합의 중요성을 강조합니다.
핵심 포인트
- Coinbase가 자체 사기 데이터로 9B 오픈 웨이트 모델을 후처리했습니다.
- 이 에이전트는 기존 ML/규칙 엔진 하류 단계에서만 작동하여 효율적입니다.
- 모델은 위험 수준(RISK_LEVEL)을 계층적으로 출력하며, 설명 없이 결과를 반환합니다.
- 애플리케이션 코드가 컨텍스트 구축 및 의사결정 정책을 담당하는 것이 중요합니다.
컴파일된 속성 + 합성 데이터에 대한 작은 오프라인 실행
주요 출처 (Coinbase Engineering, "Owning Intelligence" 시리즈): Yao Ma, Bo Lei, Xuwei Tan이 작성한 Part 1/3 — Build (2026-10-06), Yao Ma, Xuwei Tan이 작성한 Part 2/3 — Evaluate (2026-10-07), 그리고 Anyscale 팀(Eric Tang, Sumanth Hegde, Seiji Eicher, Jess Kong)과 함께 Yao Ma, Xuwei Tan, Akshit Trehan, Aman Choudhary가 작성한 Part 3/3 — Own (2026-10-08)
기타: X의 Brian Armstrong의 글(https://x.com/brian_armstrong/status/2109412046244913643) (2026-10-11); Dealroom의 보도(https://dealroom.co/news/161689-coinbase-post-trains-an-open-weight-9b-model-that-beats-opus-4-5-at-frau/), Crypto Briefing (Diego Almada Lopez), CoinCentral 및 HDATF AX case 137
Coinbase 시스템에 대한 모든 벤치마크, 지연 시간(latency), 비용 수치는 Coinbase가 측정했으며, 그들의 사설 데이터를 사용했습니다. 저는 아무것도 훈련하지 않았습니다. 아래 실행은 합성되고 시드된 거래 세트에 대한 작은 평가 하네스입니다.
이번 주 X에서 화제가 된 헤드라인: Coinbase가 자체 Onramp 사기 데이터로 오픈 웨이트 Qwen3.5-9B를 후처리(post-trained)했으며, 이 모델이 Coinbase의 사기 벤치마크에서 Claude Opus 4.5를 능가했다는 내용입니다. Brian Armstrong은 전문화된 모델들이
- 교체되지 않고 계층화됨. Onramp는 Risk Service로 트랜잭션을 전송합니다. 기존 ML 모델과 규칙 엔진이 먼저 이를 검토합니다. LLM 에이전트는 그 _하류(downstream)_에서만 접근하여, 최근 트랜잭션 기록에 작성된 검토 가이드라인 및 보정 예시를 사용하여 선별된 트랜잭션만을 검토합니다.
- 계층별 출력. 모델은 설명 없이 위험 수준(예:
RISK_LEVEL: 5)을 반환합니다. 약 7,000 토큰 프롬프트를 사용했을 때 Opus는 P50이 약 1.5초였습니다. - 하네스(Harness)가 결정. 애플리케이션 코드가 컨텍스트를 구축하고, 티어(tier)를 파싱하며, 의사결정 정책을 적용합니다. 모델은 결제 행동을 절대 실행하지 않습니다.
- 블록 전용 권한. 에이전트는 상류에서 허용된 것을 블록할 수 있습니다. 하지만 상류의 블록을 무효화할 수는 없습니다.
트래픽 50% A/B 테스트 결과, 에이전트가 활성화된 그룹은 사기성 트랜잭션이 30% 적었고 사기 금액도 22% 적었습니다. Coinbase는 사기 절감액을 추정했을 때 추론 비용의 약 3배에 달한다고 밝혔습니다.
Part 2에서는 고정된 벤치마크를 구축했습니다: 에이전트가 배포되기 _9주 전_의 7,293명의 사용자로부터 나온 16,140개의 트랜잭션 중 813건의 확인된 사기 사례입니다. 따라서 에이전트 자체의 블록이 관찰되는 결과에 편향을 줄 수 없습니다. 최신 Opus, Sonnet 및 GPT 버전은 이전 버전에 비해 재현율(recall), F1 점수, 달러 가중치 재현율에서 각각 낮은 점수를 기록했습니다. GPT-5.6 (sol)은 정밀도(precision)가 11.5포인트 증가했지만, 재현율과 달러 가중치 재현율은 각각 20.7포인트와 21.8포인트 감소했습니다.
Part 3는 사후 학습 과정입니다: SkyRL (Anyscale에서 실행)에 GRPO 및 LoRA를 적용한 RLVR을 RTX PRO 6000 96GB 단일 장비로 100달러 미만에 구동했습니다. 단일 패스 의사결정 에이전트로서 Opus 4.5와 비교했을 때: 정밀도 +7.5, 재현율 +12.0, F1 +9.6, 달러 가중치 재현율 +35.4를 기록했습니다. 그림 설명에는 이 수치들이 퍼센트 포인트 차이임을 명시하고 있습니다. 서비스는 L40S GPU(2~8개 복제본)에서 Ray Serve LLM + vLLM을 사용합니다. P50은 0.683초 대 1.515초, P99는 1.036초 대 3.312초였습니다. Coinbase는 지연 시간과 탐지율이 별도의 평가에서 측정되었다고 언급했습니다. 또한, 적응되지 않은 Qwen 기본 모델은
여기서 보상이 '검증 가능'한 이유
대부분의 RL-for-LLM 설정은 답변이 좋은지 판단해 줄 심사 모델(judge model)을 필요로 합니다. 사기(Fraud)는 그렇지 않습니다. 과거 거래는 결국 결과가 나옵니다: 차지백(chargeback) 또는 확정된 사기, 혹은 아닐 수 있습니다. 따라서 보상은 단순히 **(모델 출력, 알려진 레이블)**의 결정론적 함수입니다. 얼마나 설득력 있게 들리는지에 따라 점수가 매겨지지 않습니다.
Part 3에서는 복사할 만한 두 가지 세부 사항을 추가합니다:
- 형식 검사(Format checks). 파싱 불가능한 출력은 감점됩니다.
- 클래스 균형(Class balance). 사기가 드물다면, '항상 낮은 위험'이라고 말하는 것이 정확해 보일 수 있습니다. 그들은 보상이 적절하게 분배되도록 사기 사례와 합법적 사례의 가중치를 조정하여, 일정한 답변으로는 보상을 쌓을 수 없게 만듭니다.
GRPO는 동일한 프롬프트에 대한 여러 답변 그룹을 샘플링하고 모델을 그룹 평균보다 높은 점수를 받은 쪽으로 밀어붙입니다. 따라서 값 네트워크(value network)나 심사관이 필요하지 않습니다.
F1 점수 대신 달러 가중치 재현율(dollar-weighted recall)인 이유
F1은 사건 건수를 계산합니다. 놓친 5,000달러 현금 인출 한 건은 놓친 12달러 카드 테스트 한 건과 동일하게 계산됩니다. 달러 가중치 재현율은 사기 가치의 몇 퍼센트를 포착했는지를 묻습니다. Part 2의 요점은 모델이 비교적 적은 거래를 놓쳐도 여전히 많은 금액을 놓칠 수 있다는 것입니다.
실행 과정: 패턴의 노트북 크기 버전
저는 fraud_tier_eval.py라는, 약 200줄 분량의 순수 Python 코드와 선택적인 소형 모델 리뷰어를 작성했습니다. 이 코드는 합성(synthetic) 데이터 세트(시드 18)에서 실행됩니다: 총 $68,484.50 상당의 레이블링된 사기 거래 47건을 포함한 600개 거래입니다. 저는 카드 테스트(많은 소액 구매), 현금 인출(대형 구매 한 건, 신규 카드, 새 지갑), 조용한 유형(중간 규모, 지역 불일치만)의 세 가지 사기 패턴으로 생성기를 작성했습니다. 제가 이 패턴들을 설계했기 때문에 결과는 메트릭이 어떻게 작동하는지를 보여줄 뿐입니다. 어떤 리뷰어가 좋은지는 보여주지 않습니다.
흐름은 패턴을 반영합니다. 상위 규칙(Upstream rules)이 먼저 차단합니다. 라우팅(Routing)은 검토를 위해 600개 중 579개를 선택합니다. 각 리뷰어는 RISK_LEVEL: 4와 같은 문자열만 반환합니다. 이 하네스(harness)는 엄격한 정규 표현식으로 이를 파싱하고, 티어(tier)가 4 이상일 경우 차단합니다.
def decide(upstream, reviewer_text):
if upstream == "BLOCK":
return "BLOCK", "upstream_block_kept" # reviewer can never release
...
The reward function은 GRPO 환경에서 호출될 부분입니다:
w_f, w_l = n / (2 * n_fraud), n / (2 * n_legit)
def reward(text, is_fraud):
tier = parse_tier(text)
...
출력 결과 (2026-10-14, 8-vCPU Xeon, Python 3.13, CPU only):
| Reviewer | P | R | F1 | $-recall | Legit $ blocked |
|---|---|---|---|---|---|
| upstream rules only | 1.000 | 0.319 | 0.484 | 0.598 | 0.00 |
| ... |
실험 결과:
- F1과 달러 가중치 리콜이 다른 결과를 보였습니다. velocity reviewer는 29개 중 24개의 카드 테스트를 포착했으며, upstream이 통과시킨 현금 인출(cash-out)은 전혀 없었습니다: $-recall 0.603 vs upstream 단독으로 0.598$. context reviewer는 12/12의 현금 인출을 포착했지만 ($-recall 0.979$), 합법적인 구매액 $49,411.22를 차단했습니다. 어느 하나의 지표만으로는 충분하지 않습니다. 정밀도(precision)와 차단된 합법적 달러 금액(legit-dollars-blocked)을 함께 추적해야 합니다.
- 일반적인 소형 모델은 아무것도 추가하지 못했습니다. LiquidAI의 d1-omni-600M은 각 거래에 대한 일반 영어 설명으로 프롬프트를 받은 결과, 18개의 블록을 추가했지만 모두 오탐(false positive)이었습니다. 이 모델의 리콜은 upstream과 동일한 0.319를 유지했습니다. 평균 검토 시간은 193.6ms였습니다. 이는 장난감 데이터셋에 대한 하나의 모델일 뿐이지만, 코인베이스가 언급했듯이 적응되지 않은 기본 모델(unadapted base)이 약했고 적응(adaptation)이 역할을 했다는 점과 일치합니다.
- 클래스 균형 보상(class-balanced reward)이 게으른 정책을 포착했습니다.
GRPO 스타일 그룹 데모
$4,733.38 현금 출금 건에 대해 RISK_LEVEL: 5와 RISK_LEVEL: 4는 +6.383점(장점 +0.935점)을 받고, RISK_LEVEL: 2는 −6.383점을 받았습니다. 올바른 등급과 설명이 추가된 경우 −1.0점을 받았으므로, 형식 계약 자체가 보상에 포함됩니다.
아직 완료되지 않은 부분: 파인튜닝(fine-tuning) 없음, GRPO 훈련 실행 없음, Qwen3.5-9B 사용 안 함, Coinbase 데이터 미사용, 어떤 최첨단 모델과의 지연 시간 비교도 없음. 이 세트는 매우 작고 합성적입니다. 파일은 runs/18-coinbase-specialist/에 있습니다 (fraud_tier_eval.py, run_output.txt).
언제 이것을 복사하지 말아야 하는가
- 신뢰할 수 있는 레이블 부재. RLVR(Reward Labeling Verification and Refinement)은 결과 레이블만큼만 좋습니다. 사기 확인이 느리거나, 노이즈가 많거나, 누락되면 보상은 추측에 불과해집니다. Coinbase조차도 레이블이 늦게 도착한다고 언급했습니다.
- 낮은 처리량(Low volume). Coinbase의 벤치마크만 해도 813건의 확인된 사기 사례가 있었습니다. 만약 수십 건을 가지고 있다면, 고정된 평가 세트와 함께 프롬프트를 사용한 최첨단 모델이 실행하고 추론하는 비용이 더 저렴합니다. 이것은 Coinbase 기준이 아니라 제가 사용하는 경험적 규칙입니다.
- 매주 정책 변경. 파트 1에서는 재훈련 없이 자연어 가이드라인을 변경할 수 있음을 지적했습니다. 내장된 가중치(Baked-in weights)는 그렇게 할 수 없습니다. 규칙이 재훈련하고 재평가하는 속도보다 빠르게 움직인다면, 정책은 프롬프트와 하네스에 유지해야 합니다.
- 수명 주기 책임자 부재. 파트 3의 자체 체크리스트는 도메인 결과, 버전 가중치, 프롬프트 및 정책을 함께 평가하고 테스트된 롤백(rollback)을 유지하는 것입니다. 만약 아무도 이들을 소유하지 않는다면, 결제 흐름에 놓이는 모델은 자체 호스팅하지 마십시오.
이번 주 제가 시작할 방법
- 어떤 모델이 결정에 관여하기 전 기간의 레이블링된 평가 세트를 동결합니다.
- 모델이 파싱 가능한 토큰 하나를 반환하도록 만듭니다. 정책을 코드에 넣습니다.
- 모든 후보군을 정밀도(precision), 재현율(recall), F1, 달러 가중치 재현율(dollar-weighted recall) 및 합법적 차단 금액(legit-dollars-blocked)으로 점수화합니다.
- 그 후에만 RL을 고려합니다. 필요한 보상 함수는 이미 평가 하네스에 있습니다.
YongBo Yu는 토론토의 AI 엔지니어로, LLM 워크플로우 및 에이전트 시스템을 구축하고 있습니다. 더 많은 정보는 yongbo-yu.vercel.app과 GitHub에서 확인할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기