寫在前面
"這份 200 頁的技術(shù)文檔,能幫我總結(jié)一下核心內(nèi)容嗎?" "剛收到客戶 100 頁的需求文檔,有辦法快速理解嗎?" "團隊的知識庫太龐大了,想問個問題都要翻半天..."
是不是經(jīng)常會遇到這樣的困擾?今天,我們將利用下面兩個技術(shù)為自己定制一個本地的 ChatFile 的 AI 問答系統(tǒng):
1. Google 最新開源的生成式 AI 模型:Gemma 2
2. 檢索增強生成技術(shù): RAG (Retrieval - Augmented Generation)
Gen AI 技術(shù)發(fā)展
LLM 技術(shù)生態(tài)全景
Google 生成式 AI
Google 在 AI 領(lǐng)域采取了雙軌制戰(zhàn)略:
閉源商業(yè)模型
Gemini 系列 (1.0/1.5 Flash/1.5 Pro/2.0 等) - 語言文本模型/多模態(tài)模型
Imagen 系列 - 文生圖模型
Embedding Models - 文本 embedding/多模態(tài) embedding
開放模型
Gemma 系列 (Gemma 1|2, Code Gemma, Pali Gemma 等)
Gemma 是 Google 的一系列輕量級開放模型,繼承了 Gemini 的核心技術(shù)。其中 Gemma 2 是截止目前最新的模型版本。
Gemma 2 提供了三個不同規(guī)模的版本:
2B 參數(shù)版本:適合邊緣計算場景
9B 參數(shù)版本: 平衡性能和資源需求
27B 參數(shù)版本:提供最佳性能
快速了解 RAG
△ Comparison between the three paradigms of RAG
(來源: https://arxiv.org/abs/2312.10997v5)
RAG 通過幾個主要步驟來幫助增強生成式 AI 輸出:
檢索和預(yù)處理: RAG 利用強大的搜索算法查詢外部數(shù)據(jù),例如網(wǎng)頁、知識庫和數(shù)據(jù)庫。檢索完畢后,相關(guān)信息會進行預(yù)處理,包括標記化、詞干提取和停用詞移除。
生成: 經(jīng)過預(yù)處理的檢索到的信息接著會無縫整合到預(yù)訓(xùn)練的 LLM 中。此整合增強了 LLM 的上下文,使其能夠更全面地理解主題。這種增強的上下文使 LLM 能夠生成更精確、更翔實且更具吸引力的回答。
RAG 的運行方式是:首先, 使用 LLM 生成的查詢從數(shù)據(jù)庫中檢索相關(guān)信息。然后, 將這種檢索到的信息整合到 LLM 的查詢輸入中,使其能夠生成更準確且與上下文更相關(guān)的文本
實戰(zhàn)從 0-1 構(gòu)建智能文檔助手
在本教程中,我們將帶您了解如何設(shè)置和使用一個命令行工具,通過它您可以使用最先進的語言模型 Gemma 2 與您的 PDF 文件進行對話交互。
公開源代碼
https://github.com/Julian-Cao/chat-file-with-gemma.git
項目概述
我們將構(gòu)建一個 Python 的命令行應(yīng)用程序,實現(xiàn):
1. PDF 文本提取
2. 文本向量化
3. 智能問答生成
系統(tǒng)模塊
文檔解析處理器 (Parser Chunks)
使用 PyMuPDF 處理 PDF 等辦公文件
實現(xiàn)文本分塊和預(yù)處理
向量化處理 (Embedding Model)
使用 text-multilingual-embedding-002 模型
將文本轉(zhuǎn)換為高維向量表示
向量數(shù)據(jù)庫 (Vector Database)
實現(xiàn)基于本地文件的向量存儲
支持高效的相似度檢索
生成式 AI 模型 (Gen AI Model)
通過 Groq 直接使用 Gemma 2
處理自然語言理解和生成
對話記憶管理 (Chat Memory)
基于本地文件系統(tǒng)
維護上下文連貫性
前置條件
在開始之前,請確保您已準備:
1. Python 3.7 或更高版本
2. 系統(tǒng)已安裝 Git
3. 用于 Vertex AI 的 Google Cloud 賬號
4. 申請用于訪問 Gemma 2 的 Groq API 密鑰
5. 安裝 Python Typer 庫命令行應(yīng)用程序構(gòu)建工具
步驟 1: 環(huán)境設(shè)置
首先,讓我們克隆代碼倉庫并設(shè)置環(huán)境:
# Clone the repository git clone https://github.com/Julian-Cao/chat-file-with-gemma.git cd chat-file-with-gemma # Create and activate a virtual environment python -m venv venv source venv/bin/activate # On Windows, use `venvScriptsactivate` # Install the required dependencies pipinstall-rrequirements.txt
步驟 2: 配置
在項目根目錄創(chuàng)建 config.json 文件,包含您的 Google Cloud 和 Groq API 憑證:
{ "project_id": "your-google-cloud-project-id", "region": "your-google-cloud-region", "groq_key": "your-groq-api-key" }
步驟 3: 了解項目結(jié)構(gòu)
項目的主要組件包括:
1. chat.py: 包含文本處理和交互的核心功能
2. requirements.txt: 列出所有 Python 依賴
3. demo.pdf: 示例 PDF 文件 — Attention Is All You Need
4. config.json: 存儲你的 API 憑證 (需要自行創(chuàng)建)
5. README.md
Attention Is All You Need
https://arxiv.org/abs/1706.03762
步驟 4: 工作原理
讓我們來分析 chat.py 文件的關(guān)鍵組件:
文本提取:應(yīng)用程序使用 PyMuPDF (以 fitz 導(dǎo)入) 從 PDF 文件中提取文本并將其分割成可管理的塊。
文本嵌入:使用 Vertex AI 的文本嵌入模型為文本塊創(chuàng)建向量表示。這使得后續(xù)可以進行高效的相似度搜索。
相似度搜索:當(dāng)你提出問題時,應(yīng)用程序通過比較問題的嵌入向量與文檔塊的嵌入向量找到最相關(guān)的內(nèi)容。
響應(yīng)生成:通過 Groq API 使用 Gemma 2 基于相關(guān)上下文和你的問題生成響應(yīng)。
步驟 5:運行你的 ChatFile 應(yīng)用程序
現(xiàn)在你可以運行應(yīng)用程序:
python chat.py
應(yīng)用程序會提示你提供 PDF 文件路徑。處理完文檔后,你就可以開始詢問關(guān)于其內(nèi)容的問題。
開始使用
根據(jù)提示,輸入 PDF 文件的路徑。
應(yīng)用程序?qū)⑻幚砦臋n,這可能需要一些時間,具體取決于文件大小。
處理完成后,你就可以開始詢問文檔相關(guān)的問題。
輸入你的問題并按回車。應(yīng)用程序?qū)⒏鶕?jù)文檔內(nèi)容提供答案。
要切換到不同的文檔,在提示輸入問題時輸入 **'c'**。
要退出應(yīng)用程序,在提示輸入問題時輸入 **'q'**。
示例交互
> python chat.py Please enter the path to your file (or 'q' to quit): /path/to/your/document.pdf Initializing with file: /path/to/your/document.pdf Extracting text chunks… Processing chunks… Embedded all chunks Saved embedded chunks to embedded_chunks_1234567890abcdef.json Initialization complete. You can now start asking questions. Enter your question below (or 'q' to quit, 'c' to change file) Question: What is the main topic of this document? [Answer will appear here] - - Enter your question below (or 'q' to quit, 'c' to change file) Question: q ThankyouforusingtheInteractiveFileQ&ASystem.Goodbye!?
最后
恭喜!你已經(jīng)設(shè)置并使用了由 Gemma 2 驅(qū)動的本地 ChatFile 應(yīng)用。這個工具讓你能夠以對話方式與 PDF 文檔交互。
此工具實現(xiàn)包含以下特性:
緩存嵌入,使用相同文檔時能更快地運行
具有豐富文本格式的交互式命令行界面
無需重啟應(yīng)用程序即可在不同文檔之間切換
-
Google
+關(guān)注
關(guān)注
5文章
1766瀏覽量
57588 -
AI
+關(guān)注
關(guān)注
87文章
31000瀏覽量
269333 -
LLM
+關(guān)注
關(guān)注
0文章
290瀏覽量
351
原文標題:【GDE 分享】Gemma 2 + RAG: 打造個人 AI 文檔問答系統(tǒng)
文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論