VPS에서 GLM 5.2 실행 가능 여부 및 권장 모델
Ollama의 GLM 5.2는 클라우드 전용 모델로 VPS에서 직접 구동할 수 없습니다. 7560억 파라미터의 메모리 요구 사항을 분석하고, 자체 호스팅이 가능한 GLM 모델의 태그별 RAM 사용량과 최적의 실행 환경을 설정하는 방법을 상세히 안내합니다.
VPS에서 GLM 5.2를 실행할 수 있습니까?
아니요. 서버를 대여하기 전에 그 이유를 알아두어야 합니다. 2026년 8월 18일 기준으로 Ollama 라이브러리의 GLM 5.2는 glm-5.2:cloud 태그 하나만 제공합니다. :cloud 태그는 Ollama 서버에서 실행됩니다. 사용자의 서버는 프롬프트를 전송하고 토큰을 수신할 뿐이며, 모델 가중치는 사용자의 디스크에 저장되지 않습니다. 해당 모델은 7560억 개의 파라미터로 구성되어 있습니다. 7560억 개의 파라미터에 대해 파라미터당 4비트를 계산하면 가중치만 약 378 GB가 필요하며, 이는 컨텍스트, 활성화 값, 운영체제를 고려하기 전의 단순 산술 결과입니다. 일반적인 VPS 요금제 중 이 정도의 메모리를 제공하는 상품은 없습니다.
대여한 서버에서 실행 가능한 GLM 모델은 glm-4.7-flash입니다. 이 모델은 4개의 태그로 가중치를 다운로드할 수 있게 공개되어 있습니다. 이 모델은 전문가 혼합(Mixture-of-Experts) 방식이므로 토큰당 네트워크의 일부만 실행됩니다. Z.ai는 이를 30B-A3B 모델로 설명합니다. 즉, 전체 파라미터는 300억 개이지만 토큰당 활성화되는 파라미터는 약 30억 개입니다. 따라서 이 가이드는 실제로 실행 가능한 모델을 기준으로 작성되었습니다. 태그를 고정하고, 서버 사양을 결정하고, 직접 속도를 측정하며, 엔드포인트를 비공개로 유지하십시오.
여기에 포함된 명령어를 복사하기 전에 반드시 태그를 확인하십시오. Ollama 라이브러리는 예고 없이 변경됩니다. glm-4.7-flash 태그 목록을 열어 해당 태그가 여전히 존재하는지 확인하십시오. 로컬 가중치를 포함한 더 새로운 GLM 릴리스가 나왔다면 그것을 우선적으로 사용하고, 실제로 테스트한 태그를 기록해 두십시오.
그럼에도 불구하고 GLM 5.2를 사용하고 싶다면 ollama signin 이후에 ollama run glm-5.2:cloud를 실행할 수 있으며, 클라이언트 측에서는 다른 Ollama 모델과 동일하게 동작합니다. 단, 프롬프트가 서버 외부로 전송된다는 점을 인지해야 합니다. 데이터를 반드시 로컬 머신에 유지해야 한다는 이유로 자체 호스팅을 고려하는 것이라면, :cloud 태그는 해당 목적에 부합하지 않습니다.
어떤 GLM 태그가 존재하며, 무엇을 고정해야 하는가
여기서는 세 가지 공식 GLM 항목이 중요합니다. glm-5.2과 glm-5.1은 클라우드 전용입니다. glm-4.7-flash는 로컬용이며, 다음은 Ollama에 게시된 각 태그와 다운로드 크기입니다.
The data behind this chart
[
{
"label": "q4_K_M",
"download_gb": 19
},
{
"label": "latest",
"download_gb": 19
},
{
"label": "q8_0",
"download_gb": 32
},
{
"label": "bf16",
"download_gb": 60
}
]위 수치는 라이브러리 페이지에 게시된 값이며 실제 측정값이 아닙니다. latest과 q4_K_M은 모두 19 GB로 표시되어 있으므로, latest는 현재 Q4 빌드로 연결됩니다. 이 설정은 재게시 시점에 변경될 수 있으므로, 스크립트나 Dockerfile에 ollama pull glm-4.7-flash을 그대로 작성해서는 안 됩니다. 양자화 버전을 명시하십시오. 가장 큰 태그인 bf16은 60 GB를 다운로드하며, 양자화되지 않은 bfloat16 가중치를 포함합니다.
라이브러리에서 검색하면 someuser/glm-5.2와 같이 이름에 슬래시가 포함된 네임스페이스 업로드 항목도 나타납니다. 슬래시는 사용자 계정이 게시했음을 의미하며, 이는 공식 항목이 아닌 커뮤니티 재업로드 버전입니다. 내부에 어떤 가중치가 포함되어 있는지 보장할 수 없습니다. 이러한 항목은 온라인에서 발견한 서명되지 않은 바이너리를 다루는 것과 동일한 방식으로 취급하십시오.
Ollama 설치 및 특정 태그 풀(pull)
Ollama의 Linux 설치 프로그램은 단일 명령어로 실행됩니다.
curl -fsSL https://ollama.com/install.sh | sh
ollama --version설치 프로그램은 ollama 사용자로 실행되는 systemd 서비스를 생성합니다. 모델을 풀(pull)하기 전에 서비스가 시작되었는지 확인하십시오.
systemctl status ollama --no-pagerActive: active (running)은 API가 11434 포트에서 대기 중임을 의미합니다. 만약 유닛이 존재하지 않는다면, 설치 프로그램이 일반 바이너리 설치로 대체된 것이므로 Ollama Linux 문서를 참조하여 서비스 파일을 직접 생성해야 합니다.
glm-4.7-flash 페이지에는 최소 Ollama 버전이 명시되어 있습니다. 이전 버전의 바이너리는 모델을 느리게 실행하는 것이 아니라, 아예 실행을 거부합니다. 즉, 모델이 더 최신 버전의 Ollama를 요구한다는 메시지와 함께 풀(pull)이 실패합니다. 이 경우 설치 스크립트를 다시 실행하여 업그레이드하십시오. 2026년 8월 18일 기준 최신 릴리스는 0.32.14이며, 이는 최소 요구 사항을 충분히 충족합니다.
이제 이름으로 태그 하나를 풀(pull)하십시오.
ollama pull glm-4.7-flash:q4_K_M
ollama lsollama ls 명령을 실행하면 19 GB에 가까운 크기의 glm-4.7-flash:q4_K_M가 목록에 표시되어야 합니다. 중간에 풀(pull)이 중단되면 실행 가능한 파일이 남지 않으므로, 동일한 명령을 다시 실행하십시오. 소규모 플랜에서 풀(pull)이 실패하는 가장 흔한 원인은 네트워크 문제가 아니라 디스크 용량 부족입니다. 모델은 루트 파일 시스템의 /usr/share/ollama/.ollama/models에 기록되기 때문입니다. 시작하기 전에 df -h /usr/share/ollama 명령으로 용량을 확인하십시오.
각 양자화 단계별로 필요한 RAM 용량은 어느 정도입니까?
다운로드 크기를 최소 기준으로 잡고 여기에 추가 용량을 더해야 합니다. 가중치는 반드시 메모리에 상주해야 합니다. 그 위로 KV 캐시(key/value cache)가 올라갑니다. 이는 런타임이 대화 중인 토큰을 기억하기 위해 사용하는 메모리이며, 여기에 연산 버퍼와 운영체제가 사용하는 메모리가 추가됩니다. RAM이 정확히 19 GB인 장비에서는 19 GB 태그 모델을 실행할 수 없습니다.
모두에게 적용되는 단일 승수는 존재하지 않습니다. KV 캐시 크기는 허용하는 컨텍스트 길이에 따라 증가하며, 나머지 요소는 런타임 버전에 따라 달라지기 때문입니다. 따라서 추측하지 말고 측정하십시오. 간단한 프롬프트로 모델을 로드한 뒤 서버가 예약한 메모리 양을 확인하십시오.
ollama run glm-4.7-flash:q4_K_M "Reply with the single word: ready"
ollama psollama ps는 로드된 모델을 SIZE 열과 PROCESSOR 열을 포함하여 출력합니다. SIZE는 런타임이 실제로 예약한 메모리이며, 이 값을 기준으로 계획을 세워야 합니다. PROCESSOR은 작업이 수행되는 위치를 알려주며, 100% CPU은 GPU가 전혀 사용되지 않았음을 의미합니다.
모델이 메모리에 맞지 않으면 오류는 조용히 발생하며 두 가지 형태로 나타납니다. 스왑(swap)이 활성화된 경우 로드는 성공한 것처럼 보이지만 토큰마다 디스크와 RAM 사이에서 페이지가 이동하므로 생성 속도가 매우 느려집니다. 스왑이 없으면 프로세스가 즉시 종료되며, journalctl -k | grep -i "out of memory"은 커널의 Out of memory: Killed process 라인을 통해 ollama을 명시합니다. 터미널에는 유용한 메시지가 출력되지 않으므로 두 경우 모두 확인해야 합니다.
19 GB Q4 태그에서 32 GB Q8 태그로 넘어가는 것이 메모리 사용량을 조절하는 핵심 수단입니다. Q4는 출력 품질의 저하를 동반하며, 그 정도는 작업 유형에 따라 다릅니다. 구조화된 출력이나 긴 추론 과정이 필요한 작업은 일반적인 대화보다 품질 저하가 더 심합니다. Q4, Q8, FP16의 실제 차이점 문서는 결정을 내리기 전에 읽어볼 가치가 있습니다. CPU 전용 VPS 환경에서는 양자화 선택 여부가 모델 실행 가능 여부를 결정짓는 경우가 많기 때문입니다.
CPU 전용 VPS에서 발생하는 현상
대부분의 VPS 플랜에는 GPU가 포함되어 있지 않으며, Ollama는 별도의 경고 없이 CPU에서 모델을 실행합니다. 결과물의 사용 가능 여부는 작업 부하와 사용자의 인내심에 달려 있습니다.
Mixture-of-experts(MoE) 설계는 속도 향상에 도움을 줍니다. 300억 개의 파라미터 중 토큰당 약 30억 개 정도만 사용되므로, 토큰당 필요한 연산량은 밀집형 30B 모델보다 훨씬 적습니다. 하지만 줄어들지 않는 것은 메모리 요구량입니다. 라우터가 다음 토큰을 위해 언제든 전문가 모델을 선택할 수 있어야 하므로 모든 전문가 모델이 메모리에 상주해야 합니다. 따라서 CPU 전용 서버에서도 Q4 태그를 사용하려면 여전히 전체 19 GB 이상의 메모리가 필요하며, 처리량은 클럭 속도보다는 주로 메모리 대역폭에 의해 결정됩니다.
이로 인해 실질적인 결과가 나타납니다. 코어 수와 RAM 용량이 같은 두 플랜이라도 메모리 하위 시스템의 차이로 인해 생성 속도가 눈에 띄게 다를 수 있습니다. 공유형 플랜은 변수가 하나 더 추가되는데, 이웃 서버의 간섭으로 인한 CPU 점유 시간이 발생하면 초당 토큰 생성 속도가 시간대별로 변하기 때문입니다. 이것이 다른 사람이 공개한 수치가 사용자의 환경을 예측하지 못하는 이유이며, 다음 섹션에 결과 표 대신 측정 방법론을 제시하는 이유입니다.
초당 토큰 처리량 측정하기
Ollama의 generate 엔드포인트는 최종 JSON 객체에 시간 측정 필드를 반환합니다. 생성된 토큰 수를 생성에 소요된 시간으로 나누면 현재 플랜과 프롬프트 환경에서의 처리량을 확인할 수 있습니다.
sudo apt install -y jq
curl -s http://localhost:11434/api/generate -d '{
"model": "glm-4.7-flash:q4_K_M",
"prompt": "Write a 200 word explanation of how TCP congestion control works.",
"stream": false,
"options": {"num_ctx": 8192}
}' | jq '{
tokens: .eval_count,
tokens_per_second: (.eval_count / .eval_duration * 1e9),
prompt_seconds: (.prompt_eval_duration / 1e9),
load_seconds: (.load_duration / 1e9)
}'eval_count은 생성된 토큰의 수이며 eval_duration는 생성에 소요된 나노초 단위의 시간입니다. 따라서 eval_count / eval_duration * 1e9은 초당 토큰 처리량을 의미합니다. prompt_eval_duration는 프롬프트를 읽는 데 걸린 시간으로, 사용자가 첫 번째 토큰이 나타나기 전까지 기다리는 체감 대기 시간입니다. load_duration는 모델을 디스크에서 불러오는 데 소요된 시간이며, 재시작 후 첫 번째 호출 시에는 값이 크지만 이후에는 거의 0에 가깝습니다.
세 번 실행하여 두 번째와 세 번째 결과를 기록하십시오. 첫 번째 결과에는 모델 로딩 시간이 포함되기 때문입니다. 그 후 훨씬 긴 프롬프트로 다시 실행해 보십시오. 프롬프트 처리 속도는 입력 길이에 따라 달라지지만 생성 속도는 그렇지 않기 때문입니다. 측정된 수치를 플랜 이름과 양자화 방식 옆에 기록하십시오. 이 기록은 외부 벤치마크보다 훨씬 가치가 있습니다. 귀하가 비용을 지불하고 사용하는 하드웨어에서 직접 측정한 결과이기 때문입니다.
컨텍스트 길이가 메모리 사용량을 늘리는 방식
Ollama는 기본적으로 4096 토큰의 컨텍스트를 사용합니다. 모델은 glm-4.7-flash의 경우 198K 토큰까지 지원한다고 명시하지만, 기본 설정은 그렇지 않으며 이를 활성화하는 데는 비용이 따릅니다.
KV 캐시는 모든 레이어에서 각 토큰에 대한 키 벡터와 값 벡터를 하나씩 보관합니다. 캐시 크기는 허용하는 토큰 수에 비례하여 선형적으로 증가합니다. 4096에서 32768 토큰으로 늘리면 컨텍스트가 8배가 되므로, KV 캐시도 대략 8배가 됩니다. 모델 가중치만 겨우 적재할 수 있는 서버라면, 이 추가 할당량이 정확히 스왑(swap)을 유발하는 원인이 됩니다. 짧은 프롬프트에는 잘 응답하던 기기가 긴 문서를 붙여넣는 순간 급격히 느려지는 이유가 바로 이것입니다.
위의 curl 명령 예시처럼 options 객체 내 num_ctx을 사용하여 요청별로 설정하거나, 서버 기본값을 변경하십시오.
sudo install -d -m 755 /etc/systemd/system/ollama.service.d
printf '[Service]\nEnvironment="OLLAMA_CONTEXT_LENGTH=16384"\n' \
| sudo tee /etc/systemd/system/ollama.service.d/override.conf
sudo systemctl daemon-reload
sudo systemctl restart ollama
systemctl show ollama --property=Environment마지막 명령을 실행하면 OLLAMA_CONTEXT_LENGTH 값이 출력되어야 합니다. 만약 Environment=가 비어 있다면, 오버라이드 파일의 경로가 잘못되었거나 리로드 과정이 누락된 것입니다. 다음 모델 로드 이후, ollama ps을 확인하면 4096일 때보다 눈에 띄게 커진 SIZE 값을 볼 수 있습니다. 값을 단계적으로 높이면서 매번 해당 수치를 확인하십시오. num_ctx를 이용한 Ollama 컨텍스트 길이 설정에서는 이 설정이 keep-alive 및 병렬 요청과 어떻게 상호작용하는지 다룹니다. 두 경우 모두 동일한 메모리 비용을 배가시킵니다.
API가 박스형 서버보다 저렴한 경우
셀프 호스팅이 항상 더 저렴한 것은 아니며, 이 제품군에서는 공개된 정가가 그 점을 매우 명확하게 보여줍니다.
The data behind this chart
[
{
"label": "GLM-5.2 input",
"usd_per_million_tokens": 1.4
},
{
"label": "GLM-5.2 output",
"usd_per_million_tokens": 4.4
},
{
"label": "GLM-4.7-Flash input",
"usd_per_million_tokens": 0
},
{
"label": "GLM-4.7-Flash output",
"usd_per_million_tokens": 0
}
]2026년 8월 18일 기준으로, Z.ai는 GLM-5.2의 가격을 입력 토큰 백만 개당 $1.4$, 출력 토큰 백만 개당 $4.4$로 책정하고 있습니다. 이 가이드에서 로컬로 실행하는 모델인 GLM-4.7-Flash의 경우, 입출력 모두 백만 토큰당 $0$입니다. 이는 공개된 가격이며 변동될 수 있으므로, 예산을 계획하기 전에 반드시 현재 페이지를 확인하십시오.
따라서 현재 시점에서 셀프 호스팅 glm-4.7-flash의 비용 효율성 논리는 설득력이 낮습니다. 충분한 RAM을 갖춘 VPS는 매달 실제 비용이 발생하지만, 게시자는 동일한 모델을 무료로 제공하기 때문입니다. 직접 실행함으로써 얻는 가치는 다른 곳에 있습니다. 프롬프트가 사용자가 제어하는 머신 내에 머무르며, 사용자가 직접 변경하지 않는 한 모델 버전이 절대 바뀌지 않는다는 점입니다. 이것이 셀프 호스팅을 하는 타당한 이유입니다. 적어도 이 모델과 이 가격대에서는 비용 절감이 그 이유가 될 수 없습니다.
원하는 모델이 무료가 아니거나, 데이터가 법적 규제로 인해 내부 네트워크를 벗어날 수 없는 경우에는 계산이 달라집니다. GPU VPS와 API 토큰 간의 손익분기점에서는 각 변수를 지정하여 해당 계산 과정을 다룹니다. 여전히 머신을 선택하는 중이라면, VPS의 실제 월간 비용이 계산의 나머지 절반을 차지합니다.
엔드포인트를 localhost로 유지하기
이 단계는 사람들이 가장 많이 건너뛰지만, 가장 중요한 부분입니다.
Ollama는 기본적으로 127.0.0.1의 11434 포트에 바인딩되므로 서버 자체에서만 접근할 수 있습니다. 추측하지 말고 본인의 서버에서 직접 확인하십시오.
ss -ltnp | grep 11434127.0.0.1:11434이 출력되어야 합니다. 0.0.0.0:11434나 *:11434가 보인다면 API가 공용 인터페이스를 포함한 모든 인터페이스에서 수신 대기 중이라는 의미입니다.
이는 Ollama API에 인증 기능이 없기 때문에 중요합니다. 비밀번호, 토큰, 허용 목록이 전혀 없습니다. 11434 포트에 접근할 수 있는 사람은 누구나 모델 목록을 조회하고, 사용자가 비용을 지불하는 하드웨어에서 생성 작업을 실행하고, 디스크가 찰 때까지 새로운 모델을 내려받거나 기존 모델을 삭제할 수 있습니다. 11434 포트는 고정되어 널리 알려져 있으므로 스캐너가 열린 포트를 빠르게 찾아냅니다.
OLLAMA_HOST=0.0.0.0을 설정하지 마십시오. 많은 튜토리얼에서 노트북의 클라이언트가 연결되지 않을 때 이 설정을 해결책으로 제시하지만, 이는 잘못된 방법입니다. 대신 포트 포워딩을 사용하십시오.
ssh -N -L 11434:127.0.0.1:11434 you@your-server이 명령은 SSH를 통해 노트북의 11434 포트를 서버의 루프백 주소로 매핑하므로, http://localhost:11434로 설정된 클라이언트는 변경 없이 작동하며 새로운 포트가 외부로 노출되지 않습니다. 여러 사람이나 여러 대의 기기를 사용한다면 서버를 사설 터널 네트워크에 두고 Ollama를 0.0.0.0이 아닌 터널 주소에 바인딩하십시오.
서버가 아닌 다른 곳에서 확인하십시오. SSH 터널을 닫은 상태에서 노트북으로 다음을 실행합니다.
curl -m 5 http://your-server-ip:11434/api/tagscurl: (28) Connection timed out 또는 curl: (7) Failed to connect이 올바른 결과입니다. 모델의 JSON 목록이 출력된다면 포트가 인터넷에 열려 있는 것이므로 즉시 수정해야 합니다. 제공업체의 네트워크 방화벽은 서버에서 실행 중인 방화벽과는 별개의 제어 수단이므로 둘 다 확인하십시오. VPS 호스팅의 안전성에 관한 더 넓은 질문에서 상시 가동되는 머신의 기본 보안 사항을 다룹니다.
glm-4.7-flash 모델이 여전히 너무 큰 경우
Q4 태그가 사용 중인 플랜의 사양에 맞지 않을 때는 컨텍스트를 줄이는 것이 아니라 더 작은 모델을 선택해야 합니다. 모델을 억지로 구겨 넣으려고 컨텍스트를 줄이면, 모델이 로드되기는 하지만 긴 프롬프트를 처리하는 첫 단계에서 실패하게 됩니다. VPS에서 Qwen 3 8B 및 27B 실행하기는 소규모 서버에 적합한 크기로 동일한 설치 과정을 안내하며, Ollama를 사용하여 VPS에서 LLM을 셀프 호스팅하는 일반 가이드는 어떤 모델을 선택하든 변하지 않는 공통적인 부분을 다룹니다. 어떤 모델을 선택하든 태그를 고정하고, 자신의 플랜에서 성능을 측정하며, 엔드포인트는 루프백(loopback)으로 설정하십시오.
FAQ
Can GLM 5.2 run locally on a VPS?
No. As of 18 August 2026, GLM 5.2 exists in Ollama's library only as glm-5.2:cloud, a tag that runs on Ollama's own infrastructure and needs ollama signin before it will work. The model is 756 billion parameters, so even at four bits per parameter the weights alone come to hundreds of gigabytes, far past what any standard VPS plan offers. The GLM model with downloadable weights that fits a rented server is glm-4.7-flash.
How much RAM does glm-4.7-flash need?
Treat the tag's download size as a floor and add room for the KV cache and the operating system on top. Ollama lists the Q4 tag at 19 GB, Q8 at 32 GB, and the bfloat16 tag at 60 GB. No fixed multiplier is right for everyone, because the KV cache grows with the context length you set. Load the model, run ollama ps, and read the SIZE column for the real figure on your own box.
How do I measure tokens per second on my own VPS?
Send one request to http://localhost:11434/api/generate with "stream": false, then read eval_count and eval_duration from the response. Tokens per second is eval_count / eval_duration * 1e9, because eval_duration is reported in nanoseconds. Discard the first run, since load_duration on that one includes reading the weights from disk. Repeat with a long prompt as well, because prompt_eval_duration grows with input length while generation speed does not.
Why should I not set OLLAMA_HOST to 0.0.0.0?
Because Ollama's API has no authentication, so binding it to 0.0.0.0 places an unauthenticated endpoint on the public internet. Anyone who reaches port 11434 can generate on your hardware and change which models are installed. Keep the default 127.0.0.1 bind, check it with ss -ltnp | grep 11434, and reach the API from your laptop over an SSH tunnel such as ssh -N -L 11434:127.0.0.1:11434 you@your-server.