傳統企業資料大多是非結構化,難以有效利用。基礎模型如大語言模型(LLM)雖具備文字處理能力,卻受限於上下文大小。向量資料函式庫搭配嵌入模型能解決此問題,將文字轉換為向量,計算相似度。Retrieval Augmented Generation (RAG) 結合搜尋引擎和基礎模型,提升效率。RAG 系統首先將文字資料載入向量資料函式庫,並分割成小區塊以符合模型限制。接著,將文字和問題都轉換為向量,在向量資料函式庫中搜尋相似文字,最後根據搜尋結果回答問題。此方法有效提升資訊檢索效率,克服基礎模型上下文限制,並能應用於問答系統等場景。

資料載入與準備

在傳統公司中,大約80%的資訊是非結構化的,深藏於PowerPoint簡報、Word檔案、Excel檔案、電子郵件和會議記錄中。圖1-1提供了一個常見的檔案型別和資料來源概覽,涵蓋結構化和非結構化資料。

圖1-1. 公司中常見的資料分佈。 基礎模型可以幫助儲存這些資訊。如今,我們有一系列不同的基礎模型可供使用,它們模擬了人們處理資料的方式。例如,大語言模型(LLMs)在生成文字摘要、翻譯,甚至程式碼等任務中表現出色。多模態模型進一步包含了文字、音訊、影像和影片。但真正的默默英雄是嵌入模型。這些模型將詞彙和句子的含義轉換為多維向量,在許多機器學習任務中至關重要,例如分類別、聚類別和推薦系統。

然而,這些模型有一個主要限制:每個模型都有一個最大上下文大小。上下文大小定義了模型在單次互動中可以處理的內容量。這個限制正在不斷擴大,但構建巨大的提示會導致模型的回應時間過長,使得應用變得緩慢且昂貴。

這是許多LLM應用的一個常見障礙。即使它們提供更自然、更像人的回應,但它們仍然在使用者期望和注意力持續時間方面與傳統搜尋引擎競爭。沒有使用者會等待10秒鐘來獲得一個精心設計的答案,而他們可以從普通搜尋引擎中幾乎瞬間獲得相同的資訊。

這就是RAG登場的時刻。RAG結合了搜尋引擎的優勢和基礎模型的能力。如圖1-2所示,基本的RAG系統分為兩個部分。

首先,我們有處理和索引步驟,它們將所有可用的文字內容載入我們的向量儲存中。以下是它的工作原理:

  1. 載入資料:從各種來源(Word、PDF、Excel、SQL等)載入資料。
  2. 分割文字:將文字分割成較小的塊。由於嵌入模型和LLMs有一個最大上下文大小,我們將文字分割以保持在此限制內。

內容解密:

上述過程涉及將原始資料轉換為適合基礎模型處理的格式。這包括載入資料、分割文字等步驟,以確保資料可以被有效地索引和查詢。

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title 向量資料函式庫與基礎模型整合技術

package "基礎模型整合架構" {
    package "資料載入與處理" {
        component [多源載入] as load
        component [文字分割] as chunk
        component [格式標準化] as format
    }

    package "向量嵌入層" {
        component [嵌入模型] as embed
        component [向量儲存] as vecstore
        component [索引建構] as indexbuild
    }

    package "問答系統" {
        component [查詢轉換] as query
        component [相似度匹配] as match
        component [LLM 回應] as respond
    }
}

load --> chunk : 原始文件
chunk --> format : 文字區塊
format --> embed : 標準格式
embed --> vecstore : 嵌入向量
vecstore --> indexbuild : 向量索引
query --> match : 查詢向量
match --> respond : 相關文件

note right of chunk
  分割策略:
  - 上下文大小限制
  - 語義完整性
  - 重疊視窗
end note

note right of respond
  克服限制:
  - 突破上下文窗口
  - 加速回應時間
  - 提升準確度
end note

@enduml

圖表翻譯:

此圖表展示了RAG系統中資料載入和準備的流程。從載入原始資料開始,到分割文字和建立索引,最終到查詢結果。每一步驟都對於確保RAG系統能夠有效地運作至關重要。

由於基礎模型的限制,RAG系統透過結合搜尋引擎的優勢和基礎模型的能力,實作了高效的資料查詢和處理。這使得使用者可以快速獲得所需的資訊,而不需要等待長時間。

檔案轉換為嵌入式向量

檔案轉換為嵌入式向量是將文字資料轉換為向量表示的過程,允許計算不同文字之間的相似度。這些嵌入式向量是文字的數值表示,能夠被用於計算相似度和進行後續處理。

問題回答系統的工作流程

問題回答系統的工作流程如下:

  1. 檔案轉換為嵌入式向量:將檔案轉換為嵌入式向量,以便計算相似度。
  2. 問題轉換為嵌入式向量:使用相同的模型將問題轉換為嵌入式向量。
  3. 搜尋相似度:在向量儲存中搜尋最相似的文字塊。
  4. 回答問題:根據搜尋到的相關文字塊回答問題。

深入剖析 RAG 的核心架構後,我們可以發現高效的資料處理和載入機制是其成功的關鍵。本文從資料載入、文字分割、向量嵌入到問題查詢,完整闡述了 RAG 系統的運作流程。多維度分析顯示,RAG 有效結合了傳統搜尋引擎的速度和基礎模型的理解能力,解決了單純使用大語言模型的上下文限制和延遲問題。技術限制深析指出,上下文視窗大小仍是限制模型效能的瓶頸,文字分割策略的最佳化以及向量搜尋的效率提升是未來研究的重點。從技術演進角度來看,隨著向量資料函式庫技術的成熟和硬體算力的提升,RAG 架構將在更廣泛的領域得到應用,例如知識管理、智慧客服和企業級搜尋。玄貓認為,RAG 代表了下一代資訊檢索技術的重要方向,值得技術團隊深入研究並積極探索其商業應用價值。