Search

Memory

대분류
인공지능/데이터
프레임워크
소분류
LangChain/RAG
유형
LangChain
부유형
Main Module Detail
최종 편집 일시
2024/10/27 15:16
생성 일시
2024/10/25 06:33
14 more properties

Memory

메모리는 LLM이 데이터를 저장하고 검색할 수 있게 도와준다.
메모리를 사용하면 단기, 장기 기억이 가능하며 연속적인 채팅이 가능하다.
Chain이나 Agent가 일종의 ‘기억’을 갖는 것처럼 만들어 준다고 할 수 있다.
다만 메모리라는 개념 자체가 기존 채팅 기록들을 prompt에 넣어 제공하도록 구성되어 있다.

1. Input (질문 입력)

설명: 사용자가 새로운 질문을 입력하면, 시스템은 해당 질문을 모델에 전달한다.
역할: 사용자의 질문을 시스템이 받아들여 처리할 준비를 한다.

2. Memory (메모리 읽기)

설명: 새로운 질문이 들어오면 시스템은 이전 대화 내용을 메모리에서 읽어와서 모델에 전달할 준비를 한다. 이때 과거 메시지(past_messages)가 메모리에서 불러와진다.
역할: 과거의 대화 내용을 기억하고, 이를 바탕으로 현재의 질문을 더 잘 이해할 수 있도록 돕는다.

3. Prompt 생성

설명: 모델에 입력될 프롬프트는 현재 질문과 과거 메시지를 결합하여 만들어진다.
예시
프롬프트가 "{past_messages} {question}" 형태로 생성된다.
즉, 과거의 대화 기록과 현재의 질문을 함께 사용하여 모델이 더 일관성 있는 응답을 할 수 있도록 한다.
역할: 과거 대화와 현재 질문을 결합하여 맥락을 유지한 채로 모델이 응답을 생성할 수 있게 한다.

4. Model (모델 응답 생성)

설명: 프롬프트가 모델에 입력되면, 모델은 이를 바탕으로 적절한 응답을 생성한다.
역할: 모델은 입력된 대화 맥락을 바탕으로 사용자의 질문에 대한 답변을 생성하는 역할을 한다.

5. Output Parser (출력 파서)

설명
모델이 생성한 응답을 적절하게 파싱하는 단계
여기서는 정규표현식(예: regex: "Answer: (.*)")을 사용하여 모델이 생성한 출력에서 핵심 응답 부분을 추출한다.
역할: 모델이 생성한 긴 응답에서 중요한 정보를 추출하여 최종 답변을 구성한다.

6. Memory (메모리 쓰기)

설명
모델이 생성한 새로운 응답은 메모리에 저장된다.
이후 대화에서 이 응답이 다시 참조될 수 있다. 새로운 응답은 past_messages에 추가되어 다음 대화의 맥락으로 활용된다.
역할: 모델이 생성한 응답을 메모리에 저장하여, 향후 대화에서 참고할 수 있게 한다.

7. Output (최종 답변 출력)

설명: 파싱된 답변이 최종적으로 사용자에게 전달된다.
역할: 사용자의 질문에 대한 응답을 반환하는 최종 단계다.