イメージは AI シナリオでよく使用されます。 Function Compute の AI シナリオでは、成果物としてイメージを使用することをお勧めします。 AI とビッグデータのシナリオにおけるイメージは、通常ギガバイト単位のサイズです。 Function Compute はイメージサイズの制限を緩和し、イメージアクセラレーションをサポートしています。このトピックでは、イメージサイズの制限、イメージアクセラレーション方式、およびパブリックベースイメージの使用方法について説明します。
圧縮イメージのサイズ制限
次の表に、圧縮イメージのサイズ制限を示します。制限は、Container Registry インスタンスタイプとエディションによって異なります。 Container Registry の課金については、「課金ルール」をご参照ください。
Container Registry エディション | イメージサイズの制限 (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 でイメージを実行するために必要な環境と依存関係がプリロードされています。環境と依存関係をインストールおよび構成することなく、これらのイメージを使用できます。ベースイメージは、アプリケーションのパフォーマンスと信頼性の向上に役立ちます。次の表に、Alibaba Cloud が Function Compute の GPU アクセラレーションシナリオ向けに提供するベースイメージを示します。
イメージファミリー | アドレス (registry-vpc プレフィックスは VPC ベースのイメージプルで使用できます) | イメージタグ | フレームワークバージョン | Python バージョン | CUDA バージョン | Ubuntu バージョン |
modelscope | registry.{cn-hangzhou|us-east-1|ap-northeast-1}.aliyuncs.com/serverless_devs/modelscope | N/A | 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 | N/A | N/A |
ベースイメージは、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 などの関連設定を手動で構成する必要がなくなります。
ベースイメージは、ビジネスロジックの構築、パフォーマンスの向上、互換性の向上に役立ちます。ビジネスロジックを構築する際には、GPU シナリオで Function Compute によって提供されるベースイメージを使用することをお勧めします。
ベースイメージの使用方法
ベースイメージは簡単に使用できます。ビジネスロジックを構築する際に、Dockerfile に使用するベースイメージを追加するだけで済みます。たとえば、中国 (上海) リージョンの GPU 関数で PyTorch ベースイメージを使用するには、Dockerfile に次のコードを追加します。
FROM registry.cn-shanghai.aliyuncs.com/serverless_devs/pytorch:22.12-py3
ADD . .
EXPOSE 9000Function 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 と互換性があります。オンデマンドモードとプロビジョニングモードは、想定どおりに使用できます。