Ternary-Bonsai-2-27B-PQ2_0은 완전히 멍청해진 건 아님
Ternary-Bonsai-2-27B-PQ2_0 is not completely lobotomized
핵심 요약
27B 모델인 Ternary-Bonsai-2-27B-PQ2_0의 성능을 다양한 벤치마크로 검증한 결과, VRAM이 제한적인 환경에서 고려해 볼 만한 성능을 보여줌.
- 벤치마크 검증 — 다양한 테스트를 통해 Ternary-Bonsai 모델의 성능과 한계를 분석함.
- 성능 비교 — Qwen 기반 모델들과 비교했을 때 VRAM 효율성 면에서 경쟁력을 보임.
- 테스트 방법론 — 기존 Needle 테스트의 한계를 보완한 'Hard Passkey' 등 독자적인 방식을 도입함.
- 사용 권장 — 12GB 이하의 VRAM 환경에서 유용한 대안이 될 수 있음.
prism-ml/Ternary-Bonsai-2-27B-PQ2_0 모델을 나만의 비과학적인 벤치마크로 돌려보기로 했다.
비교 대상이 필요해서 파일 크기가 비슷한 27B 모델인 unsloth/Qwen3.8-27B-UD-IQ2_XXS를 골랐다.
어차피 이 두 모델이 요구하는 VRAM 예산 안에서 27B 모델을 돌리려는 사람들은 결국 이 둘 중에서 고민하게 될 테니까.
이 두 모델만 넣으면 표가 너무 휑할 것 같아서 덩치 큰 놈들도 몇 개 더 끼워 넣었다. MoE랑 덴스 모델이 섞여 있는 건 알지만, 어차피 가지고 있는 벤치마크 데이터니까 그냥 다 때려 박았다. Qwen3.8 q3/q4 퀀트 모델들도 우리가 뭘 목표로 하는지 보여주는 지표가 될 거고, 3.6 A3B나 최신 Ornith 1.5, Tiel Coder도 같이 넣었다.
벤치마크랑 테스트 항목에 대해 설명하자면 이렇다.
대부분은 컨텍스트 기억력, 정보 검색, 문구 재구성, 그리고 문맥 이해도를 여러 방식으로 테스트하는 것들이다.
Standard Needle: 이건 다들 돌리는 니들 테스트고, 보통 90% 이상은 나온다. 컨텍스트 21군데에 패스키를 숨겨놓고 모델한테 찾으라고 시키는 건데, 100% 미만이면 솔직히 좀 문제 있는 거다.
Hard Passkey Needle with decoys: 기존 니들 테스트는 요즘 모델들이 하도 100%를 잘 찍어서 변별력이 없길래 내가 직접 '하드 모드'를 만들었다. 이건 컨텍스트에 패스키 21개를 숨겨놓긴 하는데, 가짜 패스키(decoy)를 엄청나게 섞어놨다. 컨텍스트 끝부분에 확정된 패스키(GUID) 목록을 적어두긴 하지만, 그게 몇 번 패스키인지는 안 알려준다. 예를 들어 Passkey[01]을 찾으라고 하면, 컨텍스트에 널린 Passkey[01] 가짜들을 다 뒤져서 진짜랑 대조해야 한다. 즉, 패스키 하나 찾으려고 컨텍스트를 몇 번씩 왔다 갔다 해야 한다는 소리다. 모델이 여기서 죽을 쑤면 KV 캐시를 F16으로 올려도 답이 없다.
Phrase reconstruction: 이건 레딧에서 주워온 건데 아직도 몇몇 모델들은 여기서 헤맨다. 문구를 여러 조각(내 테스트에선 8조각)으로 쪼개놓고 다시 원래대로 합치라고 시키는 건데, 문맥상 말이 되면 단어 하나쯤 빼먹는 경우도 있다.
500 Multiple Choice Science Questions: 말 그대로다. 과학 지식 테스트인데 A-D 4지 선다형으로 정답을 고르게 한다. 이 테스트는 다른 퀀트 모델이랑 비교했을 때 퀀타이제이션 과정에서 지식이 얼마나 날아갔는지 확인하기 딱 좋다. 원래는 KV 퀀트 두 개 사이에서 정답이 얼마나 바뀌는지 보려고 만든 건데, 여기선 그렇게 안 썼다. 유튜버한테 받은 테스트라 답이 이미 공개되어 있고 학습 데이터에 포함됐을 수도 있지만, 어쨌든 퀀타이제이션 과정에서 모델 지능이 얼마나 깎였는지는 충분히 볼 수 있다.
Prose Challenge: 모델이 문서나 산문을 얼마나 이해하는지, 그리고 긴 대화 속에서 사실 관계를 얼마나 잘 기억하는지 테스트하고 싶었다. 그래서 1000문단짜리 산문을 만들었다. 각 문단마다 질문도 2개씩 준비했다. 일단 산문에서 문단 하나를 던져주고, 그 문단에 관한 질문 1번을 물어본다. 그다음 문단이랑 질문 1번을 계속 던져서 컨텍스트를 거의 꽉 채운다. 아래 테스트에서는 250문단까지 넣었다. 그러고 나서 질문 2번들을 무작위 순서로 싹 다 물어본다. 모델이 진짜로 얼마나 기억할까? Q1 점수가 100% 미만이면 좀 심각한 거다. 방금 읽은 문장도 제대로 기억 못 한다는 뜻이니까. Q2 점수는 들쭉날쭉한데 높을수록 좋다. 근데 컨텍스트를 늘릴수록 모델 성능은 오히려 떨어진다. 그래서 무작정 컨텍스트만 늘리는 건 의미 없다는 결론을 내렸다. 어차피 다 까먹을 거면 차라리 작은 컨텍스트에서 요약본을 쓰는 게 훨씬 낫다. 이 테스트로 여러 KV 퀀트도 돌려봤는데, 조금 나아지긴 해도 생각만큼 드라마틱하진 않다. 뭐, 오늘은 그게 메인 테스트는 아니지만.
JS 코딩: 내가 최근에 만든 테스트야. 각각 여러 개의 테스트 케이스를 통과해야 하는 자바스크립트 챌린지 100개로 구성했어. 아직 개발 중이라 시간이 좀 걸려서 모든 모델을 다 돌려보진 못했어. 난이도는 쉬운 것부터 아주 어려운 것까지 섞여 있어. 테스트 케이스 하나라도 틀리면 전체가 실패 처리돼. 테스트는 추론(reasoning) 기능을 끄고 진행했어. 다만 실패할 경우 최대 16,384 토큰의 추론 예산을 써서 재시도할 수 있게 했고, 그 뒤엔 다시 답을 내야 해. 요즘 모델들이 추론을 써야 성능이 잘 나온다는 건 알지만, 테스트 속도를 높이려고 일단 추론 없이 통과할 수 있는지부터 보는 거야. 생각 토큰 사용량, 답변 토큰, 추론이 필요했던 횟수 같은 것도 다 기록하고 있는데, 여기선 따로 보여주진 않을게.



