Strata의 세부 기술 스택에 대해서는 설명하지 않겠습니다.
Strata 설치 방법만 빠르게 알고 싶거나, Strata로 앱 개발을 했을 때 어떤 결과가 나올지 알고 싶은 분들을 위한 글입니다.
이번에는 Windows에서의 사용법을 소개합니다.
다른 OS의 설치 과정은 시도해 보지 않았습니다.
특정 모델에 대해, 사용하는 부분만 VRAM에 올림으로써 원래 일반인의 PC VRAM에는 올라가지 않을 정도로 큰 모델을 다룰 수 있는 AI 엔진입니다.
이로 인해 로컬에서 구동 가능한 LLM의 규모가 급격히 커졌고, 로컬에서도 충분히 정확도가 좋은 모델을 다룰 수 있게 되었습니다.
조금 전에 유사한 AI 엔진으로 Freetoken이라는 앱이 있었는데, 그것보다 더 큰 모델을 다룰 수 있는 것으로 보입니다.
모델은 아무거나 사용할 수 있는 것은 아닙니다. 기본적으로는 Qwen3.8-Flash-Next 및 그 파생 모델, 또는 Qwen3.6-35B-A3B만 사용 가능합니다. 이 부분은 나중에 왜 그것들만 사용할 수 있는지 설명하겠습니다.
이후에 사용할 Cline을 포함하여 라이선스를 정리해 드리겠습니다.
결론적으로는 어느 정도 규모의 상업적 이용까지는 괜찮습니다.
| 대상 | 라이선스 |
|---|
| Statra | MIT License |
| ... | Swift Open License v1.0 |
| Cline | Apache 2.0 |
Qwen Community License 1.0이라는 특수한 라이선스 형태를 가지고 있습니다.
대략적으로 말하면, 초거대 기업의 경우에는 별도의 라이선스가 필요하다는 것입니다.
개인 이용은 물론이고, 어느 정도 규모의 상업적 용도로도 문제가 없어 보입니다.
별도의 라이선스로 해야 하는 경우는 주로 다음과 같습니다.
- 월간 활성 사용자 수(MAU)가 1억 명 초과
- 월 매출액이 2,000만 미국 달러 초과
- MaaS(Model as a Service)로 제공하는 경우
- AI 어시스턴트로서 독립적인 제품을 제공하는 경우 (본업 기능과는 별개로 일부 기능으로 탑재하는 것은 제외)
Swift Open License v1.0 역시 원칙적으로는 Qwen Community License 1.0과 동일합니다.
도입 전에 반드시 확인하세요!
전반적으로 상당히 좋은 게이밍 PC가 필요합니다.
| 부품 | 권장 환경 |
|---|
| 메모리 | 풀세트 버전: 64GB, 코딩 특화 버전: 32GB |
| VRAM | 12GB 이상 (8GB로도 작동하는 것 같습니다) |
git은 미리 설치해 주세요.
다운로드된 인스톨러를 실행합니다.
설치 과정 중 선택지가 무엇인지 모르는 분들은 'Next' 버튼을 계속 누르시면 됩니다.
- 로컬에 설치하고 싶은 폴더로 커맨드 프롬프트나 PowerShell에서 이동한 후, 다음 명령어를 실행합니다.
(폴더는 굳이 만들 필요가 없습니다. 아래 명령어에서 Strata 폴더가 생성됩니다)
git clone https://github.com/Niko1221/Strata.git
-
클론된 폴더 안으로 들어가면 START-HERE.bat이라는 파일이 있으니, 이것을 실행합니다.
(Windows가 아닌 경우 setup.sh)
-
다음 화면에서 사용할 모델 선택지가 나타나므로, 사용하고 싶은 것을 고릅니다.
메모리가 32GB밖에 없는 분은 코딩 특화 버전인 3) Qwen3.8-Flash-Next Coder가 유일한 선택지입니다.
메모리가 64GB인 분은 여러 개를 고를 수 있습니다. 이번에는 파인튜닝 버전인 Swift를 선택하겠습니다.
-
사용할 양자화(quantization) 타입을 선택합니다.
64GB가 있는 경우 이 중 어느 것을 골라도 되는 것 같습니다. 각각 얼마나 메모리를 차지하는지 표시되어 있으니 참고하세요.
recommended로 되어 있는 것은 3.5bit 양자화이지만, 이것을 고르면 메모리 50GB를 점유하는 것 같습니다. 이번에는 시험 삼아 3.5bit 양자화를 해보겠습니다.
-
사용할 컨텍스트 사이즈(context size)를 선택합니다.
이곳에도 여러 선택지가 있고, recommended라고 표시되어 있으니 그것을 고릅니다.
참고로 나중에 자동 튜닝 항목이 있어서, 그것을 실행하면 적절한 것으로 변경되는 것 같으니 그렇게 깊게 생각할 필요는 없습니다.
-
캐시의 정밀도(precision)를 선택합니다.
캐시의 정밀도가 어느 정도 영향을 미치는지 잘 모르겠지만, 일단 recommended라고 되어 있는 것을 고릅니다.
-
이미지 관련 모델을 추가로 다운로드할지 여부를 선택합니다.
원문 정보량 100% 보존 — 요약/압축/확장 금지
⚠️ [IMG:N] 형식 토큰은 이미지 placeholder 입니다. 번역하지 말고 원래 위치에 그대로 유지하세요.
8. 설치 및 모델 다운로드 시작
수십 GB 단위의 파일이 여러 개 있으며, 처음 시간이 걸리는 파일을 제외하고도 다양한 파일을 다운로드하기 때문에 상당히 오래 걸립니다.
대역폭 제한이 되어 있는지 매우 느리게 다운로드되므로, 어떤 모델을 다운로드하느냐에 따라 몇 시간 정도는 각오하는 것이 좋을 것 같습니다.
제 환경에서는 약 1시간 반이 걸렸습니다.
9. 튜닝할지 묻기에 'y'를 누릅니다
이것도 시간이 오래 걸리므로 잠시 기다립니다.
10. 다음 화면이 나오면 URL을 복사해 두세요
11. 벤치마크를 할지 묻지만, 필수 사항은 아니니 취향에 따라 하셔도 됩니다
12. Strata 화면이 실행됩니다
이번에는 Cline으로 연결해 보겠습니다.
Cline은 VS Code에서 사용할 수 있는 AI 코딩 에이전트입니다.
1. VS Code 확장 기능에서 cline을 검색하여 설치합니다.
다음 화면에서는 아무거나 선택하고 'Mark Done'을 누릅니다.
2. 왼쪽의 Cline 아이콘을 누르고, 메뉴에서 'Bring my own API key'를 눌러 Continue를 누릅니다.
3. 다음과 같이 입력합니다:
| 항목 | 값 |
|---|
| API Provider | OpenAI Compatible |
| ... | |
| (포트를 변경한 경우 그에 맞춰 수정해 주세요.) | |
4. 이후에는 일반적인 채팅처럼 사용할 수 있습니다.
'안녕하세요'라고만 입력했더니 중국어로 답변이 왔습니다. Qwen은 Alibaba의 모델이라 어쩔 수 없네요.
Cline은 AGENTS.md를 지원하는 것 같아, 프로젝트 직하에 AGENTS.md를 작성하여 실행해 보겠습니다.
일본어로 답변이 왔습니다.
응답은 시작까지 1초 정도, 응답 완료까지는 3초 정도 걸리는 느낌이었습니다.
이런 느낌의 프롬프트를 준비했습니다.
이를 Plan 모드로 물어봅니다.
리버시(Reversi)는 일명 오셀로이지만, '오셀로'라는 명칭은 등록 상표이므로 '리버시'라는 이름으로 만들게 합니다.
온라인에서 동작하는 1:1 리버시 앱을 구상해 주세요
# 동작 환경
이번에는 로컬 PC를 서버로 하는 전제를 하겠습니다.
...
뭔가 여러 가지를 생각해 주었습니다.
제대로 진행하기 위한 질문도 돌려주고 있습니다.
요약해서 주었기 때문에 Act 모드로 전환하여 구현하게 합니다.
## 중간 경과
컨텍스트 사이즈의 변화 추이를 확인해 봤는데, 어느 정도 지나가니 자동 압축이 걸리는 것 같습니다. 그 때문에 제가 직접 만든 파일인데도 다시 읽어들이는 장면을 볼 수 있었습니다. 컨텍스트 사이즈가 낮아서 어쩔 수 없네요. 메모리가 여유로운 환경이라면 컨텍스트 사이즈를 좀 더 높이는 것이 좋을 것 같습니다. 일정 이상 진행하니 출력 토큰 오버가 되었습니다.
재시도(Retry)합니다.
이후 몇 번 발생했습니다.
정신을 차려보니 Strata 프로세스가 사라져 있었습니다.
로그를 추적해 봤는데, 갑자기 프로세스가 끝난 것처럼 보입니다.
python 프로세스의 시작/중지 때문에 매번 꺼지기 때문에, 혹시 중지 명령어인 Stop-Process로 함께 프로세스가 사라진 것일지도 모릅니다.
끝날 때마다 START-HERE.bat을 실행합니다.
재부팅을 계속하는 것이 십여 번에 걸쳐 시간으로 약 2시간이 지나서야 겨우 끝났습니다.
실행되었습니다.
1인 모드를 실행했지만, 왜인지 관전 모드로 들어가 플레이할 수 없었습니다.
2인 모드의 경우, 룸을 만든 사람이 두 번째(후수)가 되었고, 나중에 룸에 들어간 사람이 관전 모드가 되었습니다.
들어가는 사람의 판정이 하나 밀린 것 같습니다.
Plan 모드로 조사를 요청합니다.
1인 모드를 실행했더니 관전 모드가 되고, 플레이어 1은 연결 끊김으로 표시되었습니다. 또한 2인 모드의 경우, 룸을 생성한 사람이 두 번째(후수)가 되었고, 플레이어 1은 역시 연결 끊김으로 표시되었으며, 룸에 나중에 들어간 사람은 관전 모드가 되었습니다. 들어가는 사람이 두 번째부터 시작된 것 같습니다.
원인을 조사해 주세요.
수정안을 제시해주니 그것을 선택합니다.
게다가 다른 프로세스를 실수로 중지하지 않도록 요청했습니다.
이후에도 계속해서 토큰 오버로 인한 강제 종료가 몇 번 발생했기 때문에, 그때마다 재시도합니다.
왠지 Start-Sleep을 자주 사용하는데, 이유는 모르겠습니다.
Start-Sleep -Seconds 25; echo SLEPT
다만 명령어의 결과 자체는 어째서인지 즉시 반환되는 것 같아서, 사람이 다음 명령어를 내릴 때 이 초만큼 기다려 주는 편이 좋을지도 모릅니다.
도중에 프로젝트 직하의 *.txt를 삭제하고 있었는데, 아마 임시로 만든 텍스트를 지우고 싶었던 모양이지만, Python의 requirements.txt까지 지워버렸습니다.
생성이 완료되었습니다.
생성 속도는 RAM 64GB, GeForce RTX 5070Ti에서 최속 112tok/s 정도입니다. 제대로 빠릅니다.
위 접힌 부분에 기재된 대로, 첫 번째 지시에서는 잘 작동하지 않아 한 번 수정 요청을 했고, 도중에 토큰 수 초과 등으로 인해 명령어가 멈추어 매번 재개할 필요가 있었습니다.
처음 생성부터 이후의 수정까지 포함하면 약 4시간 정도 걸려 작성이 완료되었습니다.
명령어를 모두 수동으로 승인했기 때문이므로, 컨테이너에 넣어 자동 승인하게 했다면 더 빨리 끝났을 것 같습니다.
시작합니다.
1인용 모드를 실행합니다.
왠지 잘 된 것 같습니다.
일부러 놓을 수 없는 곳을 클릭해 보았지만, 이상한 동작은 하지 않았습니다.
2인용 모드를 실행합니다.
화면 상단의 URL 복사 버튼으로 URL을 복사하여 다른 브라우저에서 열었더니 2인자로 등록되었습니다.
조금 진행해 봤는데, 문제없이 작동하고 있습니다.
3번째가 들어오니 관전이 되었습니다.
Strata의 새 버전이 나왔을 때, git이기 때문에 git pull를 하면 바로 최신이 되는 것은 아닙니다.
아무래도 엔진은 START-HERE.bat을 실행했을 때 엔진을 빌드하고 있어서, pull만 했다고 해서 빌드된 엔진이 새로워지지는 않습니다.
그래서 git pull를 한 후에는 START-HERE.bat을 재실행해 주세요.
마음대로 움직이는 것이 곤란하므로 컨테이너를 이용합니다.
파일 작업은 모두 Dev Container 내에서 진행하게 하고, 네트워크만 본체의 Windows와 공유하여 Windows 상에 있는 Strata에 접근할 수 있도록 합니다.
- wsl에 Ubuntu를 설치합니다
- 다음을 실행하고 Ubuntu가 표시되는지 확인해 주세요
- 사용자 폴더 직하(보통은 C:users<사용자명>)에
.wslconfig라는 텍스트 파일을 만들고, 다음 문자열을 설정합니다.
[wsl2]
networkingMode=mirrored
- WSL을 한 번 종료합니다
- 이어서 wsl에 들어갈 수 있는지 확인합니다
WSL을 종료했더라도 실행될 것입니다
WSL 3.0부터는 Microsoft 공식 컨테이너 기술인 WSL Containers를 사용할 수 있다고 하는데, VS Code 확장에서는 아직 사용할 수 없었습니다.
대응하고 있을 법한 설정 항목이 있지만, 그것들을 만져도 wslc에 없는 명령어를 실행하려고 해서 오류가 납니다.
대책도 인터넷에 없었기 때문에 이번에는 일단 보류하고, 순순히 Docker Engine을 설치하는 절차를 따르겠습니다.
왼쪽 아래의 >|< 같은 마크를 클릭합니다
Add Dev Container Configuration Files를 클릭합니다
원하는 템플릿을 선택합니다.
특별히 고집이 없는 사람은 기본값으로 문제없습니다.
image.png
Features는 지정하지 않고 OK를 누릅니다
Optional Files도 지정하지 않아도 됩니다.
.devcontainer/devcontainer.json가 생성되므로 열어서 다음 문자를 추가하고 저장합니다.
(직전의 유효 행 끝에 쉼표를 찍은 후 아래 문자를 붙여주세요)
"runArgs": [
"--network=host"
]
왼쪽 아래의 >|< 아이콘을 누르고 나오는 메뉴에서 Reopen in Container를 선택합니다.
이때 컨테이너 내에 Docker Engine을 설치할지 묻는다면 넣어주세요.
Dev Container 안에 넣었습니다.
Cline 등 필요한 확장 기능은 Dev Container에 들어간 후에 다시 설치해 주세요.
Strata 폴더에 다음 bat 파일을 생성해 주세요. (예: start_for_wsl.bat)
API 키는 임의의 문자열을 지정해 주시면 됩니다.
@echo off
call "%~dp0START-HERE.bat" --api-key <여기에 임의의 API 키를 지정>
이 작성된 bat 파일을 실행합니다.
Cline에서 연결할 때 이전에는 API Key가 비어 있었지만, 이번에는 이전에 지정한 API 키를 설정합니다.
| 항목 | 값 |
|---|
| API Provider | OpenAI Compatible |
| ... | |
| 여기까지 짧은 프롬프트만으로 최종 결과물까지 도달할 수 있다는 점에서 로컬 LLM의 발전을 크게 느꼈습니다. | |
설계 아이디어도 타당하고, 완성된 프로그램에 대해서도 일부 미흡한 점이 있어 지적하자 수정해 주었습니다.
또한 사운드나 다음 수 후보 같은 기능도 갖추고 있어서 놀라웠습니다.
응답 속도도 빠르고 온라인 LLM과 다를 바 없습니다.
다만 컨텍스트 사이즈나 출력 토큰 상한이 낮아서 실행이 자주 멈추는 바람에, 완전히 맡겨서 실행하기는 어려울 것 같습니다.
이렇게 제대로 작동하는 것은 반가운 예상치 못한 수확이지만, 현재 메모리나 그래픽 보드는 비정상적으로 가격이 급등하고 있어, Strata가 자유롭게 돌아갈 환경을 갖추려고 해도 쉽게 손댈 수 없는 상황이라 아쉽습니다...
Strata에서 선택 가능한 모델은 **MoE (Mixture of Experts)**라고 불리는, 여러 전문 지식(expert)으로 구성된 파라미터 부분을 묶어 놓은 모델입니다. 지시를 내릴 때는 그 지시에 관련된 파라미터만 사용됩니다.
Qwen3.6-35B-A3B를 예로 들면, 이 모델의 총 파라미터 수는 35B(350억)이지만, 실제로 작동하는 파라미터는 3B(30억)라는 표기입니다. A는 active의 약자로, A3B는 활성 파라미터 수가 3B라는 의미입니다.
Qwen3.8-Flash-Next는 125B에 A6B인 것 같습니다.
Strata는 이 작동하는 부분만 VRAM에 올리고 나머지는 RAM이나 스토리지에 올려둠으로써, 보통으로는 다룰 수 없는 총 파라미터 수의 모델을 실행할 수 있게 해주는 것입니다.
그래서 사용하는 모델이 제한됩니다.
MoE가 아닌, 추론 시 모든 파라미터가 관여하는 구식 모델을 Dense 모델이라고 합니다.
Dense 모델은 12GB VRAM으로는 4bit 양자화해도 총 파라미터 수 13B 정도의 모델밖에 선택할 수 없었을 것 같은데, 이에 비하면 상당히 큰 모델을 다룰 수 있다는 것을 알 수 있습니다.
Qwen3.8-Flash-Next나 Qwen3.6-35B-A3B는 작은 모델로 예측하고 큰 모델로 검증 및 수정하는 MTP (Multi-Token Prediction)를 지원하는 모델입니다.
이를 통해 정확도를 떨어뜨리지 않으면서 고속화할 수 있습니다.
Strata 설명에는 최대 2배 정도 빨라진다고 쓰여 있었습니다.
Strata의 모델 선택 중에는 Unsloth와 NVPF4라는 것도 나왔습니다.
Unsloth는 양자화 등을 통해 모델의 고속화를 수행하는 라이브러리인 것 같습니다. 다만 지원하는 양자화가 4bit 이상이어야 하며, Qwen3.8-Flash-Next로 구동하려면 128GB처럼 상당히 큰 메모리가 요구되는 것 같습니다.
NVFP4는 NVIDIA GPU에서만 사용할 수 있는 특수한 4bit 양자화입니다. 소비자용으로는 GeForce RTX 5000 시리즈만 가능합니다. 이 역시 마찬가지로 4bit 양자화라 대용량 메모리가 필요합니다.
이런 것들은 다른 모델에서도 나올 수 있으니, 알아두면 로컬 AI 생활에 도움이 될 수도 있습니다.