ray
1
以下轉載自 Facebook 社團 佛學與資訊 自衍法師 留言
問:
剛剛有測試,很棒!(有提示相關度)是否一查詢可以讓讀者知道,查到的資料共有幾筆?另外是否可以將相關度高的往前排,我查"請蒐尋有關正念的經文"先出現20筆(從相關度高到低),等之後按"更多",才又出現相關度100%。
答:
感謝法師測試,這是目前技術上的困難。
因為是先用 embedding 搜尋向量空間接近的,
我們其實並不知道「查到的資料共有幾筆」。
也因為這樣,最前面「向量空間最接近」的20筆,
經 AI 評分,其實並不是「相關度最高」的20筆。
我們有在考慮改善的方法,敬請期待
演揚法師
2
做的非常好耶~ 將c-beta 原有的metadata做了很好的結合,非常厲害!!! 讚~
感覺像是RAG 系統 + chatGPT api ,看起來只是簡單的功能,可是有太多技術要克服的~~
可以請教Embedder model 用的是什麼嗎?chunk 的規則?有 reranker 的機制嗎?
我相信分片後的數量絕對非~常~大!! 這些向量資料是用什麼索引系統架構的?
用什麼方法克服上下文本語意的連串性?
建議回覆的資訊可以再分成兩種不同的回應,
一種是協助一般學習者可以啟發更多興趣,或是引導學習的回饋,大概是在API 回傳生成的答案後,可以額外依照當前回答和檢索到的上下文,生成3-5個用戶可能感興趣的相關問題。
例如,我問了關於「四聖諦」的問題,系統回答後可以建議:
「您可能還想了解:苦集滅道之間的關係是什麼?」或「四聖諦在日常生活中如何應用?」,「我還找到了關於《xxx經》中對此問題的更詳細論述,您想了解嗎?」(依照 c-beta 強大的 metadata)
另一種是協助研究型的用戶,結合 c-beta 的人物、地點資料庫,將收到的分段內容再次分析後,喂給chatGPT API :
先識別核心觀點 (每個片段中關於該主題的核心論述是什麼?) →
分類 (這些論述可以分為哪些不同的角度或層次?)
(例如,關於「空性」的論述,可能涉及「人空」、「法空」、「畢竟空」等不同層次) →
比較異同 (不同經論或不同祖師對同一主題的論述有何相同之處和不同之處?) →
追溯演變(擴展連結人物、地點資料庫,建立實體關係,類似 RAG + neo4j )
(例如默照禪法在不同時期有何發展變化?)
最後要再次讚嘆這個功能,真的做的很好~
2 Likes
ray
3
- 感謝法師肯定與鼓勵。
- Embedding model 用的是 BGE-M3.
- 每個 chunk 大約 300~400字,切塊時會依序考慮:章節、段落、標點,儘量切在語意完整的地方。
- 目前從 vector db 取得資料後是丟給 LLM 評分,品質是不錯,但是速度慢,也不能一次丟給 LLM 太多筆。我們有在考慮如何在 rerank 部分加強。
整個 CBETA 切成一百多萬個 chunks,
Vector DB 用的是 Elasticsearch, 搜尋速度算快,都慢在呼叫 OpenAI API.
目前沒處理不同 chunks 之間的語意連貫性問題。
未來有考慮看知識圖譜能否幫上忙。
目前搜尋的結果 左邊「綜合說明」的右邊有一個區塊是「相關問題」,
會列出五個可能可以進一步詢問的問題,
您指的不是這個嗎?
我們有考慮知識圖譜,
以及是否能讓 AI 解讀每段佛典文字的語意、語意之間的關係,
但是個大工程,有待努力,可能不會在短期內看到成果。
感謝,歡迎隨時給我們建議、指教。
1 Like