面向開發(fā)者的LLM入門教程-其他類型的檢索: 其他類型的檢索 值得注意的是,vetordb 并不是唯一一種檢索文檔的工具。 LangChain 還提供了其他檢索文檔的方式,例如: TF-……
哈嘍!伙伴們,我是小智,你們的AI向?qū)Аg迎來到每日的AI學(xué)習(xí)時間。今天,我們將一起深入AI的奇妙世界,探索“面向開發(fā)者的LLM入門教程-其他類型的檢索”,并學(xué)會本篇文章中所講的全部知識點。還是那句話“不必遠(yuǎn)征未知,只需喚醒你的潛能!”跟著小智的步伐,我們終將學(xué)有所成,學(xué)以致用,并發(fā)現(xiàn)自身的更多可能性。話不多說,現(xiàn)在就讓我們開始這場激發(fā)潛能的AI學(xué)習(xí)之旅吧。
面向開發(fā)者的LLM入門教程-其他類型的檢索:
其他類型的檢索
值得注意的是,vetordb 并不是唯一一種檢索文檔的工具。 LangChain 還提供了其他檢索文檔的方式,例如: TF-IDF 或 SVM 。
from langchain.retrievers import SVMRetriever
from langchain.retrievers import TFIDFRetriever
from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter# 加載PDF
loader_chinese = PyPDFLoader(“docs/matplotlib/第一回:Matplotlib初相識.pdf”)
pages_chinese = loader_chinese.load()
all_page_text_chinese = [p.page_content for p in pages_chinese]
joined_page_text_chinese = ” “.join(all_page_text_chinese)# 分割文本
text_splitter_chinese = RecursiveCharacterTextSplitter(chunk_size =
1500,chunk_overlap = 150)
splits_chinese = text_splitter_chinese.split_text(joined_page_text_chinese)# 檢索
svm_retriever = SVMRetriever.from_texts(splits_chinese, embedding)
tfidf_retriever = TFIDFRetriever.from_texts(splits_chinese)
這里我們定義了 SVMRetriever ,和 TFIDFRetriever 兩個檢索器,接下來我們分別測試 TF-IDF 檢索以及SVM 檢索的效果:
question_chinese = “這門課的主要主題是什么?”
docs_svm_chinese = svm_retriever.get_relevant_documents(question_chinese)
print(docs_svm_chinese[0])
page_content=’fig, ax = plt.subplots() n# step4 繪制圖像, 這?模塊的擴展參考第?章
進?步學(xué)習(xí)nax.plot(x, y, label=’linear’) n# step5 添加標(biāo)簽,?字和圖例,這?模塊的
擴展參考第四章進?步學(xué)習(xí)nax.set_xlabel(‘x label’) nax.set_ylabel(‘y label’)
nax.set_title(“Simple Plot”) nax.legend() ;n思考題n請思考兩種繪圖模式的優(yōu)缺點和各
?適合的使?場景n在第五節(jié)繪圖模板中我們是以 OO 模式作為例?展示的,請思考并寫?個 pyplot 繪圖
模式的簡單模板’ metadata={}
可以看出,SVM 檢索的效果要差于 VectorDB。
question_chinese = “Matplotlib是什么?”
docs_tfidf_chinese = tfidf_retriever.get_relevant_documents(question_chinese)
print(docs_tfidf_chinese[0])
page_content=’fig, ax = plt.subplots() n# step4 繪制圖像, 這?模塊的擴展參考第?章
進?步學(xué)習(xí)nax.plot(x, y, label=’linear’) n# step5 添加標(biāo)簽,?字和圖例,這?模塊的
擴展參考第四章進?步學(xué)習(xí)nax.set_xlabel(‘x label’) nax.set_ylabel(‘y label’)
nax.set_title(“Simple Plot”) nax.legend() ;n思考題n請思考兩種繪圖模式的優(yōu)缺點和各
?適合的使?場景n在第五節(jié)繪圖模板中我們是以 OO 模式作為例?展示的,請思考并寫?個 pyplot 繪圖
模式的簡單模板’ metadata={}
同樣,TF-IDF 檢索的效果也不盡如人意。
總結(jié)
今天的課程涵蓋了向量檢索的多項新技術(shù),讓我們快速回顧關(guān)鍵要點:
1. MMR 算法可以實現(xiàn)兼具相關(guān)性與多樣性的檢索結(jié)果,避免信息冗余。
2. 定義元數(shù)據(jù)字段可以進行針對性過濾,提升匹配準(zhǔn)確率。
3. SelfQueryRetriever 模塊通過語言模型自動分析語句,提取查詢字符串與過濾條件,無需手動設(shè)置,使檢索更智能。
4. ContextualCompressionRetriever 實現(xiàn)壓縮檢索,僅返回與問題相關(guān)的文檔片段,可以大幅提升效率并節(jié)省計算資源。
5. 除向量檢索外,還簡要介紹了基于 SVM 和 TF-IDF 的檢索方法。
這些技術(shù)為我們構(gòu)建可交互的語義搜索模塊提供了重要支持。熟練掌握各檢索算法的適用場景,將大大增強問答系統(tǒng)的智能水平。希望本節(jié)的教程能夠?qū)Υ蠹矣兴鶐椭?
嘿,伙伴們,今天我們的AI探索之旅已經(jīng)圓滿結(jié)束。關(guān)于“面向開發(fā)者的LLM入門教程-其他類型的檢索”的內(nèi)容已經(jīng)分享給大家了。感謝你們的陪伴,希望這次旅程讓你對AI能夠更了解、更喜歡。謹(jǐn)記,精準(zhǔn)提問是解鎖AI潛能的鑰匙哦!如果有小伙伴想要了解學(xué)習(xí)更多的AI知識,請關(guān)注我們的官網(wǎng)“AI智研社”,保證讓你收獲滿滿呦!

微信掃一掃
支付寶掃一掃