전체 글 84

파일 크기 21GB, 필요 VRAM 31.8GB — 오픈웨이트의 함정 두 개를 한 번에 배웠습니다

논문 투고를 하다 보니 그림 작업이 따로 노동이었습니다. 본문은 다 써놓고도 라벨이 어디서 겹치나 며칠이고 씨름하게 되거든요. 그래서 헤르메스 안에 그림만 그리는 전용 에이전트를 만들어보기로 했습니다. 막상 쪼개보니 이야기는 두 갈래로 갈렸습니다. 손에 있는 숫자로 matplotlib 그림을 그리는 데이터 피규어 쪽 하나, 배경 그림이나 이미지 편집 같은 생성형 쪽 하나였습니다. 데이터 피규어는 기존 논문 작성 에이전트에 스킬로 흡수해서 순조롭게 자리 잡았어요. 골칫덩이는 생성형 쪽이었습니다. 오픈웨이트 모델을 로컬에 올려보려다 기술 벽과 법적 벽에 연속으로 막혔습니다. 그림 요정을 따로 앉혔습니다프로파일을 분리한 이유는 지극히 실무적이었습니다. 컨텍스트 오염이에요. 이미지 생성 작업은 대용량 출력(Bl..

Zotero를 헤르메스에 붙였다 — 심사 초대 논문 36권이 자동으로 서재에 들어온다

저널에서 오는 심사 초대 메일이 매일 쌓입니다. 작년부터 Gmail을 감시하는 크론을 돌려서 초대 편지들을 JSON 파일 하나로 뽑아두기만 했는데, 오늘 실측으로 추적 중인 건이 75건이었습니다. 정작 그 논문들을 Zotero 서지관리 컬렉션으로 옮기는 일은 계속 손으로 하고 있었습니다. 감시는 자동이고 분류는 수동이라, 하루에 10분씩 새는 구멍이 이번 작업의 대상이었습니다. Zotero에는 공식 CLI가 없습니다시작 전에 생태계를 조사해 봤는데, Zotero 공식 CLI는 존재하지 않습니다. 없어서 없는 걸 만든 셈이고, 결국 커뮤니티 도구인 54yyyu/zotero-mcp를 고르게 됐습니다. PyPI 패키지명은 zotero-mcp-server이고, 버전은 0.15.1로 고정했습니다. 고정해두지 않으..

메모리 슬롯은 하나뿐 — 세컨드브레인 52.5만 벡터를 헤르메스 안에 감쌌다

헤르메스가 세컨드브레인을 검색할 때는, 사실 검색 도구를 떠올린 턴에만 검색합니다. 브레인 자체는 살아 있습니다. 52.5만 벡터짜리 색인에 물으면 답도 잘 찾아옵니다. 그런데 에이전트가 도구 호출을 잊는 순간, 있는 건 없는 거나 마찬가지가 됩니다. 사무실 지하에 문서를 잔뜩 쌓아놓고 책상 위에는 아무것도 붙여두지 않은 격입니다. 내려가서 꺼내 오지 않으면 끝내 안 읽히는 메모, 그게 제 세컨드브레인이었습니다. 그래서 시맨틱 회상을 매 턴 자동으로 주입되는 메모리 프로토콜 쪽으로 집어넣어 보려 했습니다. 그리고 시작하자마자 벽에 부딪혔습니다. 외부 메모리 슬롯은 하나뿐이었습니다헤르메스의 메모리 시스템은 MemoryProvider라는 인터페이스 규격으로 만들어져 있습니다. 지금 기억을 SQLite에 쌓는..

공부/인공지능 2026.10.21

DeepSeek 1017을 2대의 GB10에 돌리다 — TensorFold와 1M 컨텍스트의 실체

한 줄 요약부터. DeepSeek의 새 모델 '1017'(V4.1-Flash-1017)을 우리 GB10 두 대에 EXL3 2.9bpw 포맷으로 올려서 서빙 엔진을 바꿔가며 실측했습니다. TensorFold가 디코드는 vLLM보다 1.6배 빨랐는데, 커뮤니티에서 돌던 2.1~2.3배 주장 그대로는 재현되지 않았습니다. 우리가 느려서가 아니라 기준선이 빨랐습니다. 그리고 이번 실험에서 제일 중요한 걸 하나 확정했는데, 모델 카드에 적힌 1M과 두 대가 실제로 주는 1M은 다른 문장이라는 점입니다. 1017이 어떤 모델이고, 어떻게 올렸나1017은 10월 17일에 나온 DeepSeek V4.1-Flash-1017입니다. 모델 카드가 발표한 주요 수치로는 Terminal-Bench가 직전 버전의 31.2에서 4..

공부/인공지능 2026.10.20

API server down 경보를 받고 서버를 의심했습니다 — 로그가 거짓말한 겁니다

새벽에 알림 하나가 떴습니다. "API server down". 에이전트를 백본으로 살아가는 사람한테 이 문장은 심장이 내려앉는 문구입니다. 바로 SSH로 서버에 붙어서 점검을 시작했습니다. 프로세스가 죽었겠거니 하는 마음으로요.서버는 말짱했습니다먼저 포트를 확인했습니다. ss -tlnp | grep 18642 돌아온 포트는 멀쩡히 LISTEN 상태였습니다. hermes status 점검도 플랫폼 정상이었고요. API 서버는 OpenAI 호환 HTTP 엔드포인트 0.0.0.0:18642으로 정상 구동 중이었고 응답도 잘 돌아오고 있었습니다. 그러니까 다운은 사실이 아니었습니다. 서버는 살아있었습니다. 그런데 이대로 "다행입니다"로 넘길 수가 없었습니다. 경보는 꽤 자신 있게 down을 외쳤고, 그 외침의..

공부/인공지능 2026.10.18

음성 비서가 느린 진짜 병목은 LLM 첫 토큰이었습니다 — 헤르메스 데스크톱에 로컬 음성 스택 붙이기

헤르메스 데스크톱에 음성 대화를 붙였습니다. 제 목소리를 받아 적고, LLM이 생각하고, 다시 목소리로 답해 주는 구성입니다. ChatGPT 음성 모드처럼 바로 대답이 나올 줄 알았는데, 실제로는 답이 한 박자 늦었습니다. 말을 끝내면 음... 소리가 나오기까지 1, 2, 3초가 뜸하거든요. 반응은 있으니 고장이라 하기엔 애매했고, 그냥 느린 것이었습니다. 여기서 다들 하는 짐작이 있습니다. 입력도 음성이고 출력도 음성이니 STT(음성을 텍스트로 바꾸는 단계)나 TTS(텍스트를 음성으로 바꾸는 단계)부터 의심하게 되죠. 그런데 로컬 음성 스택(whisper + Kokoro)을 하나씩 붙여 보며 잡아 본 병목은 그 둘이 아니었습니다. STT는 거의 즉답이었고 TTS는 스트리밍으로 말하기 시작하는데도, 첫 ..

공부/인공지능 2026.10.17

얼굴 인식으로 '내가 방에 있는지' 판정하다 포기했습니다 — CCTV 재실 판정은 공간 마커 규칙으로

한 줄 요약부터. 연구실 문패를 '재실/부재/강의/퇴근'으로 자동 표시하려면, 결국 한 가지를 알아야 합니다. 지금 방 안에 있는 그 사람이 '나'인지가요. 사람 감지 이벤트만으론 학생이 들어와도 '재실'이라 떠버리니까요. 그래서 라즈베리파이 + CCTV 이벤트를 얼굴 인식으로 판정해봤는데, 같은 사람 임베딩끼리도 거리가 0.86에서 1.5까지 흔들리는 걸 실측으로 확인한 뒤 1:1 동일성 판정은 포기했습니다. 대신 좌표 존(공간 마커) + 요일 패턴 규칙으로 갈아탔습니다. 평일 근무시간에는 97% 이상 '교수'로 판정되는 걸 보고, 얼굴 인식은 '화질이 좋을 때만 쓰는 보조'로 내린 이야기입니다. 무엇을 만들고 있었나연구실 문패는 e-paper 화면에 '내 방/방문자/공사(주말)' 같은 상태를 띄우는 ..

공부/인공지능 2026.10.15

문패를 e-paper로 바꿨더니 배터리가 13배 오래 갔다 — ESP32 문패 구축기

무엇을 만들었나연구실 문 앞에 붙이는 '자리 비움' 표시는 종이 문패를 쓰면 상태를 바꿀 때마다 다시 써야 하고, 재실/부재/강의/회의/퇴근 상태를 그때그때 알리고 싶으면 사람이 직접 바꿔야 합니다. 그래서 온라인으로 상태를 바꾸면 몇 초 안에 문패 화면이 갱신되는 e-paper 문패를 만들었습니다. 만들면서 배터리를 13배 아끼는 과정과, 펌웨어에 숨어 있던 정수 오버플로 버그까지 함께 다뤄봅니다. 하드웨어는 ESP32(T-Display 클론)와 4.2인치 흑/백/적 3색 e-paper(SSD1683)입니다. 3색이라 흑 평면과 적 평면 두 장을 겹쳐서 400×300 픽셀에 그립니다. 서버는 랩 내부 서버의 Docker 컨테이너가 담당하는데, FastAPI와 Pillow가 3색 비트맵(약 30KB)..

공부/인공지능 2026.10.14

GPU 사용률 0%인데 메모리 6.7GB — 좀비라고 의심했던 그 프로세스는 살아있었습니다

🚨 증상: 연산은 0%인데 메모리는 6.7GB로컬 GPU 서버에서 작업을 마치고 nvidia-smi로 그래픽 카드 상태를 한번 열어봤습니다. GPU Utilization은 0%, 전력도 23W라 완전한 대기 상태였습니다. 아이들로 조용히 쉬고 있는 셈이죠. 그런데 메모리 점유율은 6.7GB — GPU가 11GB라니까 전체의 절반을 넘게 물고 있었습니다. 연산은 하나도 안 하는데 메모리를 6.7GB나 쥐고 있는 겁니다. "화면은 안 보면서 키보드만 두드리고 있는 격"이라는 비유가 떠올랐습니다. 연산을 안 하는데 자원을 버티고 있는 건 뭔가 잘못된 것 같아 보이니까요. 점유 프로세스를 내려보니 프로세스는 하나뿐이었고, 오래된 로컬 임베딩 서버였습니다. 게다가 게시된 지 5일이 넘게 상주해 있었습니다. ?..

공부/인공지능 2026.10.12

2x DGX Spark에서 대형 로컬 모델 고르기: DeepSeek V4-Flash vs Qwen3.8 — 1M 컨텍스트와 동시성의 트레이드오프

연구실에서 지금 2x DGX Spark(GB10, 통합메모리 128GB × 2노드)로 로컬 LLM을 서빙하고 있습니다. 최근 딥시크가 DeepSeek V4.1-Flash를 공개하면서, "요새 뭐 써야 하나"를 다시 따져볼 때가 됐습니다. 랩 실측으로 다시 확인한 결론부터 말하자면, 램(파라미터 총량)이 어디까지 들어갈 수 있을지를 정하고, 활성 파라미터가 속도를 정하고, 양자화가 품질을 정합니다. 이 세 가지가 서로 다른 자리에 걸려 있는 게, 이 비교의 전부입니다. V4.1-Flash는 왜 2x Spark에서 "미지의 영역"인가DeepSeek V4.1-Flash는 552B backbone에 196B Engram을 얹은 구조이고, 네이티브(MXFP4/FP8)로 떠 올리면 약 511GB입니다. 2x Spa..

공부/인공지능 2026.10.11