tar 명령어 옵션 검색하기 귀찮아서 1.5B 모델로 쉘 명령어 생성기 만듦. 노트북 CPU에서 1초 만에 돌아감.
Trained a 1.5B to write shell commands so I'd stop googling tar flags. Runs on a laptop CPU in ~1 sec.
핵심 요약
1.5B 파라미터 모델을 튜닝해 쉘 명령어 생성기를 개발, 노트북 CPU에서도 가볍게 구동 가능함.
- 모델 성능 — 1.5B 파라미터로 7B 모델 수준의 성능을 내며 노트북 CPU에서 1초 내외로 구동됨.
- 학습 데이터 — 125k개의 자연어-명령어 쌍을 활용해 Qwen2.5-Coder-1.5B를 LoRA 파인튜닝함.
- 안전성 우려 — 루트 권한 삭제 등 위험한 명령어를 생성할 수 있어 주의가 필요함.
- 오픈 소스 — 모델 가중치와 코드를 허깅페이스와 깃허브에 Apache-2.0 라이선스로 공개함.
지난 10년 동안 "tar extract gz"를 구글에 검색해대다가, 드디어 뭔가 해결책을 만들어냈다.
처음엔 그냥 연구 프로젝트로 시작했는데, 결국 125k개의 자연어/명령어 쌍으로 Qwen2.5-Coder-1.5B를 파인튜닝해서 Q4_K_M으로 병합하고 양자화까지 마쳤다. 용량은 941MB고 llama.cpp로 돌린다. 내 노트북(i5-11320H, 4 스레드)에서 31.9 tok/s 나오고, 쿼리당 중앙값 0.59초, RAM은 1.6GB 먹는다.
벤치마크 돌려보니까 InterCode-ALFA에서 0.620점 찍더라. 튜닝 안 한 Qwen2.5-Coder-7B가 0.613점, GPT-4o가 0.73점이니까, 최상급 모델은 아니어도 7B 모델 성능을 4분의 1 파라미터로 CPU에서 뽑아내는 셈이지. 더 높은 점수 나오는 3B 버전도 있다.
정적 안전 검사기도 몇 개 넣어뒀다. 안 그러면 시키는 대로 루트 디렉토리 싹 다 날려버리는 명령어를 아주 당당하게 뱉어낼 테니까.
가중치는 여기 올렸다: huggingface.co/ThorOdinson246/nl2sh-1.5b-Q4_K_M 그리고 코드는 여기: github.com/ThorOdinson246/whatisit-nl2sh . 며칠 전에 LocalLLM에 올렸는데 반응 좋아서 별 300개 넘게 박혔고 좋은 의견도 많이 들어왔길래, 여기 형들도 관심 있을 것 같아서 가져왔다.
둘 다 Apache-2.0 라이선스다. 방식에 허점 보이면 찔러주거나 아이디어 있으면 댓글 달아주고 PR도 날려줘라. 써보고 괜찮으면 ⭐ 하나씩 박아주면 고맙고.

