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이 빛나는 경우
- 모델 하나 위에 single product 만들고 모든 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가 몰라도 되도록 설정에 이름 붙이고 싶을 때 빛나.