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は急速に変化しています。コンピュータービジョンの未来はどこにあるのでしょうか?

ブログ    
ブログ    

推薦する

機械学習におけるクラス不均衡に対処するための 10 のヒント

導入あるクラスの観測値が他のクラスの観測値よりも高い場合、クラスの不均衡が生じます。例: 不正なクレ...

[NCTS サミットレビュー] Li Yuanchun: 自動テストにおける強化学習の応用

2019年10月26日、Testinが主催する第2回NCTS中国クラウドテスト業界サミットが北京で開...

...

2016年の音声認識の発展を技術的な観点から振り返る

ディープラーニングと人工ニューラルネットワークの発展により、音声認識は 2016 年に一連のブレーク...

AI応用分野トップ10: AIはかつてないほど優れている

1956 年のダートマス会議で AI が提案されて以来、AI 研究はいくつかの浮き沈みを経験してきま...

AIはディープフェイクの世界から人々を救うことができるのか

業界の専門家マイク・エルガンが、偽造における人工知能の役割について説明します。例えば、彼はこう語った...

AIアプリケーションのスケールは実装が難しいが、将来的には有望である

2020年の中国の人工知能市場のレビュー2015年から2020年にかけて、人工知能市場には毎年新たな...

AIOps が企業で成功する方法

企業による IT 運用における人工知能の使用は AIOps として知られています。 AIOps は、...

...

ワンクリックで細い毛を切り取る。これはAdobeの最新のAI切り抜きアルゴリズムで、近日公開予定

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

今年の英語大学入試では、CMUは再構成事前トレーニングを利用してGPT3をはるかに上回る134点という高得点を獲得した。

データの保存方法は、生物学的ニューラル ネットワークから人工ニューラル ネットワークへと変化しており...

中国のLMM体格に適したベンチマークであるCMMMUがここにあります:30以上のサブ分野、12Kの専門家レベルの質問

近年、大規模マルチモーダルモデル (LMM) の機能が向上したため、LMM のパフォーマンスを評価す...

AIを活用したスト​​レージ施設は、企業がデータを最大限に活用するのに役立ちます

AI を活用したスト​​レージにより、企業はデータを迅速かつインテリジェントに分析し、ほぼ瞬時に洞察...

システムの観点から見た中国の人工知能開発の現状

第四次産業革命が急速に起こりつつあります。人工知能はこの産業革命の中核となる内容の一つです。産業革命...