Qwen3.5-0.8B를 파인튜닝해서 자연어를 Bash 명령어로 변환해봤음. 배운 점들
I fine-tuned Qwen3.5-0.8B to turn plain English into bash. What I learnt
핵심 요약
자연어를 Bash 명령어로 변환하는 오프라인 터미널 도구 'dale'을 개발하며 겪은 파인튜닝 경험과 데이터 품질의 중요성을 공유함.
- 모델 성능 향상 — 데이터셋의 복잡도를 테스트 환경에 맞춰 조정하여 0.8B 모델의 정확도를 개선함
- 오프라인 도구 — llama.cpp 기반의 51MB 단일 바이너리로 파이썬 없이 터미널에서 즉시 실행 가능
- 데이터의 중요성 — 더 복잡한 기법보다 훈련 데이터의 구성과 품질이 모델 성능 정체 해결에 더 효과적임
- 오픈 소스 공개 — MIT 라이선스 코드와 Apache-2.0 모델 가중치를 허깅페이스에 공개함
.buffering-track-fill { stroke-dasharray: 100; stroke-dashoffset: 50; }
Running the app
I wanted a terminal helper that works fully offline, so I started building dale. You type dale "show the 5 largest files in this folder", a small fine-tuned model writes the command, and a deterministic risk checker labels it safe, caution or danger before anything runs. Nothing runs without you confirming it.
Scores on 471 held-out requests in English and Spanish, every model in Q4_K_M on the same llama.cpp:
| Model | GGUF | Correct | Accuracy | 95% CI |
|---|---|---|---|---|
| dale-9b (GPU) | 5.6 GB | 420 | 89.2% | 86.0–91.7 |
| dale-4b (GPU) | 2.7 GB | 410 | 87.0% | 83.7–89.8 |
| dale-2b | 1.3 GB | 385 | 81.7% | 78.0–85.0 |
| dale-0.8b (CPU) | 529 MB | 374 | 79.4% | 75.5–82.8 |
| Qwen3.5-9B, stock | 5.7 GB | 296 | 62.8% | 58.4–67.1 |
| Gemma 4 E4B-it, stock | 5.0 GB | 296 | 62.8% | 58.4–67.1 |
| Qwen3.5-4B, stock | 2.7 GB | 257 | 54.6% | 50.0–59.0 |
| Gemma 4 E2B-it, stock | 3.1 GB | 254 | 53.9% |




