Heroku クラウドにディープラーニング Web アプリケーションをデプロイするためのヒントとコツ

Heroku クラウドにディープラーニング Web アプリケーションをデプロイするためのヒントとコツ

[51CTO.com クイック翻訳] Heroku Cloud は、Web 開発者や機械学習愛好家の間でよく知られています。このプラットフォームは、Web アプリケーションの導入と保守を簡単に行う方法を提供しますが、ディープラーニング アプリケーションの導入を初めて行う場合は、扱いにくいストレージや依存関係の問題に遭遇する可能性があります。この記事を読めば、デプロイメント プロセスがスムーズになり、優れた Web アプリケーションの作成に集中できるようになります。 DVC 統合、Git および CLI ベースのデプロイメント、エラー コード H10、Python パッケージの使用、ストレージの最適化について学習します。

1. GitとCLIに基づくデプロイメント

Streamlit アプリケーションは、Git、GitHub 統合、または Docker を使用してデプロイできます。 Git ベースのアプローチは、Heroku サーバーにデータ アプリケーションをデプロイするためのより高速で簡単な方法です。

シンプルなGitベースのアプローチ

Streamlit アプリケーションは、次のコマンドを使用してデプロイできます。

  1. git リモートでheroku を追加https://heroku:[email protected]/.git
  2.  
  3. git push -f heroku HEAD:master

これを行うには、次のものが必要です。

  • Heroku API キー
  • Heroku アプリ: CLI 経由または Web サイトにアクセスして。
  • Gitベースのプロジェクト
  • 設定ファイル

CLIベースの方法

CLI ベースのデプロイメントは基本的で、簡単に習得できます。

1. ここで無料の Heroku アカウントを作成します。

2. このリンクを使用して Heroku CLI をインストールします。

3. リモート リポジトリをクローンするか、git init を使用します。

4. heroku login と heroku create dagshub-pc-app を入力します。これにより、サーバーにログインし、Web サーバー上にアプリケーションが作成されます。

5. アプリケーションを実行するコマンドを含む Procfile を作成します: web: streamlit run --server.port $PORT streamlit_app.py

6. 最後に、コードをコミットしてHerokuサーバーにプッシュします。git push heroku master

2. ポート

streamlit run app.py を使用してアプリを実行すると、エラー コード H10 が生成されます。これは、Streamlit アプリがサーバーによって割り当てられた $PORT を使用していないことを意味します。

必要なもの:

  • Heroku CLI を使用してポートを設定します。
  1. heroku config: PORT=8080を設定します
  • Procfile に変更を加え、パラメータにサーバー ポートを追加します。
  1. ウェブ: streamlit run --server.port $PORT app.py  

3. Python パッケージの調整

Heroku クラウドには 500 MB の制限があり、新しい TensorFlow パッケージは 489.6 MB であるため、この部分のデバッグには 2 日かかりました。依存関係とストレージの問題を回避するには、requirements.txt ファイルに変更を加える必要があります。

1. tensorflow の代わりに tensorflow-cpu を追加すると、スラッグ サイズが 765 MB から 400 MB に削減されます。

2. 外部依存関係のインストールを回避するために、opencv-python の代わりに opencv-python-headless を追加します。これにより、すべての cv2 エラーが解決されます。

3. numpy、Pillow、streamlit 以外の不要なパッケージをすべて削除します。

4. DVC統合

DVC サーバーからデータを正常に抽出するには、いくつかの手順が必要です。

1. まず、Heroku API を使用して apt-files ビルドパックのインストールを有効にします。

  1. herokuビルドパック:追加  --index 1 heroku-community/apt  

2. Aptfile というファイル名を作成し、最新の DVC バージョンを追加します https://github.com/iterative/dvc/releases/download/2.8.3/dvc_2.8.3_amd64.deb

