私はいくつかのNLP作業をしており、Tensorflowによって訓練されたモデルがあります。私は、これらのモデルを使用してワード・カットを実行し、セロリを介してリクエストをディスパッチするためのAPIをいくつか提供します。異なるセロリの作業員にテンソルフローモデルを共有する方法
場合は、次のとおりです。
セロリは、したがって、各ワーカーは、上記のモデルをロードする必要があり、その結果、メモリが多くを占めています(約4-5)別の労働者にタスクをディスパッチします。
従業員の間でモデルを共有する方法はありますか?私は実際にセロリの労働者の根底にあるメカニズムについては知りません。
おかげ
あなたのモデルをgRPC APIとして提供する[Tensorflow Serving](https://www.tensorflow.org/serving/)をご覧ください。あなたがしようとしているように聞こえる[バッチ処理](https://github.com/tensorflow/serving/blob/master/tensorflow_serving/batching/README.md)をサポートしています。なんらかの理由でセロリが本当に必要な場合(バックグラウンドでこれらのタスクを実行するなど)、セロリタスクからTensorflow Serving APIを呼び出すことができます。 – geniass
@geniassあなたの答えをありがとう!!実際には、私はTensorflow Servingを将来のモデル展開に使用することを検討します。非同期セロリのタスクはクライアントで使用されるので、** singleton **クラスとその中にモデルをロードする関数を作成し、これらのモデルを一度しかロードできないようにします。それは動作しますが、私は解決策が十分に良いとは確信していません。私はパフォーマンスを決定するために役立つtfを試みます。再度、感謝します。 – aforwardz
私はトーチモデルを提供するために同じことをしてきましたが、これは自動的にバッチ処理をサポートしていないので、私はあなたがTF提供ではるかに優れたパフォーマンスを得ることができると確信しています。私はこの質問を閉じることができるように私のコメントを答えにします。 – geniass