---
# System prepended metadata

title: 'DAY-2 : 5-days GenAI course. Unit 2: “Embeddings and Vector Stores/Databases”'
tags: ['[Speech]']

---




## :tropical_fish:重點技術介紹
* Understanding Embeddings: Why they are essential for handling multimodal data and their diverse applications.
Embedding Techniques: Methods for mapping different data types into a common vector space.  
* Efficient Management: Techniques for storing, retrieving, and searching vast collections of embeddings.  
* Vector Databases: Specialized systems for managing and querying embeddings, including practical considerations for production deployment.  
* Real-World Applications: Concrete examples of how embeddings and vector databases are combined with large language models (LLMs) to solve real-world problems.  

### 1. 嵌入 (Embeddings) 和向量數據庫 (Vector databases)

介紹嵌入技術和向量數據庫，說明如何將專業資料和最新生產技術整合至大型語言模型應用中。
探討嵌入的基礎概念，如何將文本、圖像、音頻等不同類型的數據轉換為具有語義的數值向量，用於下游任務。



### 2. 相似度比對：

使用近似最近鄰 (Approximate Nearest Neighbor) 演算法進行相似度搜尋，確保在大量嵌入中找到與查詢最相似的項目，並且實現高效和低成本的運行。  

* 補充:
近似最近鄰（Approximate Nearest Neighbor, ANN）是一種***資料搜尋技術***，主要用於在**高維數據**空間中快速找到與查詢點最接近的資料點。這在處理大量數據的情境中非常實用，特別是圖像、文本、聲音和其他多媒體資料的搜尋和比對。
ANN 的關鍵優勢在於**能在速度和準確性之間達成平衡**。相較於傳統的精確最近鄰方法，ANN 通過引入一定的近似性來大幅減少計算需求，加快搜尋速度。它通常使用特定的資料結構，如KD樹、局部敏感哈希（Locality-Sensitive Hashing, LSH）等，來有效地分組和索引資料，以便在高維空間中快速找到接近的資料點。
* 相似度距離指標
![image](https://hackmd.io/_uploads/BkoBbF-fye.png)



ANN 的應用包括圖像檢索、推薦系統、自然語言處理中的相似度計算等，都是利用它的高效性來應對龐大的資料集搜尋需求。  
### 3. 向量存儲技術：

介紹支援近似最近鄰演算法的向量數據庫，例如分層導航小世界 (Hierarchical Navigable Small World, HNSW)，並說明在生產環境中管理這些數據庫的考量因素。
* [HNSW](https://arxiv.org/abs/1603.09320)補充:
它透過分層網絡結構（hierarchical network）和小世界性質，使搜尋效率極高，特別適合在高維度和大規模數據的情況下應用。
![image](https://hackmd.io/_uploads/BkqSMF-fyx.png)


### 4. 嵌入的應用：

探討預訓練嵌入的應用，如分類、推薦和排序問題中，如何利用嵌入豐富的表示以提升系統效能。

### 5. RAG (Retrieval-Augmented Generation) 系統：

建立基於 RAG 和 Chroma DB 的文件問答系統，解決 LLM 無法存取即時動態資訊的問題。RAG 系統分為三階段：**嵌入與索引**、**檢索**和**生成**。

### 6. 嵌入的相似度應用：

使用文本嵌入進行文件間語義相似度的計算，並通過熱力圖視覺化表示文件間的相似程度，用於文件分群、排序和檢索系統。

### 7. 嵌入的下游應用模型：

利用嵌入作為豐富表示的來源，搭配小型分類模型，進行新聞群組帖子的分類任務。  



### 8. 嵌入模型用於新聞分群的應用：

利用嵌入（embeddings）模型進行新聞分類，將嵌入作為輸入，無需從頭訓練模型，減少了資料需求和模型的深度複雜度。
嵌入提供了良好的起始點，即使在有限數據下也能快速提高驗證準確率。在僅七個 Epoch 中即取得了不錯的效果，適合用於數據量較少的情境。
> 
> 感謝對嵌入和向量數據庫貢獻的各方：
> 
> 感謝開源工具如 Chroma 和 Caris 團隊的貢獻，讓學生能夠了解嵌入和向量數據庫的工作方式。
> 特別感謝協助課程的主持人和 AI 課程的負責人，包括 Discord 上即時回答問題的多位課程版主，以及來自 DeepMind 和 Google Cloud AI 團隊的專家。  

  
### 9. 嵌入和向量數據庫的基礎知識：

**嵌入將真實世界的對象（如文本、圖像、視頻）轉換為數值向量**，並通過幾何距離表示對象的語義相似性，常用於推薦系統、語義搜尋和分類。
向量數據庫是專門管理這些嵌入向量的存儲解決方案，支援近似最近鄰（Approximate Nearest Neighbor）搜尋，使嵌入的相似度計算更加高效。

### 10. 向量搜尋方法：

向量搜尋透過計算查詢嵌入與存儲嵌入之間的距離來尋找最相似的項目。
為加速搜尋，大量應用近似最近鄰演算法，以減少運算量。主要方法包括基於圖的 HNSW 和樹基方法（如 Google 的 SCaNN）。

### 11. Google Cloud 中的向量數據庫支持：

Google Cloud 提供嵌入模型和向量搜尋服務，支援 AlloyDB、Cloud Spanner、BigQuery 等工具中的嵌入功能，使開發者能無縫整合向量數據庫與大數據分析平台。

### 12. 開源向量數據庫與專有向量數據庫的優缺點：

* 開源數據庫具**成本低、靈活性高的優勢，並能避免供應商鎖定**，但需平衡管理和**維護成本**、可能的**數據碎片化風險**及支持有限(?)等缺點。
e.g.:  
    * FAISS
由Meta開發，FAISS是一個非常流行的向量檢索庫，特別針對大規模數據和高效的向量比對。
    * Annoy
Annoy（Approximate Nearest Neighbors Oh Yeah）是Spotify開發的開源工具，主要針對快速近似最近鄰搜尋。
    * HNSWlib
基於HNSW演算法的實現，提供了快速和精準的ANN檢索。由於其優秀的性能和易用性，HNSWlib已被廣泛用於圖像檢索、文本相似度等應用領域。

* 專有向量數據庫則具備**更高的穩定性**、支持和進階功能，但可能面臨較高的成本和**供應商鎖定風險**，且定制**靈活性相對較低**。
e.g.:  
    * Amazon OpenSearch Service(Amazon, 原來的Elasticsearch）
    現在支援向量搜尋功能，為企業提供了結合結構化和非結構化數據的解決方案，適用於搜尋引擎和推薦系統。

    * Google Vertex AI Matching Engine(Google)
是一個高性能的向量檢索服務，專為大規模和低延遲的應用場景設計。它在Google雲端上提供強大的擴展性和管理工具，適合需要深度學習模型和語義搜尋的企業。

    * Azure Cognitive Search(微軟)
提供了向量搜尋功能，結合了Azure的AI能力和雲端基礎設施，適合需要結合語義理解和搜尋功能的應用場景。

### 13. 傳統數據庫的嵌入支持：

越來越多傳統數據庫和數據倉庫（如 PostgreSQL 的 PG Vector 擴展和 Google Cloud 的 AlloyDB、Spanner、BigQuery）將嵌入支持作為一級功能，允許在單一數據庫中整合嵌入，避免數據重複並利用數據庫既有的先進功能。


### 14. 長上下文窗口與 Vector 資料庫的互補性

Vector 資料庫能快速檢索大量資料，將最相關的內容放入上下文中供 LLM（大型語言模型）進行推理，使兩者互補。
藉由 Vector 資料庫進行初步檢索後，再使用 LLM 處理多樣的資料，有助於提升準確度並減少模型推理的資源耗費。
搜尋根據的應用與私密資料檢索

搜尋根據技術允許基於網路進行答案根據，但企業或個人專有資料需依賴 Vector 資料庫進行私密檢索，提升其應用場景的靈活性。
### 15. Vector 資料庫的挑戰與優化機會

為提升使用體驗及效能，應增進 Vector 資料庫與其他應用邏輯的整合，並自動優化篩選條件，如在檢索前或後進行篩選，以提高效能。

### 16. 資料庫整合 AI 功能的好處

在傳統資料庫中引入 AI 功能，不僅可以讓更多開發者受益，還能減少對新技術的學習需求，讓使用者更輕鬆上手 AI 技術。

### 17. 資訊檢索錯誤情況的解決方法

若檢索到的文件無法回答查詢，可採用動態代理系統（agentic system），讓 AI 代理根據查詢情境，靈活採取不同步驟，使用多種工具獲取最相關的內容。

### 18. 嵌入式模型的技術背景

傳統大型語言模型（如 Decoder-only 模型）採用單向注意力機制，適合文字生成；但為了嵌入應用，需具備雙向注意力。透過進一步訓練，可讓嵌入式模型更具雙向關注能力。

### 19. 傳統嵌入生成方法的未來展望

雖然目前多模態嵌入模型仍無法精確地識別影像內的文字，但未來可能結合文字與影像識別技術，達成更強的嵌入表示。

### 20. 問題擴展與技術說明

近期提到兩項技術：**長上下文窗口**（如 Gemini 模型可支援更長的 tokens 數）和**搜尋根據**（search grounding）。

* 長上下文窗口：儘管模型可以處理更多的 tokens，但現實資料庫或語料庫往往需要處理億或兆計的 tokens，同時長上下文窗口的運算成本高昂。
* 搜尋根據：能夠發送網路搜尋並驗證答案，但若需要針對私密資料進行根據，仍需依賴 Vector 資料庫。


## Quiz


* :tropical_fish:問題：哪些模態可以轉換為嵌入？
選項：
(A 圖像
(B 影片
(C 文字
(D 以上皆可
> 答案：D 以上皆可
> 說明：不僅文字可以轉換為嵌入，還可建立多模態（multimodal）嵌入來涵蓋圖像、影片、音訊等多種模態，用於更豐富的應用場景。
> SCAN 演算法在近似最近鄰（Approximate Nearest Neighbor, ANN）搜尋中的主要優勢

* :tropical_fish:問題：以下哪項是 SCAN 演算法在近似最近鄰搜尋中的主要優勢？
選項：
(A 開源且廣泛可用
(B 適合高維數據，具備出色的速度與準確性權衡
(C 僅返回精確匹配結果
(D 基於簡單的哈希技術，運算負擔低
> 答案：B 適合高維數據，具備出色的速度與準確性權衡
> 說明：SCAN 針對高維數據設計，在速度和準確性間取得良好平衡，使其在 Google 的應用中具備高效和擴展性。
> Bag of Words 模型生成文件嵌入的主要弱點

* :tropical_fish:問題：以下哪項為 Bag of Words 模型在生成文件嵌入中的主要缺陷？
選項：
(A 忽略詞序和語義意義
(B 計算成本高，需要大量數據
(C 無法用於語義搜尋或主題發現
(D 只適用於短文件，無法捕捉長距離依賴
> 答案：A 忽略詞序和語義意義
> 說明：Bag of Words 模型不考慮詞語的順序和語義，無法反映文本的語義結構。
> 嵌入用於搜尋時的常見挑戰及解決方法

* :tropical_fish:問題：使用嵌入進行搜尋時的常見挑戰，以及如何解決？
選項：
(A 嵌入無法處理大型數據集，建議使用較小數據集
(B 嵌入總優於傳統搜尋，不需面對挑戰
(C 嵌入無法捕捉字面信息，可與全文檢索結合
(D 嵌入頻繁變動，應避免更新
> 答案：C 嵌入無法捕捉字面信息，可與全文檢索結合
> 說明：嵌入模型可能無法準確反映字面意義，因此可結合全文檢索以提高結果準確性，並構建更強大和穩健的系統。
> 使用局部敏感哈希（Locality Sensitive Hashing, LSH）進行向量搜尋的主要優勢

* :tropical_fish:問題：使用局部敏感哈希（LSH）進行向量搜尋的主要優勢是什麼？
選項：
(A 保證找到精確的最近鄰
(B 通過將相似項目分組到哈希桶中來縮小搜尋空間
(C 僅適用於高維向量
(D 提供速度與準確性最佳平衡 
> 答案：B 通過將相似項目分組到哈希桶中來縮小搜尋空間
> 說明：LSH 能夠將相似項目分組到哈希桶中，有效減少搜尋空間，使搜尋速度提升。