大語言模型(LLMs)的出現為知識管理和創新應用帶來了新的可能性。LLMs 可以作為動態知識函式庫,協助員工快速取得所需資訊,並自動生成檔案和報告。然而,LLMs 在處理特定領域或高度專業化的查詢時仍存在侷限性。為此,Retrieval-Augmented Generation (RAG) 技術應運而生,透過結合向量搜尋和 LLM,有效提升模型效能,無需重新訓練或微調模型。ARM Hub 聊天機器人即根據 RAG 技術打造,旨在為中小企業提供高效的知識管理解決方案。其架構設計包含 ETL 流程,將檔案轉換為向量資料,並儲存於向量資料函式庫中。當使用者提出問題時,系統會先將問題轉換為向量,再透過向量搜尋找到最相關的知識片段,最後將這些片段和問題一併提交給 LLM 生成最終答案。
知識管理與創新應用
在現代企業中,知識管理和創新應用是兩個緊密相連的重要概念。知識管理是指組織如何收集、儲存、分享和應用知識,以達到其戰略目標。創新應用則是指如何利用技術和創新思維來解決實際問題和改善業務流程。
知識管理的挑戰
傳統的知識管理方法面臨著許多挑戰,例如知識的零散和難以分享、知識的更新和維護成本高、知識的搜尋和檢索效率低等。為瞭解決這些挑戰,企業需要一個有效的知識管理系統,可以幫助員工快速找到所需的知識和資源。
LLMs 在知識管理中的應用
大語言模型(LLMs)是一種人工智慧技術,可以用於知識管理和創新應用。LLMs 可以作為動態的知識函式庫,幫助員工快速找到所需的知識和資源。它們還可以幫助員工建立新的知識和內容,例如自動生成檔案和報告。
RAG-based Chatbot
然而,LLMs 也有一些限制,例如難以處理領域特定的或高度專業化的查詢。為瞭解決這些限制, Retrieval-Augmented Generation (RAG)是一種有前途的解決方案。RAG 是一種生成式人工智慧技術,可以幫助改善模型的效能,無需對原模型進行微調或修改。
ARM Hub 提供了一個根據 RAG 的聊天機器人,作為其 LLM-as-a-service 的一部分。這個聊天機器人由玄貓開發,可以無縫地整合到每個 SME 製造商的工作空間中,只需進行少量的定製即可完成整合。這個聊天機器人的設計允許易於整合和資料攝取在新環境中,並且可以在批次和流模式下高效執行,同時相容多種基礎模型(FMs)。
圖表翻譯:
graph LR A[知識管理] --> B[創新應用] B --> C[LLMs] C --> D[RAG-based Chatbot] D --> E[ARM Hub]
圖表展示了知識管理、創新應用、LLMs、RAG-based Chatbot 和 ARM Hub 之間的關係。
內容解密:
RAG-based Chatbot 是一種根據 RAG 的聊天機器人,可以幫助改善模型的效能,無需對原模型進行微調或修改。它可以無縫地整合到每個 SME 製造商的工作空間中,只需進行少量的定製即可完成整合。這個聊天機器人的設計允許易於整合和資料攝取在新環境中,並且可以在批次和流模式下高效執行,同時相容多種基礎模型(FMs)。
程式碼示例:
import torch
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
# 載入預訓練模型和分詞器
model = AutoModelForSeq2SeqLM.from_pretrained("t5-base")
tokenizer = AutoTokenizer.from_pretrained("t5-base")
# 定義RAG-based Chatbot的類別
class RAGChatbot:
def __init__(self, model, tokenizer):
self.model = model
self.tokenizer = tokenizer
def generate(self, input_text):
# 將輸入文字編碼為輸入ID
input_ids = self.tokenizer.encode(input_text, return_tensors="pt")
# 生成輸出文字
output = self.model.generate(input_ids)
# 將輸出ID轉換為文字
output_text = self.tokenizer.decode(output[0], skip_special_tokens=True)
return output_text
# 建立RAG-based Chatbot例項
chatbot = RAGChatbot(model, tokenizer)
# 測試聊天機器人
input_text = "Hello, how are you?"
output_text = chatbot.generate(input_text)
print(output_text)
程式碼示例展示瞭如何使用 Hugging Face Transformers 函式庫載入預訓練模型和分詞器,定義 RAG-based Chatbot 的類別,並生成輸出文字。
ARM Hub 聊天機器人架構概覽
ARM Hub 聊天機器人的架構設計旨在為澳洲中小型製造業提供一套根據 RAG(Retrieval-Augmented Generation)的聊天機器人服務。這個架構不僅可以整合 Azure 原生服務,如 Azure Databricks,也可以適應其他雲端提供商,如 AWS 和 GCP。
13.5.1 ETL/檔案擷取
與任何機器學習或 AI 系統一樣,ARM Hub 聊天機器人首先需要一個 ETL(Extract、Transform、Load)過程。這個 ETL 管道的強健性對於聊天機器人的有效性至關重要。由於我們提供的是聊天機器人服務,因此我們開發了一個高度強健的 ETL 過程,可以順暢地整合到新的環境中,需要最少的調整。
這個 ETL 管道從 Azure Data Factory(ADF)開始,負責監控檔案分享平臺,如 SharePoint 或 OneDrive。在初始佈署時,我們的服務會匯入所有現有的檔案,將其轉換為 PDF,並上傳到稱為「Volumes」的雲端物件儲存空間中。這個儲存空間提供了檔案存取、儲存、管理和組織的功能。
我們的資料擷取管道設計可以處理新增的檔案,提供批次(排程)和實時擷取選項。實時檔案擷取功能可以立即捕捉、轉換和載入檔案,確保聊天機器人的知識函式庫始終保持最新的資料。
13.5.2 檔案準備和嵌入
一旦 PDF 檔案被上傳到 Databricks 的原始 Delta 表中,我們就會將較大的 PDF 檔案分割成較小的段落。這個分割過程對於最佳化從向量資料函式庫中檢索的內容相關性至關重要,特別是在使用 LLM(Large Language Model)進行內容嵌入時。
根據檔案型別和聊天機器人模型的限制(例如 GPT-4 的令牌大小限制為 32,000,而 LLaMA-2 的限制為 4,096),我們會採用不同的分割方法。通常,我們使用固定大小的分割方法,因為它簡單且計算效率高,常常選擇 300 的分割大小,並保留 20 的重疊,以維護語義上下文而不需要 NLP 函式庫。
13.5.3 向量搜尋/向量索引
我們使用 Databricks Vector Search,一種無伺服器的相似度搜尋引擎。這個服務允許將資料以向量形式儲存在向量資料函式庫中,並附帶有關資料的中繼資料。Vector Search 可以自動更新向量搜尋索引從 Delta 表中,並允許透過簡單的 API 查詢以檢索最相似的向量。
內容解密:
- ETL 過程:負責從來源系統中提取資料,轉換為適合分析的格式,然後載入目標系統。
- 檔案分割:將大型檔案分割成小段,以提高向量嵌入的效率和準確性。
- 向量嵌入:使用 LLM 或其他嵌入模型將文字轉換為向量表示,以便於相似度計算和搜尋。
- 向量搜尋:使用向量索引查詢最相似的檔案或段落,以回應使用者查詢。
圖表翻譯:
graph LR A[檔案擷取] --> B[ETL過程] B --> C[檔案分割] C --> D[向量嵌入] D --> E[向量搜尋] E --> F[傳回結果]
這個圖表展示了 ARM Hub 聊天機器人的基本工作流程,從檔案擷取開始,經過 ETL 過程、檔案分割、向量嵌入,最終到向量搜尋並傳回結果給使用者。
13.5.4 問答系統中的 RAG Chain
在索引準備完成後,應用程式的 RAG Chain 可以被啟動以回答問題。RAG Chain 對於查詢的操作步驟如下,並在圖 13.4 中進行了說明。我們使用 LangChain 作為 RAG Chain 的協調器。
- 收到的問題使用與知識函式庫中嵌入資料相同的模型進行處理,Model Serving 3 處理嵌入模型。
- 嵌入問題經過向量搜尋以在向量資料函式庫中找到相似的資料塊。
- 由玄貓識別出的最相關資料塊,以及嵌入問題,會在生成回應之前進行自訂 LLM 的後處理。
- 這些資料塊協助 LLM 制定適當的回應,通常使用預定義的回應範本。LLM 也透過 Model Serving 提供。
- 最後,在步驟 4 中準備好回應後,步驟 5 接管以生成和發送回應給終端使用者的提示。
深入剖析根據 Retrieval-Augmented Generation (RAG)的聊天機器人架構後,可以發現其在知識管理和創新應用上的巨大潛力。本文從資料擷取、處理到向量搜尋,完整闡述了 ARM Hub 聊天機器人如何利用 LLMs 和向量資料函式庫技術,解決傳統知識管理系統的痛點。透過檔案分割、向量嵌入及高效的向量搜尋引擎,系統能快速且準確地擷取相關資訊,並藉由 LangChain 協調 LLM 生成更精確的回覆。然而,此架構仍面臨一些挑戰,例如如何有效管理和更新向量資料函式庫以維持其效能,以及如何針對不同領域的專業知識進行模型微調。
考量實際佈署,ETL 流程的穩健性與可擴充套件性至關重要。針對不同規模的企業,調整檔案分割策略和向量嵌入模型的選擇,將能有效平衡效能與資源消耗。此外,模型服務的選擇也需考量成本、延遲以及與現有系統的整合性。對於重視資料安全性的企業,則需特別關注資料儲存、傳輸及存取許可權的控管。
RAG 技術的發展將持續推動知識管理系統的進化。預期未來 LLM 模型的效能提升和向量搜尋技術的最佳化,將進一步降低應用門檻,並拓展更多應用場景。隨著多模態搜尋技術的成熟,整合圖片、影片等非結構化資料,將使知識管理系統更全面且更具智慧。玄貓認為,RAG 技術結合 LLM,將成為未來企業知識管理和創新應用的核心驅動力,值得企業及早佈局並探索其商業價值。