아두이노를 Ollama 로 설치한 로컬 LLM 으로 제어하기
Ollama
기본 명령어
ollama pull [모델명]
ollama pull [모델명:태그]
ollama list
ollama run [모델명]
ollama show [모델명]
Quantize (양자화)
Quantize는 모델의 가중치를 낮은 비트로 변환하여 모델 크기를 줄이고 메모리 사용량을 감소시키는 기법이다. 추론 속도를 높이고 더 작은 하드웨어에서도 모델을 실행할 수 있게 해준다.
Quantize란?
- 정의: 모델의 가중치를 높은 정밀도(예: 32비트 float)에서 낮은 정밀도(예: 4비트, 8비트)로 변환하는 과정
- 목적: 모델 크기 감소, 메모리 사용량 감소, 추론 속도 향상
- 트레이드오프: 정밀도가 낮아질수록 모델 성능이 약간 저하될 수 있지만, 대부분의 경우 실용적인 수준에서 유지됨
Quantize 사용 방법
Ollama에서는 모델을 pull할 때 이미 양자화된 버전을 선택할 수 있다. 모델명 뒤에 태그를 붙여 양자화 수준을 지정한다.
# 양자화되지 않은 원본 모델
ollama pull llama2
# 4비트 양자화 (Q4_0)
ollama pull llama2:4bit
# 8비트 양자화 (Q8_0)
ollama pull llama2:8bit
# 특정 양자화 버전 확인
ollama list
양자화 수준
| 양자화 수준 | 비트 수 | 모델 크기 | 메모리 사용량 | 성능 | 추론 속도 |
|---|---|---|---|---|---|
| 원본 (FP32) | 32비트 | 매우 큼 | 매우 높음 | 최고 | 느림 |
| Q8_0 | 8비트 | 작음 | 낮음 | 매우 좋음 | 빠름 |
| Q4_0 | 4비트 | 매우 작음 | 매우 낮음 | 좋음 | 매우 빠름 |
| Q2_K | 2비트 | 극히 작음 | 극히 낮음 | 보통 | 매우 빠름 |
Quantize 사용 예시
# 4비트 양자화 모델 다운로드 (메모리 절약)
ollama pull llama2:4bit
# 8비트 양자화 모델 다운로드 (성능과 크기 균형)
ollama pull llama2:8bit
# 양자화된 모델 실행
ollama run llama2:4bit
# 설치된 모델 목록 확인
ollama list
Quantize 선택 가이드
- Q4_0 (4비트): 메모리가 제한적인 환경, 빠른 추론이 필요한 경우
- Q8_0 (8비트): 성능과 크기의 균형이 필요한 경우
- 원본 (FP32): 최고 성능이 필요한 경우, 메모리가 충분한 경우
주의사항
- 성능 저하: 양자화 수준이 낮을수록 모델 성능이 약간 저하될 수 있다
- 호환성: 모든 모델이 모든 양자화 수준을 지원하는 것은 아니다
- 테스트: 실제 사용 환경에서 양자화된 모델의 성능을 테스트해보는 것이 좋다