진정한 해자(Moat)는 소프트웨어가 아니다
요약
텍스트 기반 AI의 한계를 극복하기 위해 센서 네트워크를 활용한 물리적 데이터 수집 시스템 'Paradox' 구축 과정을 다룹니다. 고사양 카메라 대신 안정적인 저사양 하드웨어를 선택하여 실질적인 행동 데이터를 확보하는 엔지니어링적 통찰을 제공합니다.
핵심 포인트
- 텍스트 입력 위주의 AI 맥락 한계를 물리적 센서 데이터로 보완
- 고사양 스펙보다 시스템 안정성과 디버깅 용이성이 우선
- Raspberry Pi와 로컬 GPU를 활용한 에지-클라우드 추론 구조
- 물리적 관찰 데이터가 채팅 기록보다 풍부한 행동 맥락 제공
지난달 저는 벽에 설치된 센서 네트워크에서 64MP 카메라 5개를 뜯어내고 12MP 카메라로 교체했습니다. 서류상으로는 다운그레이드였지만, 올해 제가 내린 최고의 결정이었습니다.
아무도 해결하지 못하고 있는 문제
당신의 AI는 당신이 무엇을 타이핑하는지는 알고 있습니다. 그게 전부입니다. 당신의 AI가 당신에 대해 알고 있는 모든 맥락(Context), 모든 선호도, 모든 행동 패턴은 텍스트 박스를 통해 전달되었습니다. 당신이 대화를 나누기로 선택한 과정에서, 당신이 기억해낸 주제에 대해 수동으로 말해준 것들뿐입니다.
반면, 실제로 당신의 행동을 정의하는 것들은 당신에게 보이지 않습니다. 당신은 불안할 때 서성거린다는 사실을 알아차리지 못합니다. 당신은 실제로 책상에 앉아 있는 시간과 당신이 생각하는 시간의 차이를 추적하지 않습니다. 당신은 일주일에 네 번 운동한다고 AI에게 말하지만, 실제로는 두 번만 갑니다.
모델(Models)은 충분히 똑똑합니다. 입력 계층(Input layer)이 고장 난 것입니다.
내가 만든 것: Paradox
5개의 노드. 각 노드는 Raspberry Pi Zero 2W ($15), 120도 시야각(FOV)을 가진 ArduCam IMX708 12MP 카메라, 그리고 마이크 캡처를 위한 WM8960 오디오 HAT으로 구성됩니다. 노드당 약 $100, 총 $500가 들었습니다.
각 노드는 다음을 처리하는 커스텀 Python 데몬(Daemon)을 실행합니다:
- 저해상도 320x240 스트림에서의 움직임 감지 (Motion detection)
- WM8960을 통한 오디오 감지 (Audio detection)
- 움직임이나 오디오가 발생했을 때 1280x720 @ 15fps로 트리거 녹화 (Triggered recording)
- NAS로의 MJPEG 및 H.264 스트리밍 (Streaming)
추론(Inference)은 로컬 네트워크에 있는 RTX 5090에서 실행됩니다. 이 모든 장치는 책상 하나에 들어갑니다... 음, 벽에 설치된 카메라들을 제외하면 어느 정도 그렇다는 뜻입니다.
카메라 사가 (The Camera Saga)
처음에는 ov64a40 드라이버를 사용하는 OwlSight 64MP 센서로 시작했습니다. 서류상으로는 놀라웠지만, 실제로는 악몽이었습니다.
Pi Zero 2W는 20분 이내에 써멀 스로틀링 (thermal throttle)이 발생했습니다. 카메라 부하 상태에서 4W를 소모하는 보드에서 80°C 이상의 온도가 찍히는 상황을 말하는 것입니다. dtoverlay 설정에는 특정 link-frequency 파라미터(link-frequency=360000000)가 필요했는데, 이를 디버깅하느라 밤을 꼬박 새우기도 했습니다. 한 노드에서는 정상적으로 초기화되던 것이, 동일한 SD 카드 이미지를 사용한 다음 노드에서는 실패하곤 했습니다. 답은 항상 허무한 것들이었습니다. 헐거운 리본 케이블, 커널 버전 불일치, 혹은 전류 소모를 견디지 못하는 PSU (전원 공급 장치) 같은 것들이었죠.
결국 저는 모든 것을 단순한 dtoverlay=imx708 설정이 가능한 IMX708로 교체했습니다. 사양은 덜 화려하지만, 훨씬 더 안정적이었습니다. 지루한 선택이 옳은 선택이었습니다.
만약 하드웨어를 제작하고 있다면, 사양표 (spec sheet)를 위해서가 아니라 "아무도 지켜보지 않는 새벽 3시에 실제로 작동하는가"를 기준으로 최적화하십시오.
데이터가 보여준 것
첫 일주일 만에, 시스템은 제가 채팅창에 절대 입력하지 않았을 패턴들을 포착했습니다. 아파트를 가로지르는 움직임 패턴, 제가 보고하는 내용과 실제 수면 일정의 차이, 인지된 책상 업무 시간과 실제 책상 업무 시간의 차이 같은 것들 말입니다. 한 시간의 물리적 관찰은 1년 치의 채팅 기록보다 더 많은 행동 데이터를 생성합니다.
이것은 과장이 아닙니다. 이것이 바로 그 격차입니다.
3계층 스택 (The Three-Layer Stack)
제가 계속해서 되돌아오게 되는 프레임워크는 다음과 같습니다:
Layer 1: 관찰 (Observation). 물리적 세계의 데이터를 AI가 처리할 수 있는 형식으로 가져오는 것입니다. 카메라, 마이크, 센서, 웨어러블 기기 등이 이에 해당합니다. 이것이 Paradox가 하는 일입니다.
Layer 2: 메모리 (Memory). 가공되지 않은 관찰 데이터와 대화 데이터를 가져와 지능적으로 인코딩 (encoding)하는 것입니다. 무엇이 중요한지 결정하고, 오래된 정보는 소멸하게 두며, 적절한 시점에 적절한 맥락을 드러내는 작업입니다. 이것이 제가 TrueMemory를 구축하여 해결하고자 한 문제입니다. 그 아키텍처는 저의 arXiv 논문에 나와 있으며, 생물학적 기억이 실제로 작동하는 방식인 인코딩 게이트 (encoding gates), 현저성 점수 산정 (salience scoring), 시간적 감쇠 (temporal decay)를 기반으로 합니다.
Layer 3: 추론 (Reasoning). LLM (대규모 언어 모델)입니다. Claude, GPT, 혹은 다음에 등장할 그 무엇이든 말이죠.
현재 수십억 달러가 Layer 3 (레이어 3)로 흘러 들어가고 있습니다. Anthropic, OpenAI, Google 모두 더 나은 추론 엔진 (reasoning engines)을 구축하고 있습니다. 그리고 그 엔진들은 놀라운 수준으로 발전하고 있습니다. 하지만 Layer 1 (레이어 1)과 Layer 2 (레이어 2)가 거의 존재하지 않기 때문에, Layer 3는 거의 아무것도 없는 기반 위에서 추론을 하고 있는 셈입니다.
이는 세상에서 가장 강력한 엔진을 만들어 놓고, 창문이 없는 자동차에 장착하는 것과 같습니다.
개발자가 얻어야 할 교훈
소프트웨어 래퍼 (Software wrappers)는 주말 사이에 복제될 수 있습니다. 더 나은 RAG (검색 증강 생성) 파이프라인, 더 똑똑한 리랭킹 (reranking) 알고리즘, 새로운 인코딩 게이트 (encoding gate) 등은 모두 실제적인 혁신이지만, 이들 역시 결국은 코드일 뿐입니다. 누군가 당신의 논문을 읽고 접근 방식을 이해한다면, 곧바로 자신만의 버전을 출시할 것입니다.
하드웨어는 그렇게 쉽게 복제될 수 없습니다. 물리적 배포, 센서 보정 (sensor calibration), 드라이버 충돌 및 발열 문제와 네트워크 토폴로지 (network topology)를 해결하기 위해 보낸 수개월간의 디버깅 과정은 완전히 다른 종류의 해자 (moat)를 형성합니다.
흥미로운 프로젝트를 찾고 있다면 다음과 같이 시작해 보세요:
- 단일 Pi Zero 2W와 IMX708로 시작하세요. 총비용은 50달러 미만입니다. picamera2와 기본적인 프레임 차분 알고리즘 (frame-differencing algorithm)을 사용하여 동작 감지 (motion detection)를 구현해 보세요.
- 데이터를 유용한 곳으로 전송하세요. NAS, 클라우드 버킷 (cloud bucket), 혹은 로컬 SSD라도 좋습니다. 저장 파이프라인 (storage pipeline)이 캡처 품질보다 더 중요합니다.
- 메모리 레이어 (memory layer)를 구축하세요. 단순히 원본 영상을 저장하는 데 그치지 마세요. 행동 패턴을 추출하고, 이를 인코딩하여 검색 가능하게 만드세요. 이것이 가장 어렵고도 흥미로운 부분입니다.
관측 레이어 (observation layer)는 AI에서 빠져 있는 조각입니다. 모두가 똑같이 형편없는 입력값 (garbage input) 위에서 더 똑똑한 추론을 구축하고 있습니다. 아무도 입력값 자체를 고치려 하지 않습니다.
솔직한 한계점
Pi Zero 2W는 유휴 상태에서 약 1.5W를 소비하지만, 카메라 부하가 걸리면 거의 4W까지 급증합니다. 배터리 구동은 현실적이지 않습니다. 이 장치들은 전원을 연결해야 합니다.
15fps로 작동하는 5대의 카메라는 엄청난 양의 데이터를 생성합니다. 동작 감지 트리거 녹화를 사용하더라도, 제 NAS는 생각보다 빠르게 가득 찹니다. 저장 공간이 넘치는 것을 막기 위해 정리 파이프라인 (cleanup pipeline)을 구축하는 데만 일주일을 보냈습니다.
그리고 사회적 비용도 있습니다. 제가 카메라를 설치한 후 제 여자친구는 이틀 동안 저와 말을 하지 않았습니다. 우리는 문제를 해결했고, 이제는 카메라가 작동하지 않는 구역(zones)과 방들을 설정해 두었습니다. 하지만 사회적 수용성 (social acceptability)은 그 어떤 엔지니어링 제약 조건만큼이나 강력한 제약 사항입니다. 이는 디버깅 (debug)을 통해 해결할 수 있는 문제가 아닙니다.
핵심 요점 (The Point)
더 나은 채팅 인터페이스 (chat interface)를 구축한다고 해서 AI 경쟁에서 승리할 수 있는 사람은 아무도 없습니다. 채팅 인터페이스는 우리가 AI를 당신과 같은 공간에 어떻게 배치할지 아직 방법을 찾아내지 못했다는 사실에서 기인한 일시적인 산물일 뿐입니다.
저도 아직 이 문제를 완벽히 해결하지는 못했습니다. 저는 여전히 처리하는 법을 배우고 있는 데이터를 생성하는 5대의 카메라와, 너무 빨리 가득 차버리는 NAS, 그리고 수많은 새벽 2시의 디버깅 (debugging) 세션들을 겪어왔습니다. 하지만 저는 해자 (moat)가 누가 가장 영리한 래퍼 (wrapper)를 만드느냐에 있지 않다는 것을 알고 있습니다. 그것은 누가 AI를 물리적 세계 (physical world)에 먼저 가져다 놓느냐에 달려 있습니다.
그것은 하드웨어 (hardware) 문제입니다. 그리고 프롬프트 템플릿 (prompt template)을 미세 조정 (fine-tuning)하는 것보다 훨씬 더 어렵습니다.
Josh Adler는 Sauron의 계열사인 TrueMemory의 연구원입니다. 연구: arXiv:2605.04897. 더 많은 정보는 joshadler.com에서 확인하세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기