로컬 LLM을 활용한 Git 커밋 메시지 자동화
- •개발자가 기존 클라우드 기반 도구를 대체하기 위해 Ollama와 qwen2.5-coder:1.5b 모델을 로컬 환경에 도입했다.
- •모델 최적화를 위해 컨텍스트 윈도우를 8192 토큰으로 확장하고 양자화 기법을 적용하여 메모리 제한 문제를 해결했다.
- •커스텀 Modelfile과 쉘 함수를 구현하여 Conventional Commits 형식을 준수하고 일관된 출력 결과를 확보했다.
한 개발자가 클라우드 기반 도구의 세션 제한 오류를 해결하고자 로컬 LLM을 기반으로 한 Git 커밋 메시지 자동화 시스템을 구축했다. 이번 시스템은 오픈소스 모델을 로컬에서 실행하는 인프라 도구인 Ollama를 활용하며, 특히 qwen2.5-coder:1.5b 모델을 채택했다. 이 모델은 8GB RAM 환경에서 약 1.2GB의 메모리만을 점유하도록 설계되어 효율적이다. 무엇보다 모델 가중치를 기존 16~32비트 부동소수점 대신 4비트 또는 8비트 정수로 저장하는 양자화 기법을 적용해 메모리 효율을 극대화했다.
초기 설정 시 Ollama는 기본값으로 4096 토큰의 컨텍스트 윈도우를 사용해 파일 차이(diff)를 전체적으로 분석하는 데 한계가 있었다. 이를 개선하기 위해 Modelfile을 생성하여 컨텍스트 윈도우(num_ctx)를 8192로 늘리고 온도(temperature) 값을 0.2로 설정해 예측 가능한 결과를 유도했다. 또한 파일명을 명시적으로 전달해 모델의 추측 오류를 방지하고, 모델이 생성하는 마크다운이나 불필요한 서식을 제거하는 텍스트 처리 파이프라인도 추가했다.
최종 구현된 시스템은 쉘 함수를 통해 git diff --unified=0 명령을 실행함으로써 토큰 소비를 최소화하고 Conventional Commits 형식을 강제한다. 설정에는 텍스트 선택의 집중도를 높이는 top_p 0.7, 응답 길이를 제한하는 num_predict 256, 반복 생성을 억제하는 repeat_penalty 1.2 등의 매개변수가 포함되었다. 이러한 로컬 환경 구축으로 비용 없이 오프라인에서 커밋 메시지를 생성할 수 있게 되었으며, Modelfile 설정을 통해 특정 작업에 최적화된 튜닝이 가능하다.