SillyTavern 긴 대화, 요약 대신 원문을 찾는 SillyMemory

SillyTavern 긴 대화의 요약은 큰 줄거리만 남기고 캐릭터가 예전에 한 말의 정확한 표현은 빠뜨린다. 원문을 찾아 넣는 SillyMemory의 ‘입력 토큰 95% 감소’는 어떤 조건의 숫자일까?

SillyTavern 긴 대화, 요약 대신 원문을 찾는 SillyMemory
세 줄 요약
  • SillyMemory는 오래된 대화의 관련 구절과 최근 메시지를 함께 모델 입력에 넣는다.
  • 95%라는 수치는 특정 평가의 답변 입력 토큰 감소율이다.
  • 실험판 확장이므로 시험용 채팅에서 시작하고 외부 데이터 처리 조건을 살펴야 한다.

요약문에 빠진 사실도 원래 대화에서 찾는다

긴 대화에서 필요한 것이 과거의 정확한 표현이나 세부 정보라면, 전체 기록을 계속 보내는 것 외에 질문과 관련된 원문만 찾아 넣는 방법이 있다. LambdaDB가 소개한 SillyMemory의 메모리 방식이다. 대화에서 지식 그래프를 만들거나 생성형 모델로 기억을 다시 쓰지 않고, 원문 조각을 검색한 뒤 관련성 순으로 고른다.

이 방식도 검색 결과를 해석해 답하는 모델은 필요하다. ‘요약용 생성 호출을 하지 않는다’는 말이 임베딩·검색·답변 생성까지 없어진다는 뜻은 아니다. 최근 메시지와 검색된 과거 기록이 한 답변의 재료가 된다.

Summarize와 Vector Storage는 기억을 다루는 방법이 다르다

기본 Summarize는 사건을 짧은 글로 재서술한다. 이야기의 큰 흐름을 유지하는 데 쓸 수 있지만, 공식 문서도 세부 정보 누락과 잘못된 내용의 생성을 설명한다. 현재 요약을 직접 고치거나 이전 요약으로 되돌릴 수 있다.

방식모델 입력에 돌아오는 내용살펴볼 부분
Summarize모델이 만든 요약문이다.요약에 필요한 사실이 남았는지 본다.
Chat vectorization관련된 과거 메시지를 찾아 컨텍스트에 넣는다.검색에 쓰는 최근 메시지와 삽입 설정을 본다.
SillyMemory검색·재정렬한 원문 구절과 최근 대화를 사용한다.선택된 구절과 최종 프롬프트를 볼 수 있다.

특히 Vector summarization은 이름이 비슷해도 채팅 전체를 짧게 만드는 기능이 아니다. 검색용 벡터를 만들기 전에 메시지를 요약하는 선택이며, 일치하는 항목을 찾으면 답변을 생성할 모델에는 원래 메시지를 전달한다. 요약 기능을 하나 더 켠다고 모든 기억 문제가 해결되는 구조는 아니다.

95% 감소는 전체 요금이 아니라 답변 입력의 비교다

개발팀의 LongMemEval-S 평가에서 SillyMemory는 500문항 중 480개, 전체 기록을 넣은 비교 구성은 476개를 맞혔다. 답변 입력은 평균 약 10만 5,183토큰에서 4,886토큰으로 줄었다. 보고된 감소율은 95.35%다.

개발팀도 네 문항 차이로 일반적인 우위를 입증한 것은 아니라고 설명한다. 이 결과는 공개된 구성에서 작은 입력으로 비슷한 평가 점수를 얻었다는 뜻이다. 기억 준비와 검색에도 작업이 필요하므로 이 비율을 채팅 청구액의 할인율로 읽으면 안 된다.

시험 채팅 하나에서 선택된 원문부터 확인한다

설치 안내는 실험판임을 명시하며 SillyTavern 1.19.0과 Chromium을 시험 환경으로 적었다. 사용할 채팅 모델 연결과 LambdaDB 프로젝트의 지역 주소·프로젝트 이름·키가 필요하다.

  1. Extensions의 Install extension에 https://github.com/lambdadb/SillyMemory를 넣어 설치한 뒤 페이지를 새로 고친다.
  2. SillyMemory 설정에서 프로젝트 정보를 넣고 Connect and prepare를 누른다.
  3. 시험용 저장 채팅의 Memory에서 Turn memory on in this chat을 선택하고 동기화를 기다린다. 기본 Vector Storage의 채팅 벡터화와 기록을 재작성하는 다른 확장은 끈다.

원본 채팅 파일은 유지되지만 오래된 텍스트·메타데이터·검색 질의는 LambdaDB와 관리형 추론 제공자가 처리한다. 채팅 모델 요금도 별도다. Memory의 구절 미리보기와 View full memory에서 필요한 과거 발언이 실제로 들어왔는지 살피면, 모델의 답이 틀린 상황과 검색 재료가 빠진 상황을 구분하는 데 도움이 된다.