LLM 서비스를 이미 구독 중이라면, 로컬 LLM보다는 로컬 임베딩 및 리랭커를 돌리는 게 훨씬 유용함
If You Already Pay for an LLM Service, Running Local Embeddings and Rerankers Feels More Useful Than Running Local LLMs
핵심 요약
유료 LLM 서비스를 이용 중이라면 로컬 LLM 대신 임베딩과 리랭커 모델을 로컬에서 운영해 메모리 관리 시스템을 구축하는 것이 생산성 측면에서 더 효율적임.
- 로컬 AI 활용 — 로컬 LLM 대신 임베딩과 리랭커를 활용해 생산성 향상 도모
- 메모리 시스템 구축 — GBrain을 통해 로컬에서 임베딩 및 리랭커로 효율적인 정보 검색 구현
- 하드웨어 효율성 — Tesla P40 환경에서 로컬 LLM 대신 임베딩/리랭커를 운영하여 자원 최적화
- 워크플로우 통합 — Codex 및 ChatGPT와 연동하여 로컬 메모리 관리와 외부 LLM의 장점 결합
이 글은 원래 한국어로 썼던 걸 ChatGPT로 다듬고 영어로 번역한 거임.
나도 Tesla P40으로 llama.cpp를 로컬에서 돌리긴 하는데, 이미 ChatGPT Pro를 결제해서 쓰는 입장에서 Qwen 3.6 27B나 Gemma 4 31B 같은 로컬 LLM을 계속 돌려야 할 실질적인 이유가 점점 사라지더라고. API 같은 워크플로우로 OpenAI 모델을 써야 할 땐 그냥 Codex OAuth 쓰면 그만이니까.
근데 문득 임베딩 모델이랑 리랭커 모델은 Codex로 똑같이 접근할 수 없다는 게 생각남. 그래서 로컬 AI를 단순히 취미나 재미로 돌리는 게 아니라, 진짜 생산성을 높여줄 수 있는 'LLM용 메모리 MCP'라는 실질적인 이유를 찾게 됨.
Codex 앱을 쓰면 ChatGPT Pro 덕분에 GPT 기반 모델은 거의 무제한으로 쓸 수 있지만, 임베딩이랑 리랭커 모델은 여전히 거의 항상 유료 API를 써야 하거든. 그래서 로컬 LLM 돌리는 데 힘 빼는 대신, Qwen3 Embedding 4B랑 Qwen3 Reranker 4B를 로컬에 올려서 GBrain으로 LLM 메모리 시스템을 구축하기로 함.
기술 스택은 대충 llama.cpp, PostgreSQL, pgvector, S3 API용 Ceph, 그리고 메모리를 마크다운 파일로 저장할 GitLab 정도임.
워크플로우는 이래: 내가 Codex나 ChatGPT Web, 혹은 다른 클라이언트를 쓸 때, 기억해달라고 명시적으로 요청하거나 시스템이 중요하다고 판단한 내용은 MCP 인터페이스를 통해 GBrain에 마크다운 파일로 저장됨. 그럼 GBrain이 그 파일들을 인덱싱하고, 임베딩을 생성한 뒤, LLM을 써서 각 마크다운 메모리에서 핵심 사실들만 추출하는 방식임.
나중에 MCP를 통해 메모리 조회 요청이 들어오면, GBrain이 먼저 임베딩 모델을 써서 관련 있을 법한 메모리들을 싹 긁어옴. 그다음 리랭커 모델로 결과를 가장 관련성 높은 것들만 추려내서 반환하는 거지.
그냥 마크다운 파일로 메모리를 저장하는 것보다 이 방식이 훨씬 낫다고 봄. GBrain 같은 관리 계층을 위에 얹으면, LLM한테 파일 전체를 다 읽히는 게 아니라 마크다운 문서에서 간결한 사실들만 뽑아낼 수 있거든. 임베딩이랑 리랭킹을 같이 써서 진짜 필요한 정보만 딱 띄워주니까 검색 정확도도 훨씬 높고.
이게 나한테 유용한 또 다른 이유는 내가 Codex랑 ChatGPT Web을 둘 다 쓰기 때문임. GBrain을 앱 형태로 ChatGPT Web에 연결해두면, MCP 요청이 일반적인 웹 검색이랑 같이 돌아감. 덕분에 Codex에서 작업한 내용이랑 ChatGPT Web에서 나눈 대화 사이의 맥락을 공유하기가 훨씬 편해졌고, 내가 손댈 일도 확 줄었음.
결론적으로, 이미 Codex나 ChatGPT, Claude 같은 서비스를 돈 내고 쓰고 있다면 로컬 LLM을 돌리는 게 항상 최고의 생산성을 보장하는 건 아니라는 게 내 생각임. 차라리 그런 서비스들이 제공하지 않는 임베딩 모델이나 리랭커 같은 걸 로컬에서 돌리는 게 훨씬 합리적임.


