從零搞懂 RAG,要搭個人或企業知識庫必學! — Transcript
Full transcript
- 0:00不管你平常有沒有在深入研究 AI
- 0:01你很可能都動過這個念頭
- 0:03能不能幫自己或團隊
- 0:04做一個隨問隨答的第二大腦?
- 0:06或是幫你的 AI Agent
- 0:07接上一整個專屬的知識庫?
- 0:10只要你想做這件事
- 0:11就一定會碰上 RAG 這個觀念
- 0:13如果你平常就很關注 AI
- 0:15可能會覺得奇怪
- 0:16都2026年了
- 0:17為什麼還在講 RAG ?
- 0:19但對於在意公司資料隱私的人
- 0:21或是想打造個人知識庫的人來說
- 0:23RAG 的價值在於
- 0:24你可以只餵給模型你自己認證過的資料
- 0:26讓它盡可能從這些資料裡回答問題
- 0:28而不是像通用的 ChatGPT 一樣
- 0:31給出每個人都拿得到的答案
- 0:33如果你累積了幾十年的產業經驗
- 0:35想讓這些知識在公司內部流通,傳承
- 0:38或者你有建立個人知識庫的習慣
- 0:40希望你的 Agent 在回答時
- 0:41以你的知識庫作為最主要的依據
- 0:44就會用到 RAG 這個技術
- 0:46所以今天這支影片
- 0:47就算你是 RAG 小白
- 0:48我也會帶你搞懂這個技術
- 0:49讓你知道 RAG 是什麼
- 0:51如果你已經有在實作自己的 RAG
- 0:53我也會分享實作時最容易踩到的坑
- 0:55以及該怎麼一步一步
- 0:57把一個 RAG 做對,做好
- 0:59那我們直接開始
- 1:00那我們一樣用一個生活化的例子來介紹 RAG
- 1:03這樣可能會比較好理解
- 1:04假設你是一位價值投資人
- 1:06而巴菲特是你的偶像
- 1:07你想要把他投資的整套方法論都學過來
- 1:10過去你只能看看他的書
- 1:11聽聽他的訪談
- 1:12自己慢慢領悟巴菲特的投資邏輯
- 1:15但現在有了 AI
- 1:16你開始幻想自己是否有能力
- 1:18讓手邊的這個 AI
- 1:19變成巴菲特的數位分身
- 1:21這樣我之後在做任何投資決策
- 1:23或是看不懂一家公司的時候
- 1:24就可以直接問他了
- 1:26那麼,第一步你會怎麼做?
- 1:28你學過怎麼寫好一份提示詞
- 1:30所以你明白定義角色的重要性
- 1:32所以你直接打開了 ChatGPT
- 1:33跟它說
- 1:34請扮演股神巴菲特
- 1:35並用他的思維回答我以下的問題
- 1:38剛開始效果還不錯
- 1:40畢竟大語言模型
- 1:41本來就學過很多巴菲特的經典名言和投資原則
- 1:44問什麼護城河,安全邊際
- 1:46它都能講得頭頭是道
- 1:48但聊著聊著你就會發現
- 1:49只要你問得稍微深一點,細一點
- 1:52模型就開始出現幻覺
- 1:53有時候會一本正經地胡說八道
- 1:55給出完全錯誤的年份或數字
- 1:57甚至引用了巴菲特從來沒有說過的話
- 2:00這時候你就想
- 2:01那我乾脆把巴菲特所有的資料全部載下來
- 2:03當作檔案附件直接餵給 AI
- 2:05讓 AI 看著資料回答
- 2:07總不會錯了吧?
- 2:08於是,你把巴菲特六十年的股東信
- 2:11三十幾年的股東會逐字稿
- 2:12全部下載下來打包成一個大檔案
- 2:15然後拖進對話框並按下送出
- 2:17結果下一秒
- 2:18畫面立刻跳出一行紅字跟你說
- 2:20檔案內容超過上限
- 2:22請縮減資料後再試
- 2:24這是你撞到的第一個牆 Context Window
- 2:26也就是模型在一次對話裡
- 2:28能容納的記憶上限
- 2:30你的問題,你貼給它的資料
- 2:32再加上它要回答的字數
- 2:33全部都要算在這個上限裡
- 2:35如果今天巴菲特只寫過薄薄一本書
- 2:38你整包丟進去確實沒問題
- 2:39簡單又省事
- 2:40你甚至不需要學 RAG
- 2:42但巴菲特的資料量
- 2:43光是英文單字就有幾百萬字
- 2:45換算成 AI 的計算單位 Token
- 2:47也是高達兩三百萬
- 2:48現在主流模型就算胃口再大
- 2:50上限頂多也就一百萬 Token 左右
- 2:52而你手上的資料足足是它的兩到三倍
- 2:55而且,這還不只是 Token 太多
- 2:57塞不下的問題
- 2:59就算你退一步
- 3:00把資料砍到剛好塞得進模型的上下文
- 3:02也會立刻碰上另外兩個現實問題
- 3:05那就是回答又慢,又貴
- 3:07為什麼?
- 3:07因為大語言模型本質上是 stateless 的
- 3:10也就是根本不會記住你餵給它的檔案
- 3:12你每問一個新問題
- 3:13這一整大包資料就要從頭重新讀一遍
- 3:16你問十題,它就重讀十次
- 3:18所以你每問一句
- 3:19它都要重新消化幾十萬字
- 3:21慢得要死
- 3:21頂級模型每讀一次上百萬 Token
- 3:23就要幾塊甚至二十美金
- 3:25隨便問個十題
- 3:26你的額度就扛不住了
- 3:28資料越多
- 3:28你就等得越久,花得越多
- 3:31繞了一圈你會發現
- 3:32問題的盲點到底在哪裡?
- 3:34就是我們每一次
- 3:35都逼 AI 把全部的資料從頭啃一遍
- 3:38可是你想想看
- 3:40你問巴菲特怎麼看待護城河
- 3:41真正用得上的內容
- 3:43往往就只有那兩三段而已
- 3:45那我們何不換個思路
- 3:46先把真正用得上的那兩三段找出來
- 3:49只交給 AI 讀不就好了?
- 3:51這個做法,就是 RAG
- 3:53它其實完全符合
- 3:54我們人類自己查資料的直覺
- 3:56你想知道巴菲特怎麼講護城河
- 3:58你絕不可能
- 3:59把六十年的信從第一封讀到最後一封
- 4:01你一定會打開搜尋框
- 4:03輸入護城河
- 4:04把那幾段翻出來讀完
- 4:05再整理出答案
- 4:06RAG 只是讓 AI 也照這個方式做事而已
- 4:09RAG 這三個字母
- 4:11正好對應這三個動作
- 4:13R 是 Retrieval ,檢索
- 4:14也就是打開搜尋
- 4:16把相關段落找出來
- 4:17A 是 Augmented ,增強
- 4:19把找到的段落跟你的問題拼在一起
- 4:21攤在 AI 眼前
- 4:23G 是 Generation ,生成
- 4:24讓 AI 看著這幾段精準寫出答案
- 4:27中文翻成檢索增強生成
- 4:29聽起來像學術論文
- 4:30但說穿了就一句話
- 4:32先查資料,再回答
- 4:34既然 RAG 的本質是先查資料,再回答
- 4:36那我們真的要動手做一個巴菲特的 RAG
- 4:38整個流程就直接照 R , A , G 這三個字母走
- 4:41R 是把資料整理好,建好索引
- 4:43讓系統找得到
- 4:45A 是從找到的東西裡挑出最好的幾張
- 4:47拼成一份乾淨的小抄遞給 AI
- 4:49G 是調教 AI
- 4:50讓它看著小抄把答案寫對
- 4:52這三步裡最長
- 4:54也最容易被忽略的,就是 R
- 4:56而 R 又分成兩半
- 4:57前半是把書架整理好
- 4:59後半才是去書架上找書
- 5:01很多人做 RAG 第一步
- 5:02就跳去挑向量資料庫
- 5:04或是寫檢索演算法
- 5:05但後面很多 AI 找不到答案
- 5:07或者回答鬼打牆的問題
- 5:08九成以上的根源
- 5:09通通都在資料本身
- 5:11也就是整理書架的這前半段
- 5:13回到我們手上的東西
- 5:15你現在有巴菲特六十年的股東信
- 5:17三十幾年的股東會逐字稿
- 5:19整整一大包純文字
- 5:20如果要讓它變成 AI 可以查閱的專屬知識庫
- 5:23下一步應該怎麼做?
- 5:25答案就是清洗資料
- 5:26但清洗資料不是單純的順手改改錯字
- 5:29文本清洗的兩個核心目標是
- 5:31拉高資訊密度,以及確保語意獨立
- 5:33接下來我們一個一個講
- 5:35第一是拉高資訊密度
- 5:37你抓下來的逐字稿和檔案
- 5:38裡面充滿了大量檢索不需要的雜訊
- 5:40像是 PDF 轉檔留下的頁首頁尾
- 5:43主持人的寒暄,現場笑聲
- 5:44或是請下一位股東到三號麥克風提問
- 5:47這種過場廢話
- 5:48如果不把這些清掉
- 5:49AI 到時候就很容易撈出垃圾
- 5:51白白浪費模型的上下文空間
- 5:53第二是確保語意完整
- 5:55口語對話通常非常破碎
- 5:57巴菲特講話常常省略主詞
- 5:59或者蒙格在旁邊插一句話
- 6:01如果你沒有把這段話是誰說的
- 6:03他到底在回答哪個問題整理清楚
- 6:05這段文字一旦被單獨抽出來
- 6:07AI 根本看不懂前因後果
- 6:08甚至會張冠李戴
- 6:10清洗的真正目的
- 6:11就是把原本混亂,破碎的原始素材
- 6:14整理成每一段都自帶完整脈絡的高濃度知識
- 6:18那面對幾十萬,上百萬字的逐字稿
- 6:20具體在工程上到底該怎麼洗?
- 6:22你總不可能人工一行一行去修吧?
- 6:24目前業界最成熟的 Best Practice
- 6:26其實是一套自動化的兩階段管線
- 6:29第一階段
- 6:29用 deterministic 的腳本做物理掃除
- 6:32把 SRT 時間戳,格式亂碼,現場笑聲
- 6:35以及嗯,啊,那個這種無意義的口語贅字
- 6:38全部自動剔除
- 6:40第二階段
- 6:41交給便宜又快速的小模型
- 6:42像是 GPT mini 系列
- 6:44幫你做語意整理
- 6:46這裡最關鍵的一步
- 6:47叫做代名詞還原
- 6:49口語聊天常常說
- 6:50它那時候很便宜
- 6:51那家公司護城河很深
- 6:52小模型會根據上下文脈絡
- 6:54自動把它替換回可口可樂
- 6:56同時,它會把現場混在一起的多人講話
- 6:59標清楚誰是發問者,誰是回答者
- 7:01整理成乾淨的一問一答
- 7:03這一步關鍵的原因是
- 7:05就算這段話之後被單獨切開
- 7:07它依然自帶完整的脈絡
- 7:08AI 隨時抽出來看
- 7:10都完全讀得懂它在講什麼
- 7:12資料清洗完之後呢?
- 7:13因為 RAG 的核心目標
- 7:15是精準投餵 AI 所需要的資訊
- 7:17當你問一個問題時
- 7:18系統只要挑出最關鍵的那兩三段給 AI 就夠了
- 7:21而不是又把幾十萬字整包塞進去
- 7:23不然那樣又會回到前面又慢又貴的惡夢
- 7:26所以,我們必須把這份龐大的檔案
- 7:28拆解成一個一個獨立,好搜尋的知識卡片
- 7:32這個步驟,在技術上就叫做 Chunking
- 7:34中文叫切塊
- 7:35切出來的每一塊就叫一個 Chunk
- 7:37常見的 Chunking 策略通常有兩種
- 7:40第一種是固定字數切塊
- 7:42顧名思義,就像拿皮尺量長度一樣
- 7:44不管話說完了沒
- 7:45每滿五百字就無情切一刀
- 7:48這個方法最大的優勢就是簡單,通用
- 7:50不需要動腦
- 7:52不管你餵給它什麼格式的文件
- 7:53完全不需要花時間分析結構
- 7:55幾行程式碼就能快速切完
- 7:57而且每個 Chunk 的大小都一樣
- 7:58非常好控制 Token 的成本
- 8:00但它的問題
- 8:01就是完全無視語意邊界
- 8:03一刀切下去,很容易剛好把一句話
- 8:06或是把問題和回答硬生生砍成兩半
- 8:09單獨拿出來看根本不知所云
- 8:11拿巴菲特的股東會逐字稿來說
- 8:13假設有股東問
- 8:14你當年為什麼買可口可樂?
- 8:16巴菲特回答了四百多字
- 8:18講到一半剛好滿五百字
- 8:19刀就落下來了
- 8:21結果前一張卡片的結尾是
- 8:23我們當時看到最大的優勢是
- 8:25後一張卡片的開頭是
- 8:26它可以年年漲價,消費者還是照買
- 8:29後面這張卡單獨拿出來
- 8:30根本不知道它是誰
- 8:32你之後搜可口可樂 護城河
- 8:33這張最關鍵的卡片就撈不到了
- 8:36所以為了彌補硬切的缺點
- 8:38大家通常會設定一點重疊區間
- 8:40也就是 Overlap
- 8:42設定重疊的目的
- 8:43就是為了防止關鍵句子剛好落在刀口上
- 8:45讓後一張卡片的開頭
- 8:47多包含前一張卡的最後幾十個字
- 8:48買個保險
- 8:49避免重要的上下文直接斷掉
- 8:52但這依然治標不治本
- 8:53這個方法的最大硬傷
- 8:54依然是語意容易被腰斬
- 8:56第二種策略是按自然結構切塊
- 8:58這也是比較適合我們手上
- 9:00巴菲特資料的 chunking 策略
- 9:02具體怎麼做?他的資料剛好就分兩種
- 9:05第一種是股東信
- 9:07巴菲特每年都寫了很清楚的小標題
- 9:09實務上就直接照 Markdown 小標題切
- 9:11一個標題一張卡片
- 9:12每一張都是一個完整的投資觀點
- 9:15第二種是股東會逐字稿
- 9:17這本質上是一場問答馬拉松
- 9:18所以我們可以用每一輪問答為單位
- 9:20我們可以把股東提問,巴菲特回答
- 9:23加上蒙格的補充
- 9:24整組打包成一個 Chunk
- 9:26這樣切,問題跟答案永遠綁在一起
- 9:28上下文也就完整
- 9:30今天我先講最常見的兩種 chunking 策略
- 9:33如果你想深入了解更進階的切塊架構
- 9:35我在 Gary AI 實戰營中
- 9:37會有一支影片專門講解
- 9:39有興趣的朋友
- 9:39可以在影片下方資訊欄找到加入連結
- 9:42那每一個 Chunk 都切好之後
- 9:44我們就可以直接拿去搜尋了嗎?
- 9:46還不行
- 9:47如果你直接光靠卡片裡的文字本身
- 9:49做搜尋依然會翻車
- 9:52因為 AI 在做搜尋的時候
- 9:53通常是比對問題和卡片的意思接不接近
- 9:57如果你聽不太懂的話沒關係
- 9:58等一下我們會再細講
- 10:00但讓 AI 純粹比對意思
- 10:01會有一個嚴重的盲點
- 10:03舉個例子
- 10:04如果使用者問
- 10:05巴菲特在2020年之後
- 10:06是怎麼談通膨的?
- 10:08如果你這時候純靠內文的語意搜尋
- 10:10就很容易出問題
- 10:11因為模型比較看得懂通膨這個概念
- 10:13它對2020年之後
- 10:15這種時間邊界非常不敏感
- 10:16很可能把1980年代講得非常精彩的通膨段落
- 10:19直接撈出來交差
- 10:21這就是為什麼每張卡片都必須附上 Metadata
- 10:24中文叫元資料
- 10:26Metadata 其實就是這個段落的標籤
- 10:28以這個例子來說
- 10:29我會在 Metadata 裡面放上
- 10:31發生的年份,出自哪一封信
- 10:33或是影片的時間戳記
- 10:35有了這些標籤
- 10:36當用戶問帶有條件的問題時
- 10:38系統就能先利用 Metadata 做精準的條件過濾
- 10:41先把時間範圍鎖定
- 10:42再去找內容
- 10:43這樣一方面比較準確
- 10:44另一方面又比較快
- 10:46如果你在做的是公司知識庫
- 10:48這點更是關鍵
- 10:49有些敏感資訊不能讓所有人隨意存取
- 10:52這時候你就能利用 Metadata
- 10:53在程式端先做一層確定性的權限過濾
- 10:56確保不會有人看到他不該看的資料
- 10:59現在,你手上終於有
- 11:00幾萬張切好,且貼好標籤的知識卡片了
- 11:03R 的前半段整理書架
- 11:05到這裡也告一個段落
- 11:07接下來是 R 的後半段,找書
- 11:09也就是說用戶提問的時候
- 11:10我們要怎麼讓 AI 去撈出最相關的資訊來回答?
- 11:14在 RAG 裡
- 11:15AI 具體到底是用什麼方式
- 11:16去搜尋這幾萬張卡片的?
- 11:18其實主要就兩種做法
- 11:20第一種做法
- 11:21是大家最熟悉的關鍵字搜尋
- 11:23英文是 Keyword Search
- 11:24這就像你在文件裡按 Ctrl+F
- 11:26直接比對你輸入的字
- 11:27有沒有出現在卡片裡
- 11:29這種方法在抓特定人名,公司代號
- 11:31或是專有名詞時非常準
- 11:33但它的致命傷
- 11:34就是完全不懂同義詞
- 11:36比方說巴菲特講話
- 11:37不可能每次都照你的劇本走
- 11:39以護城河這個常見的名詞來說
- 11:41他可能會用不同的方式表達
- 11:43像是長期的競爭優勢
- 11:45或者別人很難搶走的生意
- 11:47這時候如果你輸入護城河然後去搜尋
- 11:49這些含金量極高的段落就會被全部漏掉
- 11:52所以就有了第二種做法
- 11:54叫做語意搜尋
- 11:55英文是 Semantic Search
- 11:57它不看字面有沒有完全吻合
- 11:58而是去看背後的意思一不一樣
- 12:01對於技術小白來說
- 12:02你可能會好奇
- 12:03語意搜尋到底是怎麼知道
- 12:04兩句話意思相近的?
- 12:06最簡單的理解方式就是
- 12:07這背後靠的是一種叫做 Embedding 的模型
- 12:10它會把每一張卡片的文字
- 12:12換算成一串數字
- 12:13而這串數字就叫向量, Vector
- 12:16你可以把向量
- 12:17想像成語意地圖上的座標
- 12:19比如說護城河三個字
- 12:20會被換算成一組數字座標
- 12:22這組座標在數學上
- 12:24會跟長期的競爭優勢
- 12:25這個語意上跟護城河比較相似的區塊
- 12:28靠得非常近
- 12:29而跟晚餐吃什麼
- 12:30這種和護城河沒什麼關聯的名詞距離遙遠
- 12:34有了向量之後
- 12:35系統就可以把你的問題也換算成一個座標
- 12:37接著去計算問題座標
- 12:38跟資料庫裡每張卡片在數學上的距離
- 12:41距離最近的那幾張卡片
- 12:43就是意思最接近的內容
- 12:44抓出來餵給 AI 之後
- 12:46它就能精準回答
- 12:48聽起來很完美對吧?
- 12:49但純用語意搜尋
- 12:50其實藏著一個巨大的坑
- 12:52它記住的是宏觀大意
- 12:53很容易把專有名詞忽略掉
- 12:56比如你問
- 12:57巴菲特為什麼買喜詩糖果?
- 12:59系統用語意去找
- 13:00找回來的卡片可能全都在講可口可樂
- 13:02或者講好品牌有漲價的權利
- 13:04這些概念很像
- 13:05但都沒有提到喜詩糖果本身
- 13:08那這時候 AI 回答出來
- 13:09就會直接答非所問
- 13:10甚至開始瞎掰
- 13:11硬把可口可樂的邏輯套到喜詩頭上
- 13:14這是因為專有名詞放進一整段話裡
- 13:17很容易被整體的大意稀釋掉
- 13:19所以這兩種檢索方法
- 13:21一個擅長抓精確字面
- 13:22一個擅長抓抽象意思
- 13:24在實務上,成熟的 RAG 通常是兩者並行使用
- 13:27這就叫做混合搜尋
- 13:28也就是 Hybrid Search
- 13:29那這些切好的卡片
- 13:31以及我們上面說通過 Embedding 模型
- 13:33生成出來的向量座標
- 13:34還有剛才講的 Metadata
- 13:36這時候會存進一個支援向量搜尋的資料庫
- 13:39向量資料庫支援開發者
- 13:40把這些文字,向量和標籤分門別類存進去
- 13:43而建好目錄的這個過程
- 13:44就叫做 Indexing
- 13:46中文叫做建立索引
- 13:48當使用者一個問題問進來
- 13:50AI 就可以透過 Hybrid Search
- 13:51去這個支援向量搜尋的資料庫裡
- 13:53找相對應的資料卡片
- 13:55我們直接用巴菲特來模擬一次
- 13:57假設你問
- 13:58巴菲特為什麼買下喜詩糖果?
- 14:00它的護城河在哪裡?
- 14:01系統這時候會兵分兩路
- 14:03一路是關鍵字搜尋
- 14:05它死咬著喜詩糖果這個專有名詞
- 14:07把所有真的出現喜詩的卡片精準撈出來
- 14:10但這些卡片裡可能沒有深談護城河的理論
- 14:12另一路是語意搜尋
- 14:14它去抓收購邏輯和護城河的意思
- 14:16撈出一堆談定價權,品牌優勢的卡片
- 14:19接著,系統把兩邊找到的名單合併
- 14:22挑出比方說前二十張候選的 Chunk
- 14:25走到這一步時, RAG 的 R 就告一段落了
- 14:27因為我們已經把回答這個問題
- 14:29所需要的資料都抓回來了
- 14:31而下一步就是進到 RAG 的 A , Augmented
- 14:33這一步的工作只有一個
- 14:35決定到底要把什麼東西放在 AI 眼前
- 14:38你這時候可以直接把這二十個 Chunk
- 14:40全部一股腦丟給 AI 嗎?
- 14:41最好不要
- 14:42因為第一階段粗撈出來的名單
- 14:44裡面摻雜了許多半相關的雜訊
- 14:46如果硬塞給模型
- 14:47不僅資訊密度被稀釋
- 14:49模型還很容易被雜訊帶偏,產生幻覺
- 14:52如果我們要讓回答更完美
- 14:54就必須把資料的密度再提煉出來
- 14:56所以 Augmented 的第一道工序
- 14:58是用一個讀得更仔細的模型
- 15:00把這二十張卡片跟問題一張一張對著讀
- 15:03重新排一次名
- 15:04把真正有用的卡片頂到前面
- 15:06這也就是大家常聽到的 Re-ranking
- 15:08重新排序
- 15:09嚴格講的話
- 15:10Re-ranking 在教科書裡算 R 的最後一步
- 15:12但我把它放在 A 的部分
- 15:14是因為我覺得這樣比較好理解
- 15:15畢竟 Re-ranking 的工作不是去找
- 15:17而是決定哪幾張卡片有資格進到 AI 眼前
- 15:20這對我來說比較像是 A 在做的事
- 15:23而它到底屬於哪一個字母的階段
- 15:25其實也沒那麼重要
- 15:26重要的是能夠理解 RAG 是如何運作的
- 15:29排好名之後
- 15:30Augmented 這個階段最重要的
- 15:32就是把小抄拼起來
- 15:33你可能會取前三到五張卡片
- 15:35連同卡片的 Metadata
- 15:37像是年份,出處
- 15:38再加上你的問題
- 15:40還有一段指示
- 15:40像是只能根據下面這幾段資料回答
- 15:43資料裡沒有的就說不知道
- 15:45全部組成一份最終的提示詞
- 15:47交給 AI
- 15:48走到這裡,我們快速回顧一下
- 15:51在 Retrieval 這一段
- 15:52我們把巴菲特六十年份的雜亂資料
- 15:54清洗乾淨,切成卡片,貼上標籤
- 15:56存進向量資料庫建索引
- 15:58再用 Hybrid Search 把二十張候選撈回來
- 16:00而在 Augmented 的階段
- 16:02我們用 Re-ranking 挑出最準的幾張
- 16:04拼成一份乾淨的小抄
- 16:06接著就要進入 RAG 的最後一段
- 16:08G , Generation ,也就是生成
- 16:10讓 AI 看著這份小抄,寫出答案
- 16:13G 在系統上其實是最單純的一步
- 16:16A 把小抄拼好之後
- 16:17G 就是把這份提示詞送給大語言模型
- 16:20拿回答案
- 16:21程式上就是一次 API 呼叫
- 16:23你真正要決定的事情其實不多
- 16:25首先是用哪個模型
- 16:27知識庫問答不需要最貴的那一個
- 16:29中低階模型配上一份好小抄通常就夠
- 16:32我自己滿喜歡 Gemini Flash 系列
- 16:34又快又便宜
- 16:36再來是在回答時的策略
- 16:37比方說要不要讓它附上出處
- 16:39用什麼語氣等
- 16:40而這些東西其實大多數
- 16:42就是用提示詞在控制
- 16:44我在實務上發現
- 16:45很多團隊的知識庫會遇到一個狀況
- 16:47同一個問題問兩次,答案不一樣
- 16:49甚至還會自己加戲,開始腦補
- 16:52這時候
- 16:52你可以先去檢查
- 16:53你的模型 Temperature 是不是設太高了
- 16:56Temperature 簡單來說就是控制
- 16:58AI 隨機性跟創造力的旋鈕
- 17:00溫度設得越高
- 17:01AI 就越想放飛自我
- 17:03用詞也會越多樣化
- 17:04而溫度越低它就越保守
- 17:06每次都只挑機率最高,最確定的字
- 17:09一般 AI 工具的預設溫度
- 17:11通常是 0.7 左右
- 17:12那是拿來寫文案,激發靈感用的
- 17:14但在嚴肅的知識庫裡
- 17:16創造力往往就等於幻覺
- 17:17要解決這個問題
- 17:18就直接把 Temperature 往下調就好
- 17:21走到這裡
- 17:22恭喜你
- 17:22你手上就已經擁有一個完整的 RAG 系統了!
- 17:25現在你只要問一個問題
- 17:27R 會在後台把最相關的資料卡片撈出來
- 17:29A 把它們排好名,拼成一份小抄
- 17:32G 再用你剛剛調好 Temperature 的 AI 大腦
- 17:35生成出最後的嚴謹回答
- 17:37不過 AI 再怎麼說還是 non-deterministic 的
- 17:40也就是說每次都有一定的隨機性
- 17:42所以實際使用時
- 17:43一定還是有機會遇到分身答錯的時候
- 17:46這時候不要立刻就判斷是 AI 不夠聰明
- 17:48馬上換一個更貴的大模型
- 17:50因為只要你搞懂了前面這一整套邏輯
- 17:52你就可以順著這個邏輯
- 17:54非常科學的去做排查
- 17:56譬如說你問它
- 17:57巴菲特哪一年買下喜詩糖果?
- 17:58正確答案是1972年
- 18:00分身卻回答1980年代
- 18:03順著 R , A , G 由前到後這樣查
- 18:06第一步,看 R 的前半,資料端
- 18:08講1972年收購的那段原文
- 18:10當初切 Chunk 時有沒有被腰斬切壞?
- 18:13或是字幕辨識錯字了?
- 18:15如果小抄一開始就印壞了
- 18:16AI 當然不可能答對
- 18:18這時候的解決策略
- 18:19是回頭修復資料源
- 18:21或是調整切塊規則
- 18:22確保這段事實完整保留在一張卡片裡
- 18:26第二步,看 R 的後半,檢索端
- 18:28資料庫裡有這張卡片
- 18:29但第一輪粗撈候選名單時
- 18:31是不是把它給漏掉了?
- 18:32這代表原始資料根本沒被找出來
- 18:35這時候的解決策略
- 18:36可能就是把 Hybrid Search 裡的關鍵字權重拉高
- 18:39或是把海選數量從二十張放寬到五十張
- 18:42把粗撈的網子撒得更大一點
- 18:44第三步,看 A ,小抄端
- 18:46卡片撈出來了
- 18:47但 Re-ranking 時
- 18:48是不是被排在第十幾名
- 18:49根本沒擠進送給 AI 的前三名?
- 18:51這代表小抄找到了
- 18:53但沒遞到它手裡
- 18:54這時候的解決策略
- 18:55可能是換一個更好的 Re-ranking 模型
- 18:57或是把送給 AI 的名額放寬到前五張
- 19:00讓正確小抄能順利遞交
- 19:02第四步,才看 G ,模型端
- 19:05如果寫著1972年的卡片
- 19:06明明端端正正放在它眼前
- 19:08它卻還是講錯?
- 19:09這代表小抄就在眼前
- 19:11它卻看花了眼
- 19:12這時候的解決策略
- 19:13才輪到去檢查 System Prompt
- 19:15比如要求它先引用卡片中的年份再回答
- 19:17如果它依然理解錯誤
- 19:19這時才考慮升級更強的大模型
- 19:21實務上八成以上的翻車
- 19:23全都在前三步
- 19:24也就是 R 跟 A
- 19:25根本輪不到模型
- 19:26背後的原因也很簡單
- 19:28有在用 AI 的人都知道
- 19:29當你把十則資訊放到 AI 眼前
- 19:32然後請他根據這十則資訊去回答你的問題
- 19:34他回答正確的機率講道理是非常非常高的
- 19:38RAG 也可以這樣去理解
- 19:39如果你有把正確的
- 19:40且真正關鍵的資訊擺到 AI 眼前
- 19:43其實那樣的資訊量並不足以讓他開始出現幻覺
- 19:46所以當回答不如預期時
- 19:48記得要按照 RAG 的資料流動管線去做排查
- 19:50才不會亂槍打鳥
- 19:52就算你只是平常隨便玩玩 Claude Code 或 Codex
- 19:55也沒有要幫自己或企業架一套 RAG 系統
- 19:57我希望今天這支影片
- 19:59還是能給你帶來一點啟發
- 20:01畢竟 RAG 本質上其實就是在做一件事
- 20:03如何在有限的視窗裡
- 20:05把最高密度,最正確的資料端到 AI 眼前
- 20:08確保他的回答是有跡可循的
- 20:10搞懂 RAG 的原理之後
- 20:11當 Claude Code 改程式碼改到迷路
- 20:14開始鬼打牆時
- 20:15你會知道該立刻清理上下文
- 20:16只精準指定核心檔案
- 20:18不讓多餘雜訊稀釋它的注意力
- 20:20當你在丟了幾十頁的報告
- 20:22卻被 AI 答非所問時
- 20:24你一眼就知道是格式被切碎了
- 20:26懂得改餵帶有清楚小標題的 Markdown
- 20:27讓它精準抓取
- 20:29你不再是只能祈禱 AI 別胡說八道
- 20:31看運氣的抽卡玩家
- 20:32而是能主動控制資料品質的 Context Engineer
- 20:35RAG 不只是一項工程技術
- 20:37背後的邏輯更是一套
- 20:38如何與 AI 高效協作的 Context Engineering 思維
- 20:42如果你正在學習 AI
- 20:43想看更多實戰內容
- 20:44也希望有一群能一起討論的夥伴
- 20:46或是直接跟我一對一問答
- 20:48歡迎加入我們的 Gary AI 實戰營
- 20:50連結我會放在影片下方的資訊欄
- 20:53那以上就是今天的內容
- 20:54喜歡的話記得幫我按讚,追蹤,加分享
- 20:57這是我持續創作下去的動力
- 20:59我們下次見!
About this transcript
This page contains the full transcript of 從零搞懂 RAG,要搭個人或企業知識庫必學! by Gary Chen, generated from the public captions YouTube serves with the video. The transcript has 1,008 words across 679 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to choose a caption track available on the video.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.