兩套工具打出個人化 AI 模型的組合拳
本文的操作步驟寫於 2024 年 6 月,LM Studio 與 AnythingLLM 的介面此後都有改版,選單位置請以你安裝的版本為準;RAG 的原理與調校順序不受影響。
RAG(Retrieval Augmented Generation,檢索增強生成)讓 AI 模型在回答之前先檢索你提供的資料,不需要重新訓練模型,就能得到「懂你資料」的個人化 AI。搭配 LM Studio(在本機執行開源 LLM)和 AnythingLLM(提供 RAG 介面),不用寫任何程式碼、也不用把資料上傳雲端,就能在自己的電腦上建立私有的 RAG 系統。這篇文章一步步示範怎麼做。
為什麼要在本機建 RAG?
很常有人問我怎麼訓練自己的 AI 模型,但是又不懂怎麼訓練模型;或是不想要把自己公司的資料放在雲端上而苦惱著。所以這次我想介紹兩個很簡單的工具——LM Studio 和 AnythingLLM——來設定檢索增強生成(RAG)系統,兩個痛點一次解決。
什麼是 RAG(檢索增強生成)?
檢索增強生成(RAG, Retrieval Augmented Generation)是一種結合了檢索技術和生成模型的方法。它的主要目的是使用者提供的相關資訊,透過一些技術來增強內容的輸出,讓我們在檢索資訊的過程中,提高生成內容的準確性和提問的相關性。
在檢索的過程中,系統會從預定的檔案文件、資料庫或網路資源中檢索與使用者查詢相關的資訊。例如我想查詢:3/15 日有什麼行程,一個理想的 AI 模型就會去檢索我的 Google 日曆,或是某些電子信箱,幫我整理出有 3/15 相關的內容。
我們會透過 Embedding,也就是向量化的方式來表示文本。目前最簡單的向量化是將文本資料轉換為以數字表達向量距離的過程。我們就可以透過向量距離(相關性)來回傳相似度最高的答案。
如何安裝與設定 LM Studio?
安裝 LM Studio
使用 LM Studio 的好處在於,它可以在個人電腦上使用下載的 LLM 模型,確保隱私和資料控制。這些 LLM 模型所檢索的資料不用上傳到網際網路就可以使用。
在新版的 LM Studio UI,如果非工程師,可以選擇 User,然後安裝想要使用的模型。在畫面的正上方,可以選擇模型,例如 Gemma 或 Deepseek 等等。挑好模型後下載,就可以開始使用對話模式。
設定 LM Studio Developer 模式
如果你想要把 LM Studio 變成類似 AI server 的功能,步驟也很輕鬆。首先在最左下方的 mode 改為 Developer,左側邊會出現 4 個 icon,選擇第二個。接著在上方把 toggle 改為啟動,local server 就建置完畢了!
如何透過 AnythingLLM 達成 RAG?
完成 AnythingLLM 的設定之後,你可以上傳檔案讓 LLM 來做資訊檢索。點擊畫面中的 Upload a document 就可以開始上傳檔案了。
完成檔案上傳之後,就可以開始問問題了。當然準確度可能就需要由你做最後決定,如果表現不如預期,先回頭調整文件切塊與檢索設定,換更大的模型是最後一步——理由寫在文末的常見問題。
小記
透過 AnythingLLM 來做 RAG 除了免除寫程式的挑戰之外,即使不具有機器學習專業知識的使用者,也能在自己的電腦中,透過這兩個工具來體會到 RAG 的威力,以及客製化自己的 AI 模型。而且運用這樣可以在本機執行的 LLM 工具,也確保了資料隱私和資料可以由自己控制跟提供。
重點整理
- RAG 讓 AI 在回答前先檢索你提供的資料,不用重新訓練模型就能得到個人化的回答品質。
- LM Studio 負責在本機執行開源 LLM(如 Gemma、Deepseek),AnythingLLM 負責文件上傳與檢索介面,組合起來就是零程式碼的私有 RAG 系統。
- 資料全程留在自己的電腦,隱私與控制權都在你手上;效果不佳時,先查檢索設定(切塊、回傳段落數、embedding 模型),換大模型放最後。
常見問題
RAG 跟微調(fine-tuning)該選哪一個?
多數情況答案是 RAG。你想讓模型「知道」某些事實(公司規章、產品文件、會議紀錄),那是檢索問題,而且資料更新時只要重新上傳,不用重跑訓練。微調處理的是另一類需求:讓模型固定用某種格式或語氣輸出,或熟悉某種特殊的任務結構。兩者不互斥,但先做 RAG 的投資報酬率通常高得多。
在本機跑 RAG 有什麼好處?
資料不需要上傳到雲端,隱私與資料控制權完全在自己手上,特別適合處理公司內部或敏感資料;而且透過 LM Studio 與 AnythingLLM,不需要寫程式或具備機器學習專業就能完成。
RAG 回答效果不好怎麼辦?
換更大的模型是最後一步,不是第一步。RAG 答不好,問題多半出在檢索階段而不是生成階段:模型根本沒拿到正確的段落,再大也救不回來。依序檢查:文件切塊(chunk)是不是把一段完整說明從中間切斷、每次檢索回傳的段落數是不是太少、embedding 模型適不適合你的語言(處理中文資料時這一項影響很大)。這三項調完仍然不理想,才輪到換生成模型。

Leave a Reply