셀프호스팅 AI 메모리의 LLM 백엔드 6-way 실측: '빠르고·안정적이고·거의 무료'는 존재했나
TL;DR
- 셀프호스팅 AI 메모리(Honcho)의 추론 파이프라인(dialectic) LLM 백엔드를 6가지로 갈아끼우고 같은 질문을 10회씩 실측했다
- 기존 백엔드(zai 정액 플랜 glm-5.3): 평균 30.4초, 사실 정확도 100%
- 도전자 5개 중 속도를 이긴 건 둘, 정확도까지 이긴 건 클로드 haiku-5.5 하나: 평균 20.9초, 팩트 30/30, 회당 $0.013
- 결론: "빠르고 안정적이고 거의 무료"는 존재했다. 다만 '거의 무료'의 정의가 회당 1.3센트여야 했다
- 실험 6본은 전부 n8n 감시 게이트 체인이 무인으로 실행했다. 사람이 개입한 건 판정 뿐이었다
배경: 무엇을 재는가
Honcho는 대화 기록을 representation으로 쌓아두고, 질문이 오면 16K+ 토큰짜리 기억 컨텍스트를 LLM에 넣어 "이 사용자가 요즘 뭘 고민하는지" 합성한다. 문제는 이 호출이 턴당 20~30초를 먹는 것. 주입은 꺼두기로 했지만, 그래도 백엔드만 더 빠르고 싼 걸로 바꿀 수 있는지 수치로 확정하고 싶었다.
핵심 함정 하나: 이 벤치마크는 원샷 프롬프트가 아니다. 16K 컨텍스트를 읽고 기억을 종합하는 과제라, 짧은 질문 기준 벤치마크 순위가 그대로 재현되지 않는다. 실제로 단발 호출 3.8초짜리 무료 모델이 파이프라인 안에서는 평균 86초가 됐다.
방법
- 동일 쿼리 10회: "명철이 요즘 g2b 파서 프로젝트에서 고민하는 건 뭐야?"
- 채점: 3-팩트(목표 F1 0.92 / '지어냄' 병목 / 현행 최고점 0.74~0.75)가 답변에 몇 개 등장하나
- 채택 기준: p50 25초 미만 + 팩트 80% 이상
- 자동화: n8n 감시 게이트 워크플로 5본 직렬 체인(5분 폴링 → 게이트 → .env 스왑 → 실측 10회 → 복구 → 메신저 보고)
결과
| 백엔드 | 모델 | 지연(평균/p50) | 팩트 | 10회 비용 | 판정 |
|---|---|---|---|---|---|
| zai 직접 (현행) | glm-5.3 + low | 30.4s | 100% | 정액 | 기준 |
| OpenRouter free | flint-v1.0:free | 86.3s, 타임아웃 2 | 71% | $0 | 탈락 |
| OpenRouter 유료 초저가 | mistral-nemo | 5.0s | 0% | $0.003 | 탈락 |
| 로컬 무료 게이트웨이 | nemotron-3-ultra-550b | 97.2s, 타임아웃 5 | 50% | $0 | 탈락 |
| 프론티어 고속 | qwen3.5-flash | 29.9s / 23.9s | 66.7% | $0.068 | 탈락 |
| 프론티어 고속, 직행 | claude-haiku-5.5 | 20.9s / 20.05s | 100% (30/30) | $0.135 | 승리 |
| 프론티어 고속, 자동 캐시 | gpt-6-luna (low) | 13.7s / 10.8s | 60% | $0.025 | 탈락(품질) |
읽을거리 3가지
- 속도-품질 절벽: 3B급 소형 모델(nemo)은 6배 빨랐지만 사실 인출 0건, 한국어 질문에 영어로 답했다. 기억 합성 과제에는 중형급 이상의 지능이 필수다
- 무료의 진짜 가격은 대기열: 무료 백엔드들은 전반적으로 지연 폭증과 타임아웃. 로컬 무료 게이트웨이의 신뢰 티어 상위 후보들도 프로브에서 전원 결함(지연 폭증, 502, 하드 거절, 사고과정 누수)이었다
- 정직한 모델을 떨어뜨리는 스크리닝: haiku-5.5는 컨텍스트 없는 예비 질문에 "그런 정보는 없다"고 정직하게 답해 예선탈락했다. 하지만 실전에는 16K 기억 컨텍스트가 실린다. 본선 직행 실측을 돌리니 30/30 풀팩트에, 심지어 특정 사실이 "프롬프트에 적힌 문구"임을 스스로 식별해 출처를 구분했다. 거짓 음성이었다
무인 실험 파이프라인이 배운 함정 4종
- 게이트 에이전트는 "SKIP만 답하라"를 어기고 설명을 덧붙인다. 보고 필터는 notEquals가 아니라 notContains여야 한다
- 실험 시작 시점에 만든 완료 플래그는 진행중과 완료를 구분 못 한다. 러닝 락을 분리하라
- 5분마다 재발동하는 게이트의 "복구" 스텝이 진행 중 실험을 죽이는 실사고가 났다. 복구는 형제 실험의 락을 전수 확인한 뒤에만
- 원샷 스크리닝으로 모델을 뽑지 마라. 항상 실제 파이프라인 부하로 e2e 10회
결론
haiku-5.5가 유일하게 양쪽 조건을 달성했다. 1.4배 빠르고 정확도는 동급이며, 타임아웃 0회, 사고과정 누수도 없다. 다만 비용 구조가 다르다: 정액 플랜은 한계 비용 0원이고, haiku-5.5는 캐싱 없이 16K 컨텍스트를 매번 재전송해 회당 약 $0.013이다. 하루 100턴 돌리면 한 달에 약 $40.
그래서 최종 결정은 이렇다: 주입이 꺼져 있는 지금은 정액 백엔드를 대기 설정으로 유지하고, 속도가 중요해지는 순간 haiku-5.5로 원컷 전환할 수 있는 상태(.env 한 줄)로 보존한다. 벤치마크의 가치는 '누가 1등'이 아니라 '전환 비용이 얼마인지 아는 것'까지 포함한다.
추신: 캐싱 후속 실험
OpenAI 계열(gpt-6-luna)은 provider 핀만으로 자동 프롬프트 캐싱이 붙는다. 텔레메트리로 입력의 40~76%가 캐시 히트 - p50 10.8초, 회당 $0.0025까지 내려갔다. 다만 팩트 정확도가 60%로 무너져 미채용. Anthropic 계열은 캐시 마커가 시스템 프롬프트에만 붙어 tool-loop 재전송(토큰의 본류)을 못 흡수, 절감 0% - 마커 배치 패치가 필요하다. 정리: haiku-5.5가 품질, luna가 속도와 비용, 그리고 '빠르고 안정적이고 거의 무료'는 존재하지만 품질까지는 아직 아니었다. 마지막으로 haiku의 thinking을 꺼보기도 했다: 20.9초에서 13.1초로 빨라졌지만 정확도가 100%에서 62%로 무너졌다. 그 7초가 바로 품질이었다.


