본문으로 건너뛰기

Ollama로 AI 모델 로컬에서 실행하기

중급

프런티어 모델은 클라우드에 있지만, 오픈 웨이트(open-weight) 모델 계열 — Llama, Mistral, Qwen, DeepSeek, Gemma — 은 내 노트북이나 서버에 내려받아 실행할 수 있습니다. Ollama는 이를 가장 쉽게 해 주는 도구입니다. 설치 한 번, 명령 하나면 모델이 로컬에서 돌아갑니다. 이 페이지는 처음부터 모델을 실행하고, 코드에서 호출하고, 트레이드오프를 이해하는 데까지 안내합니다. 7B 로컬 모델이 프런티어 모델처럼 동작하리라고 기대하지 않도록 하기 위해서입니다.

What you'll learn
  • 모델을 왜 로컬에서 실행하는지 — 그리고 클라우드 프런티어 모델과 비교한 솔직한 트레이드오프를 이해한다
  • Ollama를 설치하고 두 개의 명령으로 첫 모델을 실행한다
  • 핵심 CLI를 사용한다: pull, run, list, ps, rm, stop
  • Ollama의 OpenAI 호환 API로 코드에서 로컬 모델을 호출한다
  • RAM 요구량, 모델 크기, 양자화를 이해해 내 기기에서 실제로 돌아가는 모델을 고른다
  • LM Studio(GUI)가 더 나은 출발점인 경우를 안다

왜 모델을 로컬에서 실행하는가 (그리고 언제 하지 말아야 하는가)​

자신의 하드웨어에서 모델을 실행하면 네 가지를 얻습니다.

  • 프라이버시 — 프롬프트와 데이터가 내 기기를 벗어나지 않습니다. 규제가 있거나 민감한 분야의 팀이 로컬 모델을 찾는 이유입니다. (모델 고르기의 프라이버시/셀프 호스팅 분기를 참고하세요.)
  • 오프라인 — 인터넷도, API도, 장애 의존성도 없습니다. 모델은 디스크 위의 파일일 뿐입니다.
  • 비용 — 토큰당 청구가 없습니다. 일단 내려받으면 실행은 "무료"입니다(API 비용이 아니라 전기와 하드웨어로 지불합니다). 대규모에서 토큰 지출이 제약이라면 로컬이 유리할 수 있습니다.
  • 제어 — 정확한 버전을 고정하고, 동작을 맞춤 설정하고, 속도 제한이나 이용 약관의 돌발 변경 없이 통합할 수 있습니다.

솔직한 트레이드오프:

  • 성능 격차. 노트북에서 실행할 수 있는 모델(파라미터 1B–14B)은 어려운 추론, 긴 컨텍스트, 에이전트형 작업에서 클라우드 프런티어 모델과 같은 급이 아닙니다. 일상적인 많은 작업에서는 격차가 작지만, 가장 어려운 작업에서는 큽니다.
  • 하드웨어. 더 크고 성능이 좋은 모델은 일반적인 기기보다 더 많은 RAM/VRAM을 필요로 합니다. 흔히 존재하는 최고의 모델이 아니라 내 하드웨어가 실행할 수 있는 가장 큰 모델을 고르게 됩니다.
  • 직접 운영합니다. 관리형 스케일링도, 자동 업그레이드도 없습니다. 그것이 제어의 대가입니다.

흔하고 오래가는 패턴: 작은 평가로 프로토타입을 만들고 고르며(클라우드 모델과 같은 방법 — 모델 고르기 참고), 비공개/오프라인/대규모에서도 저렴한 작업에는 로컬을 쓰고, 작업이 정말로 추가 성능을 필요로 할 때는 프런티어 API를 사용합니다.

Ollama를 설치하고 첫 모델 실행하기​

Guided walkthrough1 of 4
  1. macOS와 Windows: ollama.com/download에서 설치 프로그램을 내려받아 실행합니다. Linux: 공식 설치 스크립트를 사용합니다(아래). 그러면 ollama 명령과 로컬 백그라운드 서비스가 설치됩니다.

