본문으로 건너뛰기
effidevFlutter · Cloudflare 엣지 · 클라우드 비용 최적화

파라미터 그대로 익스플로잇 3.6배, GLM-5.3 공개

effidev

크기가 같은 두 개의 모델 덩어리 중 한쪽만 능력이 커진 구조를 나타낸 일러스트

“모델을 더 크게 만들지 않고도 더 똑똑하게 만들 수 있나?”

이 질문에 회사들은 늘 그렇다고 답해 왔다. 문제는 그 말을 확인할 방법이 없었다는 점이다. 가중치(모델이 학습한 숫자 덩어리)를 공개하지 않으면 크기가 정말 그대로인지 밖에서는 알 수가 없다.

그런데 이번엔 확인할 수 있게 됐다. Z.AI가 GLM-5.3의 가중치를 Hugging Face에 실제로 올렸고, 직전 버전인 GLM-5.2도 같은 자리에 그대로 있다. 두 리포의 파일 정보를 나란히 놓고 대조하면 된다.

이 글은 오픈 모델을 직접 돌려 보거나 도입을 검토하는 사람을 위한 것이다. 벤치마크 점수를 옮겨 적는 대신, 리포에 실제로 올라온 파일을 열어 세 가지를 확인한다. 회사 주장대로 정말 크기가 같은지, 내 장비나 회사 서버에 올릴 수 있는 물건인지, 그리고 라이선스가 그걸 허락하는지.

세 번째가 이번엔 특히 중요하다. 조용히 바뀌었기 때문이다.

8월 14일에 “2주 뒤”라고 했던 그 파일

Z.AI가 GLM-5.3을 발표한 건 8월 14일이다. 그때 공개된 건 성능 수치뿐이었고, 가중치는 “2주 뒤”라고만 했다.

실제로 리포가 만들어진 건 8월 25일, 파일이 최종적으로 올라간 건 8월 28일 15시 22분(UTC) 이다. 한국 시각으로는 8월 29일 새벽 0시 22분이니 예고한 2주에서 하루 정도 지난 셈이다.

예고만 하고 조용히 미뤄지는 사례가 흔하다는 걸 생각하면 이건 지킨 쪽에 가깝다. 우리가 Qwen3.8-Max 가중치를 기다렸을 때는 “다음 주”가 지나도록 새 날짜조차 나오지 않았다.

리포 주소는 zai-org/GLM-5.3이다. 글을 쓰는 시점에 좋아요가 1,138개 붙어 있다.

753,329,940,480이라는 숫자가 두 번 나온다

Hugging Face는 리포마다 파일 안에 든 숫자(파라미터)의 개수를 세어서 알려준다. 사람이 적어 넣는 소개글이 아니라 파일을 실제로 읽어서 나오는 값이라, 회사가 뭐라고 쓰든 여기는 못 속인다.

두 리포의 값을 나란히 놓으면 이렇다.

항목 GLM-5.2 GLM-5.3
총 파라미터 753,329,940,480개 753,329,940,480개
저장 형식 BF16 (2바이트) FP8 E4M3 (1바이트) 99.72%
safetensors 파일 수 282개 141개
다운로드 용량 1,506.7GB 755.6GB

총 파라미터가 자리 하나까지 완전히 같다. 7,533억 개에서 한 개도 늘지도 줄지도 않았다.

모델 카드 첫 줄에 적힌 “GLM-5.3은 GLM-5.2와 같은 베이스 모델을 쓰며, 모든 향상은 포스트트레이닝에서 나왔다”는 문장이 그냥 마케팅 문구가 아니라는 뜻이다. 포스트트레이닝은 이미 만들어진 모델을 데이터와 피드백으로 더 다듬는 단계를 말한다. 새로 짓는 게 아니라 이미 지은 건물의 내부를 고치는 쪽에 가깝다.

숫자가 우연히 비슷한 게 아니라 끝 세 자리까지 똑같다. 이런 일치는 같은 베이스 모델이 아니면 나오지 않는다.

그런데 파일 크기는 정확히 절반이 됐다

여기서 재미있는 게 하나 더 나온다. 파라미터 개수가 같은데 다운로드 용량은 1,506.7GB에서 755.6GB로 줄었다. 파일 개수도 282개에서 141개로 딱 절반이다.

이유는 저장 형식이다. GLM-5.2는 숫자 하나를 2바이트로 저장하는 BF16을 썼고, GLM-5.3은 1바이트짜리 FP8로 저장했다. 숫자의 개수는 그대로인데 숫자 하나를 담는 그릇이 절반으로 작아진 것이다.

정확히는 전체의 99.72%(751,226,191,872개)가 FP8이고, 나머지 0.28%만 BF16으로 남았다. 남은 부분은 값이 조금만 흔들려도 결과가 크게 망가지는 자리들이라 일부러 정밀도를 유지한 것으로 보인다.

