본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 28. 19:24

피질 짜기: 설계도, 16GB RAM 민주주의, 그리고 연합된 정신들

요약

ANDARTIS 프로젝트가 16GB RAM의 일반적인 MacBook 환경에서 로컬 AI를 효율적으로 실행하기 위해 도입한 '인지 컴파일러(Cognitive Compiler)' 설계 방식을 설명합니다. 무거운 LLM 대신 컴파일 타임에 규칙을 생성하고 런타임에는 가벼운 엔진을 사용하는 최적화 전략을 다룹니다.

핵심 포인트

  • 16GB RAM 환경을 위한 로컬 AI 리소스 최적화 전략
  • 인지 컴파일러: LLM을 사용하여 데이터 레이아웃 규칙을 미리 생성
  • 런타임 시 신경망 대신 가벼운 CPU 전용 엔진으로 처리 속도 극대화
  • Apple MLX 엔진과 Laravel/NativePHP를 결합한 아키텍처

ANDARTIS가 어떻게 로컬 AI의 리소스 점유율을 길들이고, 독립적인 데이터 코어를 연결하며, 표준 소비자용 Mac에 최적화했는지에 대하여.

지난 글인 _From Manifesto to Metal_에서 저는 ANDARTIS의 기초 설계도를 공유했습니다. 저는 우리가 어떻게 클라우드의 임대된 인지(rented cognition)를 거부했는지, Laravel 및 NativePHP를 Apple의 MLX 엔진과 결합하는 비정통적인 경로를 선택했는지, 그리고 신경망 가중치(neural weights)를 VRAM에 상주시키기 위해 지속적인 백그라운드 데몬(background daemon)을 어떻게 구축했는지 상세히 설명했습니다.

그것은 아름다운 설계도였습니다. 하지만 어떤 장인이든 말해주듯: 설계도 자체로는 컴파일되지 않습니다.

철학이 소비자 하드웨어와 만날 때, 당신은 즉시 리소스 제약이라는 현실에 직면하게 됩니다. 만약 개인용 AI 유틸리티를 실행하기 위해 128GB의 통합 메모리(unified memory)를 갖춘 최상급 Mac Studio나 멀티 GPU 워크스테이션이 필요하다면, 그것은 진정으로 민주적인 도구가 아닙니다. 그것은 단지 또 다른 종류의 사치일 뿐입니다.

독립적인 연구자, 로컬 임상의, 독립 작가, 그리고 개발자를 위한 주권적 도구를 만들기 위해서는 표준적인 일상용 하드웨어, 즉 어디에나 있는 16GB RAM MacBook에서 편안하게 실행되어야 합니다. 지난 몇 주 동안 우리는 한 걸음 물러나 실제 하드웨어(raw metal)를 살펴보고, 이러한 제약을 존중하면서도 고도로 최적화되고 리소스를 의식하는 피질(cortex)을 구축하는 방법을 배웠습니다.

1. 제트 엔진과 인지 컴파일러 (The Jet Engine and the Cognitive Compiler)

초기 로컬 AI 실험에서 개발자들은 종종 게으른 함정에 빠지곤 합니다. 디렉터리 내의 _모든 개별 문서_에서 메타데이터를 추출하기 위해 무거운 거대 언어 모델(Large Language Model, LLM)을 매번 깨우는 것입니다.

16GB 사양의 기기에서 50개 또는 500개의 파일에 대해 이 작업을 수행하는 것은 UI 프리징(frozen UI), 통합 메모리 포화, 그리고 이륙을 준비하는 제트 엔진처럼 들리는 팬 소음으로 가는 지름길입니다. 사용자는 로컬 연산의 프라이버시와 기기의 반응성 사이에서 하나를 선택해야만 하는 상황에 놓이게 됩니다.

