모델 가져오기
모델 가져오기 (Import)
다른 프레임워크에서 파인튜닝한 모델이나 GGUF 파일을 Ollama로 가져와 쓰는 방법을 다룹니다. Safetensors 어댑터·모델, GGUF 파일, 그리고 ollama.com에 공유하는 흐름까지 순서대로 살펴볼게요.
목차
Safetensors 가중치에서 파인튜닝 어댑터 가져오기
먼저 파인튜닝에 사용한 베이스 모델을 가리키는 FROM 명령과, Safetensors 어댑터 디렉토리를 가리키는 ADAPTER 명령이 담긴 Modelfile을 만듭니다.
FROM <base model name>
ADAPTER /path/to/safetensors/adapter/directory
FROM 명령에 적은 베이스 모델이 어댑터를 만들 때 사용한 것과 같아야 해요. 다르면 결과가 엉뚱해질 수 있습니다. 대부분의 프레임워크는 양자화 방식이 다르기 때문에, 양자화되지 않은(즉 비-QLoRA) 어댑터를 쓰는 게 가장 좋습니다. 어댑터가 Modelfile과 같은 디렉토리에 있다면 ADAPTER .로 어댑터 경로를 지정하세요.
이제 Modelfile을 만든 디렉토리에서 ollama create를 실행합니다.
ollama create my-model
마지막으로 모델을 테스트합니다.
ollama run my-model
Ollama는 여러 모델 아키텍처 기반의 어댑터 가져오기를 지원합니다:
- Llama(Llama 2, Llama 3, Llama 3.1, Llama 3.2 포함);
- Mistral(Mistral 1, Mistral 2, Mixtral 포함); 그리고
- Gemma(Gemma 1, Gemma 2 포함)
어댑터는 Safetensors 형식으로 출력할 수 있는 파인튜닝 프레임워크나 도구로 만들 수 있어요. 예를 들면:
- Hugging Face 파인튜닝 프레임워크
- Unsloth
- MLX
Safetensors 가중치에서 모델 가져오기
먼저 Safetensors 가중치가 담긴 디렉토리를 가리키는 FROM 명령이 있는 Modelfile을 만듭니다.
FROM /path/to/safetensors/directory
가중치와 같은 디렉토리에 Modelfile을 만든다면 FROM . 명령을 쓸 수 있어요.
이제 Modelfile을 만든 디렉토리에서 ollama create 명령을 실행합니다.
ollama create my-model
마지막으로 모델을 테스트합니다.
ollama run my-model
Ollama는 여러 아키텍처의 모델 가져오기를 지원합니다:
- Llama(Llama 2, Llama 3, Llama 3.1, Llama 3.2 포함);
- Mistral(Mistral 1, Mistral 2, Mixtral 포함);
- Gemma(Gemma 1, Gemma 2 포함); 그리고
- Phi3
여기에는 파운데이션 모델과 파운데이션 모델에 *융합(fused)*된 파인튜닝 모델 가져오기가 모두 포함됩니다.
GGUF 기반 모델 또는 어댑터 가져오기
GGUF 기반 모델이나 어댑터가 있다면 Ollama로 가져올 수 있어요. GGUF 모델이나 어댑터는 이런 방법으로 얻을 수 있습니다:
- Llama.cpp의
convert_hf_to_gguf.py로 Safetensors 모델 변환하기; - Llama.cpp의
convert_lora_to_gguf.py로 Safetensors 어댑터 변환하기; 또는 - HuggingFace 같은 곳에서 모델이나 어댑터 내려받기
GGUF 모델을 가져오려면 이런 내용의 Modelfile을 만듭니다.
FROM /path/to/file.gguf
GGUF 어댑터라면 Modelfile을 이렇게 만듭니다.
FROM <model name>
ADAPTER /path/to/file.gguf
GGUF 어댑터를 가져올 때는 어댑터를 만들 때 사용한 베이스 모델과 같은 것을 쓰는 게 중요해요. 아래 중에서 고르면 됩니다.
- Ollama의 모델
- GGUF 파일
- Safetensors 기반 모델
Modelfile을 만들었다면 ollama create 명령으로 모델을 빌드합니다.
ollama create my-model
모델 양자화하기
모델을 양자화하면 더 빠르고 메모리를 덜 쓰면서 실행할 수 있지만 정확도는 떨어집니다. 덜 고성능인 하드웨어에서도 모델을 돌릴 수 있게 해 주는 방법이에요.
Ollama는 ollama create 명령의 -q/--quantize 플래그로 FP16·FP32 기반 모델을 여러 양자화 수준으로 변환할 수 있습니다.
먼저 양자화하려는 FP16 또는 FP32 기반 모델이 담긴 Modelfile을 만듭니다.
FROM /path/to/my/gemma/f16/model
그다음 ollama create로 양자화 모델을 만들면 됩니다.
$ ollama create --quantize q4_K_M mymodel
transferring model data
quantizing F16 model to Q4_K_M
creating new layer sha256:735e246cc1abfd06e9cdcf95504d6789a6cd1ad7577108a70d9902fef503c1bd
creating new layer sha256:0853f0ad24e5865173bbf9ffcc7b0f5d56b66fd690ab1009867e45e7d2c4db0f
writing manifest
success
지원되는 양자화
q8_0
K-means 양자화
q4_K_Sq4_K_M
ollama.com에 모델 공유하기
만든 모델은 ollama.com으로 푸시해서 다른 사용자도 시도해 볼 수 있게 공유할 수 있어요.
먼저 브라우저에서 Ollama Sign-Up 페이지로 이동합니다. 계정이 이미 있다면 이 단계는 건너뛰어도 됩니다.
Username 필드는 모델 이름의 일부(예: jmorganca/mymodel)로 쓰이므로, 선택한 사용자 이름이 마음에 드는지 확인해 두세요.
계정을 만들고 로그인했다면 Ollama Keys Settings 페이지로 이동합니다.
페이지의 안내에 따라 Ollama 공개 키(Ollama Public Key)가 어디 있는지 확인합니다.
Add Ollama Public Key 버튼을 클릭하고, Ollama 공개 키 내용을 복사해 텍스트 필드에 붙여넣으세요.
모델을 ollama.com에 푸시하려면 먼저 이름에 사용자 이름이 들어가도록 올바르게 지었는지 확인합니다. ollama cp 명령으로 이름을 고쳐야 할 수도 있어요. 이름이 마음에 들면 ollama push 명령으로 ollama.com에 푸시합니다.
ollama cp mymodel myuser/mymodel
ollama push myuser/mymodel
푸시가 끝나면 다른 사용자는 아래 명령으로 모델을 내려받아 실행할 수 있습니다.
ollama run myuser/mymodel