Enterprise RAG
Buduję i audytuję produkcyjne systemy Retrieval-Augmented Generation — od wyboru vector DB, przez chunking i embedding, po evaluation framework, który pokazuje czy to faktycznie działa.
Kiedy klasyczny LLM nie wystarcza
Większość firm odkrywa to po pierwszym pilocie z ChatGPT: model „halucynuje” o produktach, polityce wewnętrznej, klientach. Retrieval-Augmented Generation (RAG) rozwiązuje to przez wstrzykiwanie zweryfikowanych dokumentów do kontekstu LLM. Brzmi prosto. W produkcji jest pełne pułapek.
W IG Group prowadziłem program adopcji generatywnej AI, w ramach którego zbudowaliśmy chatbot RAG nad wewnętrzną bazą wiedzy. Roczne oszczędności: ponad 100 tys. USD, setki godzin pracy ręcznej miesięcznie mniej.
Co dostarczam
- Audyt RAG (1–2 tygodnie) — przegląd istniejącego stosu: chunking, model embeddingowy, wybór vector DB, ewaluacja retrievalu, prompt generacyjny. Raport z konkretną listą napraw uszeregowanych pod ROI.
- Wdrożenie od zera — wybór vector DB (ChromaDB, Pinecone, Vertex AI Vector Search, pgvector, Weaviate), pipeline ETL dokumentów, framework ewaluacji (recall@k, MRR, hallucination rate, faithfulness).
- Multimodalny RAG — gdy źródła to nie tylko tekst (PDF z tabelami, obrazy, audio).
- Optymalizacja kosztów — RAG potrafi spalić budżet OpenAI/Anthropic w kilka tygodni. Dobieram caching, klasę embeddingu i chunking tak, by koszt rósł liniowo z wartością.
- Ewaluacja jako proces ciągły — bez pomiarów RAG to pobożne życzenia. Buduję pipeline’y, które codziennie mierzą jakość na realnych zapytaniach.
Częste pułapki
- Zły chunking — fragment 100-tokenowy traci kontekst, fragment 2000-tokenowy zalewa generator szumem.
- Generyczny model embeddingowy —
all-MiniLM-L6-v2może nie ogarniać Twojej domeny (księgowość, prawo, medycyna). - Brak ewaluacji — system „działa”, bo pierwsze 5 zapytań od product managera dało dobre odpowiedzi.
- Retrieval jednoetapowy — zaawansowany RAG korzysta z multi-hop, hybrid search i rerankerów.
- Vector DB jako jedyny indeks — w wąsko zdefiniowanych domenach BM25 + filtrowanie bywa skuteczniejsze niż dense vectors.
Stack, którego używam
Python · LangChain · LlamaIndex · ChromaDB · Pinecone · Vertex AI Vector Search · pgvector · OpenAI · Anthropic · Cohere Rerank · AzureOpenAI · Ragas evaluation · DeepEval