#02 向量化與檢索

Tech ChromaDB, sentence-transformers, BAAI/bge-small-zh-v1.5 AI Claude Code

源起

分片做完了,接下來要把文字轉成向量、存進向量資料庫、實現語義檢索。

設計

Embedding 模型選 BAAI/bge-small-zh-v1.5:專為中文優化、100MB 大小、512 維向量、CPU 就能跑。和通用英文模型比,中文專業術語的相似度分數差距明顯(0.58 vs 0.32)。

向量資料庫選 ChromaDB:API 簡單、內建持久化、Python 原生、適合中小型應用。360 個分片的規模不需要 Pinecone 或 Milvus 那種等級的東西。

實現

ChromaDB 不吃中文 collection 名稱。 只接受 [a-zA-Z0-9._-]{3,63},招標文件的中文檔名直接報錯。改用 UUID 當 collection name,原始名稱存在 metadata 和 vectordb_info.txt

Metadata 不能有 None。 有些 chunk 的 heading 或 page_number 是 None,ChromaDB 直接拒絕。插入前過濾掉 None 值。

360 個分片批次向量化約 12 秒,查詢回應約 1 秒。資料庫持久化在 vectordb/ 目錄,重啟不用重跑。

尾聲

項目結果
向量化耗時~12 秒(360 chunks)
查詢耗時~1 秒
向量維度512
資料庫大小~5 MB
記憶體~1.5 GB(含模型)

檢索效果不錯——問「系統架構」能準確找到架構相關的章節,相似度 0.67 左右。


返回 專案首頁