機械学習 (ML) モデルと対話するための Web インターフェースの開発は、退屈な作業です。 と ストリームライト、ML ソリューション用のデモ アプリケーションの開発は簡単です。 ストリームライト ML とデータ サイエンス用の Web アプリを簡単に作成して共有できるオープンソースの Python ライブラリです。 データ サイエンティストとして、データセットの調査結果を紹介したり、トレーニング済みのモデルを展開したりしたい場合があります。 Streamlit アプリケーションは、プロジェクトの進行状況をチームに提示したり、洞察を得てマネージャーに共有したり、顧客からフィードバックを得るのにも役立ちます。
の統合開発環境 (IDE) により、 Amazon SageMakerスタジオ ジュピター ラボ 3、開発目的で同じ環境内から Streamlit Web アプリを構築、実行、および提供できます。 この投稿では、時間のかかるフロントエンド開発を行わずに、Studio で Streamlit アプリを安全かつ再現可能な方法で構築およびホストする方法について概説します。 例として、カスタムを使用します。 Amazonの再認識 アップロードされた画像に注釈を付けてラベルを付けます。 これは出発点として機能し、一般化してカスタム ML モデルのデモを行うことができます。 このブログのコードは、次の場所にあります。 GitHubリポジトリ.
ソリューションの概要
以下は、当社のソリューションのアーキテクチャ図です。
ユーザーは、まずブラウザから Studio にアクセスします。 ユーザー プロファイルに関連付けられた Jupyter サーバーは、Studio Amazon Elastic Compute Cloud (Amazon EC2) インスタンス内で実行されます。 Studio EC2 インスタンス内には、サンプル コードと依存関係リストが存在します。 ユーザーは、システム ターミナルで Streamlit アプリ app.py を実行できます。 Studio は、ノートブック カーネルから切り離された Jupyter サーバーで JupyterLab UI を実行します。 Jupyter サーバーにはプロキシが付属しており、Streamlit アプリにアクセスできます。 アプリが実行されると、ユーザーは URL を調整して AWS Jupyter Proxy を介して別のセッションを開始できます。
セキュリティの観点から、AWS Jupyter Proxy は AWS 認証によって拡張されています。 ユーザーが AWS アカウント、Studio ドメイン ID、およびユーザー プロファイルにアクセスできる限り、リンクにアクセスできます。
JupyterLab 3.0 を使用して Studio を作成する
このソリューションを機能させるには、Studio with JupyterLab 3 をインストールする必要があります。 古いバージョンでは、この投稿で概説されている機能がサポートされていない可能性があります。 詳細については、次を参照してください。 Amazon SageMakerStudioおよびSageMakerNotebookインスタンスには、開発者の生産性を高めるためにJupyterLab3ノートブックが付属しています。. デフォルトでは、Studio には JupyterLab 3 が付属しています。古いバージョンを実行している場合は、バージョンを確認して変更する必要があります。 詳細については、次を参照してください。 JupyterLabのバージョン管理.
Studio は、 AWSクラウド開発キット (AWS CDK); 詳細については、を参照してください。 AWS CDK を使用して、Jupyter Lab 3 で Amazon SageMaker Studio をセットアップする. または、SageMaker コンソールを使用してドメイン設定を変更することもできます。 次の手順を完了します。
- SageMakerコンソールで、 ドメイン ナビゲーションペインに表示されます。
- ドメインを選択して選択します 編集.
- デフォルトの Jupyter Lab バージョン、バージョンがに設定されていることを確認してください ジュピター ラボ 3.0.
(オプション) 共有スペースを作成する
ドキュメントまたはこのブログの手順に従って、SageMaker コンソールまたは AWS CLI を使用して、共有スペースのサポートを既存のドメインに追加できます。 AWS で共有スペースを作成すると、次の利点があります。
- コラボレーション: 共有スペースを使用すると、複数のユーザーまたはチームが、データやインフラストラクチャを複製することなく、プロジェクトまたは一連のリソースで共同作業できます。
- コスト削減: 各ユーザーまたはチームが独自のリソースを作成して管理する代わりに、リソースをプールして複数のユーザー間で共有できるため、共有スペースはより費用対効果が高くなります。
- 管理の簡素化: 共有スペースを使用すると、管理者は、ユーザーまたはチームごとに同じリソースの複数のインスタンスを管理するのではなく、リソースを一元的に管理できます。
- スケーラビリティの向上: さまざまなユーザーやチームのニーズに合わせてリソースを動的に割り当てることができるため、共有スペースをより簡単にスケールアップまたはスケールダウンして、変化する需要に対応できます。
- セキュリティの強化: リソースを共有スペースに集中化することで、アクセス制御と監視をより簡単かつ一貫して適用できるため、セキュリティを向上させることができます。
依存関係をインストールし、Studio で例を複製します
次に、Studio を起動し、システム ターミナルを開きます。 SageMaker IDE を使用してサンプルのクローンを作成し、システム ターミナルを使用してアプリを起動します。 このブログのコードは、次の場所にあります。 GitHubリポジトリ. リポジトリのクローン作成から始めます。
次に、システム ターミナルを開きます。
クローンが作成されたら、システム ターミナルで依存関係をインストールし、次のコマンドを実行してサンプル コードを実行します。 これは最初に実行して依存関係をインストールします pip install --no-cache-dir -r requirements.txt
を選択します。 no-cache-dir
フラグはキャッシュを無効にします。 キャッシュは、インストール ファイルの保存に役立ちます (.whl
) pip を介してインストールするモジュールの。 また、ソース ファイル (.tar.gz
) 有効期限が切れていないときに再ダウンロードを避けるため。 ハード ドライブに空き容量がない場合、または Docker イメージをできるだけ小さく保ちたい場合は、このフラグを使用して、最小限のメモリ使用量でコマンドを最後まで実行できます。 次に、スクリプトはパッケージをインストールします iproute
および jq
、次の手順で使用されます。sh setup.sh
Streamlit デモを実行して共有可能なリンクを作成する
すべての依存関係が正常にインストールされたことを確認し、Amazon Rekognition デモを表示するには、次のコマンドを実行します。
アプリをホストしているポート番号が表示されます。
開発中、次の場合にスクリプトを自動的に再実行すると役立つ場合があることに注意してください。 app.py
ディスク上で変更されます。 実行するため、runOnSave を変更できます 構成オプション を追加して --server.runOnSave true
コマンドにフラグを立てます:
次のスクリーンショットは、端末に表示される内容の例を示しています。
上記の例から、アプリを実行しているポート番号、ドメイン ID、およびスタジオ URL が表示されます。 最後に、streamlit アプリにアクセスするために使用する必要がある URL を確認できます。 このスクリプトは Studio の URL を変更し、置き換えています。 lab?
proxy/[PORT NUMBER]/
. 次のスクリーンショットに示すように、Rekognition Object Detection Demo が表示されます。
Streamlit アプリが動作するようになったので、この Studio ドメイン ID とユーザー プロファイルにアクセスできるすべてのユーザーとこの URL を共有できます。 これらのデモを簡単に共有できるようにするために、次のコマンドを実行して、ステータスを確認し、実行中のすべての streamlit アプリを一覧表示できます。 sh status.sh
ライフサイクル スクリプトまたは共有スペースを使用して、この作業を拡張できます。 シェルスクリプトを手動で実行して依存関係をインストールする代わりに、 ライフサイクル スクリプト このプロセスを合理化します。 このアプリをチームで開発および拡張し、ダッシュボードを同僚と共有するには、次を使用します。 共有スペース. Studio で共有スペースを作成することにより、ユーザーは共有スペースで共同作業を行い、Streamlit アプリをリアルタイムで開発できます。 共有スペース内のすべてのリソースはフィルタリングおよびタグ付けされるため、ML プロジェクトに集中してコストを管理しやすくなります。 Studio で独自のアプリケーションを作成するには、次のコードを参照してください。
掃除
アプリの使用が完了したら、リッスン ポートを解放します。 streamlit を実行しているすべてのプロセスを取得し、それらを解放して使用できるようにするには、クリーンアップ スクリプトを実行します。 sh cleanup.sh
まとめ
この投稿では、Amazon Rekognition を使用して物体検出タスクの Streamlit デモをホストするエンドツーエンドの例を示しました。 Studio で独自の Streamlit アプリを実行するために必要な、迅速な Web アプリケーションを構築する動機、セキュリティに関する考慮事項、およびセットアップについて詳しく説明しました。 最後に、ウェブブラウザの URL パターンを変更して、AWS Jupyter Proxy を介して別のセッションを開始しました。
このデモでは、任意の画像をアップロードして、Amazon Rekognition からの出力を視覚化できます。 結果も処理され、アプリからすべての境界ボックスを含む CSV ファイルをダウンロードできます。 この作業を拡張して、独自のデータセットに注釈を付けてラベルを付けたり、コードを変更してカスタム モデルを紹介したりできます。
著者について
ディピカ・クラール の ML エンジニアです。 Amazon MLソリューションラボ. 彼女は、顧客が ML ソリューションを統合してビジネス上の問題を解決するのを支援しています。 最近では、メディア顧客向けのトレーニングと推論のパイプライン、およびマーケティング向けの予測モデルを構築しました。
マルセロ・アバーレ AWS AI 組織の ML エンジニアです。 彼は、 Amazon MLソリューションラボ、スケーラブルな ML システムの設計と実装を支援します。 彼の使命は、エンタープライズ ML ジャーニーで顧客を導き、本番環境への ML パスを加速することです。
ヤシュシャー の科学マネージャーです。 Amazon MLソリューションラボ. 彼と彼の応用科学者と ML エンジニアのチームは、ヘルスケア、スポーツ、自動車、製造など、さまざまな ML ユースケースに取り組んでいます。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- Platoblockchain。 Web3メタバースインテリジェンス。 知識の増幅。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/machine-learning/build-streamlit-apps-in-amazon-sagemaker-studio/
- :は
- $UP
- 100
- 7
- a
- 上記の.
- 加速する
- アクセス
- 越えて
- 管理者
- AI
- すべて
- 割り当てられました
- ことができます
- Amazon
- Amazon EC2
- Amazonの再認識
- アマゾンセージメーカー
- Amazon SageMakerスタジオ
- および
- 誰も
- アプリ
- 適用された
- アプリ
- 建築
- です
- AS
- 側面
- 関連する
- At
- 認証
- 自動的に
- 自動車
- AWS
- BE
- 利点
- ブログ
- ブースト
- ボックス
- ブラウザ
- ビルド
- 建物
- 内蔵
- ビジネス
- by
- キャッシュ
- 缶
- 例
- 変化する
- 変化
- チェック
- 選択する
- クラウド
- コード
- 協力します
- 来ます
- コンプリート
- 完成
- 計算
- 検討事項
- 領事
- controls
- コスト効率の良い
- コスト
- 作ります
- 作成
- カスタム
- Customers
- データ
- データサイエンス
- データサイエンティスト
- デフォルト
- 需要
- デモ
- 展開します
- 設計
- 詳細な
- 検出
- 開発する
- Developer
- 開発
- 開発
- 異なります
- デッカー
- ドメイン
- ダウン
- ダウンロード
- ドライブ
- 動的に
- 各
- 容易
- 簡単に
- 努力
- 端から端まで
- エンジニア
- エンジニア
- Enterprise
- 環境
- さらに
- 例
- 既存の
- 存在
- 伸ばす
- 特徴
- フィードバック
- File
- 最後に
- 名
- フォーカス
- フォロー中
- 発見
- 無料版
- から
- 獲得
- 取得する
- 受け
- ガイド
- ハード
- ハード·ドライブ
- 持ってる
- 持って
- ヘルスケア
- 役立つ
- 助け
- ことができます
- host
- ホスティング
- 認定条件
- How To
- HTML
- HTTPS
- ID
- 画像
- 実装する
- 改善されました
- in
- 情報
- インフラ
- 開始する
- 洞察
- install
- インストール
- インストールする
- を取得する必要がある者
- 統合する
- 統合された
- 対話
- インターフェース
- IT
- 旅
- JPG
- キープ
- ラボ
- ラベル
- 起動する
- 主要な
- 学習
- 図書館
- wifecycwe
- LINK
- リスト
- 耳を傾ける
- 長い
- 機械
- 機械学習
- make
- 作る
- 作成
- 管理します
- 管理
- マネージャー
- マネージャー
- 管理する
- 方法
- 手動で
- 製造業
- マーケティング
- 五月..
- メディア
- 大会
- メモリ
- かもしれない
- 最小限の
- ミッション
- ML
- MLOps
- モデル
- 修正されました
- 修正する
- モジュール
- モニタリング
- 他には?
- 最も
- 動機
- の試合に
- ナビゲーション
- 必要
- ニーズ
- 次の
- ノート
- 数
- オブジェクト
- オブジェクト検出
- of
- on
- 開いた
- オープンソース
- 組織
- 概説
- 輪郭
- 自分の
- パッケージ
- ペイン
- path
- パターン
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- ポイント
- 可能
- ポスト
- 問題
- プロセス
- 処理済み
- ラボレーション
- 生産
- プロフィール
- 進捗
- プロジェクト
- プロジェクト(実績作品)
- 代理
- 目的
- Python
- クイック
- 範囲
- むしろ
- リアル
- への
- 最近
- 倉庫
- の提出が必要です
- 要件
- リソース
- 結果
- ラン
- ランニング
- セージメーカー
- 同じ
- 貯蓄
- スケーラビリティ
- ド電源のデ
- 科学
- 科学者
- 科学者たち
- スクリプト
- 安全に
- セキュリティ
- 別
- 役立つ
- セッション
- セッションに
- 設定
- シェアする
- shared
- シェアリング
- シェル(Shell)
- すべき
- ショーケース
- 示す
- 作品
- 小さい
- So
- 溶液
- ソリューション
- 解決する
- ソース
- スペース
- スペース
- スポーツ
- start
- 起動
- Status:
- 手順
- ステップ
- 店舗
- 店舗
- 流線
- 研究
- 首尾よく
- サポート
- システム
- 仕事
- チーム
- チーム
- ターミナル
- それ
- ソース
- アプリ環境に合わせて
- それら
- ボーマン
- 介して
- 時間
- 時間がかかる
- 〜へ
- 訓練された
- トレーニング
- ui
- アップロード
- URL
- us
- 使用法
- つかいます
- ユーザー
- users
- 確認する
- バージョン
- 詳しく見る
- ウェブ
- Webアプリケーション
- ウェブブラウザ
- この試験は
- which
- while
- 誰
- 意志
- 以内
- 無し
- 仕事
- ワーキング
- You
- あなたの
- ゼファーネット