콘텐츠로 이동

Ollama 모델 관리 (Modelfile)

개요

Ollama에서 모델은 그냥 받아다 쓰기만 하는 게 아니라, Modelfile이라는 설정 파일로 원하는 대로 조립할 수 있어요. 베이스 모델을 고르고, 실행 파라미터와 시스템 프롬프트, 프롬프트 템플릿, 심지어 LoRA 어댑터까지 붙여서 "우리 팀용 모델"을 정의하는 거예요. 이 페이지는 Modelfile의 지시어들이 무엇을 하는지를 공식 문서 기준으로 설명합니다.

핵심 개념

FROM — 밑바탕이 되는 모델

Modelfile은 반드시 FROM 으로 시작해요. 이미 있는 Ollama 모델(FROM llama3.2)을 바탕으로 삼거나, Safetensors 모델이나 GGUF 파일에서 새로 빌드할 수 있어요.

PARAMETER — 실행 파라미터

PARAMETER <이름> <값>으로 모델이 추론할 때 쓸 파라미터를 정해요. 예를 들어 창의성을 조절하는 temperature, 컨텍스트 길이를 정하는 num_ctx(토큰 단위, 기본은 모델마다 다름) 등을 둡니다.

FROM llama3.2
# 높을수록 창의적, 낮을수록 일관적
PARAMETER temperature 1
# 컨텍스트 창 크기(4096 토큰)
PARAMETER num_ctx 4096

TEMPLATE — 프롬프트 템플릿

TEMPLATE은 모델에 실제로 보낼 프롬프트 템플릿이에요. Go 템플릿 문법을 쓰고, {{ .System }}(시스템 메시지), {{ .Prompt }}(사용자 프롬프트), {{ .Response }}(모델 응답) 변수를 넣어요. 모델마다 기대하는 대화 형식이 달라서, 이 템플릿이 그 형식을 맞춰줘요.

SYSTEM — 시스템 메시지

SYSTEM은 템플릿에 들어갈 시스템 메시지예요. 모델의 행동을 지정하죠.

SYSTEM """You are Mario from super mario bros, acting as an assistant."""

그 외 — ADAPTER, LICENSE, MESSAGE, REQUIRES

ADAPTER는 (Q)LoRA 어댑터를 모델에 적용하고, LICENSE는 법적 라이선스를 명시해요. MESSAGE는 대화 히스토리를 미리 심고, REQUIRES는 필요한 최소 Ollama 버전을 지정합니다.

만들고 확인하기

Modelfile을 작성한 뒤 ollama create <이름> -f <Modelfile>로 모델을 등록해요. 반대로 ollama show <모델>으로 기존 모델의 Modelfile을 볼 수 있어요. 이걸로 다른 팀원이 우리 설정을 그대로 재현할 수 있습니다.

실제 적용 (데이터스케쳐스)

  • 팀 표준 모델 정의 — 자주 쓰는 시스템 프롬프트와 파라미터, 프롬프트 템플릿을 Modelfile로 고정해 두면, 같은 모델을 어느 머신에서든 동일하게 재현할 수 있어요.
  • 파싱·분류 모델 튜닝 — 로컬 파싱에 쓰는 소형 모델에 temperature를 낮추고 num_ctx를 작업에 맞춰 조정한 커스텀 모델을 만들어요.
  • 실행 형식 통일 — GGUF 기반으로 빌드해 CPU/GPU 어디서건 같은 결과가 나오게 해요.

커스텀 모델은 베이스 모델과 파라미터의 조합이라, 성능은 결국 베이스 모델 품질에 따라요. 어떤 값을 기본값으로 둘지는 실제 평가로 정해요.

더 알아보기