現在的大型語言模型越來越聰明,除了能聊天、寫文,還能生成圖像。但你可能也發現過一個詭異現象:它的「聰明」有點像學生考前死背的結果:課本讀了,但不一定懂;回答聽起來有自信,但不保證正確;剛剛才說過的事,轉頭又忘記。
這些現象,其實都和大型語言模型怎麼「學習」知識有關。是像背公式那樣照本宣科,還是能真的內化概念?微軟研究院最近正在研發的一項新技術KBLaM(Knowledge Base-Augmented Language Model)——直譯的話可稱作「知識庫擴充語言模型」,正嘗試讓AI從「死背」走向「理解」,改善目前既有的限制。
AI怎麼學會「查資料」?目前RAG是主流
在過去幾年中,解決語言模型知識不足最常見、也最實用的做法,就是使用RAG,檢索增強生成(Retrieval-Augmented Generation)。
RAG的設計初衷其實很務實:模型的訓練資料不可能涵蓋所有知識,尤其是快速變動的資訊、企業內部文件、使用者筆記等都不會出現在訓練語料裡,那該怎麼補強?答案就是:查資料。
RAG就像幫AI裝了一組小型Google。當你輸入問題時,它會先到一個事先建立好的知識庫(例如文件系統、PDF、網頁等)搜尋,看有哪些段落可能相關,然後把這些資料和你的問題一起送進語言模型中,由模型「讀完資料再回答」。

這種架構的優點在於:不需要重新訓練模型、資料可以即時更新、能接入私有資料庫,對使用者與企業都非常彈性。這也正是為什麼目前多數的LLM應用,包括企業內部知識問答、客服機器人、API型助手,幾乎都是採用RAG或類似的檢索式擴充機制。
具體例子包括大家熟知的GPTs和Google的NotebookLM,讓使用者上傳筆記、文件,AI就能針對這些資料進行問答與摘要,並標註引用來源;此外,Microsoft Copilot、Notion AI、Perplexity、Humata、ChatPDF等產品,也都採用RAG架構來整合文件檢索與回答生成,成為實用性與擴充性兼具的AI工具。
但它也不是沒有缺點。當你丟進太多資料時,模型的處理速度就會變慢,而這主要和語言使用的Transformer架構有關。Transformer採用一種稱為「自注意力機制」(Self-Attention)的運作方式,也就是每個詞(token)在處理時都要和其他所有詞互相比對,才能建立語意關聯。這雖然讓模型能理解上下文的關係,但也帶來一個問題:只要輸入越長,處理量就會急遽增加,因為每個詞彼此互相參照的計算量是隨著輸入長度的平方在成長的。舉個例子,當輸入1,000個tokens,模型就得處理近百萬個互動關係,這對記憶體與運算速度都是極大的負擔。
再加上語言模型其實並不真正「理解」這些資料,而是根據語言模式進行預測。也就是說,它可能只是從字面搭配中找出最可能的回應,而不是從知識或邏輯中推理出答案。因此當資料模糊或檢索不精準時,就更容易出現幻覺。
為什麼AI總是忘東忘西?記憶功能其實才剛起步
我們常希望AI不只能像個私人助理,現在人們對AI的期望甚至上升到伴侶、朋友等級,要它記得你的偏好與交代過的事情。不過,這種記憶仍有侷限,也不總是穩定。你可能也發現,當對話串一長,AI就「忘了」之前的事,還要你再提醒一次,它才重新「回想」起。這是因為目前語言模型的記憶仍仰賴測試中或實驗性質的模組,尚未具備真正持久穩定的記憶能力。

