OpenCode가 Qwen 모델의 샘플러 값을 잘못된 값으로 덮어쓰고 있음
OpenCode overrides the samplers for Qwen models to the wrong values
핵심 요약
OpenCode가 Qwen 모델의 샘플러 설정을 임의로 변경해 성능을 저하시키는 문제에 대한 논의입니다.
- 샘플러 설정 오류 — OpenCode가 Qwen 모델의 top-p 값을 부적절하게 1.0으로 고정함
- 사용자 불편 가중 — 설정 변경에 대한 설명이 없고 UI상에서 제어할 방법이 부족함
- 우회 방법 공유 — 사용자들이 프록시나 설정 파일 수정을 통해 강제로 값을 고정하는 해결책을 제시함
- 오픈소스 관리 문제 — 대규모 프로젝트들의 잦은 변경으로 인해 안정성이 떨어지는 현상을 비판함
llama.cpp나 그 파생형에서는 이게 안 보이는데, ninfer는 고맙게도 요청마다 샘플러 설정을 로그로 남겨주고 모델에 맞는 설정을 자동으로 잡아줌. 결론부터 말하면 OpenCode는 올바른 설정값인 0.95(thinking)나 0.80(no-thinking) 대신 항상 top-p=1.0(이건 top-k를 제외하면 낮은 확률의 토큰을 전혀 필터링하지 않는다는 뜻임)을 보내버림.
이걸 추가한 커밋은 다른 버그 수정용이라는데, 정작 왜 바꿨는지에 대한 설명은 눈 씻고 찾아봐도 없음: https://github.com/anomalyco/opencode/commit/0b132c032aae15a99907a5979f471c3b5bb2e3dc
내가 보기엔 모델/제공자별로 일일이 수정하는 건 쉽지 않아 보임. 뭐 방법이 있긴 한데, 그렇게 하면 모든 모델이랑 제공자에 다 영향을 줘버리거든.
"agent": {
"build": {
"top_p": 0.95
}
}


