재활용 사무실 PC로 로컬 AI 지식 시스템 구축기
요약
재활용 사무실 PC와 Ollama LLMs를 활용하여 클라우드나 구독 서비스 없이 로컬 AI 지식 시스템(Cyberdeck)을 구축한 경험담입니다. 이 시스템은 Obsidian 볼트 등의 개인 데이터를 RAG 파이프라인으로 처리하며, 중고 하드웨어로도 충분히 구동 가능함을 보여줍니다.
핵심 포인트
- 중고 PC와 Ollama를 활용하여 로컬 AI 지식 시스템 구축 가능
- 클라우드 의존성 없이 개인 데이터 기반의 질의응답 환경 구현
- 개인화된 지식 축적 및 분산 시스템 학습 목표 달성
이것이 전체 이야기입니다: https://cyberdeck-ai-knowledge-system.org/이며, Ubuntu와 Python 그리고 Ollama LLMs를 사용하여 다운로드하는 것이 아니라 직접 만들어야 합니다.
title: "I am building a Local AI Knowledge System on Refurbished Office PCs"
published: false
description: "Obsidian 볼트를 대상으로 하는 RAG 파이프라인과 Ollama가 실행되는 Beowulf 클러스터. 클라우드도, 구독 서비스도 없이, 중고 하드웨어 약 $150으로 구축했으며, 작동하지 않은 많은 것들이 있었습니다."
tags: ai, opensource, homelab, python
cover_image:
솔직히 고백합니다. 제 AI 지식 시스템은 재활용 쓰레기통으로 가려던 컴퓨터들로 구동되지만, eBay에서 건져온 것들입니다. DeepSeek이 당신의 이야기도 이렇게 들려줄 거라고 말했습니다:
샴슈이포(Sham Shui Po)에서 중고로 구매한 델 OptiPlex 머신 3대. 총합 약 $150 상당입니다. GPU는 없습니다. 클라우드 계정도, 월별 구독도 없습니다. 이 컴퓨터들은 제 책상 아래 선반 위에 놓여 있으며, 저렴한 기가비트 스위치로 연결되어 함께 작동하며 저의 노트, 문서, 북마크에 대한 질문에 답합니다.
저는 이것을 Cyberdeck이라고 부릅니다. 스스로 구축하고 형태를 갖추는 SF 개념에서 따온 이름입니다. Apache 2.0 라이선스가 적용되어 있습니다. 그리고 이것은 제품이 아니라 — 직접 만들 의지가 필요한 프로젝트입니다. 이곳에서 무언가를 시작하여, 사람들이 이 Apache 라이선스를 최대한 활용해 자신만의 코드와 전용 사용 사례로 버전을 만들어낼 사람들을 찾기를 바랍니다.
이 논문(Thesis)은 구축 기록입니다: 제가 무엇을 했는지, 무엇이 고장 났었는지, 그리고 제가 심각하게 잘못 파악했던 하나의 기술적 가정이었습니다.
실제로 해결하려고 했던 문제
저는 시스템 분석가(System Analyst) 출신인데, 직장을 잃었고 그 후 AI가 다음 큰 화제였습니다. 지식 관리 팀을 구축하는 과정에서 승진하기보다는 기업 내부의 게임에서 패배하여 이사나 EVP(Executive Vice President)로 가는 대신 퇴사를 선택했습니다. AI는 추론에 뛰어나고 제가 예전에 했던 일과 완벽하게 맞습니다. 만약 회사 생활을 계속했다면 여러 곳에 흩어져 있는 수년간의 지식을 축적했을 것입니다. 저는 몇천 개의 노트가 담긴 Obsidian 볼트, 북마크, PDF 파일들을 가지고 있었습니다. 그리고 점점 늘어난 것 중에는 정말 유용한 종합(synthesis)이 포함된 클라우드 LLM과의 긴 대화들이 있었는데, 이 내용들은 제가 비용 지불을 멈추는 순간 사라지는 누군가의 데이터베이스에 존재했습니다.
저를 괴롭혔던 세 가지 문제가 있었습니다:
- 제 지식은 다른 사람에게는 질의(queryable)할 수 있지만, 저 자신에게는 그렇지 않았습니다. 저는 클라우드 모델에게 무엇이든 물어볼 수 있었지만, 모든 자료를 업로드하지 않고는 저 자신의 자료에 대해 질문할 수 없었습니다.
- 구독 모델은 제가 학습하는 방식과 맞지 않습니다. 저는 접근 권한을 임대하는 것이 아니라 도구를 소유하고 싶습니다.
- 저는 스택(stack)을 이해하고 싶었습니다. 저는 오랫동안 분산 시스템(distributed systems)과 로컬 LLM 추론(local LLM inference)에 대해 궁금했습니다. MPICH나 RAG 파이프라인에 대해 읽는 것만으로는 한계가 있었습니다.
그래서 저 자신에게 제약 조건을 설정했습니다: 오프라인에서 실행되어야 하고, 제가 감당할 수 있는 하드웨어를 사용해야 하며, GPU를 요구해서는 안 되고, 제가 직접 확장할 수 있는 것이어야 합니다.
하드웨어
| 노드 | 사양 | 비용 |
|---|---|---|
| node01 | i5-8500, 16GB RAM, 256GB SSD | ~$50 |
| ... | ||
| 더불어 제가 이미 가지고 있던 기가비트 스위치와 약 $12 상당의 케이블링이 필요했습니다. |
만약 홍콩에 계시다면, Sham Shui Po나 Apliu Street 주변 중고 시장이 정말 좋습니다. 전세 사무실 PC들이 풍부하고 저렴하며 지루할 정도로 신뢰성이 높습니다. 마지막 부동산 조건은 생각보다 중요합니다. 저는 하드웨어 문제 해결보다는 소프트웨어에 시간을 쓰고 싶었기 때문입니다.
왜 단일 장치가 아니라 클러스터여야 하는가?
이 부분에서는 솔직해져야 할 것 같습니다. 왜냐하면 이것이 제가 잘못 이해했던 전제였기 때문입니다.
저는 LLM을 세 개의 노드에 분산 배포하면 추론(inference) 속도가 빨라질 것이라고 가정했습니다. 하지만 그렇지 않습니다. 단일 질의(query)에 대해서는 의미 있는 차이가 없습니다.
LLM 추론은 일반적인 HPC 워크로드처럼 병렬화되지 않습니다. 인터커넥트가 병목 현상을 일으키지 않는 한, 트랜스포머(transformer)를 기기들 사이에 쉽게 분할(shard)할 수 없습니다. 레이어를 노드에 걸쳐 분리한다는 것은 활성화 값(activations)을 앞뒤로 전송해야 함을 의미하며, 1Gbps에서는 그 오버헤드가 이론적인 이득을 모두 상쇄합니다.
클러스터가 실제로 도움이 되는 부분:
- 지연 시간(latency)이 아닌 처리량(throughput). 세 개의 노드는 세 개의 동시 질의를 처리할 수 있습니다. 하나의 노드는 하나는 잘 처리하고 둘은 제대로 못 합니다.
- 병렬 임베딩 및 인덱싱. 제가 볼트(vault)를 재인덱싱 할 때, 청크 분할(chunking)과 임베딩 작업이 노드들 사이에 분산되어 약 3배 더 빠르게 완료됩니다. 이것은 실제적이고 측정 가능하며, MPICH가 실제로 자리를 차지하는 곳입니다.
- 메모리 여유 공간(Memory headroom). 각 노드는 자체 RAM에 모델을 보유하므로, 스와핑 없이 서로 다른 작업을 위해 다양한 모델을 실행할 수 있습니다.
따라서 솔직한 결론은 이렇습니다. 이것은 단일 응답 속도를 높이기 위한 클러스터가 아니라, 처리량과 용량을 위한 클러스터입니다. 만약 항상 한 번에 하나의 질문만 한다면, 하나의 기기가 정답이며, 하나의 기기를 구축해야 합니다.
제가 클러스터를 유지한 이유는 재인덱싱을 자주 하고, 여러 모델을 실행하며, — 솔직히 말해서 — 이것을 어떻게 구축하는지 배우고 싶었기 때문입니다. 하지만 제가 $150를 써가며 그것을 발견하게 하는 것보다는 미리 알려드리는 편이 낫습니다.
소프트웨어 스택
전체 시스템은 파이썬(Python)으로 붙인 표준적이고 지루한 오픈소스 소프트웨어들입니다:
- MPICH: 인덱싱 및 임베딩 작업을 분산 처리하기 위함
- Ollama: 로컬 LLM 추론(
llama3.1:8b를 생성에,nomic-embed-text를 임베딩에 사용) - Qdrant: 벡터 스토어로, node01에서 Docker로 실행됨
- Python: RAG 파이프라인 및 Obsidian 통합을 위해
- Obsidian: 자체적으로 변경되지 않음 — 저는 볼트(vault)에서 읽기만 하고, 쓰지는 않습니다。
만약 직접 구축하고 싶다면
저장소는 Apache 2.0이며 기여에 열려 있습니다.
웹사이트: cyberdeck-ai-knowledge-system.org
깃허브: github.com/iboneumann
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기