画像はAIシナリオで一般的に使用されます。 Function ComputeのAIシナリオでは、画像を成果物として使用することを推奨します。 AIおよびビッグデータシナリオの画像のサイズは通常ギガバイトです。 Function Computeは画像サイズの制限を増やし、画像の高速化をサポートします。 このトピックでは、イメージサイズの制限、イメージの高速化方法、およびパブリックベースイメージの使用方法について説明します。
圧縮画像のサイズ制限
次の表に、圧縮画像のサイズ制限を示します。 制限は、Container Registryインスタンスのタイプとエディションによって異なります。 Container Registryの課金の詳細については、「課金ルール」をご参照ください。
Container Registry Edition | 画像サイズの制限 (GB) | 支払い可能 |
Container Registry Enterprise Edition (Standard Edition) | 10 | 必須 |
Container Registry Enterprise Edition (Advanced Edition) | 10 | 必須 |
Container Registry Enterprise Edition (Basic Edition) | 10 | 必須 |
Container Registry Personal Edition | 10 | 任意 |
一般的な画像アクセラレーション
デフォルトでは、Function ComputeはContainer Registry Personal EditionおよびContainer Registry Enterprise Editionのインスタンスのイメージアクセラレーション機能を有効にします。 これにより、画像の引き出しに必要な時間が数分から数秒に短縮され、大きな画像のコールドスタートに必要な時間が短縮されます。 詳細については、以下のトピックをご参照ください。
ドライバーに依存しないコンテナイメージを使用する
ドライバー関連のコンポーネントをイメージに追加しないでください。 また、アプリケーションが特定のドライバのバージョンに依存しないようにしてください。 たとえば、CUDA Driver APIを提供するlibcuda.so
ライブラリをイメージに含めないでください。 この動的ライブラリは、デバイスのカーネルドライババージョンに強く関連しています。 動的ライブラリがドライバのバージョンと一致しない場合、例外が発生する可能性があります。
関数インスタンスを作成するとき、function Computeは事前にドライバー関連のユーザー状態コンポーネントをコンテナーに挿入します。 これらのコンポーネントは、Function Computeが提供するドライバーのバージョンと一致します。 NVIDIA container RuntimeなどのGPUコンテナ仮想化テクノロジでは、特定のドライバータスクがプラットフォームリソースプロバイダーによって実行され、GPUコンテナイメージを環境に適応させやすくします。 NVIDIAは、Function ComputeのGPU高速化インスタンスで使用されるドライバーを提供します。 インスタンスで使用されるドライバーのバージョンは、機能の反復、新しいカードのリリース、バグ修正、ドライバーのライフサイクルの有効期限の結果として変更される場合があります。
NVIDIA container RuntimeなどのGPUコンテナー仮想化テクノロジを既に使用している場合は、docker commit
コマンドを使用してイメージを作成しないでください。 このメソッドで作成されるイメージには、注入されたドライバー関連コンポーネントが含まれます。 Function Computeでこのようなイメージを使用すると、コンポーネントのバージョンが一致しないことによる未定義の動作により、アプリケーションの例外が発生する場合があります。
Function ComputeのAlibaba Cloudベースイメージ
Alibaba Cloudは、Function ComputeのGPUアクセラレーションシナリオ用のさまざまなベースイメージを提供しています。 これらのベースイメージにより、最適な互換性とパフォーマンスが保証され、ビジネスロジックを簡単に構築できます。 基本イメージを優先的に使用してビジネスロジックを構築することを推奨します。
これらの基本イメージには、機械学習の主流フレームワークと、PyTorch、TensorFlow、PaddlePaddleなどの人気のあるモデルプラットフォームのイメージが含まれます。. ベースイメージを使用すると、GPUアクセラレーションシナリオで高性能コンピューティングを簡単に開始できます。 これらのベースイメージには、Function Computeでイメージを実行するために必要な環境と依存関係がプリロードされています。 これらのイメージは、環境と依存関係をインストールおよび構成する必要なく使用できます。 ベースイメージは、アプリケーションのパフォーマンスと信頼性の向上に役立ちます。 次の表に、Function ComputeのGPUアクセラレーションシナリオ用にAlibaba Cloudが提供するベースイメージを示します。
イメージファミリー | アドレス (レジストリ-vpcプレフィックスはVPCベースのイメージプルで使用できます) | 画像タグ | フレームワークのバージョン | Pythonバージョン | CUDAバージョン | Ubuntuバージョン |
modelscope | registry.{cn-hangzhou | us-east-1 | ap-northeast-1}.aliyuncs.com/serverless_devs/modelscope | 非該当 | 3.7 | 11.3.0 | 20.04 | |
PyTorch | registry.{cn-hangzhou | us-east-1 | ap-northeast-1}.aliyuncs.com/serverless_devs/pytorch | 1.14.0 | 3.8 | 11.8.0 | ||
TensorFlow | registry.{cn-hangzhou | us-east-1 | ap-northeast-1}.aliyuncs.com/serverless_devs/tensorflow | |||||
PaddlePaddle | registry.{cn-hangzhou | us-east-1 | ap-northeast-1}.aliyuncs.com/serverless_devs/paddlepaddle | 22.04 | ||||
CUDA | registry.{cn-hangzhou | us-east-1 | ap-northeast-1}.aliyuncs.com/serverless_devs/cuda | 11.8.0-devel-ubuntu22.04 | 非該当 | 非該当 |
ベースイメージは、GPUアクセラレーションが使用可能なリージョンでのみ使用できます。 リージョンには、中国 (杭州) 、中国 (上海) 、中国 (北京) 、中国 (張家口) 、中国 (深セン) 、日本 (東京) 、米国 (バージニア) が含まれます。 Container RegistryがサポートされているリージョンのIDについては、「リージョン」をご参照ください。
ベースイメージは、Container Registry Personal Editionのユーザーのみが利用できます。 この機能は、データ分離の問題のため、Container Registry Enterprise Editionのユーザーのパフォーマンスを向上させることはできません。
ベース画像の利点
Function Computeのベースイメージは、サーバーレスGPUシナリオで次の利点を提供します。
より良い互換性
Function ComputeのサーバーレスGPUシナリオのベースイメージは、GPU高速化インスタンス用に最適化およびテストされ、アプリケーションの互換性とアプリケーションの安定性を向上させます。
改善されたパフォーマンス
Function ComputeのGPU高速化インスタンスの基本イメージのフレームワークとデータ読み取りが最適化され、エンドツーエンドのパフォーマンスとユーザーエクスペリエンスが向上します。 さらに、ベースイメージには、NumPyやTensorFlowなどの一般的なコンピューティングライブラリがいくつか含まれているため、高性能なコードを簡単に作成できます。
簡易ビルド処理
ベースイメージを直接使用して、Function Computeでビジネスロジックを構築できます。 これにより、NumPyやSciPyなどの関連設定を手動で設定する必要がなくなります。
ベースイメージは、ビジネスロジックをより適切に構築し、パフォーマンスと互換性を向上させるのに役立ちます。 ビジネスロジックを構築するときに、Function Computeが提供する基本イメージをGPUシナリオで使用することを推奨します。
ベースイメージの使い方
ベースイメージは簡単に使用できます。 ビジネスロジックをビルドするときにDockerfileで使用するベースイメージを追加するだけです。 たとえば、中国 (上海) リージョンのGPU関数でPyTorchベースイメージを使用するには、次のコードをDockerfileに追加します。
FROM registry.cn-shanghai.aliyuncs.com/serverless_devs/pytorch:22.12-py3
ADD . .
EXPOSE 9000
Function Computeは、イメージを便利にプルするためのアドレスを提供します。 たとえば、次のコマンドを実行してPyTorchベースイメージをプルできます。
docker pull registry.cn-shanghai.aliyuncs.com/serverless_devs/pytorch:22.12-py3
よくある質問
Function ComputeのベースイメージとNVIDIAが提供するイメージに違いはありますか?
画像は同じです。 互換性の問題について心配する必要はありません。
使用するフレームワークのバージョンがFunction Computeが提供するベースイメージのバージョンよりも後の場合でも、高いパフォーマンスを確保できますか?
はい。 コンテナイメージは階層化されています。 したがって、特定のデータは、前のバージョンのフレームワークと後のバージョンのフレームワークとで同じであり、高いパフォーマンスを確保することができる。
必要なベースイメージが見つからない場合はどうすればよいですか?
テクニカルサポートのためにDingTalkグループ11721331に参加することを推奨します。
ベースイメージはさまざまなタイプのGPUと互換性がありますか?
はい。 ベースイメージは、Function ComputeのGPU高速化インスタンスのすべてのタイプのGPUと互換性があります。 オンデマンドモードとプロビジョニングモードは、期待どおりに使用できます。