Ollama Cloud 모델로 밈 말투 모델 만들어보기 (휴먼샤갈체)
Ollama Cloud 모델로 밈 말투 모델 만들어보기
서론 (이하 잡담)
오늘은 대학원 수업이 있는 날이라 학교에 있는데 Ollama에서 메일이 왔다. MiniMax M3라는 신규 모델이 Ollama Cloud에서 지원된다는 내용이었다.
처음에는 그냥 “아, 또 새 모델이 나왔구나” 정도로 넘기려다가, 문득 궁금해졌다. 나는 Ollama Pro를 구독하고 있지는 않은데, 그럼 Cloud 모델을 아예 못 쓰는 걸까? 아니면 API key만 있으면 어느 정도는 호출이 되는 걸까?
요즘 이런 건 직접 눌러봐야 속이 편하다.
먼저 API 호출부터 확인
기존 프로젝트에 Ollama API key가 들어있는 .env가 있어서, 간단한 테스트 스크립트를 하나 만들었다. 블로그에 그대로 올리기에는 내 로컬 경로가 너무 강하게 박혀있으니, 대충 구조만 적으면 이런 식이다.
처음에는 정말 단순하게 “호출이 되나?”만 봤다.
import os
import requests
OLLAMA_API_KEY = os.environ["OLLAMA_API_KEY"]
response = requests.post(
"https://ollama.com/api/generate",
headers={"Authorization": f"Bearer {OLLAMA_API_KEY}"},
json={
"model": "minimax-m3:cloud",
"prompt": "오늘 대전의 날씨는?",
"stream": False,
},
timeout=60,
)
print(response.status_code)
print(response.json())
결과는 성공이었다.
{
"ok": true,
"status_code": 200,
"model": "minimax-m3:cloud",
"content": "",
"done": true,
"done_reason": "stop",
"error": null
}
다만 처음에는 응답 내용이 비어있어서 스트리밍 출력 쪽도 확인했다. 이후 스크립트를 수정해서 스트리밍으로 토큰이 흘러나오게 만들었고, 일반 프롬프트 응답도 정상적으로 확인했다.
Tool calling도 되나?
요즘 모델을 볼 때는 단순 채팅보다 tool calling이 되는지가 더 궁금하다. 특히 Claude Code나 Codex 같은 에이전트에 붙이려면 이 부분이 중요하다.
테스트해보니 MiniMax M3 자체는 tool call을 반환할 수 있었다. 다만 중요한 점은 모델이 도구를 “직접 실행”하는 게 아니라, tool call JSON을 반환하면 클라이언트 쪽에서 그 함수를 실행해주고 결과를 다시 모델에게 넘겨야 한다는 점이다.
실제로 날씨 API를 호출하거나 파일을 읽거나 웹을 검색하는 건 앱/에이전트 쪽 책임이다. 이걸 안 붙이면 “툴 콜링이 안 되는 것처럼” 보인다.
ollama run minimax-m3:cloud도 되나?
궁금해서 CLI에서도 바로 실행해봤다.
ollama run minimax-m3:cloud
동작했다.
여기서 조금 의외였던 점은, 구독하지 않아도 Free 사용량 안에서는 Cloud 모델 접근이 가능하다는 점이었다. 물론 사용량은 소모된다.
Ollama의 사용량은 고정 토큰제가 아니라 GPU 사용 시간에 가까운 방식으로 보인다. 짧은 프롬프트 하나를 돌렸을 때 사용량이 1.5%에서 1.7% 정도로 올라갔다. 이걸 단순 토큰 수로 환산하기는 어렵다. 모델 크기, 생각 시간, 출력 길이, 캐시 여부에 따라 달라지는 구조에 가깝다.
ICL(In-Context Learning)
요즘 릴스에서 자주 보이는 말투가 있다.
“샤걀!”
“여러분 저 됐어요!”
“영상 낋여왔어요.”
“다음에도 낋여올게요.”
뭔가 과장된 쇼츠 자막 같고, 갑자기 숙연해지고, 소근소근하다가, 현실 자각을 하는 그런 말투다. 나는 이걸 그냥 “휴먼샤갈체”라고 부르기로 했다.
당연히 이런 걸 실제 fine-tuning까지 할 필요는 없다. Ollama에는 Modelfile이 있으니, 시스템 프롬프트와 예시만 잘 넣어도 어느 정도 말투 고정이 가능하다.
Modelfile 만들기
처음에는 예시 대화를 MESSAGE user, MESSAGE assistant로 넣었다. 그런데 이렇게 하니 ollama run을 실행할 때마다 예시 대화가 주르륵 보이는 문제가 있었다.
이건 별로였다. 모델을 처음 실행했는데 예시가 계속 보이면 사용하는 입장에서는 너무 지저분하다.
그래서 구조를 바꿨다.
FROM minimax-m3:cloud
TEMPLATE {{ .Prompt }}
SYSTEM """
너는 한국어 숏폼 밈 말투 '휴먼샤갈체' 어시스턴트다.
...
"""
예시는 MESSAGE가 아니라 SYSTEM 안에 “스타일 예시”로 넣었다. 그대로 복사하지 말고 리듬만 참고하라는 식으로 작성했다.
모델 빌드와 실행
로컬에서 먼저 만들었다.
ollama create human-chagall-style -f Modelfile
ollama run human-chagall-style
초기 버전은 꽤 웃겼지만, 조금 문제가 있었다. 답변이 너무 길어지거나, 같은 표현만 반복하거나, MiniMax M3 특유의 thinking이 길게 나왔다.
특히 Thinking...이 오래 보이는 점이 체감상 답답했다.
ollama run --hidethinking human-chagall-style
이렇게 하면 생각 과정 출력은 숨길 수 있다. 다만 실제로 생각을 덜 하는 건 아니고, 화면에 덜 보이게 하는 쪽에 가깝다.
업로드
이제 공개 모델로 올렸다. 올리는 방법은 아래와 같다.
ollama create cedric_private/human-chagall-style -f Modelfile
ollama push cedric_private/human-chagall-style
결과적으로 아래 주소에 올라가서 모델 카드나 설명을 확인이 가능하다.
https://ollama.com/cedric_private/human-chagall-style
실행은 이렇게 하면 된다. 물론, ollama cli 설치와 로그인이 되어있어야한다. (무료임)
ollama run --hidethinking cedric_private/human-chagall-style
올리고 나서 알게 된 점
업로드 후 모델 페이지에 들어가보니 시스템 프롬프트가 그대로 보였다.
처음에는 “아니 이게 다 보이네?” 싶었는데, 생각해보면 Ollama의 Modelfile 기반 모델은 원래 레이어 정보가 노출되는 구조다. SYSTEM, TEMPLATE, PARAMETER 같은 것들이 모델 정보로 표시된다.
즉, Ollama에 공개 모델로 올릴 때는 시스템 프롬프트를 비밀이라고 생각하면 안 된다.
비밀 프롬프트를 숨기고 싶다면 모델에 넣지 말고, 앱이나 API 호출 시점에 system message로 주입하는 편이 낫다. 하지만 이번 모델은 애초에 장난감에 가깝고, 사람들이 바로 호출하기 편한 게 더 중요해서 그냥 공개로 두기로 했다.
정리
이번에 확인한 건 대충 이렇다.
- Ollama Free 계정에서도 Cloud 모델을 어느 정도 호출할 수 있다.
minimax-m3:cloud는 CLI와 API 양쪽에서 호출 가능했다.- Tool calling은 모델만 되는 게 아니라, 클라이언트가 tool 실행 루프를 구현해야 한다.
- Ollama
Modelfile로 말투 모델을 쉽게 만들 수 있다. - 공개 모델로 올리면 시스템 프롬프트는 보인다고 생각해야 한다.
minimax-m3:cloud기반 커스텀 모델도ollama push로 공유 가능했다.
결론적으로, 엄청난 fine-tuning을 한 건 아니지만 “이런 말투로 대답하는 모델을 Ollama에서 바로 실행하게 만들기” 정도는 꽤 간단했다.
그리고 무엇보다,
ollama run --hidethinking cedric_private/human-chagall-style
이 한 줄로 휴먼샤갈체를 부를 수 있게 됐다.
샤걀.
여러분 저 모델 배포 됐어요.
'데일리' 카테고리의 다른 글
| 학교 크레딧으로 OpenCode 세팅하기 (0) | 2026.05.31 |
|---|---|
| 아식스 슈퍼블라스트3 직구 (1) | 2026.04.19 |
| 1,430원으로 보조배터리 빌리는 방법 (0) | 2026.04.17 |
| 여름이 오기 전에 남기는 사진들에 대한 이야기 (0) | 2026.04.15 |
| 2종 보통에서 1종 보통으로 운전면허 갱신 여정의 기록 (0) | 2026.04.14 |