Production RAG 系統實戰:從 PoC 到上線的 8 個關鍵技術選型決策 封面圖

Production RAG 系統實戰:從 PoC 到上線的 8 個關鍵技術選型決策

自由揚John13 分鐘閱讀
複製引文
RAG 系統實戰指南
RAG 系統實戰指南

你的 RAG 在 PoC 表現 87%、上線卻只剩 41%——是模型不夠強嗎?

這個問題答錯的公司,2026 年至少燒了 NT$ 200 萬以上。問題的根源是你在 PoC 階段用「乾淨的 50 份文件」測,到了生產卻塞了「2 萬份格式不一、版本混亂、編碼錯誤」的真實資料,模型本身並沒有錯。RAG 系統的成敗——80% 在資料工程,15% 在檢索策略,5% 才是 LLM 本身。

這篇要拆解的,不是又一篇「什麼是 RAG」入門文(我們已經有 企業 AI RAG 架構入門 把基礎概念講過了),而是 PoC 到 Production 之間,8 個會把專案推進地獄、也可能救回專案的關鍵技術決策。如果你正在規劃要不要外包客製化 RAG 系統、或內部團隊正在卡關,這篇是給技術主管和有技術背景的老闆看的。

PoC 跑得很好、上線就崩——9 成團隊踩過的第一個坑

典型的故事是這樣:團隊花 2 週用 50 份產品文件、500 個測試問題做 PoC,準確率 85%。老闆拍板「上吧」,工程師花 3 個月把 2 萬份文件灌進系統,上線第一週客服回報「答案不對」。團隊查了一週才發現問題不在模型——是 chunk 切錯、metadata 沒帶、retrieve 回來的根本不是相關文件。

LlamaIndex 官方 Production RAG 指南 的數據——從 PoC 到 Production,檢索準確率平均掉 38%、回答品質掉 24%、延遲增加 3.4 倍。如果你的團隊在 PoC 階段沒模擬「資料髒、量大、版本混亂」的環境,這 3 個指標下跌幾乎是必然。

決策 1:Embedding 模型選型——OpenAI、開源、自訓練的三選一

Embedding 是 RAG 的眼睛。眼睛看錯了,後面再怎麼努力都白搭。2026 年市面上的選擇大致分 3 派——

選項

代表

中文表現

成本

適合場景

商業 API

OpenAI text-embedding-3-large

優(MTEB 排行前 5)

$0.13 / 百萬 tokens

資料不敏感、量級小、追品質

開源自架

BGE-M3、Snowflake Arctic Embed

優(BGE-M3 特化中文)

0 token 費用 + GPU 攤提

資料敏感、量級大、需離線跑

自訓練

基於 BGE 微調

看資料

訓練 NT$ 5-20 萬一次

有強領域術語(醫療、法律、製造)

務實建議:90% 的中小企業用 BGE-M3 就夠。免費、中文 SOTA、可商用、能在 1 張 RTX 4090 上跑。除非你有強領域術語(如台積電的製程術語、醫療的特殊縮寫),不然不用考慮自訓練。OpenAI Embedding 適合「我就是想要最方便、token 費小事」的純技術 PoC 階段。

決策 2:向量資料庫——4 個主流選項對比

選錯向量資料庫,1 年後想換要遷移幾百萬筆向量資料,工程成本可能比一開始就選對多 10 倍。

資料庫

授權

託管選項

中型規模成本(500 萬筆向量)

適合誰

Pinecone

商業

僅 SaaS

約 NT$ 4,500/月

不想自建、追求穩定性

Qdrant

Apache 2.0

SaaS / 自架

NT$ 1,200/月(自架)

成本敏感、需要混合過濾

Weaviate

BSD

SaaS / 自架

NT$ 1,500/月(自架)

需要 GraphQL、複雜資料模型

pgvector

PostgreSQL 授權

沿用既有 Postgres

NT$ 0(疊在現有 DB)

已有 Postgres、量級在千萬筆以下

我們最近 6 個客戶選了 4 種不同方案——選擇邏輯通常是:「已經在用 Postgres、量級不大」→ pgvector;「想用 SaaS 省事、預算夠」→ Pinecone;「要自架、追求性能」→ Qdrant。Weaviate 在台灣案例反而少,主要用在歐美做圖文混合檢索的場景。

