🚀 免費嘗試 Zilliz Cloud,完全托管的 Milvus,體驗速度提升 10 倍!立即嘗試

milvus-logo
LFAI
  • Home
  • Blog
  • 建立由 Milvus 向量資料庫支援的智慧型衣櫃客製化系統

建立由 Milvus 向量資料庫支援的智慧型衣櫃客製化系統

  • Engineering
July 08, 2022
Yiyun Ni

cover image 封面圖片

如果您正在尋找能完美融入臥室或試衣間的衣櫃,我敢打賭大多數人都會想到量身訂做的衣櫃。然而,不是每個人的預算都能負擔那麼多。那麼現成的衣櫃又如何呢?這類衣櫃的問題是,它們很可能無法滿足您的期望,因為它們不夠靈活,無法滿足您獨特的儲存需求。此外,在網路上搜尋時,您很難用關鍵字來概括您要找的衣櫃類型。很有可能,您在搜尋方塊中輸入的關鍵字(例如:有首飾托盤的衣櫃)與搜尋引擎中的定義(例如:有內嵌拉出托盤的衣櫃)大不相同。

但是多虧了新興科技,我們有了解決方案!家具零售集團 IKEA 提供了一款廣受歡迎的設計工具PAX wardrobe,讓使用者可以從許多現成的衣櫃中選擇,並客製化衣櫃的顏色、尺寸和內部設計。無論您需要的是懸掛空間、多層置物架或內部抽屜,這個智慧型衣櫃客製化系統總能滿足您的需求。

要使用這個智慧型衣櫃設計系統找到或打造您理想中的衣櫃,您需要

  1. 指定基本要求 - 衣櫃的形狀 (一般、L 型或 U 型)、長度和深度。
  2. 指定您的儲存需求和衣櫃內部組織(例如:需要懸掛空間、抽拉式褲架等)。
  3. 增加或移除衣櫃的抽屜或層板等部分。

然後您的設計就完成了。簡單輕鬆!

pax system PAX 系統

使這樣的衣櫃設計系統得以實現的一個非常關鍵的組成部分是向量資料庫。因此,本文旨在介紹用於建立以向量相似性搜尋為動力的智慧型衣櫃訂製系統的工作流程和相似性搜尋解決方案。

跳至

系統概述

為了提供這樣一個智慧型衣櫃客製化工具,我們需要先定義業務邏輯,並瞭解物品屬性和使用者旅程。衣櫃及其組件,例如抽屜、托盤、架子,都是非結構化的資料。因此,第二步是利用人工智能演算法和規則、先驗知識、物品描述等,將這些非結構化資料轉換為電腦可以理解的資料類型 - 向量!

Customization tool overview 客製化工具概觀

有了產生的向量,我們需要強大的向量資料庫和搜尋引擎來處理它們。

tool architecture 工具架構

客製化工具利用一些最流行的搜尋引擎和資料庫:Elasticsearch、Milvus 和 PostgreSQL。

為什麼是 Milvus?

衣櫃元件包含高度複雜的資訊,例如顏色、形狀和內部組織等。然而,將衣櫃資料保存在關係資料庫的傳統方式遠遠不夠。目前流行的方式是使用嵌入技術將衣櫃轉換成向量。因此,我們需要尋找一種專門用於向量儲存和相似性搜尋的新型資料庫。在探究了幾種流行的解決方案後,Milvus向量資料庫以其優異的效能、穩定性、相容性和易用性而被選中。下圖是幾種流行的向量搜尋解決方案的比較。

solution comparison 解決方案比較

系統工作流程

System workflow 系統工作流程

使用 Elasticsearch 依據衣櫃尺寸、顏色等進行粗略篩選。然後,篩選結果會經過 Milvus 向量資料庫進行相似性搜尋,並根據結果與查詢向量的距離/相似性進行排序。最後,根據業務洞察力來整合結果並進一步精煉。

資料流程

衣櫃客製化系統與傳統的搜尋引擎和推薦系統非常相似。它包含三個部分:

  • 離線資料準備,包括資料定義與產生。
  • 線上服務,包括召回和排序。
  • 基於商業邏輯的資料後製處理。

Data flow 資料流程

離線資料流程

  1. 使用業務洞察力定義資料。
  2. 使用先驗知識定義如何結合不同元件並將其組成衣櫃。
  3. 辨識衣櫃的特徵標籤,並將特徵編碼為.json 檔案中的 Elasticsearch 資料。
  4. 將非結構化資料編碼成向量,準備召回資料。
  5. 使用向量資料庫 Milvus 對上一步獲得的召回結果進行排序。

offline data flow 離線資料流程

線上資料流程

  1. 接收使用者的查詢請求,並收集使用者資料。
  2. 透過識別使用者對衣櫃的需求來瞭解使用者的查詢。
  3. 使用 Elasticsearch 進行粗搜尋。
  4. 根據 Milvus 中向量相似度的計算,對粗略搜尋得到的結果進行評分和排序。
  5. 在後端平台上對結果進行後期處理和整理,生成最終結果。

online data flow 線上資料流程

資料後處理

每家公司的業務邏輯各不相同。您可以運用公司的業務邏輯,為結果加上最後的修飾。

系統示範

現在讓我們看看我們建立的系統實際上是如何運作的。

使用者介面 (UI) 顯示衣櫃元件不同組合的可能性。

每個組件都以其特徵 (尺寸、顏色等) 標示,並儲存於 Elasticsearch (ES)。在 ES 中儲存標籤時,有四個主要資料欄位需要填寫:ID、標籤、儲存路徑和其他支援欄位。ES 和標籤資料用於粒度召回和屬性篩選。

es es

然後使用不同的 AI 演算法,將衣箱編碼成向量集。向量集儲存在 Milvus 中,用於相似性搜尋和排序。此步驟會返回更精緻、更準確的結果。

Milvus Milvus

Elasticsearch、Milvus 和其他系統元件共同構成客製化設計平台的整體。在回憶過程中,Elasticsearch 與 Milvus 的特定領域語言 (DSL) 如下。

dsl dsl

尋找更多資源?

瞭解 Milvus 向量資料庫如何為更多 AI 應用程式提供動力:

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started

Like the article? Spread the word

繼續閱讀