我正在做一些NLP工作,並且有由Tensorflow培訓的模型。我提供了一些API來完成使用這些模型的單詞剪切並通過Celery調度請求。如何在不同的芹菜任務工作人員中共享張量流模型
的情況是:
芹菜將派遣任務,不同的工人(約4-5),因此每個工人必須加載模型之上,因此內存被佔用了不少。
那麼任何方式來分享工人之間的模型?我實際上並不知道芹菜工人的基本機制。
感謝
我正在做一些NLP工作,並且有由Tensorflow培訓的模型。我提供了一些API來完成使用這些模型的單詞剪切並通過Celery調度請求。如何在不同的芹菜任務工作人員中共享張量流模型
的情況是:
芹菜將派遣任務,不同的工人(約4-5),因此每個工人必須加載模型之上,因此內存被佔用了不少。
那麼任何方式來分享工人之間的模型?我實際上並不知道芹菜工人的基本機制。
感謝
你可以看看Tensorflow Serving供應模型作爲GRPC API。它支持batching這聽起來像你想要做的。如果你真的需要芹菜(例如在後臺運行這些任務),你可以從芹菜任務中調用Tensorflow Serving API。
我正在嘗試將我的模型部署到tf服務中。我翻看文檔,看起來已經完成了我想要的東西。多謝兄弟。 – aforwardz
你可以看看[Tensorflow Serving](https://www.tensorflow.org/serving/),它將你的模型作爲gRPC API提供服務。它支持[batching](https://github.com/tensorflow/serving/blob/master/tensorflow_serving/batching/README.md),這聽起來像你正在嘗試做的事情。如果你真的需要芹菜(例如在後臺運行這些任務),你可以從芹菜任務中調用Tensorflow Serving API。 – geniass
@geniass感謝您的回答!!事實上,我將考慮在將來使用Tensorflow Serving進行模型部署。異步芹菜任務在客戶端使用,所以我創建了一個** singleton **類和一個函數,在其中加載模型到服務器,以確保這些模型只能加載一次。它有效,但我不確定解決方案是否足夠好。我會嘗試確定表現。再次感謝。 – aforwardz
雅我一直在做同樣的事情來爲火炬模型服務,但由於這不支持自動配料,我相當肯定你可以通過TF服務獲得更好的性能。我會給我的評論一個答案,以便你可以關閉這個問題。 – geniass