llama.cpp와 PI를 활용한 로컬 에이전트 개발 환경 설정 (6GB VRAM, 64GB RAM)
Here's my setup that's getting 16 to 18 t/s average using 6GB of VRAM and 64 GB of system ram using llama.cpp and PI for agentic C/C++/C# Development.
핵심 요약
llama.cpp와 PI를 사용하여 로컬에서 효율적인 코딩 에이전트 환경을 구축하고 최적화하는 방법을 공유합니다.
- 로컬 모델 설정 — llama.cpp를 백엔드로 사용하여 Ornith 및 Qwen 모델을 구동함
- 성능 최적화 — 6GB VRAM 환경에서 16~18 t/s의 속도로 코딩 에이전트 운영
- 컨텍스트 윈도우 — 설정 파일 수정을 통해 긴 세션 처리를 위한 컨텍스트 확장
- 에이전트 자가 진단 — 모델에게 직접 도구 부족분과 개선점을 묻는 프롬프트 활용
지난 몇 주 동안 로컬 모델 최적화하는 법 물어보고 다녔는데, 다들 꿀팁이랑 아이디어 많이 줘서 고맙다. 덕분에 지금 로컬 개발 환경 세팅 끝냈는데, ChatGPT나 Claude(코딩용으론 이게 최고긴 함) 무료 버전 쓰는 것보다 훨씬 성능 잘 나온다. 심지어 공짜임.
지금 모델 두 개 놓고 고민 중인데, Ornith-1.5-35B-Q4_K_M(여기서 받음)이랑 Qwen3.6-35B-A3B-Q4_K_M(GGUF는 여기)이다. 테스트용으로는 LMStudio 써서 모델들 싹 다 받아보고 대충 훑어본 다음에 llama로 넘기는 식으로 작업 중임.
써보니까 Llama.cpp가 LMStudio나 Unsloth보다 백엔드/서버로 돌리기에 훨씬 빠르고 쾌적하더라. 난 옛날 사람이라 그런지 커맨드 라인으로 이것저것 만지는 게 편함. 이거 완전 오픈소스고 여기서 받을 수 있다.
llama용 models.json은 직접 손 좀 봤다. Huggingface 모델 카드에 있는 samplingParams 그대로 가져왔는데, 자꾸 뇌절하거나 똑같은 말 반복하길래 repeat_penalty 추가했음(아직 테스트는 안 해봄). 나머지는 다 잘 돌아가고 에이전트처럼 똑똑하게 작동한다. 이미지랑 텍스트 복붙해서 프롬프트 넣는 것도 쌉가능임.
"models": [
{
"id": "Ornith-1.5-35B-Q4_K_M",
"name": "Ornith-1.5-35B-Q4_K_M",
"reasoning": true,
"thinkingLevelMap": {
"type": "enabled"
},
"repeat_penalty": 1.2,
"input": ["text","image"],
"tools": true,
"toolFormat": "openai",
"samplingParams": {
"temperature": 0.6,
"top_p": 0.95,
"top_k": 20
},
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 65536,
"maxTokens": 131072
},
아, 참고로 maxTokens랑 contextWindow는 세션 길게 가져가려고 일부러 엄청 높게 잡았는데, 컴팩션(compaction) 덕분인지 문제없이 잘 돌아간다. 아 그리고 Sessions.json은 그냥 http 호출할 때 쓰려고 엔트리 하나 추가한 거임.
"models": [
{
"id": "Ornith-1.5-35B-Q4_K_M"
},
마지막으로 내 PI 세팅이다. 배치 파일 하나 만들어서 최적화할 수 있는 건 다 때려 박았음. 일단 배치 파일이 llama 서버를 실행시키는데, 메인 모델이랑 이미지 처리용 멀티모달 모델을 같이 불러온다. 로컬 IP로 띄우는 방식임.
start cmd /s /k "llama-server.exe -m "D:\AI\LM Studio Models\ornith-ai\Ornith-1.5-35B-A3B-GGUF\Ornith-1.5-35B-Q4_K_M.gguf" -mm "D:\AI\LM Studio Models\ornith-ai\Ornith-1.5-35B-A3B-GGUF\mmproj-Ornith-1.5-35B-BF16.gguf" --host 127.0.0.1 --port 8080 -c 131072 --parallel 1 --reasoning-format deepseek --load-mode none --no-mmproj-offload -fa auto"