Linux 설치(macOS/Windows는 대신 내려받은 설치 프로그램을 사용):

curl -fsSL https://ollama.com/install.sh | sh

작은 모델 받아서 실행하기 (좋은 첫 선택)

ollama run gemma4:e2b

이 명령 하나가 gemma4:e2b를 내려받고 — Ollama 자체 퀵스타트가 가장 먼저 쓰는 모델로, 유효 파라미터 약 2.3B에 디스크 용량 몇 GB인 엣지 크기의 Gemma 4 변형입니다 — 대화형 채팅을 시작합니다. 아직 채팅하지 않고 내려받기만 하려면 ollama pull을 대신 사용하세요.

핵심 CLI​

몇 개의 명령으로 거의 모든 것을 처리할 수 있습니다. 전체 목록은 ollama --help로 확인하세요.

# Download a model without starting a chat
ollama pull qwen3

# Start an interactive chat (downloads first if needed)
ollama run qwen3

# One-shot: pass the prompt inline, get the answer, exit
ollama run qwen3 "Summarize the CAP theorem in two sentences."

# List models you've downloaded
ollama list

# Show models currently loaded in memory
ollama ps

# Stop a running/loaded model (frees memory)
ollama stop qwen3

# Delete a downloaded model to reclaim disk
ollama rm qwen3

대화형 ollama run 세션 안에서 /bye로 종료하고 /?로 세션 내 명령을 확인할 수 있습니다. 실제로 모델을 서빙하는 백그라운드 서비스는 ollama serve로 시작됩니다(데스크톱 앱이 자동으로 시작해 줍니다).

코드에서 호출하기 (OpenAI 호환 API)​

로컬 모델을 앱에서 정말 쓸모 있게 만드는 부분입니다. Ollama 백그라운드 서비스는 기본 포트 11434의 **http://localhost:11434**에서 로컬 HTTP API를 제공합니다. 자체 네이티브 엔드포인트(/api/generate, /api/chat) 그리고 /v1의 OpenAI 호환 계층이 있어서, OpenAI SDK용으로 작성된 대부분의 코드가 두 줄만 바꾸면 로컬 모델에서 동작합니다.

curl을 사용한 원시 HTTP(네이티브 엔드포인트):

curl http://localhost:11434/api/chat -d '{
"model": "gemma4:e2b",
"messages": [
{ "role": "user", "content": "Why is the sky blue?" }
],
"stream": false
}'

공식 OpenAI SDK를 사용하는 Python — base_url을 Ollama로 지정하고 비어 있지 않은 아무 api_key나 전달하면 됩니다(Ollama는 이 필드를 요구하지만 값은 무시합니다):

from openai import OpenAI

client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama", # required by the SDK, ignored by Ollama
)

response = client.chat.completions.create(
model="gemma4:e2b",
messages=[
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Explain gradient descent in two sentences."},
],
)

print(response.choices[0].message.content)

OpenAI 호환이므로 호스팅된 API에서 쓰던 패턴이 그대로 이어집니다 — 스트리밍과 도구 사용 / 함수 호출도 포함되며, 클라우드에서와 똑같이 로컬에서 동작합니다(모델이 실제로 그 작업을 잘한다는 전제하에). Ollama의 /v1 계층은 /v1/chat/completions, /v1/completions, /v1/responses, /v1/models(및 /v1/models/{model}), /v1/embeddings를 지원합니다.

하드웨어, 모델 크기, 양자화​

모델에 붙는 숫자 — 1B, 7B, 8B, 70B — 는 파라미터 수(십억 단위)입니다. 파라미터가 많을수록 일반적으로 성능이 좋고 동시에 메모리도 많이 필요합니다. 실행할 수 있는 범위의 실질적인 한계는 RAM(GPU라면 VRAM)입니다.

