機械学習モデルを .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 およびビッグデータ業界のレビュー

ブログ    
ブログ    

推薦する

Omdia の観察: 配車サービスの大手企業が自動運転から撤退するのは幸運か、それとも災いか?

市場調査会社オムディアの最新レポートによると、北米第2位の配車プラットフォームプロバイダーであるLy...

プログラマーアルゴリズムの基礎 - 貪欲アルゴリズム

序文貪欲は人間が本来持つ能力であり、貪欲アルゴリズムとは貪欲な意思決定に基づいた全体計画の総称です。...

2023 年のフィンテック業界における AI トレンド トップ 10

2023 年の FinTech 業界では、変革的な AI トレンドが見られます。機械学習、ロボティ...

ディープラーニングのための 5 つのニューラル ネットワーク モデルとその応用

[[349567]] [51CTO.com クイック翻訳] ニューラル ネットワークは、一連のデータ...

2021年にAIは暗号通貨分野に参入するでしょうか?

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

Google AIが既知のタンパク質配列の10%を一度に注釈付け、10年で人間の研究成果を上回る

タンパク質は人体のすべての細胞と組織の重要な構成要素です。体のすべての重要な成分にはタンパク質が必要...

...

...

...

ルカン氏は、今後10年間の研究計画に関する62ページの論文を発表した。AI自律知能

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

ゲームオーバー?強いAIと弱いAIの戦い

数週間前、Googleの人工知能(AI)子会社DeepMindが、Gato(同じトレーニング済みモデ...

...

2020年のAIの7つの開発トレンド

[[320187]]追加の AI アプリケーションの需要が高まるにつれて、企業はデータ サイエンス ...

マーケティングにおける AI についての考え方を変える 10 のグラフ

Adobe の最新の Digital Intelligence Briefing によると、トップク...