The Model Doesn't Remember. You Do

개요

LLM(Large Language Model)은 자체적으로 대화 기록을 기억하지 않으며, 사용자는 이전 메시지 배열을 관리하여 모델에게 전달함으로써 컨텍스트를 유지해야 한다.

주요 내용

  • LLM API를 SDK 없이 직접 사용하여 작동 방식을 이해하는 것이 중요하며, 이는 추상화 없이 모든 결정을 직접 관리할 수 있게 한다.
  • fetch를 사용하여 Anthropic API에 직접 요청을 보내려면 헤더와 본문을 수동으로 관리해야 한다.
  • LLM의 Messages API는 상태 비저장(stateless)이므로, 모든 요청 시 전체 대화 기록을 다시 보내야 한다.
  • LLM 자체는 기억력이 없으며, 사용자는 이전 메시지와 최신 쿼리를 포함하는 배열을 직접 관리하여 모델에게 전달해야 한다.
  • 사용자 입력을 읽고, 이전 메시지와 결합하여 모델에 전달하고, 응답을 출력하는 반복적인 루프를 통해 다중 대화 턴을 구현할 수 있다.
  • 이러한 단순한 메시지 배열 관리는 슬라이딩 윈도우, RAG(Retrieval Augmented Generation), 의미론적 검색과 같은 컨텍스트 전략의 기반이 된다.
  • LLM과의 상호작용에서 '도구 사용(tool use)'은 모델이 지시받은 작업을 실행하고, 여러 작업을 순차적으로 수행하며, 필요한 도구를 올바르게 선택하는 능력을 포함한다.

시사점

LLM 개발에서 대화의 '기억'은 모델 자체 기능이 아니라 사용자가 관리하는 이전 메시지 기록의 배열이며, 이를 직접 제어함으로써 더욱 정교한 컨텍스트 관리 및 기능 구현이 가능하다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions