What is RAG in Simple Terms?
Retrieval-Augmented Generation (RAG) is a technique that enables large language models (LLMs) to pull in relevant external data at inference time, rather than rely solely on their internal parameters.
At its core it works like this:
- Retrieval Step: Given a user query, fetch the most relevant pieces of information (documents, paragraphs, embeddings) from an external knowledge base.
- Augmentation Step: Pass that retrieved information, along with the user’s query, into the LLM as context.
- Generation Step: The LLM synthesises a coherent response using both its internal knowledge and the fresh retrieved data.
This blend of retrieval + generation ensures answers are not only contextually relevant, but also grounded in explicit data rather than purely model memory.
Type 1: Naive RAG

Naive RAG is the simplest and most widely used form of retrieval-augmented generation, where a query is embedded, the vector database retrieves the closest semantic chunks, and these are directly appended to the prompt for the LLM. It works well for clean, structured knowledge bases and low-stakes applications because of its speed and easy implementation.
How it works:
- The query is embedded into a vector.
- Similarity search retrieves top-K chunks from a vector database (like FAISS, Pinecone, or Milvus).
- The retrieved text is concatenated with the query and sent to the LLM.
However, as the dataset grows or becomes domain-heavy, embedding similarity alone often retrieves partially relevant or noisy documents, reducing answer precision. To overcome this limitation of retrieval noise and improve consistency in high-stakes domains, the next evolution introduces a refinement layer, Reranker-Enhanced RAG.
For more checkout Wikipedia page.
Type 2: Reranker-Enhanced RAG
Reranker-Enhanced RAG makes retrieval more accurate by adding an extra checking step after the initial vector search. Instead of relying only on the top results returned by embeddings, the system first pulls a larger list of possible matches (for example, 20–50 passages). Then it uses a reranker model, which reads both the query and each passage together, to decide which ones are truly the best match. This step is much smarter than basic embedding similarity and helps the system find the most relevant and meaningful passages. As a result, the final retrieved context is cleaner, more precise, and especially useful for domains like legal, finance, or enterprise search where accuracy matters a lot.
How it works:
- First, the system retrieves a larger set (say, 50) of candidate documents.
- Then a reranker model scores each candidate for relevance.
- The top-K are passed to the LLM for generation.
Use Case: Enterprise knowledge assistants, legal/financial document Q&A.
Despite this improvement, reranking still depends heavily on how the document was chunked. If a long document contains multiple concepts inside one chunk, even the best reranker cannot surface specific details hidden within it. To capture fine-grained meaning across complex, multi-topic documents, the system evolves into Multi-Vector RAG, where each document is broken into multiple semantic units and embedded individually for richer, more detailed retrieval.
For more checkout Cohere blog.
Type 3: Multi-Vector RAG
Multi-Vector RAG enhances retrieval accuracy by breaking each document into smaller, semantically meaningful chunks, such as sections, paragraphs, or conceptual units, and generating an independent summary and embedding vector for each chunk. Instead of representing an entire document using a single vector, the system produces multiple embeddings per document, each capturing a different aspect of the content. These vectors are then stored in the vector database, allowing the retriever to match a user’s query against a richer set of fine-grained representations. This results in significantly improved recall for complex, technical, or multi-topic documents where important information may be buried deep inside long text.
How it works:
- Each document is decomposed into smaller semantic units (chunks).
- Every chunk is converted into a summary to highlight the key meaning.
- Each summary is embedded separately to create multiple vectors per document.
- These vectors are inserted into the vector database.
- A query embedding is generated and matched against all summary vectors.
- The top-matching vectors guide retrieval of the corresponding chunks.
- Retrieved text is aggregated and passed to the LLM for final generation .
Use Case: Research papers and scientific literature
Although this approach brings substantial gains in precision, it remains limited to unstructured text and treats knowledge as separate chunks without explicit relationships. Many real-world systems, healthcare, enterprise data, scientific research, require understanding how concepts connect, not just retrieving isolated pieces of text. To overcome this limitation and enable relationship-aware retrieval, the system evolves into Graph-Based RAG.
For more checkout Kaggle page.
Type 4: Graph-Based RAG
Graph-Based RAG enhances retrieval by combining unstructured text with structured knowledge graphs, allowing the system to understand not just information but the relationships between concepts. Instead of relying solely on vector similarity, it performs graph traversal to extract relevant entities, connections, and subgraphs related to the user’s question. This structured context is then merged with text-based retrieval, giving the LLM deeper and more accurate grounding, especially in domains where relationships and dependencies are critical.
How it works:
- Extracts entities or key concepts from the user query.
- Traverses the knowledge graph to retrieve related nodes, edges, and subgraphs.
- Performs semantic retrieval on the vector database in parallel.
- Merges graph context + vector-retrieved text into an augmented prompt.
- Sends the combined context to the LLM to generate a grounded, accurate answer.
Use case: Healthcare assistants (disease → symptom → treatment graphs)
While Graph-Based RAG introduces structured reasoning by incorporating knowledge graphs, it still relies on an external retrieval pipeline that must be explicitly defined, managed, and maintained. In many situations, especially when knowledge is large, dynamic, or incomplete, the system must continuously refine what to retrieve and how to use it. Graphs help with structure, but they cannot always predict what context the model needs next. To overcome this limitation, the next evolution emerges: Self-RAG.
For more checkout Vellum.AI blog.
Type 6: Self-RAG (Self-Reflective Retrieval-Augmented Generation)
Self-RAG is the next major evolution in the RAG family, designed to overcome the limitations of Graph-Based and traditional RAG systems. While Graph RAG brings structured knowledge and relationship awareness, it still depends on a fixed retrieval pipeline. Retrieval always happens, even when unnecessary, and the model has no ability to judge whether its output is correct.
Self-RAG changes this by making the model self-aware and retrieval-aware through a mechanism called reflection. Instead of blindly retrieving documents, the model evaluates the user query, reflects on its own generated answer, and decides whether retrieval should be triggered. This decision is controlled by reflection tokens like [RETRIEVE], [NO_RETRIEVE], [ISREL], [ISSUP], etc., which act as internal reasoning signals.
How it works:
The model receives the Input Query.
- It performs a Retrieve-or-Not decision step.
- If retrieval is required → it performs Document Retrieval.
- If retrieval is not required → it performs Direct Generation.
- Both paths feed into Contextual Generation, where the model refines answers using evidence or self-checking.
- A grounded, self-verified Final Response is delivered.
Use Case: Code assistants combining internal knowledge with selective documentation lookup
Why Self-RAG Is a Major Improvement
- Retrieval is adaptive, not constant.
- Answers are self-verified, not blindly generated.
- Retrieval cost and latency drop dramatically.
- Hallucinations reduce because the model critiques itself.
- Works extremely well for domains requiring accuracy, evidence, and transparency.
For more checkout this GFG article
Summary:
RAG systems are evolving rapidly from static retrieval to self-improving, reasoning-aware architectures. Choosing the right type depends on your data nature, latency tolerance, and accuracy needs.
Because in the world of LLMs, good retrieval means good intelligence.
Disclaimer: This is a personal blog. The views and opinions expressed here are only those of the author and do not represent those of any organization or any individual with whom the author may be associated, professionally or personally.





Top comments (0)