세컨더리로 전환하는 것이 더 빠릅니다
Source: Dev.to
소개
보조(작은) 모델로 전환하는 것이 매 단계마다 플래그십 모델을 사용하는 것보다 종종 더 빠릅니다. 마치 소총을 재장전하는 대신 빠른 사격을 위해 권총을 사용하는 것처럼, 보일러플레이트, 사양 초안, 초기 계획에는 작은 모델을 사용하고, 결과물을 큰 모델에 넘겨 검토하도록 할 수 있습니다.
작은 모델이 더 빠를 수 있는 이유
- 프리필 비용: 프리필은 보통 단일 포워드 패스이며(청크 처리나 시퀀스 병렬화 같은 고급 기법을 제외하고) 다음 토큰은 단순히
model.forward()입니다. - 속도 비교:
- 대형 모델 생성 속도: ~50 토큰 / 초.
- 소형 모델 생성 속도: ~200 토큰 / 초.
- 예시:
- 프롬프트: 16 k 토큰(Claude Code 세션에 일반적).
- 원하는 출력: 또 다른 16 k 토큰(툴 호출, 읽기, 편집 포함).
- 대형 모델: 16 k / 50 ≈ 320 초.
- 소형 모델: 16 k / 200 ≈ 80 초.
따라서 작은 모델은 동일한 작업을 ¼ 시간에 완료할 수 있습니다.
추측 디코딩 비유
현대 디코더는 작은 초안 모델을 사용해 여러 토큰을 제안하고, 큰 모델이 이를 병렬로 검증합니다. 첫 번째 패스에 보조 모델을 사용하는 것은 본질적으로 긴 컨텍스트(예: 16 k 토큰)에서 확장된 추측 디코딩이라고 볼 수 있습니다.
실용적인 워크플로우
-
계획
- 속도를 위해 작은 모델을 사용 또는 정밀도를 위해 큰 모델을 사용.
- 큰 모델은 더 정확하지만 계획 단계에서 더 많은 토큰을 소모합니다.
-
검토
- 계획을 큰 모델에 넘겨 문제점을 수정합니다.
-
코드 생성
- 작은 모델이 정제된 사양을 구현하도록 합니다.
-
다시 검토
- 작은 모델이 놓친 실수를 큰 모델이 잡아냅니다.
모델 선택
- 작은 모델: Qwen 3.6 35B MoE – 로컬에서 실행하기에 충분히 빠르고 합리적인 보일러플레이트를 생성합니다.
- 큰 모델: 주로 첫 번째 생성 단계가 아니라 리뷰어 역할을 합니다.
제한 사항
- 이 접근 방식은 새로운 코드베이스에 대해 광범위하게 테스트되지 않았습니다.
- 정말 새로운 문제에 대해서는 처음 코드를 직접 작성하고, 이후 반복 작업(예: 테스트 및 보일러플레이트 생성)을 작은 모델에 맡기는 것이 가장 좋습니다.
추가 읽을거리
이 게시물과 더 많은 내용은 제 블로그에서 확인할 수 있습니다.