更新與刪除:文件改了、刪了,AI 知識庫怎麼跟上
文件改了或刪了,索引不會自己跟上。比較穩的增量同步是:用內容雜湊判斷哪些文件變了,只重做變了的;刪除要清到每一個存放處,包括全文索引和向量庫。很多工具預設不處理刪除,刪除和更新也可能要過一段時間才生效。為什麼要刪乾淨:一篇預印本把一份過時文件放進上下文,兩個小模型原本答對的醫學題有三到四成被翻錯;要求模型「照文件回答」時,比例升到三分之二到四分之三。
文件改了或刪了,索引不會自己跟上。比較穩的增量同步是:用內容雜湊判斷哪些文件變了,只重做變了的;刪除要清到每一個存放處,包括全文索引和向量庫。很多工具預設不處理刪除,刪除和更新也可能要過一段時間才生效。為什麼要刪乾淨:一篇預印本把一份過時文件放進上下文,兩個小模型原本答對的醫學題有三到四成被翻錯;要求模型「照文件回答」時,比例升到三分之二到四分之三。
Ask AI 的 production 索引分兩階段:先用 source hash 增量更新 D1、post_chunks 與 FTS5,再以 embedding checkpoint 和 delete queue 讓 Vectorize 非同步追上;兩邊不是同一個 transaction。
私有語料同步的核心不是定時重抓,而是用 canonical ID 固定文件身分、用來源版本與 checksum 判斷變更、用冪等 upsert 寫入,並讓 tombstone 走完所有索引的刪除傳播。
切太大找不準,切太小失去上下文,碰到表格更是全軍覆沒。Chunking 是 RAG 最被低估的環節,策略選錯,後面再多優化都是白費。
文件切塊後,每個 chunk 失去了它在原文件中的上下文。Contextual Retrieval 在索引時,用整份文件為每個 chunk 各自生成一段上下文再前綴進去,解決 chunk 孤島問題。
RAG 系統需要資料才能回答問題,但一開始就沒有資料。冷啟動策略決定了系統從空到可用的路徑。