LLM과 현실 사이의 누락된 계층
요약
LLM 애플리케이션의 신뢰성 문제를 해결하기 위해 지식의 버전 관리와 검증을 지원하는 정준 지식 구조(CKS)를 소개합니다. CKS는 단순한 검증기를 넘어 오프라인 시맨틱 검색과 모순 탐지 기능을 갖춘 검증 가능한 지식 실험실로 진화하고 있습니다.
핵심 포인트
- LLM의 환각과 지식 모순 문제를 해결하기 위한 인프라의 필요성 강조
- Git과 유사한 지식 버전 관리 개념인 CKS(Canonical Knowledge Structure) 제안
- FastEmbed를 활용한 API 키 없는 로컬 오프라인 시맨틱 검색 구현
- 샌드박스 실험, 모순 탐지, 비동기 런타임 등 신뢰할 수 있는 AI 시스템 구축 도구 제공
"모든 AI 데모는 완벽하게 작동합니다... 누군가 '그 사실을 어디서 가져왔나요?'라고 묻기 전까지는 말이죠."
매주 새로운 언어 모델 (Language Model)이 등장합니다. 더 많은 파라미터 (Parameters). 더 긴 컨텍스트 윈도우 (Context Windows). 더 높은 벤치마크 (Benchmark) 점수. 이 경쟁은 인상적입니다.
하지만 LLM 위에서 애플리케이션을 구축하며 수개월을 보낸 후, 우리는 계속해서 동일한 질문에 부딪혔습니다. "모델이 이것에 답할 수 있는가?"가 아니라, **"우리가 내일도 이 답변을 신뢰할 수 있는가?"**라는 질문입니다.
그 질문은 모든 것을 바꿉니다. 환각 (Hallucinations)은 하나의 증상일 뿐입니다. 진짜 문제는 다음과 같습니다: 출처가 사라지고, 사실이 서로 모순되며, 지식이 시간이 지남에 따라 조용히 변하고, 두 에이전트 (Agents)가 동일한 그래프 (Graph)를 수정하며, 어떤 버전에서 실수가 발생했는지 아무도 모르는 상황입니다. 이것들은 언어의 문제가 아닙니다. 인프라 (Infrastructure)의 문제입니다.
20년 전, Git은 소스 코드에 대해 이 문제를 해결했습니다. 우리는 AI에도 지식을 위한 유사한 무언가가 필요하다고 생각합니다. 그것이 우리가 **정준 지식 구조 (Canonical Knowledge Structure, CKS)**를 구축한 이유입니다.
2주 전, 이것은 주로 구조적 검증기 (Structural Validator)였습니다. 오늘날, 이것은 훨씬 더 큰 무언가, 즉 검증 가능한 지식 실험실 (Verifiable Knowledge Laboratory)이 되었습니다.
CKS, 2주 후
24개의 도구. 650개 이상의 테스트. 오프라인 시맨틱 검색 (Semantic Search). 버전 히스토리 (Version History).
샌드박스 실험 (Sandboxed Experiments). 모순 탐지 (Contradiction Detection). 비동기 런타임 (Async Runtime).
텔레메트리 (Telemetry). 보안 강화 (Security Hardening). API 키 불필요 (Zero API keys).
단순히 더 많은 기능 목록을 원했기 때문이 아닙니다. 이 기능들 하나하나가 우리가 AI 시스템을 구축하면서 맞닥뜨린 실제 문제를 해결했기 때문입니다. 몇 가지를 살펴보겠습니다.
실험 #1 — LLM이 키워드 대신 의미로 검색할 수 있는가?
대부분의 시맨틱 검색 (Semantic Search) 시스템은 API 키로 시작합니다. 우리는 다른 것을 원했습니다. 그래서 우리는 FastEmbed를 통합했습니다. 이는 약 90MB의 sentence-transformers 모델을 한 번 다운로드하면 영구적으로 오프라인에서 실행되는 경량 ONNX 런타임 (Runtime)입니다. API 키가 필요 없습니다. 클라우드도 필요 없습니다. 속도 제한 (Rate limits)도 없습니다.
실제로 의미를 이해하는지 확인하기 위해, 우리는 apple, banana, car라는 세 개의 객체 (Objects)로 구성된 작은 그래프를 만들었습니다. 그런 다음 fruit로 검색했습니다. 순위는 다음과 같았습니다:
apple 0.705
banana 0.671
car 0.214
정말로 기대했던 결과입니다. 흥미로운 점은 시맨틱 검색(semantic search)이 작동한다는 사실 자체가 아닙니다. 그것이 이제 전적으로 사용자의 기기에서 작동한다는 것입니다. OpenAI 임베딩도, Hugging Face 토큰도, 원격 추론(remote inference)도 필요 없습니다. 의미가 로컬화된 것입니다.
저희는 코드와 점수를 포함한 전체 실험을 로컬 임베딩 사례 연구에 작성했습니다.
실험 #2 — 인간보다 먼저 모순을 발견할 수 있을까?
LLM은 명백하게 틀린 지식을 거의 생성하지 않습니다. 그들은 거의 맞는 지식을 생성하며, 이것이 더 찾기 어렵습니다.
이것은 우리가 가장 즐겨 했던 실험이 되었습니다. 새로운 기능을 추가하는 대신, 우리는 시스템을 파괴하기 위해 며칠을 보냈습니다. 위조된 출처(provenance) 기록이 몰래 침투할 수 있을까? 이제는 불가능합니다. RDF/XML이 Billion Laughs 공격을 유발할 수 있을까? 차단되었습니다. 문서 수집(document ingestion)이 SSRF(Server-Side Request Forgery) 보호를 우회할 수 있을까? 아니요. 미들웨어(middleware)가 스택 트레이스(stack traces)를 유출할 수 있을까? 이 또한 수정되었습니다.
대부분의 릴리스 게시물은 새로운 기능을 축하합니다. 우리는 사용자가 결코 보지 못할 버그들을 해결한 것에 대해서도 똑같이 자부심을 느낍니다. 우리는 전체 보안 감사(security audit)를 수행했고, 발견된 모든 구멍을 패치했으며, 해당 문제들이 다시 발생하지 않도록 회귀 테스트(regression tests)를 작성했습니다. 전체 변경 로그(changelog)는 GitHub에서 확인할 수 있습니다.
인프라를 보이지 않게 만들기
프로젝트가 성장함에 따라 예상치 못한 일이 발생했습니다. 가장 어려운 문제는 더 이상 알고리즘이 아니라 운영(operations)이었습니다. 백그라운드 워커(background workers)가 시맨틱 검색(semantic search)과 어떻게 공존할 수 있을까? 여러 세션이 어떻게 동시에 진화할 수 있을까? 어떤 도구가 갑자기 느려졌는지 어떻게 알 수 있을까?
그래서 CKS는 완전히 비동기(asynchronous) 방식으로 전환되었습니다. JSON-RPC 서버는 더 이상 I/O 작업에서 블로킹(blocking)되지 않습니다. 임베딩(Embedding) 생성은 백그라운드 작업에서 실행됩니다. PostgreSQL 워커들은 원자적(atomic)인 SKIP LOCKED 클레임을 통해 조정됩니다. 텔레메트리(Telemetry)는 모든 도구 호출 — 지연 시간(latency), 성공률, 에러 분포 — 을 추적합니다. 인프라는 추측을 요구하는 것이 아니라, 스스로를 설명할 수 있어야 하기 때문입니다.
검증기 그 이상의 존재
CKS는 가짜 인용을 막기 위한 방법으로 시작되었습니다. 하지만 그것은 다른 무언가가 되었습니다. 오늘날 CKS는 의미에 따라 지식을 검색하고, 모순을 탐지하며, 출처(provenance)를 검증하고, 그래프를 안전하게 진화시키며, 버전을 비교하고, 실험을 브랜치(branch)하며, 스스로를 모니터링하고, 완전히 오프라인으로 실행될 수 있습니다. 우리는 이것을 계획하지 않았습니다. 자연스럽게 일어난 일이었습니다. 누락된 모든 기능은 우리가 이제 **LLM을 위한 지식 운영체제 (knowledge operating system)**라고 생각하는 것의 또 다른 계층이 되었습니다.
이것이 중요한 이유
AI 산업은 모델을 더 똑똑하게 만드는 데 집착하고 있습니다. 우리는 다음 도약이 더 큰 파라미터(parameter) 수를 통해서가 아니라, 더 나은 인프라를 통해 모델을 더 신뢰할 수 있게 (more trustworthy) 만듦으로써 올 수 있다고 생각합니다.
미래는 아마 더 큰 프롬프트(prompts)나 더 큰 컨텍스트 윈도우(context windows)에 있지 않을 것입니다. 대신 다음과 같은 질문에 답할 수 있는 소프트웨어가 핵심이 될 것입니다: 이 사실은 어디에서 왔는가? 이것은 언제 변경되었는가? 무엇이 이것과 모순되는가? 이 결과를 재현할 수 있는가? 이것을 검증할 수 있는가? 언어 모델(Language models)은 지식을 생성합니다. 하지만 신뢰는 설계(engineered)되어야 합니다.
시작하기
pip install cks-mcp
실행 파일의 절대 경로를 찾으세요:
which cks-mcp
그 다음, 이를 claude_desktop_config.json에 추가하세요 (/absolute/path/to/cks-mcp를 which 명령의 출력값으로 교체하세요):
{
"mcpServers": {
"cks-mcp": {
...
Claude Desktop을 재시작하세요 (Cmd+Q를 누른 후 다시 열기). 완료되었습니다. API 키도, 클라우드 설정도, 추가 서비스도 필요 없습니다. 그저 "Use cks-mcp to..."라고 요청하고 실제로 검증 가능한 지식을 구축하기 시작하면 됩니다.
GitHub · Documentation · PyPI
Git은 우리가 소스 코드를 신뢰하는 방식을 바꾸었습니다. 우리는 이제 AI가 지식에 대해서도 동일한 것을 필요로 한다고 생각합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기