스마티지와 글 읽기 – MemoBase: Long-Term Memory for AI Apps and LLMs – Install Locally with Ollama
MemoBase: Long-Term Memory for AI Apps and LLMs – Install Locally with Ollama – YouTube
안녕하세요! AI에 대한 모든 궁금증을 가장 쉽고 재미있게 풀어드리는 일타강사 저스틴입니다. 오늘 여러분과 함께 나눌 이야기는 정말 흥미진진한 주제입니다. 바로, 우리의 AI 비서에게 ‘기억’을 선물하는 방법, Memobase에 대한 모든 것입니다.
AI 챗봇과 대화하다 보면 가끔 답답할 때가 있죠? 어제 나눴던 대화를 오늘 다시 설명해야 하고, 내 이름을 알려줘도 다음 질문에선 “성함이 어떻게 되시죠?”라고 되묻곤 합니다. 마치 3초마다 기억이 리셋되는 물고기처럼 말이죠.
이런 AI의 ‘단기 기억상실증’을 해결하고, 사용자와 함께 성장하며 진화하는 진정한 개인 비서를 만들 수는 없을까요? 정답은 ‘만들 수 있다’입니다. 그리고 그 열쇠가 바로 오늘 우리가 함께 파헤쳐 볼 Memobase에 있습니다.
자, 그럼 지금부터 저와 함께 여러분의 AI를 한 단계 업그레이드할 준비, 되셨나요? 출발합니다!
1교시: AI는 왜 ‘건망증’이 심할까? – LLM의 본질적 한계
우리가 사용하는 챗GPT와 같은 대규모 언어 모델(LLM)은 기본적으로 ‘상태(state)’가 없는, 즉 Stateless한 구조를 가지고 있습니다. 이게 무슨 말이냐고요? 쉽게 말해, 여러분과 나눈 대화 내용을 저장하지 않는다는 뜻입니다.
매번의 질문과 답변은 완전히 독립적인 사건입니다. LLM은 여러분이 방금 한 질문에 대해, 그동안 학습한 방대한 데이터를 기반으로 가장 그럴듯한 답변을 생성할 뿐, ‘이전 대화’라는 맥락은 전혀 기억하지 못합니다. 그래서 대화가 길어지면 엉뚱한 소리를 하거나, 우리가 했던 말을 또 하게 만드는 것이죠.
2교시: AI의 ‘기억 저장소’, Memobase는 어떻게 작동할까?
Memobase는 바로 이 문제를 해결하기 위해 등장했습니다. 작동 원리는 놀랍도록 간단하면서도 강력합니다.
- Step 1: 기억 저장: 사용자가 AI에게 자신에 대한 정보를 말합니다. 예를 들어, “안녕, 내 이름은 거스(Gus)야. 오늘 날씨 정말 좋다!”
- Step 2: 데이터베이스화: Memobase는 이 “내 이름은 거스”라는 정보를 **’기억’**으로 간주하고, 일종의 데이터베이스(메모리 저장소)에 차곡차곡 저장합니다. 이때 누가 말했는지 알 수 있도록 ‘사용자 ID’ 같은 꼬리표(메타데이터)를 함께 붙여둡니다.
- Step 3: 기억 회상: 며칠 뒤, 사용자가 다시 돌아와 AI에게 질문을 합니다.
- Step 4: 맥락 파악 및 답변: AI는 답변을 생성하기 전에, 먼저 Memobase라는 기억 저장소를 쓱 훑어봅니다. “아, 이 사람은 거스구나!”라는 정보를 확인하고, 이를 바탕으로 훨씬 더 개인화되고 맥락에 맞는 답변을 제공하는 것이죠.
결국 Memobase는 사용자의 프롬프트에 ‘과거의 기억’이라는 추가 데이터를 붙여서 LLM에게 전달해 주는 똑똑한 중개인 역할을 하는 셈입니다. 우리가 매번 설명할 필요 없이, AI가 스스로 사용자를 기억하고, 이해하고, 함께 성장하게 만드는 것이죠. 가상 친구, 맞춤형 교육 도구, 개인 비서 등 활용 분야는 무궁무진합니다.
3교시: 실전! Memobase, 내 컴퓨터에 직접 설치하고 사용해보기
백문이 불여일견! 이제 직접 Memobase를 설치하고, 기억을 가진 AI를 만나보겠습니다. 우리는 Ollama라는 도구를 함께 사용할 겁니다. Ollama는 복잡한 설정 없이 내 컴퓨터에서 무료로 LLM을 구동하게 해주는 아주 유용한 툴입니다.
[준비물]
- Ollama: 이미 설치되어 있다고 가정하겠습니다. 설치 방법은 매우 간단합니다.
- Docker: 애플리케이션을 쉽게 실행할 수 있게 해주는 컨테이너 기술입니다. 이 역시 설치가 필요합니다.
Step 1: LLM 모델 다운로드
먼저 AI의 ‘뇌’ 역할을 할 LLM 모델을 Ollama를 통해 다운로드합니다. 여기서는 qwen:2.5
모델을 사용해 보겠습니다. 터미널에 아래 명령어를 입력하세요.
1 2 |
ollama run qwen:2.5 |
Step 2: Memobase 소스 코드 가져오기 및 설치
이제 Memobase를 설치할 차례입니다.
1 2 3 4 5 6 7 8 9 10 11 12 |
# 1. Memobase 소스 코드를 다운로드합니다. git clone https://github.com/memodb-io/memobase.git # 2. 다운로드한 폴더로 이동합니다. cd memobase # 3. 필요한 라이브러리들을 설치합니다. pip install -r requirements.txt # 4. Memobase 패키지를 설치합니다. pip install memobase |
Step 3: Memobase 설정하기 (가장 중요!)
이제 Memobase가 우리가 설치한 Ollama와 ‘대화’할 수 있도록 연결 설정을 해줘야 합니다.
source/server
폴더로 이동합니다.config.example.yml
파일을config.yml
이라는 이름으로 복사합니다.- 복사한
config.yml
파일을 열어 아래와 같이 수정합니다. 이것은 Memobase에게 “네가 사용할 LLM은 Ollama이고, 이 주소에 있는 이 모델을 사용해!”라고 알려주는 과정입니다.
1 2 3 4 5 6 7 8 9 |
llm: # 사용할 LLM API 키를 'ollama'로 지정 api_key: ollama # 내 컴퓨터에서 실행 중인 Ollama의 주소 # Docker 환경을 고려하여 localhost 대신 host.docker.internal을 사용 base_url: http://host.docker.internal:11434 # Ollama를 통해 다운로드한 모델 이름 model: qwen:2.5 |
Step 4: Memobase 실행하기!
source/server
폴더 안에서 다음 명령어를 실행하면, Docker가 필요한 이미지를 빌드하고 Memobase 서버를 실행시킵니다.
1 2 |
docker-compose up --build |
이제 모든 준비가 끝났습니다! 여러분의 컴퓨터에서 AI의 기억을 관리하는 Memobase 서버가 작동하기 시작했습니다.
4교시: 기억을 가진 AI, 직접 대화해보기
자, 이제 테스트를 통해 Memobase의 마법을 직접 확인해 볼 시간입니다. 아래의 간단한 파이썬 코드를 실행해 봅시다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import os from openai import OpenAI # Memobase 서버 주소로 클라이언트 설정 client = OpenAI( base_url="http://localhost:8000/v1", # 우리 로컬에서 실행 중인 Memobase 주소 api_key="sk-...", # 임의의 키 입력 ) # 1. 처음 만났을 때 (기억이 없는 상태) print("--- 첫 번째 대화 (기억 없음) ---") chat_completion = client.chat.completions.create( model="qwen:2.5", # 설정 파일에 지정한 모델 messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "내 이름은 거스야. 넌 이름이 뭐니?"}, ] ) print("AI:", chat_completion.choices[0].message.content) # 2. 두 번째 만났을 때 (방금 대화를 기억하고 있음) print("\n--- 두 번째 대화 (기억 있음) ---") chat_completion = client.chat.completions.create( model="qwen:2.5", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "내 이름이 뭐라고 했지?"}, ] ) print("AI:", chat_completion.choices[0].message.content) |
[실행 결과 예측]
1 2 3 4 5 6 |
--- 첫 번째 대화 (기억 없음) --- AI: 안녕하세요, 거스님! 만나서 반갑습니다. 당신의 이름을 기억해 두겠습니다. --- 두 번째 대화 (기억 있음) --- AI: 당신의 이름은 거스입니다. 제가 기억하고 있습니다. 무엇을 도와드릴까요? |
놀랍지 않나요? 첫 대화에서 “거스”라는 이름을 학습한 AI가 두 번째 대화에서는 그 기억을 정확히 꺼내서 답변합니다. 이것이 바로 Memobase가 제공하는 장기 기억 능력의 힘입니다.
5교시: 저스틴의 핵심 정리 및 조언
오늘 우리는 Memobase를 통해 AI에게 ‘기억’을 심어주는 방법을 배웠습니다. 핵심은 간단합니다. 사용자별 정보를 데이터베이스에 저장하고, 필요할 때마다 꺼내 쓰는 것이죠. Memobase는 내부적으로 Redis라는 인메모리 데이터 스토어를 사용해 이 과정을 처리합니다.
하지만 실제 상용 서비스를 만든다고 상상해 보세요. 진짜 도전은 여기서부터 시작됩니다.
- 지연 시간(Latency)과 확장성(Scalability): 수천, 수만 명의 사용자가 동시에 AI와 대화한다면, 이 기억 저장소는 엄청나게 빠르고 안정적으로 작동해야 합니다. 어떤 데이터베이스를 선택하고 어떻게 최적화할 것인가가 서비스의 성능을 좌우하는 ‘비법 소스(Secret Sauce)’가 됩니다.
- 비용 최적화: Memobase는 훌륭한 오픈소스 도구지만, 경우에 따라서는 우리 서비스에 맞게 직접 메모리 시스템을 구축하는 것(Homegrown)이 더 효율적일 수 있습니다.
Memobase는 AI의 기억 능력이라는 개념을 이해하고 구현해 볼 수 있는 아주 훌륭한 출발점입니다. 오늘 배운 내용을 바탕으로 여러분만의 ‘기억하는 AI’ 프로젝트에 도전해 보시는 건 어떨까요?