우리는 고전적이고 결정론적인 (deterministic) 규칙이 마이크로초 단위로 실행할 수 있는 작업을 수행하기 위해 고출력 신경망 (neural network)을 사용하고 있다는 사실을 깨달았습니다. 신경망은 지속적으로 실행될 필요가 없었습니다. 단 한 번 _규칙을 작성 (write the rules)_하기만 하면 되었습니다.

이것이 바로 **인지 컴파일러 (Cognitive Compiler)**의 이면에 있는 철학입니다:

  • 컴파일 타임 (Compile-Time, 레이아웃 분석): 데이터가 동기화될 때, 로컬 모델이 잠시 깨어납니다. 모델은 두세 개의 샘플 문서를 스캔하여 레이아웃 구조를 분석하고, 정규 표현식 (regex), 테이블 셀 (table-cell), 앵커 오프셋 (anchor-offset) 규칙 세트를 생성합니다. 이 규칙들은 아주 작은 JSON 설계도 (blueprint)로 저장됩니다.
  • 런타임 (Run-Time, 고속 인제스션): 나머지 수백 개의 파일에 대해 로컬 모델은 완전히 잠든 상태를 유지합니다. 가벼운 CPU 전용 엔진이 컴파일된 설계도를 적용합니다. 파일 처리 시간은 신경망 연산에 소요되던 수 초에서 정규 표현식 매칭을 통한 밀리초 단위로 단축됩니다.
  • JIT 셀프 힐링 (JIT Self-Healing): 새로운 문서 형식이 도입되어 규칙이 불완전한 메타데이터를 생성할 경우, 시스템은 자동으로 단 한 번의 신경망 추출 패스 (neural extraction pass)를 실행하여 즉석에서 설계도를 치유하고 다시 컴파일합니다.

런타임의 JIT 신경망 추출 방식에서 컴파일 타임의 레이아웃 컴파일 방식으로 전환함으로써, 우리는 활성 인제스션 (ingestion) 메모리 사용량을 대폭 절감하였고, 이를 통해 기기가 차갑고 반응성이 높으며 다른 작업을 수행할 준비가 된 상태를 유지할 수 있게 했습니다.

2. 수학, 청크, 그리고 근거 있는 정확도 (Grounded Accuracy)

로컬 모델의 또 다른 과제는 산술 연산과 정확한 데이터 수치 계산에 있어 내재적인 약점을 가지고 있다는 점입니다.

표준 RAG 아키텍처는 시맨틱 검색 (semantic search)을 위해 긴 문서를 중첩된 청크 (chunks)로 나누기 때문에, 로컬 모델에게 가장 흔한 기록을 요약하거나 합계를 계산하는 것과 같은 통계적 질문을 던지면 모델이 실제 _파일_이 아닌 텍스트 _청크_의 개수를 세는 결과가 자주 발생합니다. 특정 주제를 여러 번 언급하는 단일 파일이 인위적으로 증폭되어 부정확한 요약으로 이어지게 됩니다.

게다가 양자화된 (quantized) 로컬 모델이 합계나 평균을 계산하기 위해 수백 행의 원시 데이터를 파싱하도록 강제하면, 모델의 제한된 컨텍스트 윈도우 (context window)가 한계에 다다라 VRAM을 포화시키게 됩니다.

이를 해결하기 위해, 우리는 신경망 대화 계층 (neural conversational layer)을 기호적 데이터 분석 계층 (symbolic data-analysis layer)으로부터 분리했습니다.

  • 문서 수준 레지스트리 (Document-Level Registry): 청크 (chunk) 수준의 의미론적 검색 (semantic search)을 문서 수준의 메타데이터 등록으로부터 분리했습니다. 고유한 파일 속성들은 단일 행 레지스트리에 기록됩니다.
  • 기호적 수학 오프로딩 (Symbolic Math Offloading): 사용자가 지표나 집계 (aggregation)를 질의할 때, 기호 엔진 (symbolic engine)이 로컬 레지스트리에 직접 질의하여 프로그래밍 방식으로 정밀한 데이터베이스 수학 연산을 실행합니다.
  • 컨텍스트 합성 (Context Synthesis): 파싱되지 않은 원시 데이터를 로컬 모델에 입력하는 대신, 미리 계산된 수학적 진실 (mathematical truth)을 전달합니다. 모델은 계산기가 아닌 작성자 (writer)로서 작동하며, 100% 정확한 통계에 기반하여 유창하고 자연스러운 언어 응답을 생성합니다.