여기서 중요한 실무 포인트가 하나 있다. 이건 남이 나중에 줄인 게 아니라 회사가 처음부터 FP8로 배포한 것이다.

보통 큰 모델은 공개된 뒤에 커뮤니티가 용량을 줄인 버전을 따로 만든다. 그 과정에서 원본과 결과가 달라지는 일이 생기는데, 같은 가중치를 쓰고도 토큰의 절반이 뒤집힌 사례를 이전에 다룬 적이 있다. 회사가 직접 FP8로 내면 그 불확실성이 한 겹 줄어든다.

사이버 항목만 유독 튄다

성능 표에서 GLM-5.2 대비 상승폭을 보면 항목마다 온도가 다르다. 대부분은 올랐지만, 보안 관련 항목의 상승폭이 눈에 띄게 크다.

벤치마크 GLM-5.2 GLM-5.3 배수
ExploitGym (2시간) 29 105 3.62배
ExploitGym (6시간) 39 130 3.33배
ExploitBench 24.4 54.4 2.23배
Terminal Bench 3.0 4.6 28.3 6.15배
AutomationBench 26.2 48.2 1.84배
CyberGym 77.2 84.5 1.09배

용어부터 풀고 가자. CyberGym은 프로그램에서 취약점(공격당할 수 있는 허점)을 찾아내는 능력을 재고, ExploitGym과 ExploitBench는 찾아낸 허점을 실제로 뚫는 데까지 가는 능력을 잰다. 앞쪽이 “문제를 발견하는 시험”이라면 뒤쪽은 “발견한 문제로 실제 침입까지 해내는 시험”이다.

ExploitGym의 2시간·6시간은 시간 제한을 뜻한다. 모델마다 답을 내놓는 속도가 다르니, 초당 처리 속도를 기준으로 환산해서 “2시간 안에 몇 문제를 풀었나”를 센다.

발견은 1등, 침입은 아직 진다

여기서 흔한 오해가 하나 생길 수 있어서 짚고 간다. “오픈 모델이 보안에서 1등”이라는 말은 절반만 맞다.

취약점을 찾는 CyberGym에서는 실제로 GLM-5.3이 표 전체 1등이다. 84.5점으로 GPT-5.6 Sol(83.6), Fable 5(83.8), DeepSeek-V4 Pro(83.3), Opus 4.8(78.1)을 모두 앞선다. 가중치를 받아 갈 수 있는 모델이 이 항목에서 닫힌 모델들 위에 올라간 건 처음 보는 그림이다.

그런데 실제로 뚫는 단계로 넘어가면 순서가 뒤집힌다.

모델 ExploitBench ExploitGym (2h / 6h)
GPT-5.6 Sol 76.5 216 / 293
Fable 5 78.0 181 / 247
Opus 4.8 40.0 80 / 120
GLM-5.3 54.4 105 / 130
Kimi K3 32.2 36 / 70

ExploitBench에서 Fable 5가 78.0인데 GLM-5.3은 54.4다. ExploitGym 6시간 기준으로는 GPT-5.6 Sol이 293문제, GLM-5.3이 130문제로 2배 넘게 벌어진다.

정리하면 이렇다. 허점을 찾아내는 데까지는 오픈 모델이 따라잡았고, 그걸 실제 공격으로 완성하는 데는 아직 격차가 남아 있다.

3.6배라는 상승폭은 그래서 “1등이 됐다”는 뜻이 아니라 **“뒤에 있던 모델이 갑자기 중간까지 올라왔다”**는 뜻으로 읽어야 한다. 오픈 모델을 쓰는 보안 팀 입장에서는 이 중간 지점이 실무적으로 꽤 큰 변화지만, 최고 성능이 필요한 자리에서는 아직 선택지가 아니다.

만든 쪽도 “예상보다 빨랐다”고 적었다

이 부분이 개인적으로 가장 눈에 띄었다. 모델 카드에 Z.AI가 이렇게 적어 뒀다.

포스트트레이닝을 키우자 사이버 능력이 우리 예상보다 빠르게 발달했다.

성능이 좋아졌다는 자랑이 아니라 **“의도한 것보다 많이 올랐다”**는 서술이다. 보안 능력이 오르는 건 방어에도 쓰이지만 공격에도 쓰인다. 만든 쪽이 예상 범위를 벗어났다고 문서에 남긴 것 자체가, 지금 이 분야가 어디쯤 와 있는지를 보여준다.

새로 학습시킨 데이터를 늘린 것도 아니고 모델을 키운 것도 아닌데, 다듬는 단계만 강화했더니 특정 능력이 튀어 올랐다는 뜻이기도 하다.

