本文用一線實戰(zhàn)筆記,帶你拆解如何用 RAG(Retrieval-Augmented Generation) 架構,在短短 2 天內完成 API 端到端優(yōu)化。所有代碼、指標、踩坑、工具都開源級別真實,可直接復刻。
| 指標 | 現(xiàn)狀 | 目標 | 挑戰(zhàn) |
|---|---|---|---|
| 相似題 Top5 命中率 | 72 % | 82 % | 題庫 50w+,實時更新 |
| 接口 P99 延遲 | 1.8 s | 600 ms | 高峰期 QPS 2k |
| 人審通過率 | 65 % | 80 % | 要求可解釋 |
?? 痛點

| 時間 | 里程碑 | 關鍵動作 | 工具 |
|---|---|---|---|
| 0-2h | 需求凍結 | 對齊指標、鎖定基線 | Notion |
| 2-10h | 數(shù)據(jù)側 | 題庫清洗、增量向量化 | OpenRefine |
| 10-22h | 模型側 | 微調 bge-large-zh-v1.5 | HuggingFace |
| 22-34h | 檢索側 | 引入混合檢索 + RRF | qdrant |
| 34-42h | 生成側 | Prompt 鏈式優(yōu)化 | LangSmith |
| 42-46h | API & 壓測 | Go + Gin + K6 | K6 Cloud) |
| 46-48h | 灰度上線 | Argo Rollouts | Argo CD |
| 字段 | 示例 | 占比 |
|---|---|---|
| 題干 | “實現(xiàn) LRU 緩存” | 100 % |
| 標簽 | 算法、中等 | 92 % |
| 代碼片段 | Python/Java | 34 % |
# openrefine_grel.py
value.replace(/[\n\r]+/,' ').strip()
清洗后噪聲 ↓ 18 %,平均長度 ↓ 12 %。
| 方法 | 召回@100 | 延遲 |
|---|---|---|
| BM25 | 0.63 | 30 ms |
| 向量 (cos) | 0.71 | 45 ms |
| 混合 (RRF k=60) | 0.78 | 50 ms |
cross-encoder/ms-marco-MiniLM-L-6-v2 給定題干:{question}
請推薦 5 道相似題,要求難度一致。
題干:{question}
相似判定規(guī)則:
1. 考察知識點重疊 ≥80%
2. 難度等級相同
輸出格式:JSON,字段[id,title,reason]
baichuan2-13b-chat | 并發(fā) | QPS | P99 延遲 | CPU | 內存 |
|---|---|---|---|---|
| 500 | 2.1 k | 520 ms | 73 % | 4.1 GB |
| 1000 | 3.8 k | 680 ms | 89 % | 5.7 GB |
| 版本 | Top5 Hit | Top1 Hit | 幻覺率 |
|---|---|---|---|
| v0 (基線) | 72 % | 45 % | 15 % |
| v1 (混合檢索) | 78 % | 52 % | 12 % |
| v2 (+精排+微調) | 84 % | 61 % | 8 % |
| 階段 | 流量 | 觀察指標 | 回滾條件 |
|---|---|---|---|
| canary | 5 % | 延遲、error rate | P99 $gt; 800 ms |
| rolling | 30 % | 命中率 | Hit $lt; 80 % |
| full | 100 % | 人審通過率 | $lt; 75 % |
在 48 小時內,我們圍繞“檢索-重排-生成”鏈路,把 ADP 面試相似題 API 的核心指標全部抬升。關鍵經(jīng)驗:
下一步: