리눅스에서 로컬 AI 모델을 실행하려면 Ollama를 설치하고 작은 모델 하나를 내려받아 실행하면 됩니다. GPU가 없어도 CPU로 시작할 수 있어요. 이 글에서는 qwen3:1.7b로 터미널 대화와 로컬 API 응답을 확인하는 과정을 다룹니다.
대상은 Ubuntu 24.04 LTS나 Rocky Linux 9처럼 systemd로 서비스를 관리하는 리눅스 PC·서버입니다. Python과 Docker는 설치하지 않아도 됩니다. 모델 다운로드에는 인터넷이 필요하며, 아래 예제의 공개 로컬 모델을 실행할 때는 Ollama 계정이나 API 키가 필요하지 않습니다. (로컬 API 인증 안내)
이 글의 목차
실행 전 리눅스 환경 확인
먼저 운영체제, CPU 구조, 사용 가능한 메모리와 저장 공간을 확인합니다. systemd는 리눅스에서 백그라운드 서비스의 시작과 종료를 관리하는 구성요소예요. 컨테이너나 최소 설치 환경처럼 systemd가 동작하지 않는 곳은 이 글의 서비스 명령을 그대로 적용할 수 없습니다.
cat /etc/os-release
uname -m
ps -p 1 -o comm=
free -h
df -h /
uname -m은 일반 PC에서 보통 x86_64, ARM64 장비에서 aarch64로 표시됩니다. 공식 설치 스크립트는 이 구조를 구분해 파일을 받습니다. PID 1의 이름이 systemd인지도 확인합니다. 다른 구조나 특수 장비는 Ollama Linux 설치 문서에서 지원 방법부터 살펴보세요.
free -h에서는 available 값을 봅니다. 모델을 저장할 공간과 실행할 메모리는 별개이므로, 디스크가 넉넉해도 메모리가 부족하면 실행되지 않을 수 있습니다. GPU를 쓰려면 그래픽카드의 전용 메모리인 VRAM과 드라이버 지원도 확인해야 합니다.
Ollama 설치와 서비스 시작
아래 준비 명령은 사용하는 배포판에 맞는 것만 실행합니다. 다운로드 도구인 curl, HTTPS 인증서, 압축 해제용 zstd를 준비하는 단계입니다. 일반 사용자에게는 sudo 권한이 필요합니다.
Ubuntu·Debian 계열
sudo apt-get update
sudo apt-get install -y curl ca-certificates zstd
Rocky Linux·RHEL 계열
sudo dnf install -y curl ca-certificates zstd
준비가 끝나면 공식 Linux 설치 안내의 스크립트를 실행합니다. 이 명령은 인터넷에서 받은 스크립트를 바로 실행하며, 시스템에 실행 파일과 서비스 계정을 설치합니다. 기존 설치가 있다면 업데이트가 될 수 있습니다.
curl -fsSL https://ollama.com/install.sh | sh
설치 스크립트는 하드웨어와 환경에 따라 GPU 관련 설치를 시도할 수 있습니다. 운영 중인 GPU 서버라면 설치 스크립트 원문과 기존 드라이버 구성을 먼저 확인합니다. 여기서는 배포판별 GPU 드라이버 설치 과정을 별도로 다루지 않습니다.
systemd 서비스가 등록됐는지 확인하고 시작합니다. enable --now는 지금 서비스를 시작하고 다음 부팅에서도 자동으로 실행하도록 설정합니다.
ollama --version
sudo systemctl enable --now ollama
systemctl is-active ollama
curl -fsS http://127.0.0.1:11434/api/tags
is-active가 active를 출력하고 마지막 명령이 JSON을 반환하면 서버가 요청을 받는 상태입니다. 아직 받은 모델이 없다면 models 배열이 비어 있어도 정상이에요. 모델 목록 API가 응답하는지와 모델이 실제로 답을 생성하는지는 다음 단계에서 나눠 확인합니다.
서비스가 이미 실행 중이라면 같은 터미널에서 ollama serve를 추가로 실행할 필요가 없습니다. 같은 주소와 포트를 다시 사용하려 하면 충돌할 수 있습니다.
작은 모델로 첫 답변 받기
처음에는 모델의 응답을 확인할 수 있는 작은 크기부터 시작하면 편해요. 아래는 2026년 10월 22일 공식 모델 페이지에 표시된 다운로드 크기입니다. 필요한 RAM·VRAM의 최소 사양을 뜻하지 않으며, 모델 태그가 갱신되면 크기도 바뀔 수 있습니다.
| 모델 태그 | 다운로드 크기 | 선택 기준 |
|---|---|---|
qwen3:0.6b | 약 523MB | 메모리가 적을 때 실행 경로부터 확인 |
qwen3:1.7b | 약 1.4GB | 이 글에서 사용할 첫 대화 모델 |
qwen3:4b | 약 2.5GB | 작은 모델 실행 후 자원 여유를 보고 비교 |
모델명 뒤의 :1.7b 같은 표시는 사용할 변형을 지정하는 태그입니다. 예제와 같은 모델을 받으려면 태그까지 입력합니다. pull로 다운로드를 마치고 run으로 대화를 엽니다. (Ollama CLI 명령)
ollama pull qwen3:1.7b
ollama run qwen3:1.7b
대화 입력란이 나오면 다음처럼 짧은 질문을 입력해 보세요. 아래 문장은 셸 명령어가 아니라 모델에 보낼 질문입니다.
리눅스에서 RAM과 디스크 공간의 차이를 초보자에게 세 문장으로 설명해 주세요.
답변 내용은 실행할 때마다 달라질 수 있습니다. Qwen3는 답변 앞에 생각 과정을 표시할 수 있는 모델이므로, 그 부분이 출력된다고 설치 오류로 판단하지 않아도 됩니다. 첫 요청은 모델을 메모리에 올리는 시간도 포함합니다.
대화를 끝낼 때는 입력란에 /bye를 입력합니다. 다운로드가 완료된 공개 로컬 모델의 일반 대화는 인터넷 연결 없이 실행할 수 있지만, 새 모델 다운로드나 클라우드 모델 호출에는 네트워크가 필요합니다. 모델이 만든 명령어는 실행 전 실제 환경과 맞는지 확인하세요.
CPU와 GPU 사용 상태 확인
GPU가 있는 PC에서 답변이 나온다고 해서 GPU를 쓰고 있다고 단정할 수는 없습니다. 모델과 대화한 직후 다른 터미널에서 다음 명령을 실행합니다. ls는 디스크에 받은 모델을, ps는 현재 메모리에 올라간 모델을 보여 줍니다.
ollama ls
ollama ps
| PROCESSOR 표시 | 의미 |
|---|---|
100% CPU | 모델을 시스템 메모리에 올려 CPU로 실행 |
100% GPU | 모델을 GPU 메모리에 모두 적재 |
CPU/GPU 비율 | 모델을 시스템 메모리와 GPU 메모리에 나눠 적재 |
표의 비율은 모델의 적재 상태를 설명하며, GPU 사용률이 계속 100%라는 뜻은 아닙니다. ollama ps가 비어 있다면 다시 질문한 직후 확인하세요. 일정 시간이 지나면 모델이 메모리에서 내려갈 수 있습니다. (GPU 적재 상태 확인)
NVIDIA GPU를 사용하려는 경우에는 다음 명령으로 드라이버가 GPU를 인식하는지도 확인합니다. CPU로 실습하거나 다른 제조사 GPU를 쓰는 경우에는 실행할 필요가 없습니다.
nvidia-smi
드라이버에서 GPU를 찾지 못하면 Ollama 설정부터 바꾸기보다 드라이버와 가상머신의 GPU 전달 구성을 먼저 확인합니다. NVIDIA·AMD 등 GPU마다 지원 조건이 다르므로 공식 하드웨어 지원 목록과 대조합니다. 모델 파일 외에도 대화 내용을 담는 캐시와 실행 버퍼가 필요하므로, 다운로드 크기를 VRAM 요구량으로 그대로 계산하지 않습니다.
로컬 API로 같은 모델 호출
터미널 대화가 동작하면 같은 모델에 HTTP 요청을 보내 봅니다. API는 다른 프로그램이 Ollama에 질문하고 응답을 받는 접점이에요. 다음 명령은 Ollama가 설치된 리눅스에서 실행하며, API 키 없이 로컬 주소로 요청합니다.
curl -fsS http://127.0.0.1:11434/api/chat \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3:1.7b",
"messages": [
{
"role": "user",
"content": "리눅스에서 RAM과 디스크 공간의 차이를 세 문장으로 설명해 주세요."
}
],
"think": false,
"stream": false,
"options": {
"num_ctx": 2048
}
}'
JSON 응답의 message.content에 답변이 들어오고 done이 true인지 확인합니다. stream: false는 조각 단위 응답 대신 완성된 JSON 하나를 받는 설정입니다. think: false는 이 예제의 Qwen3에서 생각 과정 출력을 끄기 위한 설정이며, 다른 모델은 지원 여부가 다를 수 있습니다. (채팅 API, 생각 과정 제어)
num_ctx: 2048은 한 요청에서 다룰 문맥 크기를 2,048토큰으로 지정합니다. 토큰은 모델이 글을 처리하는 단위로, 한글 글자 수와 같지 않습니다. 긴 문서를 넣을 때는 더 큰 문맥이 필요할 수 있지만 메모리 부담도 늘어나므로, 첫 실습에서는 짧은 질문으로 확인합니다.
다른 PC에서 서버 모델을 사용할 때
기본 서버 주소는 127.0.0.1:11434입니다. 노트북에서 같은 주소를 호출하면 리눅스 서버가 아니라 노트북 자신을 가리킵니다. 로컬 API는 기본적으로 인증을 요구하지 않으므로, 개인 실습에서는 포트를 외부에 열기보다 SSH 터널로 연결할 수 있습니다. (기본 바인딩 주소, API 인증 범위)
SSH 클라이언트가 있는 접속 PC에서 아래 명령을 실행합니다. linuxuser와 192.0.2.10은 실제 SSH 사용자와 서버 주소로 바꿉니다. 접속 PC의 11435번 포트는 비어 있어야 합니다.
ssh -N -L 127.0.0.1:11435:127.0.0.1:11434 linuxuser@192.0.2.10
터널을 열어 둔 상태에서 접속 PC의 다른 터미널로 앞의 API 예제를 실행하되, 주소를 http://127.0.0.1:11435/api/chat으로 바꿉니다. 이 방법은 서버의 Ollama 바인딩을 바꾸지 않고 SSH 연결 안에서 요청을 전달합니다. 터널은 Ctrl+C로 종료합니다. (OpenSSH의 로컬 포트 전달 옵션)
모델 중지·삭제와 서비스 설정
대화를 끝내는 것, 메모리에서 모델을 내리는 것, 디스크 파일을 지우는 것은 서로 다른 작업입니다. 필요한 명령만 선택해 사용하세요. (CLI 관리 명령)
| 작업 | 명령 또는 입력 | 영향 |
|---|---|---|
| 현재 대화 종료 | /bye | 대화 입력 종료, 모델 파일 유지 |
| 모델 메모리 해제 | ollama stop qwen3:1.7b | 모델 파일을 남기고 실행 중인 모델을 내림 |
| 모델 파일 삭제 | ollama rm qwen3:1.7b | 로컬 모델 삭제, 다시 쓰려면 다운로드 필요 |
| Ollama 서버 중지 | sudo systemctl stop ollama | 다른 클라이언트의 API 요청도 중단 |
공식 Linux 서비스 방식의 기본 모델 저장 경로는 /usr/share/ollama/.ollama/models입니다. 직접 실행한 서버나 OLLAMA_MODELS를 지정한 환경은 다를 수 있어요. 저장 공간이 부족하면 파일을 임의로 옮기기 전에 모델 저장 위치와 오프라인 실행 안내에서 경로와 실행 계정을 함께 확인합니다.
systemd가 실행하는 Ollama의 환경변수는 일반 터미널의 export만으로 바뀌지 않습니다. 로컬 모델만 쓰도록 클라우드 기능을 끄고 싶다면 다음과 같이 서비스 설정을 편집할 수 있습니다. 이 설정은 선택 사항이며 모델 다운로드를 차단하는 기능은 아닙니다.
sudo systemctl edit ollama
편집기에서 기존 재정의 설정을 보존하며 다음 항목을 넣습니다. 같은 [Service] 구역이 이미 있다면 그 아래에 환경변수 줄을 추가합니다.
[Service]
Environment="OLLAMA_NO_CLOUD=1"
저장한 뒤 설정을 다시 읽고 서비스를 재시작합니다. 재시작 중에는 진행 중인 추론 요청이 끊길 수 있으므로 사용 중인 요청이 없는 때 적용합니다.
sudo systemctl daemon-reload
sudo systemctl restart ollama
systemctl is-active ollama
공식 FAQ는 OLLAMA_NO_CLOUD=1로 클라우드 모델과 웹 검색 기능을 끌 수 있다고 설명합니다. Linux 서비스 환경변수는 systemctl edit으로 적용하며, 설정 후 로그에서도 적용 상태를 확인합니다.
연결·다운로드·메모리 오류 확인
설치가 막혔을 때는 서버 연결, 모델 다운로드, 추론 실행을 나눠 확인하면 원인을 좁히기 쉬워요. 먼저 서비스 상태와 최근 로그를 보고, 실제로 어느 단계에서 실패했는지 확인합니다. (Ollama 문제 해결 문서)
systemctl status ollama --no-pager
sudo journalctl -u ollama -n 80 --no-pager
curl -fsS http://127.0.0.1:11434/api/tags
| 증상 | 먼저 확인할 항목 | 다음 조치 |
|---|---|---|
ollama: command not found | 설치 스크립트 완료 여부와 command -v ollama | 설치 오류와 실행 파일 경로 확인 |
connection refused | 서비스 상태, 실행한 PC와 요청 주소 | 서버 시작 후 로컬 API 재확인 |
address already in use | 기존 Ollama 서비스나 다른 프로세스의 11434 사용 | 실행 중인 서버 확인, 중복 실행 정리 |
| 모델을 찾지 못함 | ollama ls와 태그 철자 | 같은 서버에서 정확한 태그로 pull |
| 모델 다운로드 실패 | DNS·HTTPS 연결, 프록시·CA 인증서, 저장 공간 | 실패 로그 확인 후 같은 pull 재시도 |
| 메모리 부족·느린 응답 | free -h, ollama ps, 대화 문맥 크기 | 더 작은 모델과 짧은 입력으로 비교 |
서비스가 등록되지 않았다는 메시지가 나오면 설치가 끝났는지와 PID 1이 systemd인지 확인합니다. systemd 없이 수동으로 실행하는 환경에서는 한 터미널에서 ollama serve를 유지하고 다른 터미널에서 모델을 실행합니다. 이 글의 서비스 관리 명령과 섞어서 서버를 중복 실행하지 않습니다.
메모리가 빠듯하다면 qwen3:0.6b를 별도로 내려받아 비교합니다. 바꿀 때는 pull·run 명령과 API의 model 값을 같은 태그로 맞춥니다. GPU 지원을 확인하지 않은 상태에서 드라이버를 반복 설치하거나, 다운로드 오류를 해결하려고 인증서 검증을 끄는 방식은 피합니다.
관련 글과 공식 문서
첫 답변과 API 응답까지 확인했다면 사용할 작업의 짧은 입력을 하나 정해 모델을 비교해 보세요. 브라우저에서 대화하고 싶다면 Open WebUI와 Ollama 연결을, 프로그램에서 호출하려면 Python으로 Ollama API 호출하기를 이어서 볼 수 있습니다. Windows를 기준으로 구성한 Local LLM 전체 연재도 모델 선택과 API 학습에 참고할 수 있습니다.
문서·모델 태그 확인 기준: 2026년 10월 22일. 이 글은 공식 문서와 설치 스크립트를 확인해 작성한 실행 안내입니다. Ubuntu·Rocky Linux의 설치부터 모델 응답까지 전 과정을 실제 장비에서 실행하거나 GPU 성능을 측정한 기록은 포함하지 않습니다.




답글 남기기