iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0

一、向量化的目的

簡單來說就是將文字轉換成高維度的數字序列-向量。
這串數字序列會捕捉文字的語義,讓意義相近的文字擁有相似的數字序列。

二、如何進行向量化

使用Hugging Face的嵌入模型來完成這個轉換。Hugging Face 是一個開源社群,提供了大量已經訓練好的 AI 模型。我們只需要選擇一個適合的模型,它就會自動幫我們完成向量化的工作。

以下是範例程式碼:

# 昨天處理好的物件列表
processed_documents = [
  Document(page_content="景點名稱:士林夜市\n地址:台北市士林區\n介紹:士林夜市是台北市範圍最大的夜市,也是國外觀光客造訪台北必去的觀光景點。",
           metadata={"source": "台北旅遊資料集", "title": "士林夜市"}),
  Document(page_content="景點名稱:清境農場\n地址:南投縣仁愛鄉\n介紹:清境農場以其綠色草坪、綿羊秀和壯麗的山景聞名。",
           metadata={"source": "南投旅遊資料集", "title": "清境農場"}),
  # ... 其他 Document 物件
]

def generate_embeddings(documents: List[Document]):
  print("開始載入 HuggingFace 嵌入模型...")
  embeddings_model_name = "sentence-transformers/all-MiniLM-L6-v2"
  embeddings = HuggingFaceEmbeddings(model_name=embeddings_model_name)
  
  print("模型載入完成。開始將文件轉換為向量...")
  
  # 使用 embeddings.embed_documents 將整個文件列表轉換為向量
  document_vectors = embeddings.embed_documents([doc.page_content for doc in documents])
  
  print(f"成功將 {len(documents)} 個文件轉換為向量。")
# 執行向量化函數
vectors, embeddings_instance = generate_embeddings(processed_documents)

三、結語

當所有旅遊知識塊都擁有了專屬的「指紋」後,就可以將它們儲存起來,在需要時進行高速搜尋。

今天的向量化是整個RAG流程的基礎。
明天,我們會把這些向量儲存到FAISS向量資料庫中,讓AI顧問擁有一個真正的知識庫,謝謝各位今天的觀看。


上一篇
【Day5】資料集加工
下一篇
【Day7】串連 RAG:結合FAISS與嵌入模型
系列文
智慧旅遊顧問--結合 LLM 與 RAG 架構的台灣旅遊資訊助手8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言