ComfyUI, Lemonade, 그리고 LocalAI: 차세대 홈랩(Homelab) AI 도구 탐색
요약
홈랩 환경에서 활용 가능한 다양한 AI 도구들을 탐색합니다. llama-benchy를 통한 벤치마킹 방법과 AMD 실리콘 기반의 하이브리드 실행을 지원하는 Lemonade Server의 특징을 다룹니다.
핵심 포인트
- llama-benchy: 모든 OpenAI 호환 엔드포인트에 대한 정밀한 벤치마킹 지원
- Lemonade Server: NPU와 iGPU를 활용한 하이브리드 실행 오케스트레이션
- 홈랩 최적화: 기존 인프라 변경 없이 적용 가능한 로컬 AI 도구 연구
Cape Cod에는 우울하고 비가 내리는 날입니다. 7월 4일 이후 인파가 줄어들었고, 가족들은 실내에서 조용한 시간을 보내고 있습니다. 멀티미터(multimeter)를 들고 수냉 루프(water-cooling loop) 옆에 서 있을 필요 없이, 노트북과 브라우저, 그리고 에이전트 AI (agentic AI) 세계에서 계속 언급되고 있지만 그 기능이 정확히 무엇인지 또는 AI-NT-No-Problem에 포함되어야 하는지 아직 확정하지 못한 도구 목록만 있으면 되는, 그런 홈랩 (homelab) 연구를 하기에 완벽한 날씨입니다.
그래서 오늘은 그런 하루였습니다. 하드웨어 변경도, 새로운 벤치마크 실행도 없이 — 그저 다섯 가지 도구에 대한 연구 스프린트를 진행한 후, 다음 주에 이 도구들을 대상으로 실행하고 싶은 실제 테스트의 개요를 작성했습니다.
도구들 (The Tools)
llama-benchy
llama-benchy는 llama-bench 스타일의 측정값 — 즉, llama.cpp 세계의 모든 사람이 이미 신뢰하는 다양한 컨텍스트 깊이에서의 pp/tg (prompt-processing/token-generation) 수치 — 를 llama.cpp뿐만 아니라 모든 OpenAI 호환 엔드포인트(endpoint)에 제공하는 벤치마킹 도구입니다. 이는 llama-bench가 llama.cpp에서만 작동하기 때문에 중요하며, vLLM의 자체 벤치마커와 같은 다른 도구들은 접두사 캐시(prefix-cache) 아티팩트가 수치를 왜곡하지 않으면서 다양한 컨텍스트 길이에서의 프롬프트 처리 속도를 깔끔하게 측정하는 데 어려움을 겪기 때문입니다. llama-benchy는 또한 동시성 스윕(concurrency sweeps)을 지원하여, N개의 병렬 클라이언트를 실행함으로써 부하를 더 추가해도 총 처리량(throughput)이 증가하지 않는 지점을 찾아냅니다.
홈랩을 위한 용도: 논쟁의 여지 없는 깔끔한 승리입니다. 우리는 이미 systemd를 통해 llama-server를 직접 실행하고 있으며, 기존의 벤치마크 도구는 임시적인 Python 스크립트이거나 클라우드 API를 위해 구축된 맞춤형 하네스(harness) 중 하나입니다 — 둘 다 실제 운영 환경에서 OpenClaw와 Discord 봇을 서비스하는 엔드포인트를 대상으로 컨텍스트 깊이별 pp/tg 수치를 제공하지 못합니다. llama-benchy는 인프라 변경 없이 기존의 http://localhost:8080/v1에 바로 적용할 수 있습니다.
Lemonade Server
제 개발자 중 한 명이 이 항목을 지목했습니다. 그녀는 홈랩(homelab)의 CPU 측에 AMD 실리콘이 사용된다는 점을 알고 있었고, AMD 자체 로컬 AI 서버인 Lemonade가 자연스럽게 잘 맞을 것이라고 생각했습니다. 이론적으로는 타당한 가정입니다. Lemonade는 llama.cpp, FastFlowLM (NPU), whisper.cpp, stable-diffusion.cpp, 그리고 Kokoro를 하나의 체계 아래에서 오케스트레이션하는 통합된 OpenAI/Anthropic/Ollama 호환 엔드포인트이며, 핵심 기능은 하이브리드 실행(hybrid execution)입니다. 즉, 프롬프트 처리(prompt processing)는 Ryzen AI NPU를 통해 라우팅하고, 토큰 생성(token generation)은 iGPU에서 실행합니다.
하지만 자세히 파고들어 보니, 그 문장에서 "AMD"라는 단어는 많은 것을 숨기고 있었습니다. Lemonade의 진정한 가치 제안은 구체적으로 Ryzen AI 300/400 시리즈 Strix Halo 실리콘에 맞춰져 있습니다. XDNA2 NPU가 핵심이기 때문입니다. 일반적인 AMD CPU와 (AMD 제품이든 아니든) 외장 GPU(discrete GPU)를 조합하는 경우에는 그러한 이점을 전혀 누릴 수 없습니다. ROCm/Vulkan GPU 경로가 폴백(fallback)용으로 존재하기는 하지만, 그 시점에는 중요한 플래그(flags)와 사용자 사이에 불필요한 추상화 계층만 추가된 채 llama.cpp를 실행하는 것에 불과합니다.
홈랩(homelab) 관점에서는: 적합하지 않으며, 근접하지도 않습니다. AI-NT-No-Problem은 CPU로 AMD Ryzen 9 9950X3D를 사용하지만, 이는 데스크톱 부품이지 Lemonade가 기반을 두고 있는 Ryzen AI 브랜드의 모바일/APU 실리콘이 아니며, GPU는 CUDA 13.1 기반의 NVIDIA RTX 5090입니다. 만약 이 시스템이 5090 대신 AMD 외장 GPU를 사용했다면 Lemonade의 ROCm 경로를 다시 검토해 볼 가치가 있었을 것입니다. 우리가 실제로 사용 중인 구성인 '일반 AMD CPU + NVIDIA GPU' 조합은 이곳의 하드웨어 타겟이 아닙니다.
ComfyUI
ComfyUI는 Stable Diffusion 및 기타 확산 모델(diffusion models)을 실행하기 위한 노드 기반(node-based), 그래프 구동형(graph-driven) GUI입니다. 단일 "생성(Generate)" 버튼 대신, 모든 단계(체크포인트 로드, 프롬프트 인코딩, 샘플링, 디코딩)가 각각의 노드로 존재하며, 이를 서로 연결하여 재사용 및 공유가 가능한 워크플로우(workflow)를 구성합니다. 이는 API를 통해 헤드리스(headless)로 실행되며, 이는 우리 홈랩이 다른 모든 작업에 이미 사용하고 있는 배포 패턴과 정확히 일치합니다.
홈랩(Homelab)을 위한 용도: Lemonade와 달리, 이것은 진정한 적합성을 갖추고 있습니다. ComfyUI는 NVIDIA/CUDA를 네이티브로 지원하며, 우회해야 할 AMD 전용 주의 사항이 없습니다. 이는 llama-generate/llama-embed와 함께 또 다른 systemd 서비스로 배치되어, 우리가 이미 구축한 것과 동일한 Tailscale/Cloudflare 터널을 통해 노출될 것입니다. 또한 이는 Model Showdown 시리즈에서 도출된 "로컬 모델이 다단계 에이전트 작업(multi-step agentic work)에서 어려움을 겪는다"는 결론을 보완해 주는 좋은 사례입니다. 이미지 생성은 다단계 도구 오케스트레이션(multi-step tool orchestration)이 아닌 단일 실행(single-shot) 방식이므로, 라운드 1~7의 주요 발견 사항이었던 바로 그 실패 모드(failure mode)를 피할 수 있습니다.
AMD AI 플레이북 (AMD AI Playbooks)
AMD는 AMD 하드웨어에서 AI 워크로드를 구축하기 위한 단계별 가이드인 공개 GitHub 리포지토리를 게시하고 있습니다. 여기에는 Lemonade, vLLM, LM Studio, ComfyUI, LLaMA Factory/Unsloth를 이용한 미세 조정(fine-tuning), 심지어 llama.cpp RPC를 통해 두 개의 Ryzen AI Halo 박스를 클러스터링하여 350B+ 모델을 구동하는 방법까지 포함되어 있습니다. 구조적으로 각 플레이북은 단순한 폴더 형태입니다. 메타데이터를 위한 playbook.json, 콘텐츠를 위한 README.md, 플랫폼별 설정을 위한 platform.md로 구성되며, <!-- @os:windows -->와 같은 인라인 태그를 사용하여 조건부 콘텐츠를 표시합니다. 별도의 특수한 런타임(runtime)은 없습니다. 이는 엔진에 의해 실행되는 것이 아니라, 읽고 따라 하기 위한 마크다운(Markdown) 문서입니다.
마지막 지점은 제가 품고 있던 질문에 대해 더 흥미로운 답이 되었습니다: 에이전트가 이것들을 직접 소비할 수 있을까요? 네, 가능합니다. 이것은 일반적인 마크다운 (Markdown)과 JSON으로 구성된 공개 저장소 (public repo)이므로, 어떤 코딩 에이전트라도 이를 클론 (clone)하여 README.md를 작업 브리핑 (task brief)으로 취급하고 각 단계를 스스로 실행할 수 있습니다. 이는 우리가 열 이동 테스트 하네스 (thermal-migration test harness)를 구축할 때 사용했던 것과 동일한 패턴입니다. 플레이북 (playbook) 라이브러리를 위한 AMD 호스팅 MCP 서버는 존재하지 않지만, 괜찮습니다. 에이전트의 일반적인 저장소 읽기 및 셸 실행 (shell-execution) 능력 덕분에 정적 콘텐츠 저장소에 MCP 래퍼 (wrapper)를 추가할 필요가 없습니다.
홈랩 (homelab) 사용자를 위해: AMD 전용 플레이북은 통째로 건너뛰십시오 (여기에는 ROCm이나 NPU가 없습니다). 하지만 vLLM, 파인튜닝 (fine-tuning), 그리고 RPC 클러스터링 (RPC-clustering) 관련 플레이북은 CUDA 하드웨어에서도 기술적 영감을 얻기에 충분한 가치가 있습니다. 특히 Kimi K2가 이곳에 겨우 들어가기 위해 0.6 tok/s의 속도로 NVMe 오프로드 (offload)가 필요했다는 점을 고려하면, RPC 클러스터링 접근 방식은 더욱 주목할 만합니다.
LocalAI (그리고 그 외 Lemonade의 대안 분야)
Lemonade가 Strix-Halo 전용임이 밝혀졌기에, 자연스러운 후속 질문은
홈랩(Homelab)용: LocalAI는 실제로 테스트해 볼 가치가 있는 도구입니다. 이는 Lemonade의 "단일 통합 엔드포인트(one unified endpoint), 자동 백엔드 선택(auto backend selection), 멀티모달(multi-modal)"이라는 핵심 가치와 철학적으로 가장 유사하면서도, AMD 전용이라는 한계 대신 네이티브 CUDA 지원을 제공합니다. 또한, ComfyUI가 열어준 멀티모달 간극(이미지 생성)을 메우고, 현재 우리에게 없는 음성-텍스트 변환(Speech-to-Text) 및 TTS(Text-to-Speech) 기능을 동일한 엔드포인트를 통해 추가할 수 있을 것입니다.
비교 테스트 (The Bakeoff) (계획 단계, 아직 결과는 아님)
단순한 느낌이 아니라 데이터로 답할 가치가 있는 실제 질문은 다음과 같습니다: LocalAI가 우리가 지난 몇 달 동안 직접 튜닝해 온 llama-server + llm-switch.sh 스택보다 더 나은 데일리 드라이버(daily-driver)가 될 수 있을까?
방법론은 Three-Pass Pattern과 Model Showdown 시리즈에서 직접 차용하였으며, 다만 대상이 모델이 아닌 인프라(infrastructure)로 향해 있습니다:
| 계층 (Layer) | 테스트 항목 | 방법 |
|---|---|---|
| 1. 원시 추론 동등성 (Raw inference parity) | LocalAI의 추상화(abstraction)로 인해 처리량(throughput) 손실이 발생하는가? | 동일한 모델/양자화(quant), pp/tg/TTFT/동시성(concurrency) 조건에서 두 엔드포인트를 대상으로 llama-benchy 실행 |
| ... |
가설: LocalAI는 계층 1~3에서는 우리의 수동 튜닝 설정과 대등한 성능을 보이고, 계층 5에서는 압도적인 승리를 거둘 수 있지만, 계층 4가 진정한 신호(signal)를 확인할 수 있는 지점이 될 것으로 예상합니다. 이 블로그에 기록된 모든 무음 실패(silent failure) 사례는 벤치마크 실행이 아닌 실제 사용(dogfooding)을 통해 발견되었습니다.
이 포스트에서 실제 스위트(suite) YAML이나 하네스(harness) 코드를 구성하지는 않겠습니다. 아직 모델과 작업 목록이 확정되지 않았으며, 솔직히 이 포스트만으로도 이미 다섯 가지 도구와 테스트 계획을 다루고 있기 때문입니다. 다음 주 포스트에서 실제 스캐폴딩(scaffolding), 실제 수치, 그리고 최종 판결을 보여드리겠습니다.
수치로 보는 데이터 (By the Numbers)
- 5개의 조사된 도구: llama-benchy, Lemonade Server, ComfyUI, AMD AI Playbooks, LocalAI
- 1개의 하드웨어 문제로 즉시 제외된 도구 (Lemonade — Strix Halo NPU 전용, 저희는 RTX 5090을 사용 중입니다)
- 1개의 개발 팁 (애초에 저희를 Lemonade의 rabbit hole(함정)로 빠져들게 만든 계기)
- 32 GB — 이 도구들이 궁극적으로 준수해야 하는 RTX 5090의 VRAM 한계치
- 5단계의 계획된 LocalAI bakeoff(성능 비교 테스트) 레이어, 그중 하나는 1~2주간의 직접적인 soak test(장기 안정성 테스트)
- 0개의 오늘 수행된 하드웨어 변경 사항
- 0개의 이 포스트에 표시된 bakeoff YAML 코드 라인 — 의도적인 것입니다
이런 종류의 작업에는 비 오는 날이 과소평가되어 있습니다. 인두기도, 서멀 페이스트(thermal paste)도 필요 없이, 그저 다섯 개의 탭을 열어두고 "잠깐, 이게 정말 우리에게 적용될까?"라는 질문이 담긴 목록을 실행하기만 하면 됩니다.
다음은 bakeoff(성능 비교 테스트)입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기