샤오미, MiMo 반복 호출 9만 달러에 수정

샤오미 MiMo 팀은 9월 27일 기술 블로그를 통해, MiMo-V2.6 출시 이후 개발자들이 계속 지적해 온 문제 하나를 복기했다. 코딩 에이전트 안에서 모델이 동일하거나 거의 동일한 툴 호출을 계속 반복해서 발생시키며 컨텍스트와 연산 자원을 소모하는데도 작업은 전혀 진전되지 않는 문제였다. 수정된 가중치는 이미 오픈소스로 공개됐으며 파일명에는 MOPD라는 접미사가 붙는다. API 플랫폼은 9월 25일 오전 6시(베이징 시간)부터 이미 새 버전으로 전환됐고, MiMo Desktop 사용자에게는 보상 차원에서 해당 기간 남은 할당량이 일괄 초기화됐다.

'호출이 많다'와 '호출이 반복된다'를 구분하다

블로그는 호출이 많다고 해서 무조건 결함으로 취급하지 않는다. 샤오미는 이를 세 가지로 구분한다. 병렬 호출은 여러 호출이 각각 다른 정보를 조회하는 정상적인 최적화이고, 호출 남발은 호출 수가 작업에 필요한 수준을 단순히 초과한 경우이며, 호출 반복은 환경 상태도 이미 알고 있는 정보도 바뀌지 않았는데 모델이 같은 동작을 계속 반복하는 경우다. 팀이 손보려 한 것은 이 세 번째 유형이다.

샤오미의 내부 평가에 따르면 응답 단위 반복률은 허용 기준선인 0.05%를 크게 넘어섰고, 환경별 편차도 상당했다.

환경FlashPro
OpenCode1.02%0.54%
Claude Code0.27%0.10%
MiMo Desktop0.19%0.19%
MiMo Code0.11%0.07%

OpenCode의 Flash 모델 수치가 가장 나빴는데, 대략 응답 100번 중 1번이 제자리를 맴돌았다는 의미다.

근본 원인은 강화학습 단계에 있었다

팀이 강화학습 각 체크포인트를 다시 살펴본 결과, 한 턴에서 열 번 넘게 호출한 샘플의 비중이 0스텝의 11.1%에서 20스텝의 24.6%까지 꾸준히 올라갔다. MiMo Code 환경에서는 더 심해서 30.6%에서 41.7%까지 치솟았다. 학습 과정에는 원래 페널티가 있었지만, 한 턴에서 32회를 넘길 때만 감점하는 방식이었다. 15스텝부터는 이 페널티가 발동하는 샘플이 눈에 띄게 늘었는데, 이는 32라는 임계값이 지나치게 느슨해서 모델이 '몇 번 더 호출해도 손해 볼 것 없다'는 습관을 들이는 것을 막지 못했다는 뜻이다.

블로그는 인상적인 수치 하나를 제시한다. 수정 전, 모델이 12번째 툴 호출 시점에서 계속 호출하기를 선택할 확률은 94.56%였고, 멈추기를 선택할 확률은 5.43%에 불과했다. 대략적으로 말하면 모델이 스스로 멈추는 일이 거의 없었다는 뜻이다.

두 가지 해법, 비용은 자릿수가 달랐다

가장 직접적인 방법은 페널티 임계값을 32회에서 8회로 낮추고 기존 MixRL 파이프라인으로 다시 학습시키는 것이었다. 내부 테스트에서는 반복률이 13.45%에서 3.83%로 떨어졌지만, 학습을 20스텝 되돌려 재학습해야 했고 샤오미가 추산한 비용은 약 231만 달러였다. 게다가 데이터셋이 바뀌면 효과가 불안정하다는 문제도 있었다.

최종적으로 채택된 방식은 MOPD, 즉 다중 교사 온라인 증류다. 내부에서 수집한 반복 샘플만 가지고 '언제 멈춰야 하는지'만 학습하는 별도의 강화학습 교사 모델을 만드는 방식으로, 학습은 단 12스텝, 사용한 샘플은 약 7000개에 그쳤다. 이후 본 모델을 5스텝 되돌린 뒤 이 교사 모델의 지도를 받아 학습을 이어갔다. 전체 비용은 약 9만 달러로, 앞선 방식의 4% 수준이었다.

효과 면에서는 12번째 호출 시점의 정지 확률이 5.43%에서 92.17%로 올라갔다. 블로그가 제시한 누적 정지 확률 곡선에 따르면, 수정 전에는 59번째 호출에 이르러야 정지 확률이 50%를 넘겼지만, 수정 후에는 8번째 호출 시점에 이미 99.87%에 도달했다. 샤오미는 모든 플랫폼에서 반복률이 큰 폭으로 낮아졌고, 컨텍스트 길이가 달라져도 효과가 일관되게 유지됐으며, 전체 벤치마크 점수도 떨어지지 않았다고 밝혔다.

V2.6이라는 흐름 속에 다시 놓고 보면

MiMo-V2.6은 9월 22일 출시 및 오픈소스로 공개됐다. 당시 샤오미가 가장 강조한 것은 사후학습 규모였다. 언론에 보도된 수치에 따르면 Pro와 Flash는 각각 강화학습을 30스텝씩 진행했고, 합산 비용은 약 350만 달러에 달했다. 그로부터 닷새 뒤에 나온 이번 복기 글은 그 학습 과정이 남긴 부작용을 공개적으로 펼쳐 보인 셈이며, '자칫 231만 달러를 더 썼을 수도 있었다'는 대목까지 명시했다.

중국 내 모델 개발팀이 출시 이후의 사고를 스스로 공개적으로 복기하는 사례는 많지 않고, 채택하지 않은 방안의 비용까지 함께 나열하는 경우는 더욱 드물다. OpenCode나 Claude Code에서 중국산 모델을 쓰는 개발자 입장에서 더 실질적인 부분은, 최근 며칠 사이 MiMo가 같은 파일을 계속 다시 읽거나 같은 명령을 반복 실행하는 모습을 봤다면 API는 이미 수정된 버전으로 서비스되고 있으며, 직접 호스팅하는 사용자는 MOPD 접미사가 붙은 가중치로 바꿔야 한다는 점이다. 여기 인용된 반복률 수치는 모두 샤오미 자체 내부 평가 기준이며, 제3자의 재검증 결과는 아직 공개되지 않았다.

참고 출처: 샤오미 MiMo 팀 기술 블로그, CocoLoop; 환경별 반복률·남발률과 두 수정안의 비용 추산은 모두 샤오미의 내부 평가 기준입니다.