<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RAG on Chen Kai Blog</title><link>https://www.chenk.top/en/tags/rag/</link><description>Recent content in RAG on Chen Kai Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 06 May 2026 09:00:00 +0000</lastBuildDate><atom:link href="https://www.chenk.top/en/tags/rag/index.xml" rel="self" type="application/rss+xml"/><item><title>Alibaba Cloud Full Stack (9): OpenSearch and AI Search</title><link>https://www.chenk.top/en/aliyun-fullstack/09-opensearch/</link><pubDate>Wed, 06 May 2026 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/aliyun-fullstack/09-opensearch/</guid><description>&lt;p>I built my first search engine with Elasticsearch and a pile of synonyms. It took six months to get decent results. Every week, users complained about missing results, so I added more synonyms, broke something else, and added exception rules. The relevance tuning spreadsheet grew to 400 rows. I had custom analyzers for three languages, a boosting config that no one understood (including me), and a reindexing job that took four hours. Then I tried hybrid vector+keyword search on a side project and got better results on day one. Not marginally better — &amp;ldquo;users stopped complaining&amp;rdquo; better. That experience completely changed how I think about search, and it&amp;rsquo;s the reason this article exists.&lt;/p></description></item><item><title>LLM Engineering (8): Retrieval-Augmented Generation</title><link>https://www.chenk.top/en/llm-engineering/08-rag/</link><pubDate>Fri, 03 Apr 2026 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/llm-engineering/08-rag/</guid><description>&lt;p>RAG is the most over-deployed and under-engineered pattern in LLM applications. The 2024 demo loop — embed everything with &lt;code>text-embedding-3-large&lt;/code>, dump into pgvector, top-5 cosine — works for 1000 documents and a forgiving demo. It does not survive 100K real documents and a customer who notices when the answer is wrong. This chapter is what I wish more teams knew before they built their second generation of RAG.&lt;/p>
&lt;p>The original RAG paper (&lt;a href="https://arxiv.org/abs/2005.11401" target="_blank" rel="noopener noreferrer">Lewis et al., 2020 &lt;span aria-hidden="true" style="font-size:0.75em; opacity:0.55; margin-left:2px;">↗&lt;/span>&lt;/a>
) framed retrieval-augmented generation as a hybrid model: a dense retriever (DPR) trained jointly with a generator (BART) so the retrieval objective optimized end-task accuracy. Production RAG in 2026 doesn&amp;rsquo;t look much like Lewis&amp;rsquo;s RAG — modern systems use frozen pre-trained embedders, separate rerankers, and decoder-only generators that don&amp;rsquo;t train against the retriever. But the core insight (parameterize knowledge separately from reasoning) survived and became the dominant paradigm. The &lt;a href="https://arxiv.org/abs/2312.10997" target="_blank" rel="noopener noreferrer">Gao et al. (2023) RAG survey &lt;span aria-hidden="true" style="font-size:0.75em; opacity:0.55; margin-left:2px;">↗&lt;/span>&lt;/a>
 is the best comprehensive overview of the post-2020 evolution into &amp;ldquo;Naive RAG → Advanced RAG → Modular RAG.&amp;rdquo;&lt;/p></description></item><item><title>NLP (10): RAG and Knowledge Enhancement Systems</title><link>https://www.chenk.top/en/nlp/rag-knowledge-enhancement/</link><pubDate>Sat, 15 Nov 2025 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/nlp/rag-knowledge-enhancement/</guid><description>&lt;p>A frozen language model is a confident liar. It can&amp;rsquo;t read yesterday&amp;rsquo;s incident report, your company wiki, or the patch notes that shipped this morning, so when you ask, it confabulates an answer that is grammatically perfect but factually wrong. &lt;strong>Retrieval-Augmented Generation (RAG)&lt;/strong> breaks the deadlock by separating &lt;em>memory&lt;/em> from &lt;em>reasoning&lt;/em>: keep the LLM small and stable, and put the volatile knowledge in an external store that you can update anytime. Before generating, retrieve the relevant evidence and condition the model on it.&lt;/p></description></item><item><title>LLM Workflows and Application Architecture: Enterprise Implementation Guide</title><link>https://www.chenk.top/en/standalone/llm-workflows-architecture/</link><pubDate>Thu, 31 Jul 2025 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/llm-workflows-architecture/</guid><description>&lt;p>Most LLM tutorials end where the interesting work begins. They show you how to call a chat completion endpoint, attach a vector store, and wrap the whole thing in a Streamlit demo. None of that is wrong, but none of it is what breaks at 3 a.m. when 10,000 users hit your service at once and every other answer is a hallucination.&lt;/p>
&lt;p>This article is about everything that comes after the demo. It is opinionated on purpose: production LLM systems are mostly plain distributed systems with one non-deterministic component bolted on, and most of the engineering effort goes into containing that non-determinism. We will work through seven dimensions — application architecture, workflow patterns, the RAG-vs-fine-tune decision, deployment topology, cost, observability, and enterprise integration — keeping each one short, concrete, and grounded in the levers that actually move the needle.&lt;/p></description></item></channel></rss>