12GB 이하 GPU에서 모델 전환 지연을 없애는 llama-swap 설정값
2026년 5월 14일
0
컴퓨터/소프트웨어Comments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
중급 GPU 사용자에게 VRAM은 늘 부족한 자원입니다. RTX 3060이나 4060을 쓰면서 모델 여러 개를 띄우다 보면 금방 한계에 부딪힙니다. 4비트 양자화(Q4_K_M)를 거친 Llama 3.1 8B 모델은 가중치만 5.2GB를 먹습니다. 윈도우 기본 점유율 1GB를 빼면 남는 공간은 2GB 남짓입니다. 여기서 무리하게 모델을 더 불러오면 시스템 RAM을 끌어쓰는 스필오버가 터집니다. 초당 15토큰 나오던 속도가 1토큰으로 기어가는 걸 보면 당장 프로세스를 죽이고 싶어집니다.
이런 병목을 막으려면 config.yaml에서 모델별로 퇴출 시간인 idle_timeout을 다르게 박아야 합니다.
globalTTL을 300(5분)으로 잡으세요. 모델 실행 명령어(cmd) 뒤에 --ctx-size 8192를 붙여서 KV 캐시가 남은 메모리를 다 삼키지 못하게 묶어둬야 OOM(Out of Memory)을 피합니다.ttl: 0으로 상주시키고, 무거운 Qwen 2.5 Coder 7B는 ttl: 60으로 설정해서 코딩이 끝나면 바로 VRAM을 비우게 만드세요.이렇게 설정하면 모델을 일일이 껐다 켰다 하며 버리는 시간을 하루 최소 20분은 아낍니다.
Ollama 쓰다가 llama.cpp로 넘어가려면 포트가 겹치고 자원 점유권 싸움이 납니다. llama-swap은 이 난장판을 정리하는 교통경찰입니다. Go 언어로 짠 이 가벼운 프록시는 새 모델 호출이 들어오면 기존 프로세스에 SIGTERM 신호를 쏴서 안전하게 내리고 새 모델을 올립니다.
안정적인 통합을 위한 YAML 작성법은 명확합니다.
macros 섹션에 실행 파일 경로와 --flash-attn, --mlock 같은 공통 플래그를 미리 정의하세요. 설정 파일이 훨씬 깔끔해집니다.models 항목 아래에 ${PORT} 매크로를 활용해 각 모델의 실행 경로를 지정하세요.proxy 필드에 http://localhost:11434를 적어서 경로만 연결해 줍니다.결과적으로 여러분의 앱은 http://localhost:8080/v1 주소 하나만 바라보면 됩니다. 내부에서 엔진이 바뀌든 모델이 바뀌든 신경 쓸 필요가 없어집니다.
로컬 LLM을 쓰는 진짜 이유는 돈을 아끼면서 개인 정보를 지키는 데 있습니다. Cursor는 기본이 유료지만, OpenAI Compatible 설정을 쓰면 로컬 llama-swap으로 우회할 수 있습니다. 매달 나가는 20달러, 일 년이면 240달러를 아끼는 셈입니다.
연결 방법은 간단합니다.
http://localhost:8080/v1을 넣으세요.gpt-4o라고 별칭(Alias)을 붙여두면 Cursor가 자기 짝인 줄 알고 바로 작동합니다.nomic-embed-text로 맞추고 llama-swap에서 ttl: 0으로 고정하세요.노트 정리를 하다가 코딩 창으로 넘어가도 뒷단에서 알아서 모델이 스왑됩니다. 모든 데이터는 내 컴퓨터 안에서만 도니 찝찝함도 없습니다.
매번 터미널 열어서 프록시 켜는 건 정말 귀찮은 일입니다. AI를 도구처럼 쓰려면 공기처럼 조용히 떠 있어야 합니다. 윈도우 사용자라면 NSSM(Non-Sucking Service Manager)으로 llama-swap을 서비스로 등록하는 게 가장 깔끔합니다.
방법은 이렇습니다.
winget install NSSM으로 설치하고, 관리자 권한으로 nssm install LlamaSwap을 칩니다.llama-swap.exe 경로를, Arguments에 --config config.yaml -watch-config를 입력하세요.이제 컴퓨터를 켜자마자 API 엔드포인트가 살아납니다. YAML 설정 파일을 수정하고 저장하면 -watch-config 옵션 덕분에 서비스 재시작 없이도 새 설정이 바로 반영됩니다.
모델이 바뀔 때 대화가 끊기거나 꺼지는 건 대부분 메모리 설계 미스입니다. 추론 엔진은 켜질 때 컨텍스트 윈도우만큼의 메모리를 미리 확보하려 듭니다. 이걸 제어하지 않으면 뜬금없는 에러를 마주하게 됩니다.
안정성을 확보하는 세 가지 장치입니다.
cmd 필드에서 --ctx-size를 8192 정도로 명시하세요. 무제한으로 놔두면 VRAM이 터집니다.healthCheckTimeout을 300초 정도로 넉넉하게 잡아야 프록시가 로딩 중에 연결을 끊지 않습니다.--flash-attn은 필수입니다. 이걸 써야 같은 VRAM에서도 컨텍스트를 20% 더 넓게 씁니다.8B 모델 기준으로 5초 내외면 스왑이 끝납니다. 이 정도면 작업 흐름을 방해하지 않는 수준입니다. 고성능 워크스테이션이 없어도 설정값 몇 개만 잘 만지면 내 책상 위에서 쾌적한 AI 환경을 누릴 수 있습니다.