Generative AI In Enterprise Application (RAG)

2023-12-05

logo

說明

生成式 AI 必須要結合企業的內部資料來進行企業應用,而結合的方式有以下數種:

Prompt Engineering
藉由情境 (content) 讓生成式 AI 回答情境下的問題,聚焦在使用者的問題。
RAG (Retrieval-Augmented Generation)
生成文本流程的改善,讓生成式 AI 具備新的知識,在回答問題時,先比對問題的特徵找到參考的資料來源,根據資料來源回答使用者的問題。
Fine Tuning
藉由改變類神經網路的參數權重,讓生成式具備專門的新技能,例如摘要、分類與格式化資訊。
Retrain Model
將新的資料加入並且重新訓練模型,但模型的訓練每次成本非常昂貴 (百萬美金等級)。

RAG (Retrieval-Augmented Generation)

RAG 的具體步驟:

  1. Data ingestion
  2. Chunking
  3. Indexing
  4. Pormpting
  5. User interface

在 Data ingestion 階段,要考量資料儲存的位置 (Database, Storage) 以及儲存的格式,如果是 pdf 或者是圖片,可以搭配 Azure Form Recognizer 來辨識。

在 Chunking 階段,約 200 至 400 tokens 或 1000 至 1500 tokens 的兩種拆分策略。而在 Chunking 的過程,最適合的有許多切割分界的技巧需要留意 (例如是否會破壞 Html, XML 格式等)。

在 Indexing 階段,需要考量包含 Keyword Search 以及 Vector Search 的搜尋應用,在向量化的操作,可以藉由 Azure 的 text-embedding-ada-002 來進行資料的像量化。

此外在 Indexing 上,也可以搭配特別設計的資料來未來進行 filter,避免過大的 Chunking 數量,影響了生成結果。

最後在 Prompting 上,可以藉由 prompt 指定模型的 profile, capabilities, limitations 以及 output format 的方式來設定。

How LLM Works

  1. 數據收集與處理

資料來源:LLM的訓練首先需要大量的文本數據。這些數據來自於書籍、新聞文章、網站、社交媒體等各種渠道,涵蓋了廣泛的話題和風格。
預處理:這些數據在用於訓練前會經過預處理,比如刪除重複內容、校正語法錯誤,以確保質量。

  1. 模型訓練

學習語言規則:在訓練過程中,LLM會試圖理解和學習語言的規則,例如詞彙的意義、句子結構和文本中的上下文關係。
模式識別:透過分析大量文本,LLM學會識別不同的語言模式。例如,它可以學習到「今天天氣如何?」這句話通常是在詢問天氣狀況。
演算法和神經網絡:LLM使用複雜的演算法和神經網絡來處理和生成語言。這些網絡模仿人腦的工作方式,可以從大量數據中學習和做出預測。

  1. 生成文本

應對請求:一旦訓練完成,LLM能夠根據用戶的請求生成文本。例如,當你問LLM「明天的天氣怎麼樣?」時,它會根據學到的知識和模式生成一個合適的回答。
創意應用:除了回答問題,LLM還能創作故事、寫詩,甚至編寫程式碼。這是因為它學會了各種語言風格和結構,可以靈活應用。

  1. 持續學習與改進

反饋學習:LLM不是一成不變的。通過用戶的互動和反饓,它會持續學習和改進,以更準確地理解和回應請求。
調整和優化:為了提高性能和準確度,開發者會定期對LLM進行調整和優化。

Wikipedia about LLM