Function Computeコンソール、SDK、またはServerless Devsを使用して、GPU高速化インスタンスのベストプラクティスを実行できます。 このトピックでは、を使用して、関数コードを使用してスタイル合成とオブジェクト検出を実行し、rawイメージを処理する方法について説明します。 この例では、Pythonが使用されます。
シナリオと利点
ほとんどの場合、AIアプリケーションの従来のGPUインフラストラクチャではさまざまな問題が発生します。 問題には、長い構築サイクル、高いO&M複雑さ、低いクラスター使用率、および高いコストが含まれます。 Function ComputeのGPU高速化インスタンスは、ユーザー側からクラウドベンダー側に問題を転送します。 これにより、基盤となるGPUインフラストラクチャについて心配することなく、ビジネスに集中してビジネス目標を達成できます。
このセクションでは、Function ComputeのCPUによって高速化されるインスタンスと比較した、GPU高速化インスタンスの利点について説明します。
コスト優先のAIアプリケーションシナリオ
ビジネス要件に基づいてGPU高速化インスタンスを保持します。 このように、Function ComputeのGPU高速化インスタンスは、自作GPUクラスターよりもはるかに高いコスト効率を提供します。
GPU仮想化テクノロジを使用して、1/2モードまたは排他モードでGPUリソースを使用します。 このようにして、GPU高速化インスタンスをきめ細かく構成できます。
効率第一AIアプリケーションシナリオ
ドライバーとCUDAのバージョン管理、マシンの運用管理、GPUの不良カード管理など、GPUクラスターのO&Mを実行することなく、コード開発とビジネス目標に焦点を当てます。
GPU高速化インスタンスの詳細については、「インスタンスタイプとインスタンスモード」をご参照ください。
ニューラルスタイル転送のチュートリアル
NST (Neural style transfer) は、2つの画像をブレンドするために使用される技術である。 プロセス中、コンテンツは1つの画像から抽出され、スタイルは他の画像から抽出され、新しい画像が作成されます。 次の例では、TensorFlow Hubプリセットモデルを使用して、画像の様式的な合成を完了します。
合成効果
コンテンツ画像 | スタイル画像 | 合成画像 |
前提条件
一般操作
ビジネスを期待どおりに実行できるようにするには、DingTalkグループ11721331に参加して、GPUアクセラレーションインスタンスを使用するためのアクセス許可を要求し、次の情報を提供します。
組織名 (会社の名前など) 。
Alibaba CloudアカウントのID。
GPUアクセラレーションインスタンスを使用するリージョン (中国 (深セン) など) 。
携帯電話番号、メールアドレス、DingTalkアカウントなどの連絡先情報。
画像のサイズ。
GPUアクセラレーションインスタンスが配置されているリージョンのOSSバケットにオーディオリソースとビデオリソースをアップロードしました。 バケット内のオブジェクトに対する読み取りおよび書き込み権限があること。 詳細については、「オブジェクトのアップロード」をご参照ください。 詳細は、「バケットACL」をご参照ください。
Function Computeコンソールを使用したGPUアプリケーションのデプロイ
イメージを展開します。
Container Registry Enterprise EditionインスタンスまたはContainer Registry Personal Editionインスタンスを作成します。
Enterprise Editionインスタンスを作成することを推奨します。 詳細については、「Container Registry Enterprise Editionインスタンスの作成」をご参照ください。
名前空間とイメージリポジトリを作成します。
詳細については、「Container Registry Enterprise Editionインスタンスを使用してイメージを構築する」トピックの「手順2: 名前空間の作成」および手順3: イメージリポジトリの作成」をご参照ください。
Container Service for Kubernetes (ACK) コンソール
のプロンプトに従ってDocketで操作を実行します。 上記の例のapp.pyおよびDockerfileファイルをインスタンスのイメージリポジトリにプッシュします。
GPU関数を作成します。 詳細については、「カスタムコンテナー関数の作成」をご参照ください。
関数の実行タイムアウト時間を変更します。
管理する関数の名前をクリックします。 詳細ページのナビゲーションバーで、[設定] タブをクリックします。 [環境情報] セクションで、[変更] をクリックします。
表示されるパネルで、実行タイムアウト期間パラメーターをクリックし、OK をクリックします。
説明CPUトランスコード期間がデフォルト値の60秒を超えています。 そのため、[実行タイムアウト期間] パラメーターをより大きな値に設定することを推奨します。
プロビジョニングされたGPUインスタンスを設定します。 プロビジョニング済みインスタンスの設定方法の詳細については、「プロビジョニング済みインスタンスと自動スケーリングルールの設定」をご参照ください。
設定が完了したら、プロビジョニングされたGPUアクセラレーションインスタンスの準備ができているかどうかをルールリストで確認できます。 具体的には、Current Reserved Instancesパラメーターの値が指定されたプロビジョニング済みインスタンスの数であるかどうかを確認します。
cURLを使用して関数をテストします。
関数の詳細ページで、トリガー管理 (URL)タブでトリガーの設定を表示し、トリガーのエンドポイントを取得します。
CLIで次のコマンドを実行して、GPU関数を呼び出します。
オンライン機能バージョンの表示
curl -v "https://tgpu-ff-console-tgpu-ff-console-ajezot****.cn-shenzhen.fcapp.run" {"function": "trans_gpu"}
ニューラルスタイルの転送を実行する
curl "https://tgpu-fu-console-tgpu-se-console-zpjido****.cn-shenzhen.fcapp.run" -H 'RUN-MODE: normal' {"result": "transfer ok"}
Verify the result
ブラウザで次のドメイン名にアクセスすることで、合成画像を表示できます。
https://cri-zbtsehbrr8******-registry.oss-cn-shenzhen.aliyuncs.com/stylized-image.png
このドメイン名は例として使用されます。 実際のドメイン名が優先されます。