Min

2024-10-28(월) 개발일지

Koreigner 2024. 10. 28. 21:09

 

캐시 기능을 도입하고 전체적으로 프로덕트의 속도가 향상되었지만
(RAG 시스템이 원래 상당히 느렸음)

이유를 못 찾음.

 

캐시를 사용하다 보니 미리 지정된 것들을 빠르게 가져오는 건가 싶었는데

그렇다기에는 캐시가 너무 적음.

 

그냥 코드를 갈아엎는 과정에서 최적화가 된 듯.

 

문제는 이게 아님.

 

캐시 시스템이 생각보다 매우 비효율적임.

 

계속 계속 캐시가 쌓이다 보면

무한대로 대화를 나눈다는 가정하에

무한대에 가까운 용량의 저장소가 필요해짐.


(이러면 사실상 사용자가 할만한 모든 질문에 답변을 미리 생성해 두는 딱딱한 룰 베이스랑 다를 게 없음)

 

그래서 캐시 기능 자체를 제거하려다가 캐시 용량을 정해둠.(50mb 500mb 이런 식으로)

오래된 캐시는 지우고 새로운 캐시가 갱신되는 시스템인데

사실 있으나 마나임.

 

하지만 추후 개선의 여지가 있어서 남겨두었음.


현재는 메모리(사용자 기억) 기능을 건드는 중.

 

지금은 대화들이 DB에 저장되는데
로그인한 대상의 메세지 DB를 20개 불러와서
대화의 맥락을 맞추고 있음.

 

이는 너무 단순한 기능이라 개선을 해야 됨.

 

막말로 21턴전에 내 이름을 민복순이라고 말했다면

다음에 내 이름이 뭐냐 물어보면 AI는 내 이름을 기억 못 하게 되는 거임.(에바;)

 

대안

 

대화 요약 기법

중요도 선택 기법

장기/단시 메모리 구분

계측적 컨텍스트

대안으로 이런 기법들을 찾아봤음.

각 기능을 독립적으로 구동할지 섞어서 짬뽕을 만들지는 수많은 테스트와 검증을 통해

정해야 할 것 같음.

(진행중)