Modelfile이 뭐야
Modelfile은 Ollama한테 Dockerfile이 Docker한테 하는 역할이야 — base에서 커스텀 모델 derive하는 작은 텍스트 파일. System prompt, default parameter, few-shot 예제, LoRA adapter까지 박아놓고 ollama create로 빌드. 결과는 일반 모델처럼 호출돼: ollama run my-assistant.
실전에서 쓰는 instruction
| Instruction | 필수? | 용도 |
|---|---|---|
FROM | 예 | Base 모델 이름, GGUF 파일 경로, safetensors 디렉토리 |
SYSTEM | 선택 | 모든 chat에 박힐 system prompt |
PARAMETER | 선택 | temperature, num_ctx, top_p, top_k, repeat_penalty, seed, stop, num_predict, min_p |
TEMPLATE | 선택 | Prompt 포맷용 Go template (advanced — 보통 FROM에서 상속) |
ADAPTER | 선택 | LoRA adapter 적용 (safetensor / GGUF) |
MESSAGE | 선택 | Few-shot 예제 (role: user / assistant / system) |
Modelfile이 빛나는 경우
- 모델 하나 위에 제품 하나를 올리고, 모든 caller가 같은 system prompt를 쓰게 하고 싶을 때.
- 안정적인
num_ctxdefault가 필요할 때. Ollama default가 너무 작을 때가 잦거든. 8192나 16384가 더 실용적이야. - 이름 붙은 variant —
my-coder,my-summarizer,my-translator— 같은 base 공유하지만 system prompt랑 parameter 다르게 갈 때.
안 쓰는 게 나을 때
어차피 API call마다 system prompt를 보낼 거면, Modelfile은 관리할 layer만 하나 더 늘리는 셈이야. Modelfile은 caller가 몰라도 되도록 설정에 이름 붙이고 싶을 때 빛나.