āļŠāļĢāđāļēāļ RAG āđāļāļ Local āđāļāđāļāļĢāļīāļ: āļāļĢāļ°āļŠāļāļāļēāļĢāļāđāļāļēāļ Skald
āļāļĩāļĄāļāļąāļāļāļē Skald āđāļāđāļāļāļĨāļāļāļŠāļĢāđāļēāļāļĢāļ°āļāļ RAG (Retrieval-Augmented Generation) āđāļāļ self-hosted āļāļĩāđāđāļĄāđāļāđāļāļāļŠāđāļāļāđāļāļĄāļđāļĨāđāļāļĒāļąāļāļāļĢāļīāļāļēāļĢāļāļāļāļāļļāļāļāļĨāļāļĩāđāļŠāļēāļĄ āđāļāļĒāđāļāđāđāļāļāđāļāđāļĨāļĒāļĩ open-source āļāļąāđāļāļŦāļĄāļ āđāļāļ·āđāļāļāļāļāđāļāļāļĒāđāļāļāļāđāļāļĢāļāļĩāđāļāđāļāļāļāļēāļĢāļāļ§āļēāļĄāđāļāđāļāļŠāđāļ§āļāļāļąāļ§āļāļāļāļāđāļāļĄāļđāļĨāđāļāđāļĒāļąāļāļāđāļāļāļāļēāļĢāđāļāđāļāļĢāļ°āđāļĒāļāļāđāļāļēāļ AI āļŠāļĄāļąāļĒāđāļŦāļĄāđ
āļāļēāļĢāļāļāļŠāļāļāđāļāđāđāļāļ·āđāļāļŦāļēāļāļēāļāđāļ§āđāļāđāļāļāđ PostHog āļāļĢāļ°āļĄāļēāļ 2,000 āđāļāļāļŠāļēāļĢ āđāļāļĒāđāļāļĢāļĩāļĒāļāđāļāļĩāļĒāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļĢāļ°āļŦāļ§āđāļēāļ 3 āļĢāļđāļāđāļāļ: Cloud APIs (Voyage + Claude), Hybrid (Voyage + GPT-OSS 20B), āđāļĨāļ° Fully Local (Sentence Transformers + GPT-OSS 20B) āļāļĨāļĨāļąāļāļāđāđāļŠāļāļāđāļŦāđāđāļŦāđāļāļ§āđāļēāļĢāļ°āļāļ local āļŠāļēāļĄāļēāļĢāļāļāļģāļāļēāļāđāļāđāļāļĢāļīāļāđāļĨāļ°āđāļŦāđāļāļĨāļĨāļąāļāļāđāļāļĩāđāļāļĩāđāļāļŦāļĨāļēāļĒāļāļĢāļāļĩ
āļŠāļīāđāļāļāļĩāđāļāđāļēāļŠāļāđāļāļāļ·āļāļāļēāļĢ deploy āļĢāļ°āļāļāļāļąāđāļāļŦāļĄāļāđāļāđāđāļ§āļĨāļēāđāļāļĩāļĒāļ 8 āļāļēāļāļĩ āļĢāļ§āļĄāļāļķāļ vector database, reranking, embedding service āđāļĨāļ° document parser āđāļāļĒāđāļāđ Postgres + pgvector, Sentence Transformers, āđāļĨāļ° Docling āļāļēāļĄāļĨāļģāļāļąāļ āļāļģāđāļŦāđāđāļŦāđāļāļ§āđāļēāļāļēāļĢāļŠāļĢāđāļēāļ RAG āđāļāļ local āđāļĄāđāđāļāđāļĒāļēāļāļāļĒāđāļēāļāļāļĩāđāļāļīāļ
āļāļĨāļāļēāļĢāļāļāļŠāļāļāļāļāļ§āđāļē Cloud setup āđāļāđāļāļ°āđāļāļ 9.45/10, Hybrid setup āđāļāđ 9.18/10, āļŠāđāļ§āļ Local setup āđāļāļāļāļ·āđāļāļāļēāļāđāļāđ 7.10/10 āđāļĨāļ°āđāļĄāļ·āđāļāđāļāđāđāļĄāđāļāļĨ multi-lingual āļāļĩāđāļāļĩāļāļ§āđāļēāļŠāļēāļĄāļēāļĢāļāļĒāļāļĢāļ°āļāļąāļāđāļāđāļ 8.63/10 āđāļāđ āđāļāļĒāļāļļāļāļāđāļāļāļŦāļĨāļąāļāļāļ·āļāļāļēāļĢāļāļāļāļāļģāļāļēāļĄāļāļĩāđāļāđāļāļāļĢāļ§āļāļĢāļ§āļĄāļāđāļāļĄāļđāļĨāļāļēāļāļŦāļĨāļēāļĒāđāļāļāļŠāļēāļĢ āđāļāđāļŠāļģāļŦāļĢāļąāļāļāļģāļāļēāļĄāđāļāļ point query āļĢāļ°āļāļ local āļāļģāļāļēāļāđāļāđāļāļĩāļĄāļēāļ
āļŠāļĢāļļāļāļŠāļēāļĢāļ°āļŠāļģāļāļąāļ
āļāļāļāđāļāļĢāļ°āļāļāļāļāļāļ RAG āđāļĨāļ°āļāļēāļāđāļĨāļ·āļāļ Open-Source
Vector Database: Postgres + pgvector (āđāļāļ Pinecone, Weaviate)
Embeddings: Sentence Transformers all-MiniLM-L6-v2 (āđāļāļ OpenAI, Voyage)
LLM: GPT-OSS 20B āļāđāļēāļ llama.cpp (āđāļāļ GPT-4, Claude)
Reranker: Sentence Transformers cross-encoder (āđāļāļ Cohere, Voyage)
Document Parser: Docling āļāđāļēāļ docling-serve
āļāļĨāļāļēāļĢāļāļāļŠāļāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ
Voyage + Claude (Cloud): āļāļ°āđāļāļāđāļāļĨāļĩāđāļĒ 9.45/10 - āļāđāļēāļāļāļļāļāļāļģāļāļēāļĄ
Voyage + GPT-OSS 20B (Hybrid): āļāļ°āđāļāļāđāļāļĨāļĩāđāļĒ 9.18/10 - āļāļĨāļĨāļąāļāļāđāļāļĩāļĄāļēāļ
Local + āđāļĄāđāļāļĨāļāļ·āđāļāļāļēāļ: āļāļ°āđāļāļāđāļāļĨāļĩāđāļĒ 7.10/10 - āļāļĩāļŠāļģāļŦāļĢāļąāļ point queries
Local + āđāļĄāđāļāļĨ multi-lingual: āļāļ°āđāļāļāđāļāļĨāļĩāđāļĒ 8.63/10 - āļāļĢāļąāļāļāļĢāļļāļāđāļāđāļĄāļēāļ
āļāđāļāļāļĩāļāļāļ Local Setup
Deploy āđāļāđāļ āļēāļĒāđāļ 8 āļāļēāļāļĩ āļĢāļ§āļĄāļāļļāļ component
āđāļĄāđāļāđāļāļāļŠāđāļāļāđāļāļĄāļđāļĨāļāļāļāļāļāļāļāļāļāđāļāļĢ - āđāļŦāļĄāļēāļ°āļāļąāļāļāđāļāļĄāļđāļĨāļāļĩāđ sensitive
āđāļāđāđāļāļāđāļāđāļĨāļĒāļĩ open-source āļāļąāđāļāļŦāļĄāļ (MIT-licensed)
āļĢāļāļāļĢāļąāļāļāļēāļĢāļāļģāļāļēāļāđāļ air-gapped infrastructure
āļāļļāļāđāļāđāļāļāļāļāđāļĄāđāļāļĨ Local
āļāļāļāļāļģāļāļēāļĄāđāļāļ point query (āļŦāļēāļāļģāļāļāļāļāļēāļāļāļĩāđāđāļāļĩāļĒāļ§) āđāļāđāļāļĩāļĄāļēāļ
āđāļĄāđāļāļĨāļāļ·āđāļāļāļēāļāļāļģāļāļēāļāđāļĢāđāļ§āđāļĨāļ°āđāļŦāļĄāļēāļ°āļāļąāļāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ
āđāļĄāđāļāļĨ multi-lingual (bge-m3) āļĢāļāļāļĢāļąāļāļŦāļĨāļēāļĒāļ āļēāļĐāļēāļĢāļ§āļĄāļāļķāļāđāļāļĒ
āđāļāļ§āđāļāđāļĄāļāļ°āļāļĩāļāļķāđāļāđāļĢāļ·āđāļāļĒāđ āđāļĄāļ·āđāļāđāļĄāđāļāļĨ open-source āļāļąāļāļāļē
āļāđāļāļāļģāļāļąāļāļāļĩāđāļāļ§āļĢāļĢāļ°āļ§āļąāļ
āđāļĄāđāļāļĨāļāļ·āđāļāļāļēāļāļĄāļĩāļāļąāļāļŦāļēāļāļąāļāļāļģāļāļēāļĄāļāļĩāđāļāļĨāļļāļĄāđāļāļĢāļ·āļ (ambiguous questions)
āļĒāļąāļāđāļĄāđāđāļāđāļāđāļāļāļēāļĢāļĢāļ§āļāļĢāļ§āļĄāļāđāļāļĄāļđāļĨāļāļēāļāļŦāļĨāļēāļĒāđāļāļāļŠāļēāļĢ (multi-document context)
āđāļĄāđāļāļĨāļāļ·āđāļāļāļēāļāļĢāļāļāļĢāļąāļāđāļāļāļēāļ°āļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ - āļāđāļāļāđāļāđāđāļĄāđāļāļĨ multi-lingual āļŠāļģāļŦāļĢāļąāļāļ āļēāļĐāļēāļāļ·āđāļ
pgvector āļāļēāļāđāļĄāđāđāļŦāļĄāļēāļ°āļāļąāļ dataset āļāļāļēāļāđāļŦāļāđāļĄāļēāļāđ - āļāđāļāļāļāļīāļāļēāļĢāļāļē vector DB āļāļ·āđāļ
āļŠāļīāđāļāļāļĩāđāļāđāļāļāđāļāļĢāļĩāļĒāļĄāļāļĢāđāļāļĄ
āļāđāļāļāļĢāļąāļ service āļŦāļĨāļēāļĒāļāļąāļ§āđāļāļīāđāļĄāļāļķāđāļāđāļĄāļ·āđāļāđāļāļĩāļĒāļāļāļąāļāļāļēāļĢāđāļĢāļĩāļĒāļ API
āļāđāļāļāļĄāļĩāļāļ§āļēāļĄāļĢāļđāđāđāļāļāļēāļĢ deploy āđāļĨāļ° manage infrastructure
āļāļēāļāļāđāļāļāļāļĢāļąāļāđāļāđāļ topK values āđāļĨāļ°āđāļāļāļāļīāļāļāļ·āđāļāđ āļāļēāļĄ use case
āļāđāļāļāļĄāļĩ hardware āđāļāļĩāļĒāļāļāļ (āļāļāļŠāļāļāđāļāđ g5.2xlarge EC2 āļŠāļģāļŦāļĢāļąāļ LLM)
https://blog.yakkomajuri.com/blog/local-rag ð āļŠāļĢāđāļēāļ RAG āđāļāļ Local āđāļāđāļāļĢāļīāļ: āļāļĢāļ°āļŠāļāļāļēāļĢāļāđāļāļēāļ Skald
āļāļĩāļĄāļāļąāļāļāļē Skald āđāļāđāļāļāļĨāļāļāļŠāļĢāđāļēāļāļĢāļ°āļāļ RAG (Retrieval-Augmented Generation) āđāļāļ self-hosted āļāļĩāđāđāļĄāđāļāđāļāļāļŠāđāļāļāđāļāļĄāļđāļĨāđāļāļĒāļąāļāļāļĢāļīāļāļēāļĢāļāļāļāļāļļāļāļāļĨāļāļĩāđāļŠāļēāļĄ āđāļāļĒāđāļāđāđāļāļāđāļāđāļĨāļĒāļĩ open-source āļāļąāđāļāļŦāļĄāļ āđāļāļ·āđāļāļāļāļāđāļāļāļĒāđāļāļāļāđāļāļĢāļāļĩāđāļāđāļāļāļāļēāļĢāļāļ§āļēāļĄāđāļāđāļāļŠāđāļ§āļāļāļąāļ§āļāļāļāļāđāļāļĄāļđāļĨāđāļāđāļĒāļąāļāļāđāļāļāļāļēāļĢāđāļāđāļāļĢāļ°āđāļĒāļāļāđāļāļēāļ AI āļŠāļĄāļąāļĒāđāļŦāļĄāđ
āļāļēāļĢāļāļāļŠāļāļāđāļāđāđāļāļ·āđāļāļŦāļēāļāļēāļāđāļ§āđāļāđāļāļāđ PostHog āļāļĢāļ°āļĄāļēāļ 2,000 āđāļāļāļŠāļēāļĢ āđāļāļĒāđāļāļĢāļĩāļĒāļāđāļāļĩāļĒāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļĢāļ°āļŦāļ§āđāļēāļ 3 āļĢāļđāļāđāļāļ: Cloud APIs (Voyage + Claude), Hybrid (Voyage + GPT-OSS 20B), āđāļĨāļ° Fully Local (Sentence Transformers + GPT-OSS 20B) āļāļĨāļĨāļąāļāļāđāđāļŠāļāļāđāļŦāđāđāļŦāđāļāļ§āđāļēāļĢāļ°āļāļ local āļŠāļēāļĄāļēāļĢāļāļāļģāļāļēāļāđāļāđāļāļĢāļīāļāđāļĨāļ°āđāļŦāđāļāļĨāļĨāļąāļāļāđāļāļĩāđāļāļĩāđāļāļŦāļĨāļēāļĒāļāļĢāļāļĩ
āļŠāļīāđāļāļāļĩāđāļāđāļēāļŠāļāđāļāļāļ·āļāļāļēāļĢ deploy āļĢāļ°āļāļāļāļąāđāļāļŦāļĄāļāđāļāđāđāļ§āļĨāļēāđāļāļĩāļĒāļ 8 āļāļēāļāļĩ āļĢāļ§āļĄāļāļķāļ vector database, reranking, embedding service āđāļĨāļ° document parser āđāļāļĒāđāļāđ Postgres + pgvector, Sentence Transformers, āđāļĨāļ° Docling āļāļēāļĄāļĨāļģāļāļąāļ āļāļģāđāļŦāđāđāļŦāđāļāļ§āđāļēāļāļēāļĢāļŠāļĢāđāļēāļ RAG āđāļāļ local āđāļĄāđāđāļāđāļĒāļēāļāļāļĒāđāļēāļāļāļĩāđāļāļīāļ
āļāļĨāļāļēāļĢāļāļāļŠāļāļāļāļāļ§āđāļē Cloud setup āđāļāđāļāļ°āđāļāļ 9.45/10, Hybrid setup āđāļāđ 9.18/10, āļŠāđāļ§āļ Local setup āđāļāļāļāļ·āđāļāļāļēāļāđāļāđ 7.10/10 āđāļĨāļ°āđāļĄāļ·āđāļāđāļāđāđāļĄāđāļāļĨ multi-lingual āļāļĩāđāļāļĩāļāļ§āđāļēāļŠāļēāļĄāļēāļĢāļāļĒāļāļĢāļ°āļāļąāļāđāļāđāļ 8.63/10 āđāļāđ āđāļāļĒāļāļļāļāļāđāļāļāļŦāļĨāļąāļāļāļ·āļāļāļēāļĢāļāļāļāļāļģāļāļēāļĄāļāļĩāđāļāđāļāļāļĢāļ§āļāļĢāļ§āļĄāļāđāļāļĄāļđāļĨāļāļēāļāļŦāļĨāļēāļĒāđāļāļāļŠāļēāļĢ āđāļāđāļŠāļģāļŦāļĢāļąāļāļāļģāļāļēāļĄāđāļāļ point query āļĢāļ°āļāļ local āļāļģāļāļēāļāđāļāđāļāļĩāļĄāļēāļ
ð āļŠāļĢāļļāļāļŠāļēāļĢāļ°āļŠāļģāļāļąāļ
â
āļāļāļāđāļāļĢāļ°āļāļāļāļāļāļ RAG āđāļĨāļ°āļāļēāļāđāļĨāļ·āļāļ Open-Source
âĄïļ Vector Database: Postgres + pgvector (āđāļāļ Pinecone, Weaviate)
âĄïļ Embeddings: Sentence Transformers all-MiniLM-L6-v2 (āđāļāļ OpenAI, Voyage)
âĄïļ LLM: GPT-OSS 20B āļāđāļēāļ llama.cpp (āđāļāļ GPT-4, Claude)
âĄïļ Reranker: Sentence Transformers cross-encoder (āđāļāļ Cohere, Voyage)
âĄïļ Document Parser: Docling āļāđāļēāļ docling-serve
â
āļāļĨāļāļēāļĢāļāļāļŠāļāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ
âĄïļ Voyage + Claude (Cloud): āļāļ°āđāļāļāđāļāļĨāļĩāđāļĒ 9.45/10 - āļāđāļēāļāļāļļāļāļāļģāļāļēāļĄ
âĄïļ Voyage + GPT-OSS 20B (Hybrid): āļāļ°āđāļāļāđāļāļĨāļĩāđāļĒ 9.18/10 - āļāļĨāļĨāļąāļāļāđāļāļĩāļĄāļēāļ
âĄïļ Local + āđāļĄāđāļāļĨāļāļ·āđāļāļāļēāļ: āļāļ°āđāļāļāđāļāļĨāļĩāđāļĒ 7.10/10 - āļāļĩāļŠāļģāļŦāļĢāļąāļ point queries
âĄïļ Local + āđāļĄāđāļāļĨ multi-lingual: āļāļ°āđāļāļāđāļāļĨāļĩāđāļĒ 8.63/10 - āļāļĢāļąāļāļāļĢāļļāļāđāļāđāļĄāļēāļ
â
āļāđāļāļāļĩāļāļāļ Local Setup
âĄïļ Deploy āđāļāđāļ āļēāļĒāđāļ 8 āļāļēāļāļĩ āļĢāļ§āļĄāļāļļāļ component
âĄïļ āđāļĄāđāļāđāļāļāļŠāđāļāļāđāļāļĄāļđāļĨāļāļāļāļāļāļāļāļāļāđāļāļĢ - āđāļŦāļĄāļēāļ°āļāļąāļāļāđāļāļĄāļđāļĨāļāļĩāđ sensitive
âĄïļ āđāļāđāđāļāļāđāļāđāļĨāļĒāļĩ open-source āļāļąāđāļāļŦāļĄāļ (MIT-licensed)
âĄïļ āļĢāļāļāļĢāļąāļāļāļēāļĢāļāļģāļāļēāļāđāļ air-gapped infrastructure
â
āļāļļāļāđāļāđāļāļāļāļāđāļĄāđāļāļĨ Local
âĄïļ āļāļāļāļāļģāļāļēāļĄāđāļāļ point query (āļŦāļēāļāļģāļāļāļāļāļēāļāļāļĩāđāđāļāļĩāļĒāļ§) āđāļāđāļāļĩāļĄāļēāļ
âĄïļ āđāļĄāđāļāļĨāļāļ·āđāļāļāļēāļāļāļģāļāļēāļāđāļĢāđāļ§āđāļĨāļ°āđāļŦāļĄāļēāļ°āļāļąāļāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ
âĄïļ āđāļĄāđāļāļĨ multi-lingual (bge-m3) āļĢāļāļāļĢāļąāļāļŦāļĨāļēāļĒāļ āļēāļĐāļēāļĢāļ§āļĄāļāļķāļāđāļāļĒ
âĄïļ āđāļāļ§āđāļāđāļĄāļāļ°āļāļĩāļāļķāđāļāđāļĢāļ·āđāļāļĒāđ āđāļĄāļ·āđāļāđāļĄāđāļāļĨ open-source āļāļąāļāļāļē
âžïļ āļāđāļāļāļģāļāļąāļāļāļĩāđāļāļ§āļĢāļĢāļ°āļ§āļąāļ
â āđāļĄāđāļāļĨāļāļ·āđāļāļāļēāļāļĄāļĩāļāļąāļāļŦāļēāļāļąāļāļāļģāļāļēāļĄāļāļĩāđāļāļĨāļļāļĄāđāļāļĢāļ·āļ (ambiguous questions)
â āļĒāļąāļāđāļĄāđāđāļāđāļāđāļāļāļēāļĢāļĢāļ§āļāļĢāļ§āļĄāļāđāļāļĄāļđāļĨāļāļēāļāļŦāļĨāļēāļĒāđāļāļāļŠāļēāļĢ (multi-document context)
â āđāļĄāđāļāļĨāļāļ·āđāļāļāļēāļāļĢāļāļāļĢāļąāļāđāļāļāļēāļ°āļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ - āļāđāļāļāđāļāđāđāļĄāđāļāļĨ multi-lingual āļŠāļģāļŦāļĢāļąāļāļ āļēāļĐāļēāļāļ·āđāļ
â pgvector āļāļēāļāđāļĄāđāđāļŦāļĄāļēāļ°āļāļąāļ dataset āļāļāļēāļāđāļŦāļāđāļĄāļēāļāđ - āļāđāļāļāļāļīāļāļēāļĢāļāļē vector DB āļāļ·āđāļ
âžïļ āļŠāļīāđāļāļāļĩāđāļāđāļāļāđāļāļĢāļĩāļĒāļĄāļāļĢāđāļāļĄ
â āļāđāļāļāļĢāļąāļ service āļŦāļĨāļēāļĒāļāļąāļ§āđāļāļīāđāļĄāļāļķāđāļāđāļĄāļ·āđāļāđāļāļĩāļĒāļāļāļąāļāļāļēāļĢāđāļĢāļĩāļĒāļ API
â āļāđāļāļāļĄāļĩāļāļ§āļēāļĄāļĢāļđāđāđāļāļāļēāļĢ deploy āđāļĨāļ° manage infrastructure
â āļāļēāļāļāđāļāļāļāļĢāļąāļāđāļāđāļ topK values āđāļĨāļ°āđāļāļāļāļīāļāļāļ·āđāļāđ āļāļēāļĄ use case
â āļāđāļāļāļĄāļĩ hardware āđāļāļĩāļĒāļāļāļ (āļāļāļŠāļāļāđāļāđ g5.2xlarge EC2 āļŠāļģāļŦāļĢāļąāļ LLM)
https://blog.yakkomajuri.com/blog/local-rag