이러한 관심사 분리 (separation of concerns)를 통해 모델의 메모리 점유율 (memory footprint)을 매우 작게 유지하며, 16GB RAM 제한을 초과하지 않고도 정량적 질문에 대해 절대적인 정밀도로 답변할 수 있도록 보장합니다.

3. 연합 교차 추론 (Federated Cross-Reasoning): 섬들을 잇는 가교

진정으로 프라이빗한 시스템이라면 사용자가 모든 파일을 하나의 거대한 단일 데이터베이스 (monolithic database)로 병합하도록 강요해서는 안 됩니다. 독립적인 사고를 하는 사람은 데이터를 폴더별로 정리합니다. 연구 논문은 한 곳에, 의료 기록은 다른 곳에, 금융 문서는 또 다른 곳에 보관합니다.

하지만 이들을 하나의 데이터베이스로 병합하면 메모리 사용량이 증가하고, 데이터 손상 위험이 있으며, 검색 정밀도가 떨어집니다. 파일들은 각자의 격리된 코어 (isolated cores)에 남아 있어야 합니다. 그렇다면 어떻게 이 파일들을 가로질러 비교하고 추론할 수 있을까요?

우리는 **연합 교차 추론 (Federated Cross-Reasoning)**을 도입했습니다:

  1. 병렬 로컬 검색 (Parallel Local Search): 사용자가 여러 폴더에 걸친 비교 질의를 수행할 때, 시스템은 각 독립된 데이터베이스에 대해 병렬적인 의미론적 검색을 실행합니다.
  2. 컨텍스트 컴파일 (Context Compilation): 오케스트레이터 (orchestrator)가 각 대상 코어에서 가장 관련성이 높은 청크들을 검색하여, 이를 깔끔한 마크다운 (markdown) 구조로 포맷팅하고 원래의 노드 (originating nodes) 태그를 붙입니다.
  3. 단일 패스 합성 (Single-Pass Synthesis): 이렇게 컴파일된 다중 소스 컨텍스트는 단 한 번의 합성 패스 (synthesis pass)를 위해 기본 대화 모델로 전송됩니다.

이를 통해 시스템은 파일을 병합하거나 메모리 사용량을 팽창시키지 않고도 완전히 다른 디렉토리의 레코드들을 비교할 수 있습니다.

제약된 기계의 예술

로컬 AI를 위한 소프트웨어를 구축하는 것은 절제의 설계 규율 (design discipline)입니다. 클라우드는 개발자들에게 무한한 메모리와 값비싼 API 호출을 최적화되지 않은 코드에 쏟아붓도록 유혹하며 낭비를 조장합니다.

로컬 하드웨어 (local metal)에서는 낭비가 프레임 저하와 뜨거워진 키보드로 즉각적인 대가를 치르게 합니다. 16GB MacBook을 위해 구축하는 것은 더 나은 소프트웨어를 작성하도록 강제합니다. 이는 신경 논리 (neural logic)를 기호 연산 (symbolic computation)으로부터 분리하고, 레이아웃을 한 번만 컴파일하며, 작고 깨끗하며 격리된 데이터베이스 전반에 걸쳐 검색을 연합 (federate)할 것을 요구합니다.

그 결과물인 도구는 더 가볍고, 빠르며, 완전히 에어갭 (air-gapped) 상태로 유지되어 표준 노트북을 가진 누구에게나 접근 가능합니다. 그것이 바로 민주적인 기술의 모습입니다.

지혜를 구축하십시오. 로컬에 유지하십시오. 절대 뒤돌아보지 마십시오.

미리보기 --> https://docs.andartis.it

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0