在我們將原始文件透過 Embedding Model 匯入 Qdrant 後,就算是將原始文件的前置作業完成啦!
原始文件在 Qdrant 如下圖所示,下圖為 Qdrant 提供的 Dashboard,包含了資料(document)與 Metadata(theme):
現在我們要做的是依照使用者的問題,在 Qdrant 中進行相似檢索,這個檢索的結果就會被提供給 LLM 進行參考後生成回覆。
檢索效果的好壞會大大影響 LLM 生成的效果,正如同俗話說:「Garbage in, garbage out.」如果提供不好的檢索結果給 LLM,那麼再聰明的 LLM 都無法給我們理想的回覆呦~
在我們設置 Qdrant 時,就有設置是透過餘弦相似度(Cosine)來進行向量的比較,下圖也是 Qdrant 提供的 Dashboard,在上面有提供 INFO 可以看到該 Collection 所選擇的 size 與 distance:
接下來,我們就來進行檢索吧~
user_question = "請問什麼是量子計算?"
model_name = 'intfloat_multilingual-e5-large'
qdrant_client.set_model(model_name, cache_dir="./.cache")
result = qdrant_client.query(
collection_name="{collection_name}",
query_text=user_question,
limit=3
)
首先,我們輸入一個使用者問題(user_question):「請問什麼是量子計算?」
接著,我們就可以在 Qdrant,透過 qdrant_client.query 的方式進行檢索,就可以得到檢索結果(result):
我們將上述的檢索結果(result)進行整理後,如下所示:
Top-k:1
theme:量子計算
document:
量子計算是一種利用量子力學原理進行計算的新型計算技術。與傳統計算機使用二進制比特不同,量子計算機使用量子比特(qubits),能夠在同時處於 0 和 1 的疊加狀態。這使得量子計算在某些問題上具有比經典計算更強大的計算能力,如因數分解和模擬分子結構。
--------------------------
Top-k:2
theme:量子通信
document:
量子通信是一種利用量子糾纏效應進行信息傳輸的技術,具有極高的安全性。量子密鑰分配是量子通信的一個重要應用,可以實現無法被破解的加密通信。隨著量子通信技術的發展,它有望應用於國防、金融和高安全需求的領域。
--------------------------
Top-k:3
theme:人工智慧與深度學習
document:
深度學習是一種模仿人腦神經網絡結構的人工智慧技術,已經在圖像識別、語音識別和自然語言處理等領域取得了顯著進展。通過訓練大規模數據集,深度學習算法可以自動學習特徵,並在不需要人工干預的情況下進行準確的預測或分類。
該檢索結果為針對輸入的使用者問題(user_question)進行向量化後檢索的結果,因為我們 Top-k 設為 3 的原因,所以檢索結果為依照相似性的分數排序後的前三名。
可以從檢索結果中看到,由於我們在輸入使用者問題(user_question)時,詢問了關於量子計算的問題,因此在檢索時第一筆就找到了關於量子計算的資料,而第二筆也跟量子有關,這樣就代表針對問題的檢索是成功的!
現在我們檢索成功後,就要將結果提供給 LLM 進行回覆的生成啦!
那麼我們明天見囉~