4B 모델을 대형 모델과 경쟁할 수 있는 유용한 코딩 에이전트로 만들어 보려 합니다
I'm going to try to turn a 4B model into a genuinely useful coding agent that can compete with much larger models
핵심 요약
3D Coder 개발자가 4B 모델을 특화된 코딩 에이전트로 발전시키기 위한 실험을 제안하며 커뮤니티의 의견을 구하고 있습니다.
- 모델 특화 — 4B 모델을 범용이 아닌 특정 코딩 작업에 최적화하여 성능 극대화 시도
- 데이터 품질 — 토큰 수보다 데이터의 일관성과 품질이 소형 모델 학습에 결정적임을 강조
- 도구 추천 — 코딩 에이전트 구축을 위한 최적의 harness(Pi, OpenCode 등)에 대한 커뮤니티 의견 수렴
- 오픈 소스 — 모델 가중치, 데이터셋, 실험 결과를 모두 공개하여 협력적인 연구 지향
3D Coder랑 GLB 3D Coder를 내놓고 나서야 커뮤니티를 진작에 끌어들였어야 했다는 생각이 들더라. 너희 피드백이 두 번째 모델에 직접적인 영향을 줬고, 덕분에 추가 학습 횟수도 좀 줄일 수 있었을 텐데 말이야.
이번에는 시작하기 전에 커뮤니티랑 먼저 아이디어를 좀 나눠보려고 해.
왜 이게 가능하다고 보는지
3D Coder 학습을 처음 시작할 때, 원래 계획은 SFT(지도 미세 조정)로 기본 능력을 다지고, 그 뒤에 DPO나 GRPO를 써서 모델 성능이랑 안정성을 더 끌어올리는 거였어.
다른 분야에서 실험해 본 결과, 고품질 SFT만으로도 충분히 먹힐 거라는 확신은 있었지. 근데 DQN 나오기 전부터 강화학습을 파왔던 사람이라, 좋은 예시 데이터가 없을 때는 복잡하거나 새로운 능력을 뽑아내려면 결국 RL이 필요할 거라고 생각했거든.
근데 놀라웠던 건 SFT만으로도 어디까지 갈 수 있느냐였어.
첫 4B 모델이 학습 데이터셋에 있지도 않았던 복잡한 Three.js 씬이나 복셀 구조를 만들어내고, 64K 토큰이 넘는 결과물까지 뱉어내더라고.
솔직히 말해서, 원래 계획했던 사후 학습 단계들을 거치지 않고도 이 정도 수준의 안정성과 일반화 능력을 보여줄 줄은 꿈에도 몰랐어.
이걸 보고 작은 모델들이 배울 수 있는 능력의 한계에 대해 내 생각이 완전히 바뀌었지.
내 가설은 이거야. 더 큰 모델들이 이미 보여준 능력을 작은 모델로 옮겨오는 게, 강화학습으로 그 능력을 처음부터 다시 발견하게 만드는 것보다 훨씬 비용이 적게 들 거라는 거지.
큰 모델이 이미 어떤 능력을 습득했다면, 작은 모델에서 그 발견 과정을 처음부터 다 재현할 필요는 없을지도 몰라. 그냥 좁은 도메인 안에서 그 능력을 확실하게 재현하도록 가르치기만 하면 되는 거지.
그렇다고 SFT가 RL을 완전히 대체한다는 건 아냐. 하지만 우리가 고품질의 일관된 학습 데이터로 작은 모델이 얼마나 많은 걸 배울 수 있는지 여전히 과소평가하고 있는 것 같아.
데이터 품질은 진짜 중요해. 토큰 수만 늘린다고 학습이 잘 되는 게 아니거든. 내 실험에서도 데이터 품질이랑 일관성이 엄청난 차이를 만들었어. 내가 공개한 모델이랑 데이터셋은 누구나 확인하고 테스트해 볼 수 있으니까 직접 봐봐.
작은 모델한테 너무 많은 걸 바라는 거 아닐까?
우리가 작은 모델을 너무 비효율적으로 쓰고 있는 것 같아. 모든 도메인, 환경, 도구, 설정에서 다 잘 돌아가길 기대하니까 말이야.
차를 한번 생각해 봐. 99%는 포장도로만 달릴 텐데, 굳이 일상용 차가 험난한 오프로드까지 다 뛸 필요는 없잖아? 필요하면 그때 다른 차를 쓰면 되는 거지.
언어 모델도 똑같지 않을까?
4B 모델 하나를 모든 걸 다 잘하는 만능으로 만들려고 애쓰는 대신, 우리가 매일 쓰는 작업들을 기가 막히게 잘하게 만드는 데 집중하면 어떨까?
실험 계획
Qwen 3.5 4B 사전 학습 모델을 기반으로 특화된 에이전트 코딩 모델을 만들어 보려고 해.
