在上一篇導論中,我們提到因簡單的RAG不足以處理實務問題,且有機敏資料你希望保護,所以需要在地端建立AgenticRAG。那就會有人問: "那為什麼公司不自己Fine-Tuning一顆模型呢? "
所以今天,我們要更深入理解 RAG 與 Fine-Tuning 的比較,並且拆解 RAG 的完整系統架構。
要讓大型語言模型(LLM)理解特定的資料,或是增加pre-train模型並沒有學過的知識,主要可以透過兩種方式來達成,就是Retrieval-Augmented Generation (RAG) 和 Fine-Tuning(微調),兩種方式各有定位,選擇哪種方案通常取決於專案需求、資源限制與應用場景。
定義
RAG 是一種架構,讓 LLM 能夠從 外部知識庫 中檢索資訊,再與使用者的查詢一起餵給LLM模型,進而產生更準確的答案。
優勢
適用場景
挑戰
定義
使用特定領域資料搭配一個base LLM再次訓練,使其行為更貼合專業需求。
優勢
適用場景
挑戰
先說結論,RAG 通常是首選,因為它提供了快速迭代與較低的維護成本,RAG搞不定你再評估看看要不要用Fine-tuning(或是這案子可能挑戰太高QQ)。
Fine-tuning不是不行,只是有沒有那個必要性。雖然這個策略能針對特定領域優化模型,但它存在幾個關鍵缺點與成本挑戰:
成本高昂
靈活性不足
維運複雜
📌 額外補充:
現在比較少人在談的pre-train,因為大家都知道成本很高,真正能做的公司企業不多,而且做了不一定會成功。
這邊舉一個有名的例子:
2023年的5月30,知名財經公司Bloomber發佈了他們使用了使用了約 7000 億 tokens 的資料量、500 億參數模型架構,並且在 512 張 A100 GPU 的集群上訓練 53 天,總共約 130 萬 GPU 時間來建立在金融領域的大型專用模型 BloombergGPT,推估金額高達一千萬美元。這些資源投入不只是金錢成本,也包括人力/法務/資料管道維護等隱性成本。
不幸的是,GPT 4 在 3 月 14 日(早了 2 週)推出,而到 10 月時有人開始測試自訂的 BloombergGPT與 GPT 4 來解決金融題目,結果 GPT 4 在大部分的題目都擊敗了 BloombergGPT。
資訊 | 內容 |
---|---|
參數量 | 約 500 億(50B) 參數。 ) |
訓練資料量 | 合計約 7000 億 tokens,其中金融領域資料約 3630 億 tokens(占比 ~54%),通用資料約 3450 億 tokens。 |
硬體與時間 | 在 64 個 AWS 的 p4d.24xlarge instance,每個配備 8 張 40GB 的 NVIDIA A100 GPU(總共 512 張 GPU),訓練 53 天。 |
使用資源(GPU 時數) | 約 1,300,000 GPU-hours。 |
參考資料
RAG vs Fine-Tuning for LLMs: A Comprehensive Guide
17 real world Examples of Using RAG vs. Fine-Tuning
Failed AI Projects: The real ROI isn't on the P&L...
基於上面資訊,筆者還是先專注在RAG的應用,這邊就快速來認識一下一個簡單的RAG會有什麼樣的架構吧!
RAG 可以分成 兩個核心模組:
這部分負責「知識的準備」:
簡單說,這一層解決「如何把資料轉成 LLM 能理解並高效檢索的格式」。
這部分負責「回答問題」:
以上就是RAG的關鍵組成,大家可以先記住這兩個模組。
今天文章的重點為:
下一篇(Day 3),我們會開始討論 文件解析與 Chunking 策略,我們一起實作幾個把文件變成LLM讀的懂的資訊吧!