編譯:chux
出品:ATYUN訂閱號
EuclidesDB,一個多模型機器學習功能數據庫,發佈了0.1版本。EuclidesDB 0.1與PyTorch緊密耦合,爲模型特徵空間中包含和查詢數據提供後端。
EuclidesDB提供了一個簡單的獨立服務器,它使用一個簡單的API,使用高效的序列化和協議來存儲,構建索引和提供請求。它提供了API,用於將新數據包含到數據庫中並在以後可供查詢。由於它使用gRPC(gRPC遠程過程調用)進行通信,因此可以使用多種語言來使用API。
如前所述,它與PyTorch緊密集成,其中libtorch用作運行跟蹤模型的後端。因此它提供了一個非常簡單的管道,可以將新模型集成到Euclides DB C ++後端。
EuclidesDB基於兩個主要概念:
- Module/Model是可互換使用的術語,用於表示每個計算。
- Model Space表示由模型生成的特徵空間。
當用戶將新圖像或其他類型的數據添加到數據庫中時,他們需要指定應該使用哪個模型來索引此數據。然後將此數據轉發到指定的模型中,並將其功能保存到本地鍵值數據庫中。
類似地,當用戶在模型空間上查詢類似項時,他們需要使用新圖像發出請求並指定他們想要在哪些模型空間中查找類似項。然後返回每個模型空間的類似項目及其相關項。
EuclidesDB v0.1的特點:
- 使用gRPC作爲協議通信,使用protobuf作爲與客戶端API通信的序列化機制。
- 使用LevelDB進行數據庫序列化。
- 使用LSH(局部敏感哈希算法)實現近鄰。
- 通過libtorch實現PyTorch集成。
- 爲新的自定義調優模型提供簡單的集成。
EuclidesDB目前還處於初始版本,未來版本將引入許多新功能。在強大的API設計穩定之前,客戶端API也有望在即將發佈的版本中進行更改。
獲取:github.com/perone/euclidesdb/