隨著GPT-3等大型語言模型的問世,自然語言處理(NLP)領域取得了重大突破。這些語言模型具備生成類人文本的能力,並已廣泛應用於各種場景,如聊天機器人和翻譯
#然而,當涉及到專業化和定制化的應用場景時,通用的大語言模型可能在專業知識方面會有所不足。用專業的語料庫對這些模型進行微調往往昂貴且耗時。 「檢索增強生成」(RAG)為專業化應用提供了一個新技術方案。
下面我們主要介紹RAG如何運作,並透過一個實際的例子,將產品手冊作為專業語料庫,使用GPT-3.5 Turbo來作為問答模型,驗證其有效性。
案例:開發一個聊天機器人,能夠回答與特定產品相關的問題。該企業擁有獨特的使用手冊
RAG介紹
RAG 提供了一個有效的解決方案,用於特定領域的問答。它主要透過將行業知識轉化為向量進行儲存和檢索,並將檢索結果與使用者問題結合形成提示訊息,最終利用大型模型來產生合適的答案。透過結合檢索機制和語言模型,大大增強了模型的回應能力
建立聊天機器人程式的步驟如下:
- 讀取PDF(使用者手冊PDF檔案)並使用chunk_size為1000個令牌進行令牌化。
- 建立向量(可以使用OpenAI EmbeddingsAPI來建立向量)。
- 在本機向量庫中儲存向量。我們將使用ChromaDB作為向量資料庫(向量資料庫也可以使用Pinecone或其他產品替代)。
- 使用者發出具有查詢/問題的提示。
- 根據使用者的問題從向量資料庫檢索出知識上下文資料。這個知識上下文資料將在後續步驟中與提示詞結合使用,來增強提示詞,通常被稱為上下文豐富。
- 提示詞包含使用者問題和增強的上下文知識一起傳遞給LLM
- LLM 基於此上下文進行回答。
動手開發
(1)設定Python虛擬環境 設定虛擬環境來砂箱化我們的Python,以避免任何版本或依賴衝突。執行以下命令以建立新的Python虛擬環境。
需要重写的内容是:pip安装virtualenv,python3 -m venv ./venv,source venv/bin/activate
需要進行改寫的內容是:(2)產生OpenAI金鑰
使用GPT需要一個OpenAI金鑰來進行存取
#需要進行重寫的內容是:(3)安裝依賴函式庫
安裝程式所需的各種相依性。包括以下幾個函式庫:
- lanchain:一個開發LLM應用程式的框架。
- chromaDB:這是用於持久化向量嵌入的VectorDB。
- unstructured:用於預處理Word/PDF文件。
- tiktoken: Tokenizer framework
- pypdf:讀取和處理PDF文件的框架。
- openai:存取OpenAI的框架。
pip install langchainpip install unstructuredpip install pypdfpip install tiktokenpip install chromadbpip install openai
建立一個環境變數來儲存OpenAI金鑰。
export OPENAI_API_KEY=<openai-key></openai-key>
(4)將使用手冊PDF檔案轉換為向量並將其儲存在ChromaDB中
將所有需要使用的依賴函式庫和函數匯入
import osimport openaiimport tiktokenimport chromadbfrom langchain.document_loaders import OnlinePDFLoader, UnstructuredPDFLoader, PyPDFLoaderfrom langchain.text_splitter import TokenTextSplitterfrom langchain.memory import ConversationBufferMemoryfrom langchain.embeddings.openai import OpenAIEmbeddingsfrom langchain.vectorstores import Chromafrom langchain.llms import OpenAIfrom langchain.chains import ConversationalRetrievalChain
讀取PDF,標記化文件並拆分文件。
loader = PyPDFLoader("Clarett.pdf")pdfData = loader.load()text_splitter = TokenTextSplitter(chunk_size=1000, chunk_overlap=0)splitData = text_splitter.split_documents(pdfData)
建立一個chroma集合,和一個儲存chroma資料的本機目錄。然後,建立一個向量(embeddings)並將其儲存在ChromaDB中。
collection_name = "clarett_collection"local_directory = "clarett_vect_embedding"persist_directory = os.path.join(os.getcwd(), local_directory)openai_key=os.environ.get('OPENAI_API_KEY')embeddings = OpenAIEmbeddings(openai_api_key=openai_key)vectDB = Chroma.from_documents(splitData,embeddings,collection_name=collection_name,persist_directory=persist_directory)vectDB.persist()
執行此程式碼後,您應該會看到一個已經建立好的資料夾,用於儲存向量。
在將向量嵌入儲存在ChromaDB後,可以使用LangChain中的ConversationalRetrievalChain API來啟動一個聊天歷史元件
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)chatQA = ConversationalRetrievalChain.from_llm(OpenAI(openai_api_key=openai_key, temperature=0, model_name="gpt-3.5-turbo"), vectDB.as_retriever(), memory=memory)
初始化了langchan之後,我們可以使用它來聊天/Q A。在下面的程式碼中,接受使用者輸入的問題,並在使用者輸入'done'之後,將問題傳遞給LLM,以獲得答案並列印出來。
chat_history = []qry = ""while qry != 'done':qry = input('Question: ')if qry != exit:response = chatQA({"question": qry, "chat_history": chat_history})print(response["answer"])
總之
RAG將GPT等語言模型的優點與資訊檢索的優勢結合在一起。透過利用特定的知識脈絡資訊來增強提示詞的豐富度,使得語言模型能夠產生更準確、與知識脈絡相關的答案。 RAG提供了一種比「微調」更有效率且成本效益更好的解決方案,為產業應用或企業應用提供可客製化的互動方案
以上是提升工程效率-增強檢索生成(RAG)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

利用“設備” AI的力量:建立個人聊天機器人CLI 在最近的過去,個人AI助手的概念似乎是科幻小說。 想像一下科技愛好者亞歷克斯(Alex)夢見一個聰明的本地AI同伴 - 不依賴

他們的首屆AI4MH發射於2025年4月15日舉行,著名的精神科醫生兼神經科學家湯姆·因斯爾(Tom Insel)博士曾擔任開幕式演講者。 Insel博士因其在心理健康研究和技術方面的傑出工作而聞名

恩格伯特說:“我們要確保WNBA仍然是每個人,球員,粉絲和公司合作夥伴,感到安全,重視和授權的空間。” anno

介紹 Python擅長使用編程語言,尤其是在數據科學和生成AI中。 在處理大型數據集時,有效的數據操作(存儲,管理和訪問)至關重要。 我們以前涵蓋了數字和ST

潛水之前,一個重要的警告:AI性能是非確定性的,並且特定於高度用法。簡而言之,您的里程可能會有所不同。不要將此文章(或任何其他)文章作為最後一句話 - 目的是在您自己的情況下測試這些模型

建立杰出的AI/ML投資組合:初學者和專業人士指南 創建引人注目的投資組合對於確保在人工智能(AI)和機器學習(ML)中的角色至關重要。 本指南為建立投資組合提供了建議

結果?倦怠,效率低下以及檢測和作用之間的差距擴大。這一切都不應該令任何從事網絡安全工作的人感到震驚。 不過,代理AI的承諾已成為一個潛在的轉折點。這個新課

直接影響與長期夥伴關係? 兩週前,Openai提出了強大的短期優惠,在2025年5月底之前授予美國和加拿大大學生免費訪問Chatgpt Plus。此工具包括GPT-4O,A A A A A


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)