본문 바로가기
AI

윈도우에서 gemma3 로컬 활용하기(ollama활용, sLLM)

by 치미르 2025. 3. 19.

 

 최근 microsoft에서 발표한 gemma3가 상당한 성능을 자랑 최근 microsoft에서 발표한 gemma3가 상당한 성능을 자랑하기에 간략한 사용법을 설명드리려 합니다.

 

 먼저 장점을 간략하게 확인하자면, 압도적인 가성비와 유용성입니다.

 1. 뛰어난 성능 가성비
  - 27B 모델으로 o3-mini 보다 높은 성능. llama 405b보다 높은 성능
 2. 다국어 지원
  - 140개국어 지원
 3. 오픈소스
  - 무료입니다.
4. 멀티모달
  - 이미지도 분석 가능합니다.
 5. 128K Context window
  - GPT4, Claude3 모델보다 더 긴 내용을 한번에 입력/출력 가능합니다.
 6. 공식 양자화 모델 제공
  - 별도 양자화 하거나, 양자화된 모델을 찾을 필요 없이 활용 가능합니다.

 

준비사항

- 그래픽 카드(GPU)및 그래픽카드 드라이버 설치

 

 

1. Ollama 설치 및 세팅

1) 다운로드

https://ollama.com/download 공식 사이트에서 윈도우 버전 다운로드 및 실행

(다운로드)

 

2) 설치 확인

- '윈도우키 + R' 동시에 누르기

- 'cmd' 입력

- 입력하여 버전 확인

ollama --version

 

3) 모델 다운로드 및 실행

GPU 메모리(전용 GPU 메모리) 기준으로 아래 모델에 맞는 실행 명령어 사용

GPU메모리 확인방법 : 작업 관리자(단축 : ctrl+shift+esc) > 성능 > GPU선택 > 전용 GPU 메모리 확인 (단위 GB)

모델
(Gemma3, ollama기준 - 4bit 양자화)
필요사양
(GPU 메모리)
실행 명령어
Gemma3 1b 0.6GB ollama run gemma3:1b
Gemma3 4b 2.4GB ollama run gemma3:4b
Gemma3 12b 7.2GB ollama run gemma3:12b
Gemma3 27b 16.2GB ollama run gemma3:27b

(gemma3 외 다른 모델들 사용 가능한 GPU를 확인하려면 GPU용량 분석 글을 참고해 주세요.)

 

예) 예시의 GPU메모리는 8GB이므로, 1b, 4b, 12b를 사용할 수 있음. 

모델이 클 수록 더 뛰어난 성능을 보이나, 반응 속도는 늦어짐.

용량을 초과할 시 실행 자체가 불가능할 수 있음.

 

실행 예시. 다운로드에 시간이 걸림

 

완료가 되면 이제 채팅을 시작할 수 있습니다.
이렇게 내용을 적으면 대답해 줍니다.

대화 중 응답 중단 : 단축키(ctrl + c)

대화 세션 완전 종료 : /bye 입력

 

2. 파이썬으로 활용하기

 

 1) ollama 서버 실행

- '윈도우키 + R' 동시에 누르기

- 'cmd' 입력

- ollama 서버 실행

ollama serve

 

* 에러 발생시 :

 만약 ' Error: listen tcp 127.0.0.1:11434: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted. ' 에러가  발생하면, 이미 run 단계에서 실행된 것이므로 서버 실행 단계를 생략.

 

 2) 파이썬 코드에서 호출하여 사용

- 다른 언어로도 유사하게 api 호출하여 사용 가능함

import requests
import json

url = 'http://localhost:11434/api/generate'
headers = {'Content-Type': 'application/json'}
data = {
    'model': 'gemma3:4b',
    'prompt': '인공지능이란 무엇인가요?',
    'stream' : False
}

response = requests.post(url, headers=headers, data=json.dumps(data))
# 응답이 여러 줄로 나오는 스트리밍 형식 처리 (스트림 형식일 때)
# outputs = response.text.strip().split('\n')
# for output in outputs:
#     result = json.loads(output)
#     print(result['response'], end='')
result = response.json()
print(result['response'])

실행 예시

 

문의사항 등이 있으면 댓글로 편히 물어봐주세요.