이긴 표와 진 표를 같이 놓으면

한쪽만 보여주면 광고가 되니 진 항목도 같이 본다. 모델 카드 표에서 GLM-5.3이 1등인 항목과 아닌 항목을 나누면 이렇다.

GLM-5.3이 표 전체 1등인 항목 (3개)

벤치마크 GLM-5.3 2위
CyberGym 84.5 Fable 5 · 83.8
AutomationBench 48.2 Kimi K3 · 46.7
GDPval-AA v2 1769 Fable 5 · 1743

GLM-5.3이 진 주요 항목

벤치마크 GLM-5.3 1등
Terminal Bench 3.0 28.3 GPT-5.6 Sol · 34.6
DeepSWE (v1.1) 66.9 GPT-5.6 Sol · 72.7
NL2Repo 58.0 Opus 4.8 · 69.7
ProgramBench 19.0 Fable 5 · 33.0
FrontierSWE 78.1 Fable 5 · 88.2
HLE w/ Tools 62.5 GPT-5.6 Sol · 64.5

Terminal Bench 3.0은 GLM-5.2의 4.6점에서 28.3점으로 6배 넘게 뛴 항목인데도 여전히 1등과는 6점 넘게 차이가 난다. 그만큼 이 시험 자체가 아직 아무도 잘 못 푸는 영역이라는 뜻이다.

ProgramBench는 19.0인데 Fable 5가 33.0이다. 여기는 격차가 1.7배로 가장 크게 남아 있는 자리다.

요약하면 자동화와 취약점 탐지에서는 앞서고, 긴 호흡의 코딩 작업에서는 뒤진다.

MIT였던 라이선스가 바뀌었다

여기가 이번 공개에서 실무적으로 가장 중요한 변화인데, 표에도 발표문에도 안 나온다. 리포 파일을 열어야 보인다.

모델 라이선스
GLM-5.2 MIT
GLM-5.3-Flash MIT
GLM-5.3 GLM-5.3 License (자체 라이선스)

같은 회사가 같은 달에 낸 세 모델인데 본체만 다르다. 8월 26일에 공개된 GLM-5.3-Flash는 MIT였다. 며칠 뒤에 나온 본체는 아니다.

MIT는 “출처만 남기면 사실상 뭘 해도 된다”에 가까운 라이선스라, 오픈 모델을 고를 때 사람들이 안심하고 넘어가는 조건이다. 자체 라이선스로 바뀌었다는 건 그 안심을 한 번은 확인해 봐야 한다는 뜻이다.

바뀐 조항이 실제로 걸리는 사람

그래서 라이선스 원문을 읽어 봤다. 결론부터 말하면 대부분의 사람에게는 MIT와 똑같다.

본문 구조가 MIT를 거의 그대로 가져왔다. 사용·복사·수정·병합·배포·재라이선스·판매, 그리고 실행·배포·파인튜닝·파생 모델 제작까지 전부 허용한다. 여기까지는 MIT와 다를 게 없다.

추가된 건 조항 하나다. 조건이 두 개 붙어 있고, 두 개를 동시에 만족할 때만 발동한다.

  1. “모델을 서비스로 제공하는 사업”(Model as a Service)을 운영하고 있을 것
  2. 그 회사와 계열사의 12개월 합산 매출이 100억 달러(원화로 약 14조 원)를 넘을 것

이 둘을 모두 만족하면, 상업적으로 쓰기 전에 Z.AI의 보안 심사를 통과해야 한다.

조항이 친절한 건 “모델을 서비스로 제공하는 사업”이 무엇인지 라이선스가 직접 정의해 뒀다는 점이다. 제3자가 입력·파라미터·학습 데이터를 실질적으로 조작할 수 있게 열어 주는 형태(예: API 판매)를 말한다. 그리고 두 가지는 명시적으로 제외한다.

즉 내 서비스 안에 기능으로 넣는 건 해당하지 않는다. 사내 도구도, 개인 프로젝트도, 스타트업도 마찬가지다. 연 매출 14조 원을 넘기면서 모델 API를 파는 회사가 아니라면 이 조항은 그냥 지나가는 문장이다.

그래도 “MIT니까 확인 안 해도 된다”는 습관은 여기서 한 번 끊고 가는 게 맞다. 같은 회사가 며칠 사이에 다른 조건을 붙였다는 사실 자체가, 다음 모델에서도 그럴 수 있다는 뜻이기 때문이다.

755GB를 어디에 올릴 것인가

가중치가 공개됐다는 말과 내 컴퓨터에서 돌아간다는 말은 다르다. 이번 건은 그 간격이 특히 크다.

755.6GB는 이미 FP8로 줄인 상태의 크기다. 보통은 여기서 더 줄여서 쓰는데, 이번엔 회사가 낸 시점이 이미 절반으로 줄인 지점이라 여유가 그만큼 적다.

