WeHelp
Chroma 是一個輕量、開源的向量資料庫,專門為 AI 與大型語言模型(LLM)應用設計。
  1. 簡介、用途說明
  2. 下載、安裝、快速開始
  3. Chroma 運作模式
  4. 集合與資料管理
  5. 查詢相似資料
  6. RAG 檢索增強生成
簡介、用途說明
## 一、什麼是 Vector Database(向量資料庫)? Vector Database 是專門儲存、管理與搜尋「向量資料」的資料庫。 在 AI 應用中,文字、圖片、音訊或商品等資料,通常會被轉換成一串數字,例如: ```text [0.12, -0.35, 0.88, ...] ``` 這串數字稱為 **向量(Vector)**,通常用來表示資料的語意、特徵或相似性。 向量資料庫除了儲存向量,也會儲存: - 原始內容或文件 ID - Metadata,例如作者、日期、產品類別、權限 - 索引結構 - 向量相似度搜尋所需的資料 它的核心功能是: > 根據一個查詢向量,快速找出最相似的其他向量。 常見的相似度計算方式包括: - Cosine Similarity(餘弦相似度) - Euclidean Distance(歐氏距離) - Inner Product(內積) 向量資料庫通常會使用近似最近鄰搜尋(ANN,Approximate Nearest Neighbor)技術,例如 HNSW、IVF、PQ,以提升大型資料集的搜尋速度。 常見的 Vector Database 包括: - Pinecone - Milvus - Weaviate - Qdrant - Chroma - FAISS - Elasticsearch / OpenSearch 的向量搜尋功能 - PostgreSQL 搭配 pgvector --- ## 二、什麼是 Embedding Model(嵌入模型)? Embedding Model 是一種能將資料轉換為向量的 AI 模型。 例如,輸入兩句意思相近的句子: ```text 今天天氣很好 今天的天氣很不錯 ``` Embedding Model 可能會將它們轉換成兩個距離很近的向量。 相反地,語意差異很大的內容,通常會產生距離較遠的向量。 Embedding Model 可以處理: - 文字 - 圖片 - 音訊 - 影片 - 程式碼 - 商品或使用者行為資料 常見的文字嵌入模型包括: - OpenAI Embeddings - Cohere Embed - BGE - E5 - Sentence Transformers - Google Gemini Embedding - Voyage AI Embeddings --- ## 三、Vector Database 與 Embedding Model 的關聯性 兩者的關係可以簡化為: > **Embedding Model 負責把資料轉成向量,Vector Database 負責儲存及搜尋這些向量。** 典型流程如下: ```text 原始資料 ↓ Embedding Model ↓ 向量 ↓ Vector Database 儲存 ``` 當使用者提出問題時: ```text 使用者問題 ↓ 同一個 Embedding Model 轉成查詢向量 ↓ 向量資料庫進行相似度搜尋 ↓ 找出相關文件或資料 ↓ 交給 LLM 產生回答 ``` 例如,企業知識庫問答系統的流程: 1. 將公司文件切成多個段落 2. 使用 Embedding Model 將每個段落轉成向量 3. 將向量與文件內容存入 Vector Database 4. 使用者提問時,將問題轉成向量 5. 搜尋最相似的文件段落 6. 將搜尋結果提供給大型語言模型 7. LLM 根據這些內容回答問題 這種架構通常稱為: > **RAG(Retrieval-Augmented Generation,檢索增強生成)** 需要注意的是,建立資料庫與查詢時通常應使用相容的 Embedding Model,否則向量空間不一致,搜尋品質可能會明顯下降。 --- ## 四、常見運用場景 ### 1. 語意搜尋 傳統關鍵字搜尋是比對字詞;向量搜尋則是比對語意。 例如搜尋: ```text 如何申請年假? ``` 即使文件寫的是: ```text 員工休假申請流程 ``` 向量搜尋仍可能找到相關內容。 應用於: - 企業文件搜尋 - 法規與合約搜尋 - 客服知識庫 - 網站搜尋 - 程式碼搜尋 --- ### 2. RAG 智慧問答 將企業內部文件、產品手冊、FAQ 或規章制度建立成向量索引,讓聊天機器人根據真實資料回答問題。 常見於: - 企業內部 AI 助理 - 客服機器人 - HR 問答系統 - IT Help Desk - 法務與合規問答 優點是可以讓 LLM 參考最新或專屬資料,而不必重新訓練整個模型。 --- ### 3. 推薦系統 將商品、影片、文章或使用者偏好轉成向量,再尋找相似或適合的項目。 例如: - 電商商品推薦 - 影片推薦 - 音樂推薦 - 新聞推薦 - 職缺推薦 - 課程推薦 --- ### 4. 圖片與多媒體搜尋 將圖片轉成向量後,可進行: - 以圖搜圖 - 相似商品搜尋 - 人臉或物件比對 - 影像分類輔助 - 影片內容搜尋 - 圖片與文字跨模態搜尋 例如使用者輸入「白色運動鞋」,系統可以找出視覺上相似的商品圖片。 --- ### 5. 文件去重與相似內容偵測 透過向量相似度,可以找出: - 重複文件 - 相似新聞 - 抄襲內容 - 重複客服問題 - 相似合約條款 - 相似程式碼 --- ### 6. 異常偵測 如果某筆資料與正常資料的向量距離非常遠,可能代表它是異常資料。 應用於: - 網路安全 - 金融交易 - 製造業瑕疵偵測 - 系統 Log 分析 - 使用者行為分析 --- ### 7. 個人化與智慧代理人 AI Agent 可以利用向量資料庫儲存: - 使用者偏好 - 對話歷史 - 長期記憶 - 任務紀錄 - 使用者相關文件 讓系統在未來對話中回憶過往資訊,提供更個人化的服務。 --- ## 五、向量資料庫與傳統資料庫的差異 | 比較項目 | 傳統資料庫 | 向量資料庫 | |---|---|---| | 主要資料 | 表格、文字、數值 | 向量與相關 Metadata | | 查詢方式 | 精確比對、條件查詢 | 相似度搜尋 | | 常見問題 | `WHERE id = 123` | 找出最相似的前 10 筆資料 | | 主要用途 | 交易、訂單、帳務 | 語意搜尋、推薦、RAG | | 代表技術 | SQL、索引、JOIN | ANN、HNSW、向量距離 | | 是否可互相取代 | 通常不能完全取代 | 通常與傳統資料庫搭配 | 實務上常見的架構是: - 傳統資料庫儲存交易與正式資料 - Vector Database 儲存向量與搜尋索引 - 物件儲存系統保存原始文件、圖片或音訊 --- ## 六、相關職務 ### 1. AI / Machine Learning Engineer 主要工作: - 選擇與使用 Embedding Model - 建立 RAG、推薦或搜尋系統 - 訓練、微調或評估模型 - 改善搜尋及回答品質 需要技能: - Python - Machine Learning - NLP - Transformer - Embedding - LLM - 模型評估 --- ### 2. Generative AI Engineer / LLM Engineer 主要工作: - 建立聊天機器人與 AI Agent - 設計 RAG Pipeline - 串接 LLM、Embedding Model 與 Vector Database - 管理 Prompt、上下文與工具呼叫 常見技能: - LLM API - Prompt Engineering - RAG - LangChain、LlamaIndex 等框架 - Vector Database - API 與後端開發 --- ### 3. Search / Relevance Engineer 主要工作: - 建立搜尋引擎 - 調整關鍵字搜尋與向量搜尋 - 設計混合搜尋(Hybrid Search) - 改善搜尋排序與召回率 需要了解: - Information Retrieval - BM25 - 向量搜尋 - Ranking - Precision、Recall、MRR、NDCG --- ### 4. Data Engineer 主要工作: - 建立資料清理與匯入流程 - 將文件切分、轉換並寫入向量資料庫 - 管理 Metadata、資料更新及版本 - 建立資料管線與批次處理 常見技能: - SQL - Python - ETL / ELT - Airflow - Spark - Cloud Storage - Database Architecture --- ### 5. Backend Engineer 主要工作: - 開發向量搜尋 API - 整合使用者權限、資料庫與 AI 模型 - 處理快取、併發、延遲與可靠性 - 將 AI 功能整合進產品 需要技能: - Python、Java、Go、Node.js 等 - REST API / gRPC - PostgreSQL、Redis - 微服務 - 雲端架構 --- ### 6. MLOps / AI Platform Engineer 主要工作: - 部署與管理 Embedding Model - 管理模型版本與向量索引 - 建立監控、評估及重新索引機制 - 控制推論成本與系統延遲 常見技能: - Docker、Kubernetes - CI/CD - Cloud Platform - Model Serving - Monitoring - GPU 與效能最佳化 --- ### 7. 資料科學家與推薦系統工程師 主要工作: - 分析使用者與商品向量 - 設計推薦演算法 - 進行相似度分析與分群 - 評估推薦效果與商業指標 --- ## 七、實務上常見的挑戰 導入向量搜尋並不只是把資料放進資料庫,還需要處理: - 文件如何切分(Chunking) - 選擇哪一個 Embedding Model - 不同語言與專業領域的支援 - 向量維度與儲存成本 - 相似度門檻設定 - Metadata 過濾與權限控制 - 資料更新後是否重新產生向量 - 搜尋結果的準確率與召回率 - 個資與機密資料保護 - 向量資料庫與 LLM 的整體延遲及成本 --- ## 總結 可以用一句話理解: > **Embedding Model 將資料轉換成具有語意的數字表示;Vector Database 則負責有效率地儲存、管理和找出相似的向量。** 兩者是現代 AI 搜尋、推薦、RAG 與智慧應用的重要基礎。相關職務則涵蓋 AI 工程師、LLM 工程師、資料工程師、搜尋工程師、後端工程師、MLOps 工程師及推薦系統工程師等。
相關學習地圖、教學課程
Python 人工智慧
建議完成「Python 資料工程」教程後,繼續學習以下課程。