機械学習モデルを .NET 環境にデプロイするにはどうすればよいでしょうか?

機械学習モデルを .NET 環境にデプロイするにはどうすればよいでしょうか?

データ中心のエンジニアにとって、Python と R はデータセンターで最も人気のあるプログラミング言語の 1 つです。ただし、アプリケーションの残りの部分が構築される言語が必ずしも同じであるとは限りません。そのため、Python や R で記述された機械学習モデルを .NET などの言語に基づく環境にデプロイする方法を見つける必要がある場合があります。

この記事では、Web API を使用して、機械学習モデルを .NET で記述されたアプリケーションに統合する方法を説明します。

入力: フラスコ

Flask は、機械学習の予測を共有およびホストする方法として使用できます。有名な Kaggle コンペティションの Titanic データセットを使用しましょう。まず、新しいファイルを作成し、titanic_app.py (または任意の名前) という名前を付けます。 Flask アプリケーションをインポートして初期化し、下部でサーバーを起動します。後でモデルやルートを中央に追加できるように、中央にスペースを残しておきます。

アプリケーションを実行するホストとポートを指定することに注意してください。

モデルを作成してトレーニングする

Titanic データセットをロードし、その上にモデルを作成します。

シンプルなAPIの作成

ここが面白いところです。これで予測ができましたが、予測するための値が必要です。これを行う 1 つの方法は、URL パラメータ、つまり URL 内のキー ? の後に続く値のペアから情報を取得することです。たとえば、http://localhost:4000/predict?pclass=1&sex=1&age=18&fare=500&sibsp=0 に移動すると、Flask がそのデータを取得できます。

ファイルを保存してアプリケーションを起動します。これでシンプルな API モデルが完成しました。

.NET 環境へのデプロイ

Flask を .NET 環境にデプロイするには多くのオプションがあり、それらはインフラストラクチャの選択に大きく依存します。このプロセスを理解するために、Microsoft Azure を使用して IIS 環境にデプロイする方法について見てみましょう。

前提:

  • Azure Cosmos データベースを作成しました (この記事の範囲外)。
  • Flask Web アプリケーションが作成されました (上記のとおり)。
  • Azure と Visual Studio に精通していること。

環境を正しく設定していれば、Web アプリケーションを Azure にデプロイできます。これは、Web サーバー上のファイルをインスタンス内のファイルと一致するように更新する web.config ファイルを作成することによって実行できます。これを行うには、次の手順に従います。

Visual Studio ソリューション エクスプローラーで、プロジェクトを右クリックし、[新しいプロジェクトの追加] を選択します。表示されるダイアログ ボックスで、Azure web.config (Fast CGI) テンプレートを選択し、[OK] を選択します。これにより、プロジェクトのルート ディレクトリに web.config ファイルが作成されます。

パスが Python インストールと一致するように web.config を変更します。たとえば、Python 2.7 x64 の場合、エントリは次のようになります。

次に示すように、プロジェクト名と一致するように、web.config の WSGI_HANDLER エントリを tutorial.app に設定します。

  • Visual Studio ソリューション エクスプローラーで、チュートリアル フォルダーを展開し、Static フォルダーを右クリックして、[追加] > [新しい項目] の順に選択し、Azure Static Files web.config テンプレートを選択して、[OK] を選択します。このアクションにより、static フォルダーに別の web.config が作成され、そのフォルダーの Python 処理が無効になります。この構成では、Python アプリケーションを使用する代わりに、静的ファイルの要求をデフォルトの Web サーバーに送信します。
  • ファイルを保存し、ソリューション エクスプローラーでプロジェクトを右クリックし (ローカルで実行されていないことを確認してください)、[発行] を選択します。
  • [発行] ダイアログ ボックスで、[Microsoft Azure App Service] を選択し、[新規] を選択して、[発行] をクリックします。
  • [アプリケーション サービスの作成] ダイアログ ボックスで、Web アプリケーションの名前、サブスクリプション、リソース グループ、アプリケーション サービス プランを入力します。次に、「作成」をクリックします。
  • 数秒後、Visual Studio はファイルをサーバーにコピーし終え、http://.azurewebsites.net/ ページに次のエラー メッセージが表示されました: 「内部サーバー エラーが発生したため、ページを表示できません」。
  • Azure ポータルで、新しい App Service アカウントを開きます。ナビゲーション メニューで、[開発ツール] セクションまで下にスクロールし、[拡張機能] を選択して [追加] をクリックします。
  • 「拡張機能の選択」ページで、最新の Python 2.7 インストールまで下にスクロールし、x86 または x64 ビット オプションを選択してから、「OK」をクリックして法的条項に同意します。
  • https://scm.azurewebsites.net/DebugConsole にある Kudu コンソールを使用して、アプリケーションの requirements.txt ファイルにリストされているパッケージをインストールします。これを行うには、Kudu 診断コンソールで、D:\home\Python27 の Python フォルダーに移動し、Kudu コンソール セクションで説明されているように、次のコマンドを実行します。

D: ホーム Python27> python -m pip install --upgrade -r /home/site/wwwroot/requirements.txt

  • [再起動] ボタンを押して新しいパッケージをインストールした後、Azure ポータルで App Service を再起動します。

サーバー環境が完全に構成されたら、ブラウザでページを更新して Web アプリケーションを表示します。

<<:  中飛愛威CEO曹飛氏:自動化からインテリジェンスへ、ドローン検査をよりスマートに

>>:  成長痛に遭遇: 2017 年の AI およびビッグデータ業界のレビュー

ブログ    
ブログ    
ブログ    

推薦する

AIは人間を失業させるのか? ジャック・マーとポニー・マーはそうは思わない

[[212627]] 【今後30年間、インターネットをうまく活用した企業は驚異的な発展を遂げるでしょ...

...

機械学習でよく使われる7つの線形次元削減手法の概要

前回の記事では主に非線形次元削減手法についてまとめました。この記事では、一般的な線形次元削減手法につ...

...

新しいアルゴリズムとアーキテクチャ メトリックを備えた Lattix 5.0 アーキテクチャ管理ソフトウェアがリリースされました

Lattix は最近、インフラストラクチャ管理ソフトウェアのバージョン 5.0 をリリースしました。...

サイバーセキュリティにおける人工知能の応用

1. アプリケーションの背景インターネットの急速な発展と広範な応用により、ネットワーク セキュリティ...

AIトレーニングの福音: 合成データについて

今日、AI テクノロジーは克服するのが難しいいくつかの主要な課題に直面しています。正確な結果を提供す...

機械学習モデルのスケーリングにおける 5 つの課題

【51CTO.com クイック翻訳】機械学習モデルは、定義されたビジネス目標に合わせて設計されていま...

...

...

サイバーセキュリティにおける人工知能の役割と6つの製品オプション

現代の IT 環境では、サイバー脅威がますます顕著になっています。サイバーセキュリティとその製品にお...

パンデミックの中、大量のAIロボットが職務に就いている

2016年、著名な科学ライターでありシリコンバレーの投資家でもある呉軍氏は、大胆に次のように予測しま...

RLHFの可能性を深く掘り下げ、Fudan Language and Visionチームは報酬モデルの最適化を革新し、大規模モデルをより整合させます。

最初の大規模モデルアライメント技術レポート(大規模言語モデルにおけるRLHFの秘密パートI)がNeu...

...

「ウイルス」ではなく「情報」を広めよう!プログラマーがAIを使って「手を洗う」を500以上の言語に翻訳

[[321195]]ビッグデータダイジェスト制作ダニエル・ホワイトナック編集者: lin、Cao P...