為了改善這個問題,像ChatGPT、Gemini等大型語言模型已逐步開發所謂的「記憶功能」,可以記住你的名字、職業、對語氣或格式的偏好,而使用者也可以隨時檢視、關閉或刪除這些記憶。
這些功能的設計,是為了讓AI對你這個使用者建立一個持續且個人化的「印象」,讓每次對話都能更貼近你的需求與語境,這是一種「記得」的能力。
但,記得並不等於理解。即便AI能記住你的偏好與身分資訊,它對你提供的資料、觀點或背景內容,往往只是「記下來」或「引用過」,並不代表它真正理解箇中意義或邏輯結構。這正是KBLaM所處理要處理的問題,要讓AI真正「吸收」你所提供的知識,並能在回答時做出有邏輯、有根據的推理與應用。
KBLaM 的技術到底做了什麼?讓知識成為模型的一部分
KBLaM(Knowledge Base-Augmented Language Model)是一套幫語言模型「內建知識」的技術,它的厲害之處在於不需要改動原本的語言模型,也不用重新訓練模型,就能將知識直接接入模型架構中,讓AI在回答時自然引用。
這與傳統的RAG最大的差別在於:RAG是查資料,KBLaM則是理解資料。RAG會從知識庫中檢索出相關內容,再把它貼進模型的上下文裡;模型看到這些內容後,會試著根據語言模式來生成回應,並不是真的「吸收」這些知識。而KBLaM則是讓知識直接以向量形式成為模型可讀的結構,並透過特殊的注意力設計,讓模型可以在運算中真正引用這些資料,成為內部的一部分。
那它到底怎麼做到的?讓我們來拆解一下它的運作方式:
・把知識變成 AI 能「讀得懂」的形式
KBLaM的第一步,是把人類可讀的知識(例如一段段文字描述)轉換成結構化、可機器處理的形式。具體來說,它會將三元組(triple)形式的知識,例如「太陽是恆星」、「水屬於液體」這類邏輯關係,編碼成一對對的key-value向量。
這些向量不只是資料的壓縮,與其說是讓AI「參考一段話」,不如說是「喚起特定概念」。而這正是與RAG最大的不同:RAG提供的是原始段落或語句,模型只能根據文字線索推測含義;KBLaM提供的是語意結構的入口,模型能以較低的計算負擔,進行更準確的語意對應與邏輯應用,這也是為什麼它更接近所謂的「理解」。
・使用「矩形注意力」降低計算負擔
這個特殊的注意力設計,解決了傳統Transformer極為耗能的問題。因為RAG的「自注意力機制」會把使用者的問題與從知識庫檢索來的段落,一起塞進模型的上下文中,模型就必須對這整段內容進行全面的注意力運算。也就是說,不只是問題與資料互參,連資料與資料之間也會互相參照。
這是因為語言模型並不知道哪些是問題、哪些是資料,只會一視同仁地處理所有輸入。結果不但大幅增加計算負擔,也可能讓無關的知識段落互相干擾,降低回答的準確性。
KBLaM提出的「矩形注意力」(Rectangular Attention)就是為了解決這個問題。在KBLaM裡,知識不再是一大段要被模型「通通讀一遍」的文字,而是先被整理成一種模型能快速查詢的格式。當你輸入一個問題,模型只會針對這個問題去參照對應的知識,而這些知識本身之間不會彼此互相干擾。
換句話說,這是一種「單向參照」的設計,這樣的設計讓注意力計算量從平方降為線性,即便資料量增加到數萬條知識,模型也能保持高效處理速度,實現真正可擴展的知識應用能力。
・Plug-and-Play設計,彈性接入主模型
再者,KBLaM是一種「即插即用」的知識擴充模組,不需修改模型權重,也不需要重新訓練,就能搭配既有模型運作。支援多款開源模型如LLaMA 3、Phi-3,未來也可能整合進更多語言模型平台。
總結來說,KBLaM的設計,讓語言模型能直接處理規模龐大的知識庫而不拖慢運算速度,因為它避開了傳統自注意力機制中每個詞都要互相參照的效率瓶頸。同時,它也不再只是將知識貼在上下文中,而是把知識真正編入模型能理解的向量結構內,讓AI在回答時能像是「內建邏輯」一樣使用這些資料。
更重要的是,KBLaM增加了回答的透明度與可信度,因為模型可以更明確地對應哪些內容來自知識來源,並在缺乏資料時選擇拒答,而非憑空猜測。它讓AI更像是一個真正讀過並理解資料的知識型工作者,而不再是一個死記硬背的學生。
在AI的發展路上,記憶與理解,這兩者並非對立,而是相輔相成。未來真正成熟的AI,應該同時具備「記住你的需求」與「理解知識」的能力,既了解你,也懂得這個世界的運作方式。當AI不再只是照本宣科,而是能參與思考與決策,並知道自己「知道什麼」。我們或許就真的能開始期待,那個聰明又可靠的AI夥伴,不再只是存在於想像之中。