반응형
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
Part 3. 체인의 기능 확장하기
Ch1. 메모리(Memory)
ConversationBufferMemory
역할
- 지금까지 오고간 모든 대화 메세지를 그대로 다 쌓아두는 메모리
- 체인이나 에이전트에서 chat_history 같은 변수로 꺼내서 프롬프트에 그대로 넣어줄 수 있음
장점
- 맥락 손실이 없음 → 초반에 했던 설정, 룰, 약속 같은 것도 끝까지 유지 가능
- 구현이 가장 단순하고 직관적
단점
- 대화가 길어질수록 프롬프트 길이(=토큰 수)가 계속 늘어남
- 비용/속도 측면에서 점점 비효율적
⇒ 데모, 학습용, 짧은 대화 위주 서비스에 사용하기 좋음
ConversationBufferWindowMemory
역할
- 전체를 다 저장하는 대신, 최근 n번의 대화만 기억하는 메모리
- k, window_size 같은 파라미터로 얼만큼의 과거를 기억할지 조절
장점
- 프롬프트 길이가 상대적으로 안정적 → 비용·속도 관리에 유리
- 최근 맥락만 중요할 때 효율적(ex: 가벼운 챗봇, FAQ)
단점
- 예전 대화 내용은 잊어버림
- 초반에 정한 규칙이나 설정이 창 밖으로 날아갈 수 있음
⇒ 최근 몇 턴만 알면 충분한 챗봇 또는 고객센터 상담처럼 긴 서사보다 최신 대화 흐름이 중요한 경우 사용하기 좋음
ConversationTokenBufferMemory
역할
- 최근 대화의 히스토리를 버퍼 메모리에 보관하고, 대화의 개수가 아닌 토큰 길이를 사용하여 대화내용을 플러시(flush)할 시기를 결정.
- 내부에서 토큰 길이를 추정/계산하고, 설정한 한계치를 넘으면 오래된 대화부터 flush(버리기)
장점
- LLM이 한 번에 처리할 수 있는 max context를 고려하면서 가능한 많은 최근 대화를 유지
- 개수 기준이 아니라 토큰 기준이라 짧은 문장은 많이, 긴 문장은 적게
→ 결과적으로 공간활용이 효율적
단점
- 구현이 비교적 복잡(토큰 카운팅 필요)
- 메모리가 어떻게 잘리는지 직관 어려움
⇒ 대화가 길어질 수 있는데 가능한 한 많은 최근 맥락을 유지하고 싶을 때 사용하기 좋음
오늘 강의를 통해 느낀 점은, '메모리 전략'이 곧 '서비스 성격과 비용 구조를 설계하는 도구'라는 것입니다. 앞으로 제가 만드는 챗봇이나 RAG 시스템에서도 무조건 전부 기억하게 만들기보다 목적에 따라 어떤 메모리 방식을 사용할지부터 고민하는 습관을 갖도록 해야겠어요!!




커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr
반응형
'RAG' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 : 테디노트의 RAG 비법노트 강의 중간 점검 (1) | 2025.12.07 |
|---|---|
| 패스트캠퍼스 환급챌린지 26일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.07 |
| 패스트캠퍼스 환급챌린지 24일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.05 |
| 패스트캠퍼스 환급챌린지 23일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.04 |
| 패스트캠퍼스 환급챌린지 22일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.03 |