コンテナ化された機械学習モデルの作成

コンテナ化された機械学習モデルの作成

[[252634]]

データ サイエンティストは機械学習モデルを作成した後、それを本番環境にデプロイする必要があります。さまざまなインフラストラクチャで実行するには、コンテナを使用し、REST API を通じてモデルを公開するのが、機械学習モデルをデプロイする一般的な方法です。この記事では、Podman コンテナで Connexion を使用して、REST API で TensorFlow 機械学習モデルを起動する方法を説明します。

準備する

まず、次のコマンドで Podman をインストールします。

  1. sudo dnf - y install podman

次に、コンテナ用の新しいフォルダーを作成し、そのディレクトリに移動します。

  1. mkdir deployment_container && cd deployment_container

TensorFlow モデル用の REST API

次のステップは、機械学習モデル用の REST API を作成することです。この github リポジトリには、事前トレーニング済みのモデルと、REST API を動作させるためのセットアップが含まれています。

次のコマンドを使用して、 deployment_containerディレクトリにクローンを作成します。

  1. git clone https : //github.com/svenboesiger/titanic_tf_ml_model.git

prediction.py と ml_model/

prediction.py は Tensorflow 予測を実行し、20x20x20 ニューラル ネットワークの重みはフォルダー ml_model/ にあります。

swagger.yaml

swagger.yaml は、Swagger 仕様を使用して Connexion ライブラリ API を定義します。このファイルには、サーバーが入力パラメータの検証、出力応答データの検証、および URL エンドポイントの定義を提供するために必要なすべての情報が含まれています。

さらに、Connexion は、JavaScript を使用して API を呼び出し、DOM を更新する方法を示す、シンプルでありながら便利なシングルページ Web アプリケーションを提供します。

  1. swagger : "2.0"
  2. info :
  3. description : This is the swagger file that goes with our server code
  4. version : "1.0.0"
  5. title : Tensorflow Podman Article
  6. consumes :
  7. - "application/json"
  8. produces :
  9. - "application/json"
  10. basePath : "/"
  11. paths :
  12. / survival_probability :
  13. post :
  14. operationId : "prediction.post"
  15. tags :
  16. - "Prediction"
  17. summary : "The prediction data structure provided by the server application"
  18. description : "Retrieve the chance of surviving the titanic disaster"
  19. parameters :
  20. - in : body
  21. name : passenger
  22. required : true
  23. schema :
  24. $ref : '#/definitions/PredictionPost'
  25. responses :
  26. '201' :
  27. description : 'Survival probability of an individual Titanic passenger'
  28. definitions :
  29. PredictionPost :
  30. type : object

server.py と requirements.txt

server.py は、Connexion サーバーを起動するためのエントリ ポイントを定義します。

  1. import connexion
  2. app = connexion . App ( __name__ , specification_dir = './' )
  3. app . add_api ( 'swagger.yaml' )
  4. if __name__ == '__main__' :
  5. app . run ( debug = True )

requirements.txt は、プログラムを実行するために必要な Python パッケージを定義します。

  1. connexion
  2. tensorflow
  3. pandas

コンテナ化しましょう!

Podman でイメージをビルドするには、上記の準備手順で作成したdeployment_containerディレクトリにDockerfileという新しいファイルを作成します。

  1. FROM fedora : 28
  2. # File Author / Maintainer
  3. MAINTAINER Sven Boesiger < donotspam@ujelang . com >
  4. # Update the sources
  5. RUN dnf - y update -- refresh
  6. # Install additional dependencies
  7. RUN dnf - y install libstdc ++
  8. RUN dnf - y autoremove
  9. # Copy the application folder inside the container
  10. ADD / titanic_tf_ml_model / titanic_tf_ml_model
  11. # Get pip to download and install requirements :
  12. RUN pip3 install - r / titanic_tf_ml_model / requirements . txt
  13. # Expose ports
  14. EXPOSE 5000
  15. # Set the default directory where CMD will execute
  16. WORKDIR / titanic_tf_ml_model
  17. # Set the default command to execute
  18. # when creating a new container
  19. CMD python3 server . py

次に、次のコマンドを使用してコンテナ イメージをビルドします。

  1. podman build - t ml_deployment .

コンテナの実行

コンテナ イメージがビルドされ準備ができたら、次のコマンドを使用してローカルで実行できます。

  1. podman run - p 5000 : 5000 ml_deployment

Swagger/Connexion UI にアクセスしてモデルをテストするには、Web ブラウザに http://0.0.0.0:5000/ui と入力します。

もちろん、アプリケーション内の REST API を介してモデルにアクセスすることもできます。

<<:  ビッグデータと人工知能の未来は同じになるだろう

>>:  スクリーンはあなたの運命を変えることはできません! AI教育で裸で泳いでいるのは誰ですか? 16社が摘発される

ブログ    
ブログ    
ブログ    

推薦する

Java 上級: 負荷分散のための 5 つのアルゴリズムの詳細な理解

この記事はWeChatの公開アカウント「Android Development and Progra...

機械学習プロセスにおける3つの落とし穴、どれを踏んでしまったか確認しましょう

[[273444]]ビッグデータダイジェスト制作編集者: Vicky、Cao Peixin機械学習の...

フェイフェイ・リーのチームの新しい作品: AI 透視眼、障害物を通して見る、そして人体のレンダリングと遮蔽における新たなブレークスルー

人物画像のビデオレンダリングは、AR/VR、映画、医療などの分野で広く使用されています。単眼カメラか...

...

プログラマーは「自殺」している。人工知能が進化し続ける中、人間は何をすべきか?

中国、日本、韓国の囲碁名人数十人がこのゲームに挑み、アルファ碁は1敗もせずに60連勝した。その後、世...

研究によると、AIシステムは大量のエネルギーを消費する

同研究機関はAIインフラの需要について徹底的な調査を実施し、AIシステムに必要なエネルギーは本格導入...

...

Google 中国人がタイムクリスタルを使って何十年も昔の謎を解く!永久機関が再び自然界に出現

2021年11月30日、自然界に再び時間結晶が出現しました。タイムクリスタルは不思議な物質です。理論...

最新の出来事を常に把握しましょう! Soraモデルテキスト生成ビデオをサポートするWebクライアント

みなさんこんにちは。JavaプログラマーのChenです。最近、Open AIが再び人気を集めており、...

6軸産業用ロボットの制御方法と特性

[[187760]]産業用ロボットは、産業分野における多関節マニピュレータまたは多自由度機械装置です...

人工知能はプライバシー侵害につながり、人々は顔スキャンが安全を奪うのではないかと心配している

データの蓄積、コンピュータの計算能力の飛躍的向上、アルゴリズムの最適化により、人工知能は生活をより効...

肖像情報セキュリティには「内部と外部の共同管理」が必要

防疫期間中、マスクの着用は人々の日常の外出に必須の装備となった。マスク着用者の顔認識技術が実際に活用...

「スカイアイ」が母親殺害事件の容疑者を発見する前に、私たちはいくら支払ったのでしょうか?

少し前、あるニュースが大きな衝撃を与えた。3年前の母親殺害事件の容疑者、呉謝宇が重慶江北空港で逮捕さ...

インテリジェントオートメーション: コンピュータビジョン、AI、ARが統合されるとき

インテリジェント オートメーションは、業界がまだビジネスに統合していない、かなり新しい概念です。この...

...