3. app.py ファイルに次のコード行を追加します。

  1. インポートOS
  2. 「DYNO」の場合  os.environおよびos.path.isdir( ".dvc" )の場合:
  3. os.system( "dvc config core.no_scm true" )
  4. os.system(f "dvc pull" ) != 0 の場合:
  5. exit( "dvc pull に失敗しました" )
  6. os.system( "rm -r .dvc .apt/usr/lib/dvc" )

その後、コードをコミットし、Heroku サーバーにプッシュします。展開が成功すると、アプリケーションは DVC サーバーからデータを自動的に取得します。

5. ストレージを最適化する

ストレージを最適化する方法は多数ありますが、最も一般的なのは Docker を使用することです。 Docker アプローチを使用すると、500 MB の制限を回避でき、サードパーティの統合やパッケージを自由にインストールすることもできます。 Docker の使用について詳しくは、このガイドをご覧ください。

ストレージを最適化するには:

  • requiremnets.txt に、モデル推論 Python ライブラリのみを追加します。
  • 次のコマンドを使用して、DVC から選択データを抽出できます。
  1. dvc プル {モデル} {sample_data1} {sample_data2}..
  • 必要なモデル推論ファイルは 1 つだけなので、残りのファイルを .gitignore と同様に機能する .slugignore に追加します。詳細については、Slug コンパイラを参照してください。
  • サーバーからデータを正常に取得したら、.dvc ディレクトリと .apt/usr/lib/dvc ディレクトリを削除します。

6. 結果

元のスラッグ サイズは 850 MB でしたが、ストレージとパッケージの最適化により、最終的なスラッグ サイズは 400 MB に削減されました。簡単なコマンドでエラー コード H10 を解決し、依存関係の問題を解決するために opencv-python-headless パッケージを追加しました。この記事の目的は、Heroku サーバーで初心者が直面する一般的な問題を解決することです。

Docker ベースのデプロイメントは多くのストレージの問題を解決できますが、複雑さとデプロイメント プロセスの遅延ももたらします。 heroku container:push web を使用することもできますが、その前にまず Docker をビルドしてテストし、ローカルですべての問題が解決された後にプッシュする必要があります。このアプローチは、上級の Heroku ユーザーに好まれています。

次の課題は、Webhook を使用して Web アプリケーションをデプロイすることです。これにより、あらゆるプラットフォームから機械学習エコシステム全体を自動化できるようになります。自動化プロセスでは、シェル コマンドを実行する単純な Flask Web サーバーを作成する必要があります。

元のタイトル: Heroku Cloud にディープラーニング Web アプリをデプロイするためのヒントとコツ、著者: Abid Ali Awan

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください]

<<:  アリババ副社長でDAMOアカデミーの自動運転部門責任者の王剛氏が辞任し、自身のビジネスを立ち上げる予定

>>:  AIは急速に変化しています。コンピュータービジョンの未来はどこにあるのでしょうか?

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

顔認識技術の応用に関する法的規制

新興技術の発展とビジネス、公共福祉、社会統治などの分野におけるその応用をどのように促進、保護、規制す...

...

...

人工知能は人間に取って代わるでしょうか?

この記事のタイトルは少し大まかです。私の意見では、実際には 2 つの意味が含まれています。1 つ目は...

...

...

犯罪を予測する人工知能(AI)の倫理的・法的危機

あなたが通りを歩いていると、突然パトカーが止まり、数人の警官が飛び降りてきて、あなたの腕をつかみ、逮...

これら5つのコアテクノロジーを理解すれば、人工知能はもうあなたの身近な存在に

人工知能は現在最も注目されている産業であり、将来的にはロボット、スマートセンサー、ウェアラブルデバイ...

人気のワールドモデルとは何ですか? DriveDreamer: 実世界初の自動運転世界モデル

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

...

...

エネルギー業界における AI 成長の 5 つの要因

エネルギー業界は、気候変動、需要の増大、送電網の安定性といった課題に直面しながら、化石燃料から再生可...

Horizo​​nの最新作! Sparse4D v3: エンドツーエンドの 3D 検出および追跡タスクのさらなる改善 (SOTA が 2 倍!)

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...