このトピックでは、カスタムプロセッサに関するよくある質問に対する回答を示します。
カスタムプロセッサのパッケージが予想よりも大きい場合、アップロード効率を向上させるにはどうすればよいですか?
Elastic Algorithm Service (EAS) では、Dockerイメージを使用してランタイム環境と大きなファイルをアップロードすることを推奨します。 ビジネスコードが変更された場合は、変更された部分を段階的に更新するだけで済み、開発効率が大幅に向上します。 詳細については、「Pythonを使用したカスタムプロセッサの開発」をご参照ください。
libSM.so.6: cannot open shared object file: No such file or directory
がcv2インポート時に報告されるという問題を解決するにはどうすればよいですか?
一般的なpip install opencv
メソッドは、libXext、libSM、およびlibXrenderライブラリによって異なります。 libXext、libSM、およびlibXrenderライブラリは、オンラインEAS環境にプリインストールされていません。 したがって、このコマンドを使用してインストールされたcv2は、オフラインテスト環境では正常に実行されますが、オンライン環境では実行できない場合があります。 次のいずれかの方法を使用して、この問題を解決できます。
pip install openv-python-headless
コマンドを実行してcv2をインストールします。 このメソッドは、libXext、libSM、およびlibXrenderライブラリには依存しません。システムにインストールされているlibXext、libSM、およびlibXrenderバイナリライブラリのISOファイルを検索し、それらをENV/libディレクトリにコピーしてから、プロセッサと一緒にアップロードします。 このメソッドには、必要に応じて処理できる他の依存関係が含まれる場合があります。
EASのPythonプロセッサで環境変数を設定するにはどうすればよいですか?
EASのPythonプロセッサは、プロセッサディレクトリ内のすべてのディレクトリをLD_LIBRARY_PATH環境変数に自動的に追加します。 したがって、プロセッサディレクトリの任意の場所に追加の依存関係を格納できます。 Pythonプログラムでos.environ['key'] = 'val'
コマンドを実行して、他の環境変数を設定することを推奨します。
EASプロセッサは、コード例外のためにプロセスが終了するのをどのように防止しますか?
コード開発プロセスでは、例外を検出するためにtry-catchメカニズムが追加され、例外によってプロセスが終了しないようにします。 特定の理由でプロセスが終了した場合、EASはこのプロセスを自動的に再開してサービスの継続性を確保できます。
AccessKeyペアとエンドポイントを設定するにはどうすればよいですか。
モデルのデプロイ時にID認証を完了するには、AccessKey IDとAccessKeyシークレットを指定する必要があります。 デフォルトでは、中国 (上海) リージョンのエンドポイントが使用されます。 モデルを別のリージョンにデプロイするには、-eパラメーターを使用して、対応するリージョンのエンドポイントを指定します。
./eascmd64 config -i <yourAccessKey ID> -k <yourAccessKey Secret> -e pai-eas.cn-beijing.aliyuncs.com
EASCMDを使用してタスクを作成するときに、タスクが [OK] 待機中 [合計: 1、保留中: 1、実行中: 0]
状態のままになるのはなぜですか。
タスクの作成に必要なリソースが不足または見つからない場合があります。 リソース領域と名前が正しく設定されているかどうかを確認し、使用可能なリソースが十分かどうかを判断する必要があります。 関連する設定は、次のEAS説明ファイルで表示できます。
{
"name": "service",
"token": "[Authorization-token]",
"data_image":"[your-public-docker-image-repo]",
"processor_entry": "app.py",
"processor_type": "python",
"processor_path": "[oss://eas-model-shenzhen/xxxxxxxxx/codes.tar.gz]",
"metadata": {
"region": "cn-shenzhen", # Ensure that the region of the resource group is correct.
"resource": "resource-name", # Ensure that the resource group name, such as EAS-LsFlrwBP56, is correct and that the resource group belongs to the specified region.
"gpu": 1,
"cpu": 6,
"memory": 2000,
"instance": 2, # The amount of resources occupied by each instance (gpu=1, cpu=6, memory=2000B).
# If the available resources are insufficient, the task remains in the waiting state.
"cuda": "10.0"
}
}
EASサービスを介してインターネットにアクセスできない場合はどうすればよいですか?
サービスのインターネットアクセスを設定できます。 デフォルトでは、EASサービスはインターネットにアクセスできません。 カスタムプロセッサを使用してサービスをデプロイし、関連ファイルをインターネット経由でダウンロードするようにコードで構成した場合、ファイルをロードできないため、サービスをデプロイできません。 EASサービスのインターネットアクセスを設定する方法の詳細については、「インターネットアクセスとホワイトリストの設定」をご参照ください。