큰 노트 하나에 여러 주장을 묶어두면 LLM은 그 노트 전체를 끌어와야 한다. 결과적으로 컨텍스트 윈도우가 무관한 내용으로 오염된다. 반대로 하나의 노트 = 하나의 주장으로 쪼개면 LLM은 정확히 필요한 단위만 가져온다. Karpathy가 명시적으로 말하진 않지만 그의 아키텍처 — 엔티티 페이지, 컨셉 페이지, 비교 페이지를 따로 두는 — 가 본질적으로 Zettelkasten의 원자성 원칙이다.

근거

“It creates pages, updates them when new sources arrive, maintains cross-references, and keeps everything consistent.”

LLM이 페이지를 갱신할 수 있는 건 페이지가 작고 단일 주제이기 때문이다. 한 페이지에 여러 주제가 섞여 있으면 갱신 시 어디를 건드려야 할지 모호해진다. 또 index.md가 “한 줄 요약 + 링크”로 작동하는 것도 노트가 원자적일 때만 의미가 있다 — 한 줄 요약이 가능한 단위가 곧 원자다.

내가 직전에 만들었던 garden 노트(“Karpathy를 읽고”, “7패턴을 읽고”)는 이 원칙을 어겼다. 한 클리핑당 한 노트로 묶었더니 3~4개 주장이 한 페이지에 섞여 있었다. 컨텍스트 주입 시 무엇을 가져와야 할지 LLM도 모호하고, 인간이 검색해도 어느 주장을 찾았는지 불분명했다. 그래서 지금 쪼개는 중이다.

연결된 생각

출처

📎 클리핑 · gist.githubusercontent.com