你的保險(xiǎn)產(chǎn)品知識(shí)庫(kù)剛上線三天,客戶搜索“重疾險(xiǎn)等待期理賠規(guī)則”,返回的卻是產(chǎn)品費(fèi)率表——這不是個(gè)例。大模型搜索的失敗,90% 始于檢索階段就沒(méi)把正確的內(nèi)容喂給模型。當(dāng)用戶用自然語(yǔ)言提問(wèn),而系統(tǒng)仍用十年前的關(guān)鍵詞匹配思路去理解意圖時(shí),搜索管道就成了整個(gè)應(yīng)用的短板。

一、大模型搜索為什么會(huì)“翻車(chē)”

大模型搜索(通常指基于 RAG 的搜索增強(qiáng)生成)依賴三個(gè)串聯(lián)步驟:將用戶查詢轉(zhuǎn)換為向量在知識(shí)庫(kù)中檢索相關(guān)文檔片段,再將片段與問(wèn)題一起填入提示詞,最后由大模型生成答案。每一步都可能引入偏差。

查詢向量化時(shí),嵌入模型會(huì)把“怎么退?!焙汀巴吮A鞒獭庇成涞綆缀跸嗤南蛄?,卻很難區(qū)分“退保損失計(jì)算”和“退保后重新投保的規(guī)則”——意圖上的細(xì)微差異會(huì)在余弦相似度下被抹平。文檔切片方面,如果一份保單條款被按 512 個(gè) token 硬切,很可能把“等待期”的定義和“等待期內(nèi)出險(xiǎn)的處理”切進(jìn)兩個(gè)不同片段,導(dǎo)致任何一個(gè)片段都難以獨(dú)立回答問(wèn)題。檢索策略方面,單一向量檢索擅長(zhǎng)捕捉語(yǔ)義相關(guān),但會(huì)漏掉精確的關(guān)鍵詞匹配,比如工單編號(hào)“TK-2309-001”,同時(shí)也不擅長(zhǎng)處理長(zhǎng)尾冷門(mén)概念。最后,生成模型無(wú)法判斷檢索到的片段時(shí)效性或權(quán)威性,它會(huì)如實(shí)將“2021 年的理賠政策”作為當(dāng)前規(guī)則闡述,因?yàn)樗豢吹侥阄菇o它的上下文。

這些問(wèn)題的本質(zhì)是:大模型搜索不僅是一個(gè)生成任務(wù),更是一個(gè)信息檢索任務(wù),而檢索質(zhì)量決定生成的天花板。優(yōu)化必須從搜索管道入手,而不是反復(fù)微調(diào)模型。

二、四步構(gòu)建可優(yōu)化的搜索管道

將搜索管道拆成查詢理解、混合檢索、重排序、生成控制四個(gè)環(huán)節(jié),每個(gè)環(huán)節(jié)獨(dú)立優(yōu)化,成本可控,效果可度量。

1. 查詢理解:讓系統(tǒng)讀懂用戶的“潛臺(tái)詞”

在向量化之前,先對(duì)原始查詢做一次改寫(xiě)或擴(kuò)展。你可以利用輕量的大模型完成三件事:意圖分類(lèi)、實(shí)體抽取、查詢擴(kuò)展。

示例提示詞如下:

你是一個(gè)查詢改寫(xiě)助手。給定用戶問(wèn)題,請(qǐng)輸出一個(gè) JSON,包含三個(gè)字段:
- intent: 用戶意圖類(lèi)別(如“理賠流程咨詢”“產(chǎn)品對(duì)比”“政策時(shí)效查詢”)
- entities: 列表,提取出的關(guān)鍵實(shí)體(產(chǎn)品名稱、條款編號(hào)、時(shí)間等)
- rewritten: 改寫(xiě)后的查詢語(yǔ)句,消除歧義,明確所指,包含必要上下文。

用戶問(wèn)題:重癥險(xiǎn)理賠麻煩嗎

改寫(xiě)后的查詢會(huì)變成“重疾險(xiǎn)的理賠流程需要哪些材料,通常處理周期多長(zhǎng)”,這不僅擴(kuò)充了語(yǔ)義,還將模糊的“麻煩”轉(zhuǎn)化為可檢索的具體要求。如果系統(tǒng)識(shí)別出意圖是“理賠流程咨詢”,還可以在后續(xù)檢索時(shí)自動(dòng)加權(quán)流程類(lèi)文檔。

2. 混合檢索:讓稀疏與稠密互補(bǔ)

純向量檢索(dense retrieval)容易丟失精確匹配,純 BM25(sparse retrieval)無(wú)法理解“理賠不難”與“理賠體驗(yàn)良好”的語(yǔ)義等價(jià)。混合檢索結(jié)合二者,再通過(guò)融合排序取長(zhǎng)補(bǔ)短。

如果你使用 Elasticsearch 8.x,可以同時(shí)建立 dense_vector 字段和 text 字段,在一次查詢中并行執(zhí)行:

{
  "query": {
    "bool": {
      "should": [
        { "match": { "content": "重疾險(xiǎn)理賠流程" } },
        {
          "script_score": {
            "query": { "match_all": {} },
            "script": {
              "source": "cosineSimilarity(params.query_vector, 'content_vector') + 1.0",
              "params": { "query_vector": [0.12, -0.34, ...] }
            }
          }
        }
      ]
    }
  }
}

上述例子使用布爾查詢將 BM25 分?jǐn)?shù)與向量相似度線性疊加。更穩(wěn)健的做法是使用倒數(shù)排名融合(Reciprocal Rank Fusion,RRF),它對(duì)不同檢索來(lái)源的排名進(jìn)行歸一化合并,無(wú)需手動(dòng)調(diào)權(quán)。在 Elasticsearch 中可直接指定 RRF 參數(shù),無(wú)需改造 DSL。