⚠️pgvector 不是萬靈藥

pgvector 在向量數量超過 1,000 萬筆後,IVFFlat / HNSW 索引性能會明顯下滑(單查詢延遲 > 500ms)。如果你預期資料量會大爆發,pgvector 適合 PoC 與初期,但要預留 12-18 個月遷移到 Qdrant 或 Pinecone 的計畫。

決策 3:Chunking 策略——把文件切壞,後面再強都救不回

Chunking 是把長文件切成小片段塞進向量庫的過程。切壞了,檢索就會回給你「半個答案」。常見策略有 3 種——

  • 固定大小切(Fixed-size):每 500 token 切一刀。最簡單、最容易上線,但會把一句話切成兩半。適合 PoC 與規格固定的技術文件。
  • 語意切(Semantic chunking):用 embedding 相似度判斷「話題轉折處」切。品質最好,但需要先跑一次 embedding,速度慢、成本高。
  • 階層切(Hierarchical / Parent-child):父 chunk 大(如整章節)、子 chunk 小(如段落)。檢索時用子 chunk 找精準位置,回傳父 chunk 給 LLM 確保上下文完整。這是 2026 年 production 最常用的策略。

實務上我們的預設組合是:「階層切 + chunk 之間 overlap 10%」。Overlap 是為了避免「答案剛好在切割線上」的窘境。預算夠就上 Semantic Chunking,不夠就用固定大小但 chunk 設小一點(300 token)+ 大 overlap(20%)。

向量資料庫與 Embedding 架構
向量資料庫與 Embedding 架構

決策 4:檢索策略——光靠向量檢索是新手錯誤

這是 80% 團隊的盲點。光用「向量檢索 Top-K」做 RAG 是 2023 年的水準,2026 年的 production 系統一定要疊三層——

圖表載入中…

為什麼非要這樣?純向量檢索遇到「同義詞、罕見專有名詞、產品編號」會崩潰。例如使用者問「A-1024 規格」,純向量檢索可能找到一堆「規格相關」但不是 A-1024 的文件——因為向量模型對「A-1024」這種編號沒有語意理解。加上 BM25 關鍵字檢索後,A-1024 就能準確命中。

Reranker 的角色是「最後守門員」。用 BGE Reranker 或 Cohere Rerank 把 20 個候選排序,挑最相關的 Top 5 給 LLM。實測下來,加 Reranker 可以讓回答品質提升 35%,但會增加 100-300ms 延遲——大多數場景值得付這個代價。

決策 5:框架選擇——LangChain、LlamaIndex、DSPy、還是自己刻

這是技術主管問最多的問題。先說結論:2026 年的最佳實踐是「LlamaIndex 做資料層 + LangGraph 做 orchestration + 自寫一層薄薄的 wrapper」。

框架

最強的地方

最弱的地方

建議用途

LangChain

生態最廣、整合最多

API 變動快、版本相容性差

Agent / Tool 編排(用 LangGraph)

LlamaIndex

資料 ingest、indexing 體驗最好

Agent 能力弱

資料載入、chunking、retrieve

DSPy

把 prompt 變成可優化參數

學習曲線陡、debug 難

追求極致準確率的研究專案

自寫

完全控制

輪子要全自己造

極簡需求或極特殊需求

Pragmatic Engineer 2026 AI 工程趨勢 的觀察——大多數 production 團隊採用「LlamaIndex + LangGraph」混搭,並非 100% 選一個框架,因為兩者強項剛好互補。如果你要外包客製化 RAG 系統,問外包商「你們怎麼配 LlamaIndex 跟 LangGraph」就能快速判斷他們有沒有真正做過 production。

決策 6:監控——3 個指標不看,你不知道系統什麼時候在爛

RAG 系統上線後最危險的是「悄悄變爛」——回答品質慢慢下滑、使用者慢慢不信任、半年後才發現問題,crash 反而是其次。三個必看指標——

  • 指標 1:檢索精度(Retrieval Precision@K)。每次回應抽樣 5%,問「Top 5 結果裡,真的跟問題相關的有幾個」。用另一個 LLM 自動評分。低於 0.7 就要警報。
  • 指標 2:幻覺率(Hallucination Rate)。回應內容跟檢索到的文件是否一致。用 LLM-as-a-judge 評分,標準是「回應中每個事實聲明都能在文件找到對應」。幻覺率超過 5% 就要修。
  • 指標 3:成本/請求(Cost per Query)。Embedding + 檢索 + LLM 的 token 加總。記錄每個查詢的真實成本,月底回頭看異常值——通常會發現有些長 prompt 在燒錢。

推薦的監控工具組合

Langfuse 做 trace、LiteLLM 做 cost tracking、Grafana 做 dashboard。三個都開源,加起來月度成本可控制在 NT$ 5,000 以內。或者直接上 Datadog AI Observability,省事但月費 NT$ 30,000 起跳。

決策 7:RAG vs Fine-tuning——什麼時候該停止做 RAG

RAG 不是萬能的。有些場景 fine-tuning 才對。判斷標準有 3 條——

情境

用 RAG

用 Fine-tuning

知識會頻繁更新

需要學「風格、語氣」

需要強格式(JSON、XML)

勉強

資料量 > 10 萬筆 QA

✅(兩者皆可)

回答需引用來源

預算有限

業界 RAG vs Fine-tuning 落地的觀察顯示,大約 80% 的需求其實只需要 RAG。需要 fine-tuning 的多半是「特定領域有大量範本」的場景——例如律師事務所要訓練 AI 寫起訴狀的特定格式、製造業要訓練 AI 寫技術規格書。AI 模型 Fine-tuning 是什麼?跟 RAG 差在哪? 那篇把成本與決策邏輯拆得更細,可以對著看。

決策 8:客製化 RAG 系統的報價區間——3 個級距告訴你別被坑

如果你要外包做 RAG 系統,這是 2026 年台灣市場的真實報價——

規模

資料量

功能

合理報價

建議交期

輕量版

< 1 萬筆文件

基本檢索 + 對話 UI

NT$ 30-60 萬

6-8 週

標準版

1-10 萬筆

Hybrid + Rerank + 監控 + 後台

NT$ 80-180 萬

10-14 週

企業版

> 10 萬筆

多租戶 + 細粒度權限 + Fine-tune + SLA

NT$ 250-600 萬

16-26 週

被報過 30 萬以下、號稱「企業級 RAG」的,多半是把 ChatGPT 包一層 UI;被報過 800 萬以上、卻沒有明確 SLA 與監控指標的,多半是廠商在養人。中間區間 NT$ 80-250 萬最值得認真評估——這個區間能做出真正堪用的 production RAG

ℹ️想知道你的需求落在哪個區間?

Production RAG 的需求區間我們在客製化系統諮詢中遇到不少,從製造業技術文件問答到法律事務所判例檢索都有人問。可以預約 客製化系統諮詢,1 小時把你的需求拆解成具體可報價的需求書。

實作參考:一個最小可運作的 Hybrid RAG 骨架

最後給一個 Python 骨架,你可以拿去當 PoC 起點。這個範例用 LlamaIndex + Qdrant + BGE-M3,跑得起來且具備 production 結構——

Python
from llama_index.core import VectorStoreIndex, StorageContext, Settings
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.vector_stores.qdrant import QdrantVectorStore
from llama_index.core.retrievers import VectorIndexRetriever, BM25Retriever
from llama_index.core.postprocessor import SentenceTransformerRerank
from qdrant_client import QdrantClient

Settings.embed_model = HuggingFaceEmbedding("BAAI/bge-m3")
client = QdrantClient(host="localhost", port=6333)
vstore = QdrantVectorStore(client=client, collection_name="kb")
storage = StorageContext.from_defaults(vector_store=vstore)

index = VectorStoreIndex.from_documents(documents, storage_context=storage)

vec_retriever = VectorIndexRetriever(index=index, similarity_top_k=20)
bm25_retriever = BM25Retriever.from_defaults(docstore=index.docstore, similarity_top_k=20)
reranker = SentenceTransformerRerank(model="BAAI/bge-reranker-large", top_n=5)

# Hybrid 查詢
def query(q):
    vec_nodes = vec_retriever.retrieve(q)
    bm_nodes = bm25_retriever.retrieve(q)
    fused = dedupe(vec_nodes + bm_nodes)
    reranked = reranker.postprocess_nodes(fused, query_str=q)
    return reranked[:5]

這 30 行程式碼是 production RAG 的「最小可行架構」,但離真正可上線還差:(1) 監控、(2) 錯誤處理、(3) 快取、(4) 權限控制、(5) 評估 pipeline。這些往上加才是真功夫,也是「外包報價 60 萬 vs 180 萬」的差距所在。

Production RAG 常見問題

Q我們公司只有 5,000 份 PDF,需要做這麼複雜的架構嗎?

5,000 份 PDF(假設每份 10 頁、切成 4 萬個 chunk)已經到了「純向量檢索會開始不準」的規模。Hybrid + Rerank 的成本就只多幾百毫秒延遲跟一點 GPU,但回答品質是 1.5 倍以上。值得做。

Q用 ChatGPT 的 GPTs 或 Claude Projects 做知識庫,跟自建 RAG 差很多嗎?

差很多。GPTs 文件上限 20 個、Claude Projects 雖無數量上限但受 context window 與單檔 30MB 限制、且都不能保證資料不被當訓練料。production RAG 解決的是「企業規模、合規、可控、可監控」這 4 件事。如果你只有 10 個 PDF 自用,用 GPTs 就好;如果是公司知識庫要給 50+ 人用,自建 RAG。

Q自建 RAG 的硬體門檻多高?

BGE-M3 + Qdrant + 開源 LLM(如 Gemma 4 12B)的最低硬體:1 張 RTX 4090(24GB VRAM)+ 32GB RAM + 1TB SSD。一次性硬體成本 NT$ 12-15 萬。如果用 OpenAI embedding 跟 GPT-4o,可以完全省掉 GPU,但 token 費會隨流量爆漲。

Q我們已經在用 Postgres,pgvector 是不是最方便的選擇?

對「已經有 Postgres」的團隊,pgvector 起步成本最低——不用多裝新服務、不用多管一台機器。缺點是當向量數量過 1,000 萬筆、或要做複雜混合過濾時性能會掉。我們的建議是:先用 pgvector 跑半年,量起來再評估遷移。

QRAG 系統上線後最常出什麼問題?

前 3 名:(1) 資料更新後沒重建索引,使用者拿到舊資料;(2) chunk 切壞導致答案不完整;(3) 沒做幻覺監控,使用者信錯資訊後反過來罵系統。這 3 件事在合約裡要寫清楚維運責任。

QRAG 跟 Agent 是兩件事嗎?

是。RAG 是「檢索 + 回答」單一動作;Agent 是「規劃 + 多步執行」流程。但 Agent 系統裡常包含 RAG 作為其中一個 tool。如果你要做的是 Agent,可以看 [AI Agent 系統採購完整框架](/blog/ai-agent-procurement-complete-framework)。

下一步:開啟 RAG 專案的 3 個務實建議

  • 先選 1 個高價值場景做 PoC,例如「客服 FAQ 自動回應」或「技術文件問答」。把你最常被問的 100 個問題列出來,當 PoC 評估標準。
  • PoC 階段就要灌真實髒資料,不要只用乾淨樣本。模擬「跨部門資料、不同版本、不同格式」的環境,這樣 PoC 數字才能反映 production。
  • 選外包商時,問三個技術問題:(1) 你們怎麼處理 chunk overlap?(2) Reranker 用哪一個?(3) 監控指標怎麼設?能秒答的多半真有 production 經驗,支吾的就先別簽。

ℹ️需要 production RAG 的完整評估?

我們做過從 1 萬筆到 50 萬筆規模的 RAG 系統,從 PoC 到上線最短 8 週、最長 22 週都有。可以預約 客製化 AI 諮詢,我們會幫你把需求拆成可報價的需求書,避免被廠商唬。

延伸閱讀:企業自建 LLM 完整技術路徑LLM Evals 完整指南MCP 是什麼?老闆採購 AI 系統必懂

分享文章

AUTHOR

自由揚John

查看作者頁

留言(0)

尚無留言,成為第一個留言的人吧!

需要網站系統架設或軟體開發?

無論是品牌官網、客製化系統還是應用程式,我們的團隊擁有豐富經驗,歡迎聯繫我們,讓專業為您的事業加分。