Gemma 4를 로컬에서 Ollama와 OpenCode로 실행하기

발행: (2026년 4월 6일 AM 09:08 GMT+9)
7 분 소요
원문: Dev.to

Source: Dev.to

번역을 진행하려면 실제 텍스트(본문 내용)를 제공해 주시겠어요?
본문을 알려주시면 요청하신 대로 한국어로 번역해 드리겠습니다.

첫 단계

Gemma 4를 Ollama에서 실행하기 위한 일반적인 첫 번째 단계는 모델을 가져오는 것입니다:

ollama pull gemma4:e4b

사용 가능한 모델을 확인하고 시스템에 맞는 올바른 버전을 선택하세요.
하드웨어가 지원한다면 e4b 변형이 좋은 시작점입니다.

모델이 사용 가능한지 확인하세요:

ollama list

테스트

모델을 실행하여 정상적으로 동작하는지 확인합니다:

ollama run gemma4:e4b

간단한 질문을 하거나 “Hello”라고 말한 뒤 /bye 로 종료합니다.

즉시 ollama ps 를 실행합니다. 다음과 같은 출력이 나타나야 합니다:

NAME          ID              SIZE   PROCESSOR   CONTEXT   UNTIL
gemma4:e4b    c6eb396dbd59    10 GB  100% GPU    4096      4 minutes from now

CONTEXT 값에 특히 주의하세요.
4096 이 표시되면 Ollama가 기본 4 K 컨텍스트 윈도우를 사용하고 있다는 뜻입니다. 이는 OpenCode에서 모델을 사용할 때(예: 모델이 “원하는 작업을 알려 주세요”라고 반복) 문제를 일으킬 수 있습니다. 시스템 프롬프트가 사용 가능한 컨텍스트 대부분을 차지해 프롬프트가 잘려버리기 때문입니다.

컨텍스트 윈도우 늘리기

OpenCode에서는 컨텍스트 크기를 지정할 수 있지만, Ollama 기반 모델에서는 신뢰성 있게 동작하지 않을 수 있습니다. 대신 Ollama 내부에서 더 큰 컨텍스트 윈도우를 설정합니다:

ollama run gemma4:e4b

# Ollama 프롬프트 안에서 실행:
 /set parameter num_ctx 32768
 /save gemma4:e4b-32k
 /bye

그런 다음 새 모델이 존재하는지 확인합니다:

ollama list

num_ctx 에 대한 참고 사항:

  • 2의 거듭 제곱이어야 합니다(예: 32 K 윈도우는 32768).
  • 작은 윈도우(16 K)도 충분할 수 있으며, 큰 윈도우(64 K, 128 K)는 VRAM/메모리 사용량을 증가시킵니다.
  • 하드웨어에 맞는 크기를 선택하세요.

/save 로 저장하는 모델 이름은 자유롭게 지정할 수 있습니다 – 컨텍스트 크기를 나타내기 위해 -32k 같은 접미사를 추가하면 됩니다.

OpenCode에서 모델 사용하기

이미 OpenCode에 익숙하다고 가정하고, 새 모델을 opencode.json에 추가합니다 (전역 ~/.config/opencode/opencode.json 혹은 프로젝트 폴더에).

{
  "$schema": "https://opencode.ai/config.json",
  "default_agent": "plan",
  "compaction": {
    "auto": true,
    "prune": true,
    "reserved": 8192
  },
  "provider": {
    "ollama": {
      "name": "Ollama",
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "gemma4:e4b-32k": {
          "name": "gemma4:e4b-32k",
          "_launch": true,
          "id": "gemma4:e4b-32k",
          "tool_call": true,
          "options": {
            "temperature": 0.1
          },
          "maxTokens": 16384
        },
        "ministral-3:8b-OC32k": {
          "_launch": true,
          "id": "ministral-3:8b-OC32k",
          "name": "Ministral 3 8B (32k)",
          "options": {
            "temperature": 0.1
          },
          "maxTokens": 16384
        }
      }
    }
  }
}

중요한 필드

필드의미
nameOpenCode TUI에 표시되는 친숙한 라벨 (예: “Gemma 4 (32k)”).
id명령줄에서 사용하는 식별자, 예: opencode run PROMPT --model gemma4:e4b-32k.
_launch보통 true 로 설정; ollama launch opencode 실행 시 필요합니다.
tool_callGemma가 툴 호출을 처리하도록 true 로 설정해야 합니다; 그렇지 않으면 “task” 툴에서 멈춥니다.
options모델별 옵션 (예: temperature).
maxTokens프롬프트에 대해 기대하는 최대 출력 길이.

OpenCode 실행

opencode.json이 설정된 상태에서 OpenCode를 실행합니다:

cd path/to/project
opencode

OpenCode TUI가 나타납니다. 모델 선택 메뉴(Ctrl‑P 또는 Ctrl‑X m)를 열고 “ollama”로 필터링하면 gemma4:e4b-32k가 표시됩니다. 선택하세요.

이제 로컬 Gemma 모델을 사용하고 있습니다. 필요에 따라 질문을 하거나 작업을 실행하거나 프로젝트를 구축하는 등 자유롭게 상호작용하세요. 성능은 하드웨어에 따라 달라지며, 약 16 GB VRAM을 가진 시스템은 모델이 로드된 후 보통 1‑2초 정도의 응답 지연이 발생합니다.

관찰

저는 실제 작업에 Gemma 4를 이제 막 사용하기 시작했습니다. 성능은 충분하지만 다른 모델보다 좀 더 명시적인 지시가 필요할 때가 있습니다. 컨텍스트 윈도우를 조정하고 옵션(예: temperature)을 튜닝하면 보다 원활한 상호작용을 얻을 수 있습니다.

기본 Zen Big Pickle 모델은 사과 대 사과 비교가 아닙니다. 그래도 지금까지 모델은 충분히 유능합니다. 진짜 시험은 제가 이 모델을 제 market analysis 프로젝트에 사용해 볼 때가 될 것입니다.

결론

도움이 되었기를 바랍니다. 제 정보가 틀렸거나 개선될 수 있다면 알려 주세요.

LLM을 로컬에서 실행한 경험은 어떠신가요? 댓글로 알려 주세요.

0 조회
Back to Blog

관련 글

더 보기 »