3. 重排序:用精排模型做最后一公里過(guò)濾

混合檢索返回的前 50 條文檔,還需要一個(gè)更精準(zhǔn)的模型進(jìn)行“精排”。Cross-encoder(如 Cohere Rerank、BGE-Reranker)會(huì)把查詢和文檔成對(duì)輸入,輸出相關(guān)性分?jǐn)?shù),遠(yuǎn)比雙塔向量的余弦相似度更準(zhǔn)確。

實(shí)施時(shí),你只需將粗召的前 N 條(如 50 條)送入重排序模型,截取前 K 條(如 5 條)送入大模型。這 5 條將作為生成答案的上下文。關(guān)鍵約束:重排序模型調(diào)用次數(shù)與粗召數(shù)量線性相關(guān),N 不宜過(guò)大,否則延遲會(huì)顯著上升。

4. 生成控制:強(qiáng)制基于證據(jù)輸出

即使檢索到完全正確的片段,大模型仍可能在生成時(shí)“自由發(fā)揮”。你需要通過(guò)提示詞工程和參數(shù)設(shè)定壓縮幻覺(jué)空間。明確要求模型“只根據(jù)下方提供的文檔片段作答,如果未找到答案請(qǐng)直接說(shuō)明‘未找到’,不要編造”。同時(shí),要求模型在答案中引用文檔編號(hào)或片段號(hào),這不僅能抑制幻覺(jué),還為后續(xù)的自動(dòng)化評(píng)估提供依據(jù)。

一個(gè)可用的系統(tǒng)提示詞模板:

你是一個(gè)客服助手。請(qǐng)嚴(yán)格依據(jù)以下參考文檔回答問(wèn)題。
如果問(wèn)題超出文檔范圍,回答“根據(jù)現(xiàn)有資料,我暫時(shí)無(wú)法回答這個(gè)問(wèn)題”。
回答時(shí)請(qǐng)務(wù)必在句末標(biāo)注文檔編號(hào),如[1]。

參考文檔:
[1] 重疾險(xiǎn)等待期通常為90天或180天……
[2] 等待期內(nèi)因意外傷害出險(xiǎn),正常賠付……

三、落地中易踩的坑與應(yīng)對(duì)

別一開(kāi)始就追求“全知全能”的搜索。先采集線上真實(shí)查詢?nèi)罩?,找?Top 20 的高頻失敗查詢,從這些失敗案例反推管道中的薄弱點(diǎn)。常見(jiàn)陷阱如下:

  • 切片策略與業(yè)務(wù)脫節(jié):按固定 token 切分會(huì)割裂實(shí)體關(guān)系。建議對(duì)結(jié)構(gòu)化文檔(如條款)以段落或章節(jié)為最小單位,同時(shí)保留每個(gè)片段所屬的文檔標(biāo)題和層級(jí)信息,讓生成模型知道這段文字來(lái)自“第三章 責(zé)任免除”而非“前言”。
  • 忽視搜索時(shí)效性:知識(shí)庫(kù)中存在多個(gè)版本的文檔時(shí),檢索可能同時(shí)召回新舊政策。在元數(shù)據(jù)中明確標(biāo)記生效日期和廢止?fàn)顟B(tài),搜索時(shí)對(duì)未廢止文檔加權(quán),并在提示詞中注入“當(dāng)前生效日期為 2025 年 10 月 27 日”這樣的時(shí)間錨點(diǎn)。
  • 把評(píng)估留到上線后:搜索質(zhì)量的離線評(píng)估不能只看 NDCG,必須建立一套面向生成結(jié)果的自動(dòng)評(píng)測(cè)。至少覆蓋三個(gè)指標(biāo):回答忠實(shí)度(答案是否嚴(yán)格基于檢索到的文檔)、答案相關(guān)性(是否解決用戶問(wèn)題)和檢索命中率(相關(guān)文檔是否被成功召回)。可使用 Ragas、DeepEval 等框架將評(píng)估管道化。
  • 延遲與效果的失衡:增加查詢改寫(xiě)、混合檢索和重排序都會(huì)拉長(zhǎng)首字輸出前的時(shí)間。將改寫(xiě)和重排序部署為異步微服務(wù),設(shè)定超時(shí)熔斷(如重排序超過(guò) 400ms 直接跳過(guò)),避免因一個(gè)環(huán)節(jié)過(guò)載導(dǎo)致整個(gè)搜索超時(shí)。

行動(dòng)建議是清晰的:先用最簡(jiǎn)化的向量召回 + 大模型回答搭建基線版本,收集一周真實(shí)查詢和對(duì)應(yīng)滿意度標(biāo)簽;然后從查詢改寫(xiě)和混合檢索兩項(xiàng)入手,每次只變動(dòng)一個(gè)環(huán)節(jié),用在線 A/B 測(cè)試驗(yàn)證指標(biāo)提升;最后引入重排序和嚴(yán)格的生成控制,迭代到你設(shè)定的目標(biāo)精度。大模型搜索優(yōu)化不是一個(gè)模型參數(shù)問(wèn)題,而是一條需要持續(xù)打磨的數(shù)據(jù)管道——把正確的信息,在正確的時(shí)間,放進(jìn)正確的上下文,答案自然就對(duì)了。

← 上一篇 你的頁(yè)面排名第一,但AI回答里引用的卻是競(jìng)品的內(nèi)容——AEO優(yōu)化到底在解決什么 下一篇 → 你的AI優(yōu)化內(nèi)容為何沒(méi)有帶來(lái)流量?問(wèn)題出在協(xié)作方式