12GB 카드로 1,250억 모델 돌리는 Strata

보통은 그래픽 메모리가 수백 GB인 서버에 올려야 한다는 1,250억 파라미터짜리 AI 모델을, 그래픽 메모리 12GB짜리 게이밍 PC 한 대에서 초당 94토큰으로 돌렸다는 프로그램이 있다. Strata다. 깃허브 저장소는 9월 24일(협정세계시 기준)에 만들어졌고, 열흘 남짓 지난 10월 4일 밤(한국시간)에 확인한 값으로 별이 9,462개, 포크가 848개다. 오늘 해커뉴스 첫 화면에도 올라왔다.
이 글은 세 부류를 위해 썼다. 내 게이밍 PC에서 큰 모델을 돌려 보고 싶은 사람, 코딩 에이전트 뒤에 붙는 모델을 내 PC로 바꿔 보려는 개발자, 그리고 “12GB로 1,250억”이 어디까지 사실인지 궁금한 사람이다. 어려운 용어는 처음 나올 때 풀어 쓴다.
근거는 Strata 저장소의 README와 docs 폴더, 릴리스 노트, 그리고 모델을 낸 큐웬(Qwen) 팀의 허깅페이스 모델 카드다. 속도와 품질 수치는 거의 전부 Strata를 만든 쪽과 기여자가 직접 잰 값이다. 이 글은 문서를 읽고 정리한 것이지, 내가 직접 설치해 돌려 본 후기가 아니다. 그 점을 글 내내 구분한다.
먼저 정리: Strata는 모델이 아니라 모델을 돌리는 엔진이다
이름이 비슷한 것이 세 가지 나와서 먼저 갈라 둔다.
- Qwen3.8-Flash-Next: 큐웬 팀이 만든 AI 모델이다. 허깅페이스에서 내려받는다.
- Strata: 그 모델을 일반 PC에서 돌려 주는 실행 프로그램(추론 엔진)과 설치기다. 이 글의 주인공이고, MIT 라이선스 오픈소스다.
- 압축본: 원본 모델은 너무 커서, ISTA-DASLab·UkisAI·Unsloth 같은 제3자가 용량을 줄여 올린 파일이 따로 있다. Strata는 이 압축본을 받아 쓴다.
Strata를 깔면 내 PC의 8080 포트에 API 서버가 열린다. 윈도우는 START-HERE.bat을 더블클릭하고, 리눅스는 ./setup.sh를 실행하면 된다. 설치기가 그래픽카드와 램, 디스크 여유를 보고 맞는 크기를 골라 주고, 모델을 내려받아 시작한다. 모델 파일은 저장소에 들어 있지 않고, 각자의 라이선스를 따른다.
모델 카드가 말하는 Qwen3.8-Flash-Next
| 항목 | 모델 카드 값 |
|---|---|
| 파라미터 | 본체 1,250억, 토큰 하나당 실제로 일하는 건 60억. 별도로 n-gram 임베딩 510억, MTP 40억 |
| 층 수 | 48층 |
| 전문가 | 층마다 512개 중 10개를 골라 쓰고, 공유 전문가 1개는 항상 쓴다 |
| 컨텍스트 | 기본 262,144토큰, 최대 100만 토큰까지 확장 가능 |
| 입력 | 텍스트와 이미지(비전 인코더 포함) |
| 라이선스 | 허깅페이스 표기 기준 qwen-community-1.0 |
용어를 풀면 이렇다. 파라미터는 모델 안에 저장된 숫자의 개수고, 클수록 대체로 똑똑하지만 메모리를 많이 먹는다. 전문가 혼합(MoE) 은 작은 전문가 여러 명을 두고 단어마다 필요한 몇 명만 부르는 구조다. 그래서 전체는 1,250억이어도 한 단어를 만들 때 일하는 건 60억뿐이다. 토큰은 모델이 글을 쪼개 읽는 단위로, 영어 기준 단어의 4분의 3쯤이다. 컨텍스트는 한 번에 기억하며 읽을 수 있는 글의 길이다.
모델 카드는 이 모델을 큐웬4의 토대가 될 아키텍처의 실험적 프리뷰라고 소개한다. 운영 기능을 더 붙인 공식 버전은 따로 있고, 큐웬 클라우드의 Qwen3.8-Flash가 그것이다.
12GB에 1,250억을 넣는 원리: 자주 쓰는 건 카운터에, 나머지는 창고에
Strata 문서는 이 원리를 주방에 빗댄다. 자주 쓰는 재료는 조리대 위에 두고, 나머지는 창고에 둔다는 것이다. 숫자로 옮기면 이렇다.
이 모델은 전문가 24,576명의 팀이다. 48층에 층마다 512명이니 곱하면 맞는다. 그런데 단어 하나를 만들 때 층마다 부르는 건 10명뿐이다. 그래서 전문가 전원이 그래픽카드 위에 있을 필요가 없다. 역할은 이렇게 나뉜다.
| 어디 | 무엇을 맡나 |
|---|---|
| 그래픽카드(VRAM) | 모든 단어에 필요한 부분, 그리고 가장 자주 불리는 전문가 몇천 명. 대화하는 동안 어떤 전문가가 자주 불리는지 계속 익힌다 |
| 램(RAM) | 전문가 전원. 그래픽카드에 없는 전문가는 CPU가 그 자리에서 계산하고, 그래픽카드와 동시에 일한다 |
| SSD | 약 28.8GB짜리 n-gram 참조표. 단어마다 작은 몇 줄만 읽는다 |
여기서 n-gram 참조표는 토큰 두세 개를 묶어 열쇠로 찾아보는 거대한 표다. 모델 카드에는 2천만 개 항목, 2토큰·3토큰 묶음이라고 적혀 있다. 이 표는 메모리에 통째로 올릴 필요가 없어서 SSD에 둔다.
문서에서 눈에 띄는 한 줄은 이것이다. 더 빠른 그래픽카드보다 더 큰 VRAM이 중요하다. VRAM 1GB가 늘면 그래픽카드가 품는 전문가가 약 700명 늘고, 그만큼 CPU가 계산할 일이 줄기 때문이라는 설명이다. 12GB 카드와 24GB 카드의 속도 차이가 여기서 나온다.
한 번에 여러 단어를 추측하면 1.6~1.8배 빨라진다
두 번째 장치는 추측하고 검증하기다. 모델 안에 들어 있는 작은 보조 층(MTP)이 다음 단어를 몇 개 미리 추측하면, 큰 모델이 그 추측을 한 번에 검사해서 맞는 것만 받아들인다. 한 번 검사하는 김에 단어가 여러 개 나오는 셈이다.
문서의 설명을 그대로 옮기면, 보조 층이 최대 3토큰을 추측하고 48층 전체를 한 번 통과할 때 평균 2.43.2토큰이 나온다. 단어를 결정하는 건 어디까지나 큰 모델이라 같은 품질의 답을 1.61.8배 빨리 받는다는 것이 Strata 쪽 주장이다. 코드를 고치는 작업처럼 앞에 나온 글을 되풀이하는 상황에서는 앞쪽 글에서 추측을 가져오는 방식도 쓰는데, 그 이득은 코드 수정에서 6~11% 정도라고 한다.
긴 글을 읽을 때는 한 번에 최대 8,192토큰씩 큰 덩어리로 읽는다. 다음 층의 전문가를 PCIe로 미리 그래픽카드에 보내는 동안 현재 층의 계산을 하는 식이다. 대화가 이어지는 동안에는 이미 읽은 부분을 기억해 두고 새로 온 부분만 읽는다. 문서는 첫 메시지만 통째로 읽고 후속 메시지는 몇 초 안에 시작한다고 적는다.
내 PC에서 돌아갈까: 크기는 램이 정한다
README의 요구 사양은 이렇다.
| 항목 | 요구 |
|---|---|
| 그래픽카드 | NVIDIA RTX 20·30·40·50 시리즈, 또는 AMD 라데온 지정 모델(RX 7900 XT·XTX, RX 7800 XT, RX 9070·9070 XT 등). VRAM 12GB 이상 |
| 램 | 32GB 이상. 램이 어떤 크기를 쓸 수 있는지 정한다. 64GB면 전 크기가 들어간다 |
| 디스크 | 여유 약 80GB. SSD 권장 |
| 운영체제 | 윈도우 10·11 또는 리눅스 |
요구 사양에 맥(애플 실리콘)은 없다. 맥에서 로컬 모델을 돌릴 때의 메모리 기준은 M6와 M5 Ultra, 로컬 LLM의 갈림길은 32GB에 따로 정리해 뒀다. 문서에는 VRAM 8GB에서도 돌긴 돌지만 느리다는 말, 옛 카드(P40, GTX 10 등)와 인텔 아크는 커뮤니티가 실험적으로 맞춘 경로라는 말이 있다.
램별 추천과 크기별 요구량
같은 모델이 압축을 얼마나 세게 했느냐에 따라 여러 크기로 나온다. 작은 크기일수록 빠르고, 큰 크기일수록 조금 더 똑똑하다. 문서의 크기 표는 다음과 같다.
| 크기 | 램+VRAM 요구 | 속도 | 품질(문서 표기) |
|---|---|---|---|
| Q2_0 | 37.6GB | 가장 빠름 | 좋음 |
| IQ2_XS | 39.2GB | 빠름 | 더 나음(추천) |
| IQ3_XXS | 47.0GB | 느림 | 훌륭함 |
| IQ3_S | 54.8GB | 가장 느림 | 최고. 공개된 시험에서 원본과 맞먹는다고 적혀 있다(원본 모델만 해당) |
내려받는 용량은 작은 세 크기가 66~76GB다. 처음 시작할 때 보조 층(MTP)을 약 6GB 더 받는다.
램별로는 이렇게 권한다.
- 램 32GB: Coder(뒤에서 설명). 24GB 카드가 있으면 Q2_0·IQ2_XS도 돌아간다.
- 램 48GB: IQ2_XS 또는 가장 빠른 Q2_0. 더 큰 크기는 안 들어간다.
- 램 64GB: IQ2_XS를 추천. IQ3_XXS·IQ3_S도 들어가지만 IQ3_S는 다른 프로그램을 거의 닫아야 한다.
- 램 96GB 이상: IQ3_S 또는 Unsloth의 약 4비트본(UD-IQ4_XS).
모르겠으면 IQ2_XS를 고르라는 것이 문서의 안내다.
속도: 개발자가 잰 두 대와 커뮤니티가 잰 한 대
README가 직접 잰 것은 평범한 게이밍 PC 두 대다. 토큰 하나는 단어의 4분의 3쯤이고, 문서는 초당 60토큰이면 읽는 속도보다 빠르다고 설명한다.
NVIDIA: RTX 5070(12GB), 라이젠 5 7600, 램 64GB
| 크기 | 답 쓰는 속도 | 128K 컨텍스트에서 | 입력 읽는 속도 |
|---|---|---|---|
| Q2_0 | 94토큰/초 | 76토큰/초 | 2,650토큰/초 |
| IQ2_XS | 79토큰/초 | 63토큰/초 | 2,090토큰/초 |
| IQ3_XXS | 62토큰/초 | 49토큰/초 | 1,750토큰/초 |
| IQ3_S | 53토큰/초 | 46토큰/초 | 1,620토큰/초 |
| Coder | 55토큰/초 | 43토큰/초 | 2,180토큰/초 |
AMD: RX 9070 XT(16GB), 라이젠 9 3900X, 램 47GB
| 크기 | 답 쓰는 속도 | 128K 컨텍스트에서 | 입력 읽는 속도 |
|---|---|---|---|
| Q2_0 | 60토큰/초 | 48토큰/초 | 1,160토큰/초 |
| IQ2_XS | 52토큰/초 | 36토큰/초 | 1,110토큰/초 |
| Coder | 44토큰/초 | 33토큰/초 | 1,420토큰/초 |
표를 읽을 때 두 가지를 알아 둔다. 엔비디아 쪽 Q2_0 행은 엔진 0.1.36으로, 나머지 행은 0.1.26으로 잰 값이다. 그리고 “입력 읽는 속도”는 3만 2천 토큰짜리 입력으로 잰 값이다. 문서는 같은 크기 입력을 Q2_0으로 읽는 데 15초쯤 걸린다고 적는다.
커뮤니티가 잰 값도 하나 있다. 9월 30일 hagope라는 기여자가 RTX 5090, 램 64GB, 리눅스에서 IQ2_XS(엔진 0.1.29)를 잰 보고서가 저장소에 올라 있다. 중앙값으로 입력 4,096토큰에서 초당 179.4토큰, 32,768토큰에서 175.7토큰, 128,000토큰에서 165.0토큰이었다. 엔진 버전과 PC가 달라 5070의 79토큰(IQ2_XS)과 정확히 견줄 수는 없지만, VRAM이 큰 카드일수록 빨라진다는 문서의 설명과 방향은 맞는다.
이 숫자를 읽을 때 걸리는 것들
멋진 수치지만, 읽는 법을 알아야 오해하지 않는다.
1. 거의 전부 만든 쪽이 잰 값이다. 두 PC 표는 Strata 제작자가 잰 것이고, 5090 보고서만 제3자다. 독립적인 재현은 아직 내가 확인하지 못했다.
2. 측정 조건이 좁다. 5090 보고서는 코드 설명 요청으로 만든 합성 입력, 그리디 디코딩(가장 확률 높은 토큰만 고르는 방식), 출력 256토큰 상한에서 잰 값이다. 보고서가 스스로 “일반적인 답변 품질이나 다른 작업의 성능을 입증하지 않는다”고 적는다.
3. 다른 카드 숫자는 추정이다. 문서의 “다른 GPU” 표는 잰 것이 아니라 계산해 낸 값이고, ±20%로 보라고 적혀 있다. RTX 3090(24GB)은 Q2_0에서 출력 약 140토큰/초(입력 4K 기준)로 추정돼 있다. 해커뉴스 글 제목에 나온 “RTX 4090에서 초당 100토큰”은 내가 읽은 문서에서 측정값으로 찾지 못했다.
4. 문서 안에서도 숫자가 갈린다. README는 긴 첫 메시지를 3만 토큰에 1분쯤 읽는다고 적고, 모델 문서의 표는 3만 2천 토큰을 Q2_0으로 15초쯤에 읽는다고 적는다. 크기와 PC, 캐시 상태에 따라 달라지는 값으로 봐야 한다.
5. 압축은 공짜가 아니다. 같은 모델이어도 이름이 Q2·IQ2면 세게, IQ3면 덜 세게 압축한 것이다. 같은 가중치라도 실행 설정에 따라 결과가 달라질 수 있다는 점은 로컬 LLM, 같은 가중치인데 토큰 절반이 뒤집혔다에서 실측으로 다뤘다. Strata 문서도 --kv q4_0 설정이 원본(FP16) 계산과 얼마나 달라지는지를 적는다. 입력 3만 2천 토큰 뒤 2,000개 자리를 비교한 값이 KL 0.026, 1순위 일치율 95.1%다. KL은 두 계산이 내놓는 확률 분포가 얼마나 다른지 보는 값이라 0에 가까울수록 같고, 1순위 일치율은 가장 확률 높은 토큰이 같은 비율이다. 크게 어긋나진 않지만 100%는 아니라는 뜻이다.
6. 빠르게 바뀐다. 이틀 남짓 사이에 0.1.37, 0.1.38, 0.1.39 세 버전이 연달아 나왔다. 0.1.39는 RTX 5070에서 Q2_0 출력 속도를 6% 올렸다고 적는다(이야기 쓰기 68.4→72.7토큰/초, 코드 75.8→80.0). 이 글의 표는 이미 구버전 값일 수 있다.
같은 모델의 변종 셋: Coder, Swift 1.5, Unsloth 4비트
설치기 메뉴에는 같은 모델의 변종이 나온다. 용도가 달라서 헷갈리기 쉽다.
Coder는 ISTA-DASLab이 코드용으로 만든 것이다. 층마다 전문가 512명 중 256명만 남기고 절반을 버렸다(층마다 토큰당 10명 사용은 그대로). 만든 쪽 주장으로 원본 모델의 SWE-bench Verified 점수의 91.3%, LiveCodeBench v6의 98.7%를 낸다. 대신 램 32GB에도 들어간다.
다만 문서가 스스로 약점을 적는다. 전문가 절반이 없어 코드 밖과 영어 밖에서 약하다. 중국어 등 CJK 글에서는 틀린 답이나 되풀이가 나왔다는 사용자 보고(#438)가 있다. 한국어도 CJK에 들어가므로 한국어 대화가 주 용도라면 Coder보다 전문가를 다 남긴 크기(Q2_0, IQ2_XS, IQ3_S)를 고르라는 것이 문서의 권고다. 다만 Coder나 원본 크기에서 한국어 품질을 따로 잰 수치는 문서에서 찾지 못했다.
Swift 1.5는 UkisAI가 미세조정한 버전으로, 답하기 전에 덜 오래 생각하도록 훈련됐다. 만든 쪽 주장은 생각 토큰 63% 감소, 답이 1.8배 빨리 옴, 정확도 손실 1% 미만이다. Strata 쪽은 추론 문제 8개로 간단히 확인했다고 한다. 둘 다 8문제를 맞혔고, Swift는 출력 1,234토큰·28초, 원본은 2,682토큰·46초였다. 문서도 벤치마크가 아니라 주장과 어긋나지 않는 정도의 확인이라고 적는다. 라이선스는 Swift Open License 1.0이다.
Unsloth 4비트는 원본에 가장 가까운 대신 램에 안 들어가는 크기다. UD-IQ4_XS는 94GB를 내려받고 램 48GB 이상이 필요하다. 더 큰 UD-Q4_K_XL(실험적, 111GB)은 램 64GB에 12GB 카드에서 초당 7~8.5토큰밖에 안 나온다. 전문가 대부분을 SSD에서 읽어 오기 때문이다.
설치부터 첫 실행까지, 문서가 미리 경고하는 것
첫 실행에서 PC가 1~3분 멈춘 것처럼 보일 수 있다. Strata가 35~55GB를 램에 올리고 일부를 그래픽카드용으로 고정하기 때문이다. 문서는 정상이라며 창을 닫지 말라고 한다. 10분이 지나도 멈춰 있으면 재시작하고 더 작은 크기를 고르라는 안내다.
디스크가 느리거나 램이 모자라면 디스크 표시등이 계속 깜박이면서 아주 느려진다. 브라우저를 닫거나 Q2_0, IQ2_XS로 내리라고 한다.
기본은 한 번에 한 요청이다. 다른 요청은 줄을 선다. 설정에서 "parallel": 2처럼 켤 수 있는데, 12GB 카드에서는 대기 시간이 줄고 속도가 준다. 0.1.39 릴리스 노트의 측정이 이렇다. RTX 5070, Q2_0, 요청 4개를 동시에 돌리면 마지막 요청이 시작하는 시간은 11.2초에서 1.8초로 줄지만, 전체 처리량은 70.7에서 63.1토큰/초로 11% 느려진다. 요청 하나만 있을 때도 슬롯 2개면 11%, 4개면 22% 느려진다.
외부에서 접속하려면 반드시 API 키를 건다. README는 폰이나 다른 PC에서 쓰려면 START-HERE.bat --setup --host 0.0.0.0 --api-key <비밀값>으로 설정하고 “항상 키를 걸라”고 적는다. 0.1.38 릴리스 노트는 키 없이 열어 둔 서버에 대한 보안 수정(DNS 리바인딩, 다른 사이트의 웹 페이지가 로컬 서버로 요청을 보내는 문제)을 담았다. 키가 없으면 서버가 아는 이름(localhost, IP 주소 등)으로 온 요청에만 답하고, 다른 사이트의 브라우저 페이지에서 온 요청은 403으로 막는다.
코딩 에이전트에 물리는 방법
Strata는 로컬 서버라서 OpenAI 호환 API를 쓰는 도구라면 주소만 바꿔 연결한다. README의 안내는 이렇다.
- OpenAI 호환 앱: 기본 URL을
http://127.0.0.1:8080/v1로 지정한다. API 키와 모델 이름은 아무 값이나 된다. - 앤트로픽 API를 쓰는 앱:
http://127.0.0.1:8080/v1/messages. 클로드 코드는ANTHROPIC_BASE_URL=http://127.0.0.1:8080으로 지정한다. - 코덱스 CLI 등 OpenAI Responses API를 쓰는 앱:
/v1/responses. 0.1.39에서 추가됐다. - 채팅창에서 생각하는 정도를 끔·낮음·중간·높음 중에 고를 수 있다. 끄면 가장 빠르고, 어려운 질문엔 높음이 낫다.
AI 코딩 도구에게 “이 저장소를 보고 Strata를 설치해 줘”라고 시키는 방법도 README에 있다. 도구가 그래픽카드·램·디스크를 점검해 알아서 크기를 고르게 하는 방식이고, MCP 서버로 AI 도구가 Strata를 켜고 끌 수도 있다.
클라우드 모델을 이 로컬 모델로 바꿔도 같은 결과가 나온다는 뜻은 아니다. Strata 문서에 나오는 코딩 점수는 Coder에 대한 제작자 주장뿐이고, 에이전트 작업에서 로컬 모델과 클라우드 모델의 차이를 직접 잰 값은 이 문서에 없다.
문서가 말하지 않는 것
- 크기별 품질의 객관적 수치. 크기 표의 품질 칸은 “좋음”, “더 나음” 같은 말이다. IQ3_S가 “공개된 시험에서 원본과 맞먹는다”는 문장의 시험이 무엇인지는 내가 읽은 문서에서 찾지 못했다.
- 한국어 품질. CJK에 대한 경고는 Coder에 한정되고, 전체 전문가를 남긴 크기에서 한국어를 어떻게 처리하는지는 수치가 없다.
- 전기료·소음·발열. 램에 35~55GB를 올려 놓고 CPU와 GPU가 동시에 도는 구조다. 문서의 모니터 화면이 온도와 전력을 보여 주긴 하지만, 비용이나 소음을 따진 내용은 내가 읽은 범위에 없다.
- 클라우드 API와의 비용 비교. 하드웨어를 이미 가졌을 때만 의미가 있고, 새로 사야 한다면 계산이 달라진다. 문서에 비교는 없다.
- 여러 명이 쓰는 서버로서의 한계. 기본은 한 번에 한 요청이고, 동시 처리는 선택 기능이다.
오늘 해볼 것
- 지금 쓰는 PC의 그래픽카드 VRAM과 램 용량부터 확인한다. 윈도우 작업 관리자의 성능 탭에서 보인다. VRAM 12GB 이상, 램 32GB 이상이 아니면 문서 기준으로 대상이 아니다.
- 램에 맞는 크기를 위의 표에서 고른다. 모르겠으면 IQ2_XS다. 디스크 여유 80GB를 먼저 확보한다. 첫 실행 때 66~76GB를 내려받는다.
- 첫 실행에서 PC가 1~3분 멈춰도 창을 닫지 않는다.
- 폰이나 다른 PC에서 접속할 계획이면 처음부터
--api-key를 건다. - 내 PC에서 직접 재고 싶으면
START-HERE.bat --calibrate가 있다. 엔진 설정 몇 개를 5~10분 동안 재서 가장 빠른 값을 남기는 기능이다(지금은 엔비디아 카드만).
한 줄로 줄이면 이렇다. Strata는 “큰 모델은 서버에서만 돈다”는 전제를 PC의 램과 SSD로 우회한 엔진이고, 만든 쪽 측정으로는 12GB 카드에서 쓸 만한 속도가 난다. 다만 그 수치는 제작자와 기여자의 측정이고, 한국어를 포함한 실제 답변 품질은 직접 써 보기 전엔 모른다. 별 9,462개가 품질을 보증해 주지는 않는다.