iT邦幫忙

2026 iThome 鐵人賽

DAY 19
0
ChatGPT & Codex

AI 不只會聊天:30 天打造 VoCare 智慧陪伴系統系列 第 19 篇

Day 19|Chunking 是什麼?為什麼 RAG 不能直接丟整份文件?

  • 分享至 

  • xImage
  •  

前幾天整理了 RAG、Embedding 和 Vector Database。

目前流程大概可以整理成:

文件
→ 建立 Embedding
→ 存進 Vector Database
→ 搜尋相關內容
→ AI 回答

但實際上,在文件建立 Embedding 之前,還有一個很重要的步驟:

Chunking。

也就是把一份完整文件,切成比較小的內容單位。


什麼是 Chunking?

Chunking 可以簡單理解成:

把大型文件拆成多個較小的段落,再分別處理。

例如一份 30 頁的文件,不會直接把整份文件當成一筆資料。

而是先變成:

完整文件
→ Chunk 1
→ Chunk 2
→ Chunk 3
→ ……

接著每個 Chunk 再分別建立 Embedding,存進 Vector Database。

之後使用者提問時,系統只需要找出最相關的幾個 Chunk。


為什麼不能直接使用整份文件?

如果直接把整份文件當成一個單位,文件裡可能同時包含很多不同主題。

例如一份照護資料可能同時包含:

  • 睡眠
  • 飲食
  • 運動
  • 情緒
  • 用藥注意事項

如果使用者只詢問睡眠,系統卻拿到整份文件,會混入大量無關資訊。

所以 Chunking 的目的之一,就是:

讓搜尋的範圍變得更精準。


Chunk 太大會發生什麼?

如果每個 Chunk 太大,一個 Chunk 裡可能同時包含很多不同內容。

這樣即使搜尋到了正確的 Chunk,裡面還是會有很多不相關資訊。

結果就是:

搜尋得到,但不夠精準。


Chunk 太小也不一定比較好

但 Chunk 也不能切得太小。

例如原本一句完整內容是:

規律的生活作息有助於維持良好的睡眠品質。

如果被拆得太細,原本完整的語意就可能被切斷。

這樣即使搜尋到其中一小段,也可能因為缺少上下文而無法正確理解。

所以 Chunking 並不是:

切得越小越好。

真正要找到的是:

搜尋精準度和上下文完整度之間的平衡。


上一篇
Day 18|Vector Database:向量要怎麼存,又怎麼被找出來?
下一篇
Day 20|Chunk 到底怎麼切?從 Chunk Size、Overlap 到 Metadata
系列文
AI 不只會聊天:30 天打造 VoCare 智慧陪伴系統 共 22 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言