**양자화(quantization)**는 이것을 평범한 기기에서 가능하게 만드는 핵심 기법입니다. 모델의 가중치는 원래 고정밀도(예: 16비트)로 저장되지만, 품질 손실이 작고 대개 거의 눈에 띄지 않는 수준으로 약 4비트까지 압축할 수 있습니다. Ollama는 대부분의 모델을 기본적으로 양자화해서 배포하며, 그래서 수십억 파라미터의 모델이 몇 GB에 들어갑니다. 대략적인 경험칙(해당 모델의 페이지에서 확인하세요):

  • 약 1B–3B 모델: 대부분의 최신 노트북에서 무리 없이 실행됩니다(몇 GB의 RAM).
  • 약 7B–8B 모델: 성능이 좋으면서도 실행 가능한 최적점입니다. 여유 RAM 수 GB를 잡으세요.
  • 약 13B–14B 모델: 사양이 꽤 좋은 기기가 필요합니다.
  • 약 70B 이상 모델: RAM이 많은 워크스테이션/서버나 강력한 GPU가 필요합니다. 일반적인 노트북의 영역이 아닙니다.

실용적인 방법: 작은 모델(gemma4:e2b)로 시작해 워크플로를 처음부터 끝까지 확인한 다음, 내 하드웨어에서 여전히 부드럽게 돌아가는 가장 큰 모델까지 올려 가세요. 존재하는 가장 큰 모델이 아닙니다.

로컬 모델 용어
Enter 또는 스페이스 키를 눌러 카드를 뒤집습니다. 좌우 화살표 키로 카드를 이동할 수 있습니다.용어가 표시되었습니다.
1 / 6

LM Studio: GUI 대안​

명령줄이 맞지 않는다면 LM Studio 가 있습니다. macOS, Windows, Linux용 데스크톱 앱으로, 같은 일을 그래픽 인터페이스로 해 줍니다. 오픈 모델을 둘러보고 내려받고, 내장 UI에서 대화하고, Ollama처럼 로컬 OpenAI 호환 서버를 실행해 코드가 접속할 수 있게 합니다. 비개발자나 터미널보다 포인트 앤 클릭을 선호하는 사람에게 더 쉬운 입문 경로입니다. 스크립트로 다룰 수 있는 CLI와 가벼운 백그라운드 서비스를 원한다면 Ollama가 유리한 경향이 있습니다. 둘 다 같은 종류의 오픈 웨이트 모델을 실행하므로 이 페이지의 개념은 그대로 적용됩니다.

스스로 점검하기

0/4
  1. 모델을 로컬에서 실행할 때, 클라우드 프런티어 모델과 비교한 가장 큰 솔직한 트레이드오프는 무엇인가요?
  2. 모델을 (필요하면) 내려받고 동시에 대화를 시작하는 명령은 무엇인가요?
  3. OpenAI SDK 코드에서 로컬 모델을 호출하려면 무엇을 설정하나요?
  4. 수십억 파라미터 모델이 몇 GB의 RAM에 들어갈 수 있는 이유는 무엇인가요?
Key takeaways
  • 로컬 = 프라이버시 + 오프라인 + 토큰당 비용 없음 + 제어. 대가는 실제 성능 격차와 하드웨어 한계입니다.
  • 두 개의 명령이면 실행됩니다: Ollama를 설치한 뒤 ollama run gemma4:e2b.
  • 핵심 CLI: pull(내려받기), run(채팅), list, ps, stop, rm — 이것이 대부분입니다.
  • OpenAI 호환 엔드포인트로 코드에서 호출: base_url http://localhost:11434/v1, 비어 있지 않은 아무 api_key.
  • 파라미터 수 + 양자화가 내 기기에서 모델을 실행할 수 있는지를 결정합니다. 작게 시작해서 부드럽게 돌아가는 수준까지 올리세요.
  • GUI가 좋다면? LM Studio가 포인트 앤 클릭으로 같은 일을 하며, 로컬 OpenAI 호환 서버도 제공합니다.

출처 및 더 읽을거리​

다음​