모델은 메모리가 필요하지 않습니다. 상황이 필요할 뿐입니다.
요약
에이전트의 메모리 레이어가 모델의 지능을 직접적으로 향상시키지 않는다는 실험적 분석을 다룹니다. 메모리는 이미 모델이 가진 지식을 단순히 재회상하는 지연 시간만 늘리는 경우가 많으며, 특정 도메인 시퀀스 상황에서만 유효함을 보여줍니다.
핵심 포인트
- 메모리는 모델의 지능 증폭기가 아닌 단순 정보 회상 도구일 수 있음
- OrKa Brain 벤치마크 결과, 메모리 유무에 따른 점수 차이가 미미함
- 메모리 시스템은 모델이 이미 알고 있는 정보를 중복 제공할 위험이 있음
- 긴 동일 도메인 시퀀스 상황에서만 메모리의 유효성이 입증됨
제가 잘못된 질문을 하고 있었던 것 같습니다.
한동안 질문은 단순했습니다. 메모리가 에이전트(Agent)를 더 똑똑하게 만드는가?
그것은 맞는 질문처럼 들립니다. 하지만 또한 함정이기도 합니다. 왜냐하면 메모리를 일반적인 지능 증폭기로 판단해야 한다고 가정하기 때문입니다. 메모리 레이어(Memory layer)를 추가하면 에이전트는 더 많은 것을 기억하게 되고, 왠지 모르게 출력(Output)이 더 좋아져야 합니다. 더 완전하게. 더 정확하게. 더 인간답게. 혹은 우리가 "이 비싼 것이 제대로 작동하기를 바랍니다"라는 말을 피하기 위해 현재 사용하고 있는 그 어떤 단어처럼 말이죠.
더 많은 실험을 수행한 후, 저는 이러한 프레임워크(Framing)가 잘못되었다고 생각합니다.
메모리는 일반적인 의미에서 모델을 더 똑똑하게 만들지 않습니다. 대부분의 경우, 그럴 수 없습니다. 모델은 이미 자신의 가중치(Weights) 안에 압축된 방대한 양의 일반적인 절차적 지식과 도메인 지식(Domain knowledge)을 가지고 있습니다. 만약 당신의 메모리 레이어가 모델이 이미 알고 있는 정보를 회상한다면, 당신은 지능을 추가하는 것이 아닙니다. 단지 더 높은 지연 시간(Latency)을 가지고 똑같은 말을 하는 두 번째 경로를 추가하는 것뿐입니다.
이것이 불편한 부분입니다. 많은 에이전트 메모리 시스템은 회상(Recall) 기능이 고장 나서 실패하는 것이 아닙니다. 회상된 정보가 한계 효용(Marginal value)이 없기 때문에 실패하는 것입니다.
그들은 모델이 이미 할 예정이었던 것을 모델에게 주고 있는 것입니다.
실험은 승전보가 아니었습니다
저는 OrKa Brain에 대해 후속 벤치마크(Benchmark)를 실행했습니다: 250개의 작업, 5개의 트랙, 'Brain(뇌 있음)' 대 'Brainless(뇌 없음)'. 목적은 절차적 메모리(Procedural memory)가 규모가 커지고 더 많은 작업 유형에 걸쳐 더 강력한 결과를 보여주는지 확인하는 것이었습니다.
그렇지 않았습니다.
절대적인 루브릭 점수(Rubric score)는 거의 평탄했습니다. Brain은 8.39점을 기록했습니다. Brainless는 8.27점을 기록했습니다. 이는 10점 만점에 +0.12의 차이입니다. 기술적으로는 양수이지만, 당신이 증거와의 관계를 주로 장식용으로만 사용하지 않는 한, 지속성 메모리(Persistent memory)가 에이전트 지능의 새로운 시대를 열었다고 발표할 만한 종류의 결과는 아닙니다.
처음에는 쌍체 비교(Pairwise) 결과가 약간 더 좋아 보였습니다. Brain이 비교의 53.8%에서 승리했습니다. 하지만 그 후 판정관(Judge)이 74.4%의 첫 번째 위치 편향(First-position bias)을 보였는데, 이는 가공되지 않은 쌍체 점수(Raw pairwise score)를 직접적으로 신뢰할 수 없음을 의미합니다. 만약 판정관이 네 번 중 거의 세 번꼴로 첫 번째 답변을 선택한다면, 그 측정 도구는 정확히 실험실 가운을 입고 있는 상태(전문적인 상태)가 아닙니다. 그것은 편향된 동전을 던진 뒤 나중에 자신만만한 설명을 적어 내려가는 것에 불과합니다.
위치 요인을 통제하자, Brain의 이점이라고 여겨졌던 대부분이 사라졌습니다. 교차 도메인 전이(Cross-domain transfer)는 유지되지 않았습니다. 안티 패턴 회피(Anti-pattern avoidance)도 유지되지 않았습니다. 다중 기술 조합(Multi-skill composition)은 동전 던지기 수준으로 무너졌습니다. 라우팅(Routing)은 혼동되어 재실행이 필요합니다.
오직 하나의 트랙만이 살아남았습니다: 긴 동일 도메인 시퀀스(Long same-domain sequence)입니다. 해당 트랙에서 Brain은 불리한 위치에 놓였을 때조차 74%의 확률로 승리했습니다.
그 부분이 바로 간직할 가치가 있는 부분입니다.
메모리가 일반적으로 작동한다는 것을 증명하기 때문이 아닙니다. 그렇지 않습니다. 그것은 더 좁고 유용한 무언가를 증명합니다: 메모리는 출력이 진화하는 동일한 상황 내의 이전 상태(Previous state)에 의존할 때 도움이 되는 것으로 보인다는 점입니다.
이것은 매우 다른 주장입니다.
메시지는 천장이었다
언뜻 보기에는 Brain이 실패했다고 말할 수도 있습니다. 저는 그것은 너무 쉬운 해석이라고 생각합니다.
더 나은 해석은 벤치마크가 잘못된 범주의 메모리를 노출했다는 것입니다. OrKa Brain이 회상한 대부분은 절차적 지식(Procedural knowledge)이었습니다: 작업을 분해하는 방법, 트레이드오프(Trade-offs)를 통해 추론하는 방법, 일반적인 실수를 피하는 방법, 솔루션을 구조화하는 방법, 한 도메인에서 다른 도메인으로 패턴을 전이하는 방법 등입니다.
문제는 유능한 LLM들이 이미 이러한 것들을 많이 알고 있다는 점입니다. 그들은 아키텍처 리뷰, 디버깅 세션, 마이그레이션 계획, 법률 요약, 지원 흐름, 프로젝트 회고, Stack Overflow 논쟁, 장애 보고서, 그리고 어떻게든 5페이지를 써서 "캐시를 잊어버렸습니다"라고 말하는 기업 문서들의 끝없는 사례들을 이미 보아왔습니다.
따라서 메모리 계층 (memory layer)이 일반적인 절차를 회상할 때, 모델이 갑자기 누락된 정보를 받는 것은 아닙니다. 모델은 가중치 (weights)에 이미 존재하는 무언가에 대한 상기 (reminder)를 받는 것입니다.
이것이 바로 천장 효과 (ceiling effect)가 중요한 이유입니다. 이는 단순한 구현상의 실패가 아닙니다. 이는 범주에 대한 경고입니다. 만약 메모리가 일반적인 역량 (general competence)을 저장한다면, 모델은 이미 일반적인 역량을 갖추고 있기 때문에 이를 우회하여 처리할 수 있는 경우가 많습니다.
이것이 바로 "에이전트 메모리 (agent memory)"가 데모에서는 인상적으로 보이다가 벤치마크 (benchmarks)에서는 이상할 정도로 약해질 수 있는 이유입니다. 데모에서는 시스템이 과거를 참조하는 것을 볼 수 있기 때문에 기억된 컨텍스트 (context)가 유용하게 느껴집니다. 하지만 벤치마크에서는 기억된 내용이 정답을 바꾸지 못한다면, 그 효과는 스타일, 장황함, 또는 평가자 선호도 (judge preference) 속으로 사라져 버립니다.
유용한 질문은 "시스템이 무언가를 기억했는가?"가 아닙니다.
유용한 질문은 "기억된 내용이 모델이 알 수 없었거나 안전하게 추론할 수 없었던 정보를 포함하고 있었는가?"입니다.
그것이 경계선입니다.
메모리는 우발적 정보 (contingent information)를 위한 것이다
이 이론의 더 날카로운 버전은 다음과 같습니다:
메모리는 정답이 모델 가중치 (model weights)에 없는 우발적 정보 (contingent information)에 달려 있을 때 도움이 됩니다.
수직적 지식 (vertical knowledge)이 아닙니다. 도메인 지식 (domain knowledge)도 아닙니다. 일반적인 주문처럼 쓰이는 "더 많은 컨텍스트 (more context)"도 아닙니다. 바로 우발적 정보입니다.
우발적이라는 것은, 그 진위 여부가 특정 사용자, 시스템, 회사, 관할 구역, 고객, 코드베이스 (codebase), 이전 결정, 로컬 프로세스, 또는 특정 시점에 달려 있는 정보를 의미합니다. 이는 일반적으로는 사실이 아닌 정보입니다. 오직 '여기서만' 사실인 정보입니다.
모델은 소프트웨어 마이그레이션 (software migrations)이 보통 어떻게 실패하는지는 알 수 있습니다. 하지만 이 코드베이스에서 지난 마이그레이션이 실패한 이유가 결제 워커 (billing worker)가 폐기된 Redis 키에 암묵적으로 의존했기 때문이라는 사실은 알 수 없습니다.
모델은 간결한 글쓰기가 무엇인지는 알 수 있습니다. 하지만 특정 사용자가 군더더기나 가짜 열정, 그리고 문단 위에 뿌려진 기업 특유의 향수(corporate perfume) 없이 직설적인 기술적 답변을 선호한다는 사실은 알 수 없습니다.
모델은 고용법의 일반적인 형태는 알 수 있습니다. 하지만 특정 관할 구역에서 하위 규정(secondary regulation)이 상위 법령(primary statute)이 실제로 적용되는 방식을 어떻게 변경했는지는 알 수 없습니다.
모델은 고객 지원 분류(triage)가 어떻게 작동하는지는 알 수 있습니다. 하지만 특정 고객이 항상 잘못된 제품명을 사용하여 결제 버그를 보고한다는 사실은 알 수 없습니다.
그것이 바로 메모리(memory)입니다.
그 외의 모든 것은 이미 첫 번째 복사본을 가지고 있는 모델에 일반적인 지식의 두 번째 복사본을 부착하려는 위험을 초래합니다.
법률 AI는 그 차이를 명확하게 보여줍니다
법률 AI를 예로 들어보겠습니다. 그곳에서는 이러한 실수가 매우 명확하게 드러나기 때문입니다.
순진한 접근 방식은 다음과 같이 말합니다: “모델이 법을 알 수 있도록 메모리가 필요하다.” 이는 합리적으로 들리지만, 부정확합니다. 모델은 이미 주요 법적 개념, 기초 법령, 헌법 원칙, 유명 판례, 표준 법률 용어, 그리고 많은 법 체계의 일반적인 구조에 대해 폭넓게 노출되어 있습니다.
만약 일반적인 기본법(primary law)을 가르치기 위해 메모리를 사용한다면, 절차적 메모리(procedural memory)와 동일한 한계에 부딪힐 수 있습니다. 모델은 이미 대략적인 지도를 가지고 있습니다. 문제는 모델에게 지도가 없다는 것이 아닙니다. 문제는 그 지도가 대략적이고, 오래되었으며, 권위 있는 것으로 취급될 때 위험하다는 점입니다.
이는 기본법을 주로 메모리로 취급해서는 안 된다는 것을 의미합니다. 그것은 그라운딩(grounding, 근거 제시)으로 취급되어야 합니다.
기본법 검색(retrieval)의 임무는 정확성입니다. 정확한 인용, 최신 버전, 시행일, 폐지 상태, 관할 구역, 그리고 권위 있는 문구 말입니다. 그 계층은 모델을 더 “똑똑하게” 만들기 위해 존재하는 것이 아닙니다. 모델이 훌륭한 서식과 함께 자신 있게 틀린 답을 내놓는 것—아마도 가장 비용이 많이 드는 종류의 오류—을 막기 위해 존재하는 것입니다.
법률 AI에서 진정한 메모리의 가치는 기본법 주변의 부수적인 계층(contingent layer)에 존재합니다: 하위법(secondary law), 규제 지침(regulatory guidance), 지역 절차, 행정 관행, 법원의 해석, 관할 구역별 워크플로, 로펌의 플레이북(playbooks), 사건 이력, 그리고 모델이 학습된 이후의 변경 사항들이 그것입니다.
그곳이 바로 모델이 일반적인 법적 역량만으로는 안전하게 답을 추론할 수 없는 영역입니다.
법령(statute)은 규칙을 알려줍니다. 규정(regulation)이나 지침(guidance note)은 그 규칙이 적용되는 방식을 바꿉니다. 지역 절차(local procedure)는 업무가 실제로 어떻게 진행되는지를 알려줍니다. 사건 이력(matter history)은 이 특정 고객, 사건, 또는 회사가 이미 무엇을 했는지를 알려줍니다. 이것들은 서로 다른 계층이며, 이를 하나의 일반적인 RAG(Retrieval-Augmented Generation) 더미로 취급하는 것은 많은 것을 검색하지만 이해는 거의 못 하는 시스템을 만드는 지름길입니다.
법률 제품에서 이러한 구분은 매우 중요합니다. 1차 법(Primary law)이 근거를 마련하고, 2차 및 지역 법(Secondary and local law)이 형태를 형성하며, 사건 메모리(Matter memory)가 제약 조건을 설정합니다.
만약 이 세 가지 역할이 뒤섞인다면, 시스템은 여전히 법률적인 것처럼 들릴 수 있습니다. 심지어 이전보다 더 법률적인 것처럼 들릴 수도 있는데, 이는 항상 좋은 소식은 아닙니다. 문제는 시스템이 올바른 특정 상황에 올바른 법적 형태를 적용하느냐 하는 것입니다.
그 지점이 바로 메모리가 제 역할을 다하는 곳입니다.
채팅 메모리도 동일한 패턴입니다
이것은 비단 법률적인 문제만이 아닙니다. 채팅 메모리(Chat memory)도 더 작고 친숙한 형태로 동일한 구조를 보여줍니다.
시스템이 사용자가 간결한 답변을 원한다는 것을 기억할 때, 이는 모델에게 간결함이라는 개념이 부족해서 도움을 주는 것이 아닙니다. 모델은 이미 어떻게 간결해지는지 알고 있습니다. 유용한 정보는 "간결함이란 무엇인가?"가 아닙니다. 유용한 정보는 "이 사용자에게 간결함이란 무엇인가?"입니다.
이것은 엔티티에 결합된 사실(entity-bound fact)입니다. 일반적인 능력을 특정 개인에게 연결하는 것입니다.
이것이 바로 개인화(personalization)가 지적으로 깊지 않더라도 유용할 수 있는 이유입니다. 가치는 모델에게 새로운 글쓰기 스타일을 처음부터 가르치는 데 있는 것이 아닙니다. 가치는 알려진 정체성(identity) 하에서 올바른 행동을 선택하는 데 있습니다.
기업 내부에서도 동일한 일이 발생합니다. 모델은 코드를 리뷰하는 법은 알지만, 이 저장소(repository)가 3년 전 운영 장애(production incident)를 일으켰던 특정 라이브러리를 금지하고 있다는 사실은 알지 못합니다. 모델은 환불을 처리하는 법은 알지만, 연간 파트너 계약은 환불 경로가 다르다는 사실은 알지 못합니다. 모델은 고객의 불만을 요약하는 법은 알지만, 이 고객이 지나치게 예의가 발라 스스로를 망칠 정도라 운영 장애를 항상 "사소한 문제"라고 표현한다는 사실은 알지 못합니다.
그러한 국지적인 특이점(local weirdness)은 노이즈가 아닙니다. 그것이 바로 실무(work)입니다.
실제 시스템은 일반적인 규칙만으로 만들어지지 않습니다. 시스템은 예외, 상처, 습관, 관례, 과거의 실수, 정책적 지름길, 문서화되지 않은 의존성(undocumented dependencies), 그리고 그 사실을 아는 단 한 사람이 퇴사할 때까지 모두가 알고 있는 것들로 구성됩니다.
그것이 바로 메모리가 저장해야 할 재료입니다.
일반적인 역량(generic competence)이 아니라, 운영상의 퇴적물(operational sediment) 말입니다.
이것이 아키텍처를 변화시킵니다
저의 이전 프레임워크는 기술 재사용(skill reuse)에 더 가까웠습니다. 에이전트가 기술을 배우고, 저장하고, 나중에 회상하여 새로운 작업에 적용하는 방식입니다. 이는 깔끔한 모델입니다. 또한 의심스러울 정도로 다이어그램으로 그리기 쉬운데, 이는 항상 우리를 불안하게 만들어야 하는 지점입니다.
데이터는 저를 다른 아키텍처로 이끕니다.
메모리 시스템은 "이 작업과 유사한 기술은 무엇인가?"라고 묻는 것부터 시작해서는 안 됩니다. 때로는 작동할 수 있지만, 중심적인 검색 원칙(retrieval principle)으로서는 너무 취약합니다. 유사성(similarity)은 필요성(necessity)과 같지 않습니다. 메모리가 의미론적으로(semantically) 가깝더라도, 그것이 답변을 바꾸지 못한다면 여전히 쓸모가 없습니다.
더 나은 검색 질문은 다음과 같습니다: "이 상황에 대해 모델이 추론하기에 불가능하거나, 안전하지 않거나, 혹은 비용이 많이 드는 정보는 무엇인가?"
그 질문이 모든 것을 바꿉니다.
당신은 알려진 엔티티 (entity)에 작업이 의존하기 때문에 검색(retrieve)합니다. 당신은 관할 구역(jurisdiction)에 따라 답변이 달라지기 때문에 검색합니다. 당신은 사용자가 안정적인 선호도를 가지고 있기 때문에 검색합니다. 당신은 코드베이스(codebase)에 로컬 규칙이 있기 때문에 검색합니다. 당신은 고객에게 이력이 있기 때문에 검색합니다. 당신은 시스템이 현재와 관련 있어 보이는 방식으로 이전에 실패한 적이 있기 때문에 검색합니다. 당신은 모델이 구체적인 상태(state)가 필요한 상황임에도 일반적인 역량으로 답변하려 하기 때문에 검색합니다.
이것은 의미적 유사성 (semantic similarity)과는 다른 트리거 (trigger)입니다.
그 트리거는 미결정성 (underdetermination)입니다. 모델은 답변을 생성할 수 있지만, 그 답변이 프롬프트 (prompt)와 일반 지식만으로는 충분히 결정되지 않습니다. 모델에는 로컬 상태 (local state)가 필요합니다.
이는 또한 메모리 (memory)가 하나의 바구니여서는 안 된다는 것을 의미합니다. 진지한 시스템이라면 아마도 서로 다른 역할을 수행하는 별도의 저장소 (stores)들이 필요할 것입니다.
그라운딩 (Grounding)은 권위 (authority)를 위한 것입니다. 이는 모델에게 정확한 출처, 최신 버전, 그리고 검증 가능한 인용 (citations)을 제공합니다.
운영 지식 (Operational knowledge)은 로컬 형태 (local shape)를 위한 것입니다. 이는 모델에게 해당 관할 구역, 회사, 제품, 리포지토리 (repository), 또는 워크플로 (workflow)가 어떻게 작동하는지 알려줍니다.
에피소드 메모리 (Episodic memory)는 이력을 위한 것입니다. 이는 모델에게 이 사용자, 고객, 사안, 세션 (session), 또는 시스템과 이전에 어떤 일이 있었는지 알려줍니다.
추론 (Reasoning)은 이 세 가지를 결합합니다.
사람들이 이 모든 것을 단순히 "메모리"라는 하나의 개념으로 통합할 때, 시스템을 평가하기 더 어렵게 만듭니다. 또한 스스로를 속이기도 더 쉽게 만드는데, 이는 에이전트 (agents)가 관여될 때 나타나는 명백한 기본 MLOps 워크플로입니다.
다음 벤치마크는 더 가혹해야 합니다
과거의 질문은 메모리가 출력 품질을 향상시키느냐 하는 것이었습니다. 그것은 너무 광범위합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기