숫자로 보면 이렇다. 데이터센터용 GPU 한 장에 80GB가 들어간다고 치면 가중치만 올리는 데 10장 가까이 필요하다. 실제로는 대화 내용을 담아 두는 공간이 따로 필요하니 그보다 더 든다. 32GB에서 갈리는 개인용 장비 이야기와는 아예 다른 층의 문제다.

그래서 이 모델의 현실적인 사용처는 셋 중 하나다.

  1. 여러 장의 GPU를 묶은 서버에 직접 올린다
  2. 누군가 더 줄인 버전이 나올 때까지 기다린다
  3. API로 쓴다 — 가중치 공개의 의미가 “내가 돌린다”가 아니라 “누구든 돌릴 수 있다”에 있는 경우

모델 카드는 SGLang, vLLM, TokenSpeed, Transformers, KTransformers, Unsloth를 지원 목록으로 적어 뒀다. Ascend NPU 환경도 별도로 안내한다. 서버를 가진 쪽이라면 선택지가 좁지는 않다.

기본값 두 개가 함정이다

모델 카드가 짧게 적어 둔 주의사항이 둘 있는데, 모르고 쓰면 결과가 달라지는 것들이라 옮겨 둔다.

하나. reasoning_effort의 기본값은 max다.

이 값은 모델이 답하기 전에 얼마나 오래 생각할지를 정한다. low·high·max 세 단계인데, 아무것도 안 넘기면 max가 된다. 목록에 없는 값을 넘겨도 max가 된다.

max는 가장 똑똑하지만 가장 느리고 가장 비싸다. 벤치마크 점수를 재현하려면 max가 맞지만, 실제 서비스에서 간단한 질문까지 max로 돌리면 응답 시간과 비용이 그대로 올라간다. 낮추려면 명시적으로 넘겨야 한다.

둘. 대화용으로 쓸 땐 clear_thinking=true를 직접 넘겨야 한다.

이 값의 기본은 false다. 모델 카드가 “대화 상황에서는 명시적으로 true를 넘기라”고 따로 적어 뒀다. 기본값이 대화용에 맞춰져 있지 않다는 뜻이다.

둘 다 “안 넘기면 알아서 좋은 쪽으로”가 아니라 “안 넘기면 벤치마크 재현용으로” 동작한다. 서비스에 붙일 때 한 번은 확인하고 넘어갈 자리다.

파일 안에 적힌 구조

리포의 설정 파일에는 발표문에 안 나온 스펙이 들어 있다. 마지막으로 그걸 정리한다.

항목
층 수 78층
전문가 수 256개
토큰당 활성 전문가 8개 + 공용 1개
최대 문맥 길이 1,048,576토큰 (약 100만)
어휘 사전 크기 154,880개
모델 형식 glm_moe_dsa

전문가(expert)는 모델 안에 나눠 둔 작은 부품이다. 256개를 다 만들어 두고 토큰 하나를 처리할 때는 그중 8개와 공용 1개만 켠다. 크게 만들되 매번 다 쓰지는 않는 방식이라, 크기 대비 계산량이 적어진다.

문맥 100만 토큰은 한국어로 대략 책 여러 권 분량을 한 번에 넣을 수 있다는 뜻이다. 다만 넣을 수 있다는 것과 그만큼 넣었을 때 잘 답한다는 건 별개고, 모델 카드의 시험들도 대부분 100만이 아니라 30만~40만 구간에서 측정됐다.

형식 이름의 dsa는 문맥이 길어질 때 모든 토큰을 다 보지 않고 중요한 일부만 골라 보는 방식을 가리킨다. 설정 파일에는 한 번에 2,048개를 고르도록 적혀 있다. 100만 토큰을 넣어도 매 순간 100만 개를 다 훑지는 않는다는 뜻이고, 그래서 긴 문맥이 실용 범위에 들어온다.

다운로드 버튼을 누르기 전에 확인할 것

정리하면 이번 공개에서 새로 확인된 사실은 이렇다.

가중치를 받을 계획이라면 순서는 이렇게 잡으면 된다. 먼저 755.6GB를 올릴 자리가 있는지부터 세고, 그다음 라이선스 조항 2번이 우리 회사에 해당하는지 한 번 읽고, 마지막으로 기본값 두 개를 서비스에 맞게 바꾼다.

받을 계획이 없더라도 하나는 남는다. 모델을 키우지 않고 다듬기만 해서 특정 능력이 3.6배 오를 수 있다는 게 파일로 증명됐다는 사실이다. 다음 모델의 성능이 올랐다는 발표를 볼 때, 크기가 커진 건지 다듬은 건지 이제 구분해서 물어볼 수 있게 됐다.