本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Object2Vec 演算法
Amazon SageMaker AI Object2Vec 演算法是一種可高度自訂的一般用途神經內嵌演算法。它可以學習高維度物件的低維度密集內嵌。透過下列方式學習內嵌:將原始空間物件組之間的關係語意保留在內嵌空間中。例如,您可以使用學習的內嵌有效率地計算物件的最鄰近項,並視覺化低維度空間中相關物件的自然叢集。您也可以將內嵌做為下游受監督任務中對應物件的功能,例如分類或迴歸。
Object2Vec 會針對 SageMaker AI 中最佳化的單字,將眾所周知的 Word2Vec 內嵌技術進行一般化BlazingText 演算法。如需討論如何將 Object2Vec 套用至某些實際使用案例的部落格文章,請參閱 Amazon SageMaker AI Object2Vec 簡介
主題
Object2Vec 演算法的 I/O 介面
您可以在多種輸入資料類型上使用 Object2Vec,包括下列範例。
輸入資料類型 | 範例 |
---|---|
句子/句子對 |
“多名男性參與的一場足球比賽。” 和 “一些男士正在運動。” |
標籤/序列對 |
影片 “鐵達尼號” 的風格標籤,例如 “浪漫” 和 “戲劇”,以及其簡短說明:“詹姆斯卡梅隆的鐵達尼號是一部史詩級精彩紛呈的浪漫故事,但 R.M.S. 鐵達尼號的首航卻發生不幸。她是她那個時代最奢華的郵輪 (一艘夢之船),最終在1912 年 4 月 15 日凌晨於北大西洋的冰冷水域中造成 1,500 多人死亡。” |
客戶/客戶對 |
Jane 的客戶 ID 和 Jackie 的客戶 ID。 |
產品/產品對 |
足球的產品 ID 和籃球的產品 ID。 |
項目審核使用者/項目對 |
使用者 ID 和她購買的項目,例如蘋果、梨子和橘子。 |
若要將輸入資料轉換為支援的格式,您必須預先處理資料。目前,Object2Vec 可原生支援兩種類型的輸入:
-
分散式權杖,這會以單一
integer-id
的清單表示。例如:[10]
。 -
一連串分散式權杖,這會以
integer-ids
的清單表示。例如:[0,12,10,13]
。
每一對中的物件可以是非對稱的。例如,對可以是 (權杖、序列) 或 (權杖、權杖) 或 (序列、序列)。若是權杖輸入,演算法支援簡單內嵌做為相容的編碼器。若是權杖向量的序列,演算法支援以下編碼器:
-
平均集區內嵌
-
階層卷積神經網路 (CNN)、
-
多層雙向長短期記憶體 (BiLSTM)
每一對的輸入標籤可以是以下其中一個:
-
分類標籤,表示配對中物件之間的關係
-
分數,表示兩個物件之間的相似性強度
若是用於分類的分類標籤,演算法支援跨熵損失函式。若是用於迴歸的評分/分數標籤,演算法支援均方誤差 (MSE) 損失函式。當您建立模型訓練任務時,請使用 output_layer
超參數指定這些損失函式。
適用於 Object2Vec 演算法的 EC2 執行個體建議
您使用的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體類型,取決於您是訓練還是執行推論。
在 CPU 上使用 Object2Vec 演算法來訓練模型時,請從 ml.m5.2xlarge 執行個體開始。若為 GPU 上的訓練,從 ml.p2.xlarge 執行個體開始。如果在此執行個體上訓練的時間太長,您可以使用較大的執行個體。目前,Object2Vec 演算法只能在單一機器上訓練。不過,它提供對多種 GPU 的支援。Object2Vec 可支援 P2、P3、G4DN 和 G5 GPU 執行個體系列,進行訓練和推論。
針對擁有深度類神經網路的 Object2Vec 模型訓練推論,建議您使用 ml.p3.2xlarge GPU 執行個體。由於 GPU 記憶體不足,無論 GPU 最佳化:分類或廻歸 或 GPU 最佳化:編碼器內嵌 推論網路是否載入 GPU,都會指定要最佳化 INFERENCE_PREFERRED_MODE
環境變數。
Object2Vec 範例筆記本
注意
若要在筆記本執行個體上執行筆記本,請參閱存取範例筆記本。若要在 Studio 上執行筆記本,請參閱建立或開啟 Amazon SageMaker Studio Classic Notebook。