このトピックでは、カスタム プロセッサについてよくある質問への回答を提供します。
カスタム プロセッサ パッケージのアップロード効率を向上させるにはどうすればよいですか?
Elastic Algorithm Service (EAS) では、Docker イメージを使用してランタイム環境と大きなファイルをアップロードすることをお勧めします。ビジネス コードが変更された場合は、変更された部分のみを増分更新するだけで済み、開発効率が大幅に向上します。詳細については、「Python を使用してカスタム プロセッサを開発する」をご参照ください。
cv2 インポート時に libSM.so.6: cannot open shared object file: No such file or directory が報告される問題を解決するにはどうすればよいですか?cv2
一般的な pip install opencv メソッドは、libXext、libSM、および libXrender ライブラリに依存しています。これらのライブラリは、オンライン EAS 環境にはプリインストールされていません。そのため、このコマンドを使用してインストールされた cv2 は、オフライン テスト環境では正常に実行される場合がありますが、オンライン環境では実行に失敗する場合があります。次のいずれかの方法でこの問題を解決できます。
pip install opencv-python-headlessコマンドを実行して cv2 をインストールします。このメソッドは、libXext、libSM、および libXrender ライブラリに依存しません。システムにインストールされている libXext、libSM、および libXrender バイナリ ライブラリのファイルを検索し、ENV/lib ディレクトリにコピーしてから、プロセッサと一緒にアップロードします。このメソッドには他の依存関係が関係する場合があり、必要に応じて処理できます。
EAS の Python プロセッサで環境変数を構成するにはどうすればよいですか?
EAS の Python プロセッサは、プロセッサ ディレクトリのすべてのディレクトリを LD_LIBRARY_PATH 環境変数に自動的に追加します。そのため、追加の依存関係をプロセッサ ディレクトリの任意の場所に保存できます。Python プログラムで os.environ['key'] = 'val' コマンドを実行して、他の環境変数を構成することをお勧めします。
EAS プロセッサは、コード例外によってプロセスが終了しないようにどのように防ぎますか?
コード開発プロセスでは、try-catch メカニズムを追加して例外を検出し、例外によってプロセスが終了しないようにします。特定の理由でプロセスが終了した場合、EAS はこのプロセスを自動的に再起動してサービスの継続性を確保できます。
AccessKey ペアとエンドポイントを構成するにはどうすればよいですか?
モデルをデプロイするには、AccessKey ID と AccessKey シークレットを提供して身元認証を完了する必要があります。デフォルトでは、中国 (上海) リージョンのエンドポイントが使用されます。別のリージョンにモデルをデプロイするには、-e パラメータを使用して対応するリージョンのエンドポイントを指定できます。
./eascmd64 config -i <yourAccessKey ID> -k <yourAccessKey Secret> -e pai-eas.cn-beijing.aliyuncs.comEASCMD を使用してタスクを作成すると、[OK] Waiting [Total: 1, Pending: 1, Running: 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", // リソース グループのリージョンが正しいことを確認します。
"resource": "resource-name", // リソース グループ名 (例: EAS-LsFlrwBP56) が正しいこと、およびリソース グループが指定されたリージョンに属していることを確認します。
"gpu": 1,
"cpu": 6,
"memory": 2000,
"instance": 2, // 各インスタンスによって占有されるリソースの量 (gpu=1, cpu=6, memory=2000B)。
// 使用可能なリソースが不足している場合、タスクは待機状態のままになります。
"cuda": "10.0"
}
}インターネット経由で EAS サービスにアクセスできない場合はどうすればよいですか?
サービスのインターネット アクセスを構成できます。デフォルトでは、EAS サービスはインターネットにアクセスできません。カスタム プロセッサを使用してサービスをデプロイし、コードでインターネット経由でダウンロードされる関連ファイルを構成した場合、ファイルを読み込むことができないため、サービスをデプロイできません。EAS サービスのインターネット アクセスを構成する方法の詳細については、「インターネット アクセスとホワイトリストを構成する」をご参照ください。
カスタム プロセッサをサービス デプロイメントに使用するときに「Download processor files failed: forbidden to download file with size larger than 10G」というエラーが表示される場合はどうすればよいですか?
カスタム プロセッサをサービス デプロイメントに使用する場合は、モデル サイズまたはプロセッサ パッケージ サイズが 10 GB を超えることはできません。制限を超えた場合は、PAI コンソールでイメージベースのカスタム デプロイメントを使用することをお勧めします。