環境に関する問題のトラブルシューティング
この記事では、環境イメージのビルドで発生する可能性がある一般的な問題のトラブルシューティング方法と、AzureML 環境の脆弱性について説明します。
Microsoft では、皆様からのフィードバックを積極的に募集しています。 環境定義ログまたはビルド エラー分析ログからこのページに移動した場合は、この機能が役に立ったかどうか、あるいは解析でまだカバーされていないエラー シナリオを報告されたいかどうかをお聞かせください。 また、このドキュメントに関するフィードバックを残すこともできます。 こちらにご意見を記載してください。
Azure Machine Learning 環境
Azure Machine Learning 環境は、機械学習トレーニングが行われる環境をカプセル化したものです。 そこでは、トレーニングとスコアリングのスクリプト周りのベース Docker イメージ、Python パッケージ、およびソフトウェア設定を指定します。 環境は、Machine Learning ワークスペース内で管理およびバージョン管理されるアセットであり、さまざまなコンピューティング先で再現、監査、移植が可能な機械学習ワークフローを実現します。
環境の種類
環境は、キュレーション、ユーザー管理、システム管理の 3 つのカテゴリに分類されます。
キュレーションされた環境は、Azure Machine Learning によって管理される事前に作成された環境で、すべてのワークスペースで既定で利用することができます。 これらには、Python のパッケージと設定のコレクションが含まれていて、さまざまな機械学習フレームワークの使用を開始する助けとなり、そのまま使用する必要があります。 これらの事前に作成された環境を利用すると、デプロイ時間の短縮も可能です。
ユーザー管理環境では、ユーザーが環境を設定し、トレーニング スクリプトで必要なすべてのパッケージをコンピューティング先にインストールする必要があります。 また、モデル デプロイに必要な依存関係を必ず含めるようにしてください。
これらの種類の環境には、次の 2 つのサブタイプがあります。 最初のタイプである BYOC (独自のコンテナーを使用する) では、既存の Docker イメージを Azure Machine Learning に持ち込みます。 2 つ目の種類である Docker ビルド コンテキスト ベースの環境では、Azure Machine Learning はユーザーが提供したコンテキストからイメージを実体化します。
Python 環境を conda で自動的に管理したいときは、システム管理環境を使用します。 Azure Machine Learning では、ベース Docker イメージの上に conda 仕様を具体化することで、分離された新しい conda 環境を作成します。 既定で、Azure Machine Learning により、派生イメージに共通の機能が追加されます。 基本イメージに存在する Python パッケージは、分離された conda 環境では使用できません。
環境を作成および管理する
Azure Machine Learning Python SDK、Azure Machine Learning CLI、Azure Machine Learning スタジオ UI、Visual Studio Code 拡張機能などのクライアントから環境を作成および管理できます。
既存の環境を登録したり参照せずに実験を送信すると、ワークスペースには「匿名」環境が自動的に登録されます。 これらは一覧には表示されませんが、バージョンまたはラベルで取得することができます。
Azure Machine Learning では、Docker イメージに環境定義が組み込まれます。 また、Azure Machine Learning ワークスペースに関連付けられている Azure Container Registry 内のイメージをキャッシュして、後続のトレーニング ジョブとサービス エンドポイントのデプロイで再利用できるようにします。 同じ定義を持つ複数の環境では、キャッシュされたものと同じイメージになる可能性があります。
トレーニング スクリプトをリモートで実行するには、Docker イメージを作成する必要があります。
AzureML 環境の脆弱性
脆弱性に対処するには、新しいバージョンの依存関係 (基本イメージ、Python パッケージなど) にアップグレードするか、セキュリティ要件を満たす別の依存関係に移行します。 脆弱性を軽減するには、コードやインフラストラクチャのリファクタリングが必要な場合があるため、時間とコストがかかります。 オープンソース ソフトウェアが普及し、複雑な入れ子になった依存関係が使用されているため、脆弱性を管理して追跡することが重要です。
脆弱性の影響を軽減する方法がいくつかあります。
- 依存関係の数を減らす - 各シナリオで最小限の依存関係のセットを使用します。
- 環境をコンパートメント化して、問題の範囲の特定と修正を 1 か所で行えるようにします。
- フラグが設定された脆弱性とそのシナリオとの関連性を理解します。
脆弱性をスキャンする
Microsoft Defender for Container Registry を使用して、環境の検疫状態を監視および維持し、イメージの脆弱性のスキャンに役立てることができます。
Microsoft Defender からのトリガーに基づいてこのプロセスを自動化するには、「Microsoft Defender for Cloud トリガーに対する応答を自動化する」を参照してください。
脆弱性と再現性
再現性は、ソフトウェア開発の基礎の 1 つです。 運用コードの開発では、繰り返し行う操作によって同じ結果が得られることが保証されなければなりません。 脆弱性を軽減すると、依存関係が変化し、再現性が損なわれる可能性があります。
Azure Machine Learning の主な焦点は、再現性を保証することです。 環境は、キュレーション、ユーザー管理、システム管理の 3 つのカテゴリに分類されます。
キュレーションされた環境
キュレーションされた環境は、Azure Machine Learning によって管理される事前に作成された環境で、プロビジョニングされたすべての Azure Machine Learning ワークスペースで既定で利用可能です。 脆弱性に対処するため、Azure Machine Learning によって新しいバージョンがリリースされます。 最新のイメージを使用するかどうかは、再現性と脆弱性管理のトレードオフになる可能性があります。
キュレーションされた環境には、Python のパッケージと設定の集まりが含まれており、さまざまな機械学習フレームワークを開始するのに役立ちます。 そのまま使用してください。 これらの事前に作成された環境を利用すると、デプロイ時間の短縮も可能です。
ユーザーによって管理される環境
ユーザー管理環境では、ユーザーが環境を設定し、トレーニング スクリプトで必要なすべてのパッケージをコンピューティング先にインストールして、モデル デプロイを行う必要があります。 これらの種類の環境には、次の 2 つのサブタイプがあります。
- BYOC (独自のコンテナーを使用する): ユーザーが Azure Machine Learning に Docker イメージを提供します
- Docker ビルド コンテキスト: Azure Machine Learning は、ユーザーが提供したコンテンツからイメージを実体化します
Microsoft が提供するイメージの上にさらに多くの依存関係をインストールするか、独自の基本イメージを使用する場合は、脆弱性の管理はお客様の責任となります。
システムによって管理される環境
Python 環境を Conda で自動的に管理したいときは、システム管理環境を使用します。 Azure Machine Learning では、ベース Docker イメージの上に conda 仕様を具体化することで、分離された新しい conda 環境を作成します。 Azure Machine Learning は、リリースごとに基本イメージにパッチを適用しますが、最新のイメージを使用するかどうかは、再現性と脆弱性管理のトレードオフになる可能性があります。 そのため、システム管理環境を利用しながら、ジョブまたはモデルのデプロイに使用する環境バージョンを選択するのはお客様の責任となります。
脆弱性: 一般的な問題
ベース Docker イメージの脆弱性
通常、環境内のシステムの脆弱性は、基本イメージに由来します。 たとえば、"Ubuntu" または "Debian" としてマークされた脆弱性は、環境のシステム レベル (ベース Docker イメージ) から生じます。 基本イメージがサードパーティの発行者によるものである場合は、フラグが設定された脆弱性の修正プログラムが最新バージョンで提供されているかどうかを確認してください。 Azure Machine Learning の基本イメージの最も一般的なソースを次に示します。
- Microsoft アーティファクト レジストリ (MAR)、別名 Microsoft Container Registry (mcr.microsoft.com)。
- イメージは、MAR ホームページ、カタログ API の呼び出し、または /tags/list から一覧表示できます。
- AzureML からのトレーニング用の基本イメージのソースとリリース ノートについては、Azure/AzureML-Containers を参照してください。
- Nvidia (nvcr.io、または nvidia のプロファイル)
最新バージョンの基本イメージで脆弱性が解決されない場合は、脆弱性スキャンによって推奨されるバージョンをインストールすることで、基本イメージの脆弱性に対処できます。
apt-get install -y library_name
Python パッケージの脆弱性
脆弱性は、システムで管理される基本イメージの上にインストールされた Python パッケージに由来する場合もあります。 これらの Python 関連の脆弱性は、Python の依存関係を更新することで解決する必要があります。 イメージ内の Python (pip) の脆弱性は、通常、ユーザー定義の依存関係によって生じます。
既知の Python の脆弱性と解決策については、GitHub Advisory Database を参照してください。 Python の脆弱性に対処するには、フラグが設定された問題の修正プログラムを含むバージョンにパッケージを更新します。
pip install -u my_package=={good.version}
conda 環境を使用している場合は、conda 依存関係ファイルの参照を更新します。
ベース Docker イメージの上に conda によって環境のセットアップが行われる際に、Python パッケージが自動的にインストールされる場合があります。 これらの問題を軽減するための手順は、ユーザーが導入したパッケージの場合の手順と同じです。 Conda は、それが具体化するすべての環境に必要な依存関係をインストールします。 cryptography、setuptools、wheel などのパッケージは、conda の既定のチャネルから自動的にインストールされます。 既定の anaconda チャネルに最新のパッケージ バージョンが見つからないという既知の問題があるため、コミュニティが管理している conda-forge チャネルを優先することをお勧めします。 または、環境で実行する予定のコードでは参照しない場合でも、パッケージとバージョンを明示的に指定してください。
キャッシュの問題
Azure Machine Learning ワークスペースには、コンテナー イメージのキャッシュである Azure Container Registry インスタンスが関連付けられています。 具体化されたイメージは、コンテナー レジストリにプッシュされ、対応する環境に対して実験またはデプロイをトリガーした場合に使用されます。 Azure Machine Learning は、コンテナー レジストリからイメージを削除しません。どのイメージを長期間維持する必要があるかを評価するのはお客様の責任となります。
環境イメージのビルドのトラブルシューティング
環境イメージのビルドとパッケージのインストールに関する問題のトラブルシューティングを行う方法について説明します。
環境定義の問題
環境名に関する問題
キュレーションされたプレフィックスは許可されません
この問題は、カスタム環境の名前が、キュレーションされた環境のみに予約されている用語を使っている場合に発生する可能性があります。 "キュレーションされた" 環境は、Microsoft が管理している環境です。 "カスタム" 環境は、ユーザーが作成し管理する環境です。
考えられる原因:
- 使用する環境名が Microsoft または AzureML で始まっています
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
環境名を更新して、現在使っている予約済みプレフィックスを除外します
リソース
環境名が長すぎます
考えられる原因:
- 環境名が 255 文字を超えています
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
255 文字以下になるように環境名を更新します
Docker に関する問題
適用対象: Azure CLI ml 拡張機能 v1
適用対象: Python SDK azureml v1
新しい環境を作成するには、次のいずれかの方法を使用する必要があります (DockerSection を参照)。
- ベース イメージ
- ベース イメージ名、プル元のリポジトリ、資格情報 (必要であれば) を指定します
- conda の仕様を指定します
- ベース Dockerfile
- Dockerfile を指定します
- conda の仕様を指定します
- Docker ビルドのコンテキスト
- ビルド コンテキスト (URL) の場所を指定します
- ビルド コンテキストには少なくとも Dockerfile が含まれている必要がありますが、他のファイルを含めることもできます
適用対象: Azure CLI ml 拡張機能 v2 (現行)
適用対象: Python SDK azure-ai-ml v2 (現行)
新しい環境を作成するには、次のいずれかの方法を使用する必要があります。
- Docker イメージ
- Docker Hub や Azure Container Registry などのレジストリでホストされているイメージのイメージ URI を指定します
- サンプルはこちら
- Docker ビルドのコンテキスト
- ビルド コンテキストとして機能するディレクトリを指定します
- このディレクトリには、Dockerfile と、イメージをビルドするために必要なその他のファイルが含まれている必要があります
- サンプルはこちら
- Conda 仕様ファイル
- 環境のベース Docker イメージを指定する必要があります。Azure Machine Learning によって、提供された Docker イメージの上に conda 環境が構築されます
- conda ファイルへの相対パスを指定します
- サンプルはこちら
Docker 定義がありません
適用対象: Python SDK azureml v1
この問題は、環境定義に DockerSection
が見つからない場合に発生する可能性があります。 このセクションでは、環境仕様からビルドされる最終的な Docker イメージに関連する設定を構成します。
考えられる原因:
- 環境定義の
DockerSection
を指定していません
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
環境定義に DockerSection
を追加して、ベース イメージ、ベース Dockerfile、または Docker ビルドのコンテキストのいずれかを指定します。
from azureml.core import Environment
myenv = Environment(name="myenv")
# Specify docker steps as a string.
dockerfile = r'''
FROM mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
RUN echo "Hello from custom container!"
'''
myenv.docker.base_dockerfile = dockerfile
リソース
Docker オプションが多すぎます
考えられる原因:
適用対象: Python SDK azureml v1
環境定義で、これらの Docker オプションが複数指定されています
base_image
base_dockerfile
build_context
- DockerSection を参照してください
適用対象: Azure CLI ml 拡張機能 v2 (現行)
適用対象: Python SDK azure-ai-ml v2 (現行)
環境定義で、これらの Docker オプションが複数指定されています
image
build
- azure.ai.ml.entities.Environment を参照してください
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
環境の構築に使う Docker オプションを選びます。 次に、指定した他のすべてのオプションを None に設定します。
適用対象: Python SDK azureml v1
from azureml.core import Environment
myenv = Environment(name="myEnv")
dockerfile = r'''
FROM mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
RUN echo "Hello from custom container!"
'''
myenv.docker.base_dockerfile = dockerfile
myenv.docker.base_image = "pytorch/pytorch:latest"
# Having both base dockerfile and base image set will cause failure. Delete the one you won't use.
myenv.docker.base_image = None
Docker オプションがありません
考えられる原因:
環境定義に、以下のオプションのいずれかが指定されていません
base_image
base_dockerfile
build_context
- DockerSection を参照してください
適用対象: Azure CLI ml 拡張機能 v2 (現行)
適用対象: Python SDK azure-ai-ml v2 (現行)
環境定義に、以下のオプションのいずれかが指定されていません
image
build
- azure.ai.ml.entities.Environment を参照してください
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
環境の構築に使う Docker オプションを選び、環境定義にそのオプションを設定します。
適用対象: Python SDK azureml v1
from azureml.core import Environment
myenv = Environment(name="myEnv")
myenv.docker.base_image = "pytorch/pytorch:latest"
適用対象: Python SDK azure-ai-ml v2 (現行)
env_docker_image = Environment(
image="pytorch/pytorch:latest",
name="docker-image-example",
description="Environment created from a Docker image.",
)
ml_client.environments.create_or_update(env_docker_image)
リソース
コンテナー レジストリの資格情報にユーザー名またはパスワードが不足しています
考えられる原因:
- 環境定義でコンテナー レジストリのユーザー名またはパスワードを指定しましたが、どちらかを指定していません
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
環境定義で欠落しているユーザー名またはパスワードを追加して問題を解決します
myEnv.docker.base_image_registry.username = "username"
または、ワークスペース接続から認証を実行します
from azureml.core import Workspace
ws = Workspace.from_config()
ws.set_connection("connection1", "ACR", "<URL>", "Basic", "{'Username': '<username>', 'Password': '<password>'}")
適用対象: Azure CLI ml 拡張機能 v2 (現行)
YAML 仕様ファイルからワークスペース接続を作成します
az ml connection create --file connection.yml --resource-group my-resource-group --workspace-name my-workspace
注意
- 資格情報の環境定義での指定はサポートされなくなりました。 その代わりに、ワークスペース接続を使用してください。
リソース
ベース イメージ レジストリの資格情報が複数ある
考えられる原因:
- ベース イメージ レジストリに複数の資格情報セットを指定しています
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
ワークスペース接続を使用している場合は、設定した接続を表示して、使用しない接続を削除します
from azureml.core import Workspace
ws = Workspace.from_config()
ws.list_connections()
ws.delete_connection("myConnection2")
資格情報を環境定義で指定した場合は、使用する資格情報のセットを 1 つ選択し、その他のすべての資格情報を null に設定します
myEnv.docker.base_image_registry.registry_identity = None
注意
- 資格情報の環境定義での指定はサポートされなくなりました。 その代わりに、ワークスペース接続を使用してください。
リソース
ベース イメージ レジストリにシークレットが含まれている
考えられる原因:
- 資格情報が環境定義で指定されています
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
環境定義での資格情報の指定はサポートされなくなりました。 資格情報を環境定義から削除して、その代わりにワークスペース接続を使用します。
適用対象: Python SDK azureml v1
ワークスペースにワークスペース接続を設定します
from azureml.core import Workspace
ws = Workspace.from_config()
ws.set_connection("connection1", "ACR", "<URL>", "Basic", "{'Username': '<username>', 'Password': '<password>'}")
適用対象: Azure CLI ml 拡張機能 v2 (現行)
YAML 仕様ファイルからワークスペース接続を作成します
az ml connection create --file connection.yml --resource-group my-resource-group --workspace-name my-workspace
リソース
非推奨の Docker 属性
考えられる原因:
- 現時点では非推奨になっている Docker 属性が環境定義で指定されています
- 次のプロパティは非推奨です。
enabled
arguments
shared_volumes
gpu_support
- Azure Machine Learning では、使用可能な場合、NVIDIA Docker 拡張機能を自動検出して使用するようになりました
smh_size
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
これらの属性は環境定義の DockerSection
で指定する代わりに、DockerConfiguration を使用します
リソース
DockerSection
非推奨変数を参照してください
Dockerfile の長さが制限を超えています
考えられる原因:
- 最大サイズの 100 KB を超える Dockerfile が指定されています
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
この制限を超えないように Dockerfile を縮小してください
リソース
- ベスト プラクティスに関するページを参照してください
Docker ビルド コンテキストに関する問題
Docker ビルド コンテキストの場所がありません
考えられる原因:
- ビルド コンテキスト ディレクトリのパスが環境定義で指定されていません
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Azure CLI ml 拡張機能 v2 (現行)
適用対象: Python SDK azure-ai-ml v2 (現行)
ビルド コンテキストのパスが含まれていることを確認します
- BuildContext クラスを参照してください
- このサンプルを参照してください
リソース
Dockerfile パスがありません
この問題は、Azure Machine Learning が Dockerfile を検出できない場合に発生する可能性があります。 既定では、Dockerfile パスを指定していない限り、Azure Machine Learning ではビルド コンテキスト ディレクトリのルートで 'Dockerfile' という名前の Dockerfile を検索します。
考えられる原因:
- ビルド コンテキスト ディレクトリのルートに Dockerfile が存在しない場合や 'Dockerfile' 以外の名前が付けられている場合に、そのパスが指定されていません
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
DockerSection の build_context
に dockerfile_path
を含めます
- DockerBuildContext クラスを参照してください
適用対象: Azure CLI ml 拡張機能 v2 (現行)
適用対象: Python SDK azure-ai-ml v2 (現行)
Dockerfile パスを指定します
- BuildContext クラスを参照してください
- このサンプルを参照してください
リソース
Docker ビルド コンテキストで属性を指定することはできません
この問題は、環境定義で Docker ビルド コンテキストに含めることができないプロパティを指定した場合に発生する可能性があります。
考えられる原因:
- 環境定義で、Docker ビルド コンテキストと共に次のプロパティの少なくとも 1 つが指定されています。
- 環境変数
- Conda 依存関係
- R
- Spark
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
環境定義で上記のプロパティを指定した場合は、それを削除します
- Docker ビルド コンテキストを使用しているときに、conda 依存関係を指定する場合は、conda 仕様がビルド コンテキスト ディレクトリに存在している必要があります
リソース
- ビルド コンテキストについての理解
- Python SDK v1 Environment クラス
場所の種類がサポートされていません、場所の種類が不明です
考えられる原因:
- Docker ビルド コンテキストに対してサポートされていないか不明な場所の種類が指定されています
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
指定できる場所の種類は次のとおりです。
- Git
- Git URL を Azure Machine Learning に提供できますが、まだイメージのビルドに使用することはできません。 ビルドが Git でサポートされるまでは、ストレージ アカウントを使用してください
- ストレージ アカウント
- このストレージ アカウントの概要を参照してください
- ストレージ アカウントの作成方法を参照してください
リソース
- DockerBuildContext クラスを参照してください
- ビルド コンテキストについての理解
無効な場所
考えられる原因:
- 指定した Docker ビルド コンテキストの場所が無効です
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
ストレージ アカウントに Docker ビルド コンテキストを格納しているシナリオの場合
ビルド コンテキストのパスを次のように指定する必要があります
https://<storage-account>.blob.core.windows.net/<container>/<path>
指定した場所が有効な URL であることを確認します
コンテナーとパスを指定していることを確認します
リソース
ベース イメージに関する問題
ベース イメージが非推奨です
考えられる原因:
- 非推奨のベース イメージを使用しています
- Azure Machine Learning では、非推奨のイメージを使用してビルドに失敗した場合のトラブルシューティングサポートを提供できません
- Azure Machine Learning では、これらのイメージが更新も維持もされないため、脆弱性のリスクにさらされます
次のベース イメージは非推奨となっています。
azureml/base
azureml/base-gpu
azureml/base-lite
azureml/intelmpi2018.3-cuda10.0-cudnn7-ubuntu16.04
azureml/intelmpi2018.3-cuda9.0-cudnn7-ubuntu16.04
azureml/intelmpi2018.3-ubuntu16.04
azureml/o16n-base/python-slim
azureml/openmpi3.1.2-cuda10.0-cudnn7-ubuntu16.04
azureml/openmpi3.1.2-ubuntu16.04
azureml/openmpi3.1.2-cuda10.0-cudnn7-ubuntu18.04
azureml/openmpi3.1.2-cuda10.1-cudnn7-ubuntu18.04
azureml/openmpi3.1.2-cuda10.2-cudnn7-ubuntu18.04
azureml/openmpi3.1.2-cuda10.2-cudnn8-ubuntu18.04
azureml/openmpi3.1.2-ubuntu18.04
azureml/openmpi4.1.0-cuda11.0.3-cudnn8-ubuntu18.04
azureml/openmpi4.1.0-cuda11.1-cudnn8-ubuntu18.04
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
サポートされている最新バージョンのイメージにベース イメージをアップグレードします
- 利用可能なベース イメージを参照してください
タグまたはダイジェストがありません
考えられる原因:
- 指定した基本イメージにバージョン タグまたはダイジェストが含まれていません
- これらの指定子のいずれかがないと環境は再現できません
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
次の指定子の少なくとも 1 つを基本イメージに含めます
- バージョン タグ
- ダイジェスト
- 変更できない識別子を持つイメージに関するセクションを参照してください
環境変数に関する問題
ランタイム変数の配置ミス
考えられる原因:
- 環境定義でランタイム変数が指定されています
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
代わりに RunConfiguration オブジェクトの environment_variables
属性を使用します
Python に関する問題
Python セクションがありません
考えられる原因:
- 環境定義に Python セクションがありません
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
環境定義の Python セクションを設定します
- 詳しくは、PythonSection クラスに関するページを参照してください
Python のバージョンがありません
考えられる原因:
- 環境定義で Python バージョンが指定されていません
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
conda パッケージとして Python を追加して、バージョンを指定します
from azureml.core.environment import CondaDependencies
myenv = Environment(name="myenv")
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep
conda 仕様に YAML を使用している場合は、依存関係として Python を含めます
name: project_environment
dependencies:
- python=3.8
- pip:
- azureml-defaults
channels:
- anaconda
リソース
複数の Python バージョン
考えられる原因:
- 環境定義で複数の Python バージョンが指定されています
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
使用する Python バージョンを選択して、その他のすべてのバージョンを削除します
myenv.python.conda_dependencies.remove_conda_package("python=3.8")
conda 仕様に YAML を使用している場合は、依存関係として 1 つのみの Python バージョンを含めます
Python のバージョンがサポートされていない
考えられる原因:
- 有効期間が終了しているか終了間近であり、サポートされなくなった Python バージョンが指定されています
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
有効期限を過ぎていない、その期限間近でない python バージョンを指定します
非推奨の Python のバージョン
考えられる原因:
- 有効期間が終了しているか終了間近の Python バージョンが指定されています
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
有効期限を過ぎていない、その期限間近でない python バージョンを指定します
Python バージョンの検証に失敗しました
考えられる原因:
- 指定した Python バージョンの構文が正しくないか、書式が不適切です
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
SDK を使用して Python バージョンの指定に正しい構文を使用します
myenv.python.conda_dependencies.add_conda_package("python=3.8")
conda YAML での Python バージョンの指定に正しい構文を使用します
name: project_environment
dependencies:
- python=3.8
- pip:
- azureml-defaults
channels:
- anaconda
リソース
- 詳細については、conda パッケージのピン留めに関するセクションを参照してください
Conda に関する問題
Conda の依存関係がありません
考えられる原因:
- 環境定義で conda 仕様の指定がなく、
user_managed_dependencies
がFalse
(既定値) に設定されています
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
Azure Machine Learning によって conda_dependencies,
に基づいた Python 環境が作成されないようにする場合は、user_managed_dependencies
を True
に設定します
env.python.user_managed_dependencies = True
- すべての必要なパッケージがスクリプトを実行する Python 環境で使用できることをユーザー自身が確認する必要があります
Azure Machine Learning によって conda 仕様に基づいた Python 環境を作成する場合は、環境定義に conda_dependencies
を入力する必要があります
from azureml.core.environment import CondaDependencies
env = Environment(name="env")
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep
適用対象: Azure CLI ml 拡張機能 v2 (現行)
適用対象: Python SDK azure-ai-ml v2 (現行)
環境のベース Docker イメージを指定する必要があります。その後、Azure Machine Learning によってそのイメージの上に conda 環境が構築されます
- conda ファイルへの相対パスを指定します
- conda 仕様から環境を作成する方法を参照してください
リソース
- conda ファイルを手動で作成する方法に関するページを参照してください
- CondaDependencies クラスに関するページを参照してください
- 環境定義で conda 仕様を設定する方法に関するページを参照してください
Conda の依存関係が無効です
考えられる原因:
- 環境定義で指定された conda 依存関係の書式が正しくありません
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
適用対象: Python SDK azureml v1
conda_dependencies
が conda 依存関係 YAML 構造体の JSONified バージョンであることを確認します
"condaDependencies": {
"channels": [
"anaconda",
"conda-forge"
],
"dependencies": [
"python=3.8",
{
"pip": [
"azureml-defaults"
]
}
],
"name": "project_environment"
}
add_conda_package
メソッドを使用して conda の依存関係を指定することもできます
from azureml.core.environment import CondaDependencies
env = Environment(name="env")
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep
適用対象: Azure CLI ml 拡張機能 v2 (現行)
適用対象: Python SDK azure-ai-ml v2 (現行)
環境のベース Docker イメージを指定する必要があります。その後、Azure Machine Learning によってそのイメージの上に conda 環境が構築されます
- conda ファイルへの相対パスを指定します
- conda 仕様から環境を作成する方法を参照してください
リソース
- より広範なサンプルを参照してください
- conda ファイルを手動で作成する方法に関するページを参照してください
- CondaDependencies クラスに関するページを参照してください
- 環境定義で conda 仕様を設定する方法に関するページを参照してください
Conda チャネルがありません
考えられる原因:
- 環境定義で conda チャネルが指定されていません
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
環境の再現性を高めるには、依存関係を取得するチャネルを指定します。 conda チャネルを指定しない場合、conda では変更される可能性のある既定値が使用されます。
適用対象: Python SDK azureml v1
Python SDK を使用して conda チャネルを追加します
from azureml.core.environment import CondaDependencies
env = Environment(name="env")
conda_dep = CondaDependencies()
conda_dep.add_channel("conda-forge")
env.python.conda_dependencies = conda_dep
conda 仕様に YAML を使用している場合は、使用する conda チャネルを含めます
name: project_environment
dependencies:
- python=3.8
- pip:
- azureml-defaults
channels:
- anaconda
- conda-forge
リソース
- 環境定義 v1 で conda 仕様を設定する方法を参照してください
- CondaDependencies クラスに関するページを参照してください
- conda ファイルを手動で作成する方法に関するページを参照してください
- conda 仕様 v2 から環境を作成する方法を参照してください
- conda ファイルを手動で作成する方法に関するページを参照してください
ベース Conda 環境は推奨されません
考えられる原因:
- 環境定義でベース conda 環境が指定されています
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
環境の部分的な更新は依存関係の競合や予期せぬランタイム エラーにつながる可能性があるため、ベース conda 環境の使用は推奨されません。
適用対象: Python SDK azureml v1
ベース conda 環境を削除して、目的の環境に必要なすべてのパッケージを環境定義の conda_dependencies
セクションで指定します
from azureml.core.environment import CondaDependencies
env = Environment(name="env")
env.python.base_conda_environment = None
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep
適用対象: Azure CLI ml 拡張機能 v2 (現行)
適用対象: Python SDK azure-ai-ml v2 (現行)
標準の conda YAML 構成ファイルを使用して環境を定義します
- conda 仕様から環境を作成する方法を参照してください
リソース
- 環境定義 v1 で conda 仕様を設定する方法を参照してください
- CondaDependencies クラスに関するページを参照してください
- conda ファイルを手動で作成する方法に関するページを参照してください
- conda ファイルを手動で作成する方法に関するページを参照してください
依存関係がピン留めされていません
考えられる原因:
- conda 仕様で特定のパッケージのバージョンが指定されていません
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
依存関係のバージョンを指定しない場合、conda パッケージのリゾルバーは、同じ環境の後続のビルドで別のバージョンのパッケージを選択する可能性があります。 これにより、環境の再現性が損なわれ、予期しないエラーの原因になることがあります。
適用対象: Python SDK azureml v1
conda 仕様にパッケージを追加するときにはバージョン番号を含めます
from azureml.core.environment import CondaDependencies
conda_dep = CondaDependencies()
conda_dep.add_conda_package("numpy==1.24.1")
conda 仕様に YAML を使用している場合は、依存関係のバージョンを指定します
name: project_environment
dependencies:
- python=3.8
- pip:
- numpy=1.24.1
channels:
- anaconda
- conda-forge
リソース
- 詳細については、conda パッケージのピン留めに関するセクションを参照してください
Pip に関する問題
Pip が指定されていません
考えられる原因:
- conda 仕様で依存関係として pip が指定されていません
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
再現性を高めるために、conda 仕様で依存関係として pip を指定し、ピン留めしておく必要があります。
適用対象: Python SDK azureml v1
依存関係として pip とそのバージョンと共に指定します
env.python.conda_dependencies.add_conda_package("pip==22.3.1")
conda 仕様に YAML を使用している場合は、依存関係として pip を含めます
name: project_environment
dependencies:
- python=3.8
- pip=22.3.1
- pip:
- numpy=1.24.1
channels:
- anaconda
- conda-forge
リソース
- 詳細については、conda パッケージのピン留めに関するセクションを参照してください
Pip がピン留めされていません
考えられる原因:
- conda 仕様で pip のバージョンが指定されていません
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
pip バージョンを指定していない場合、同じ環境の後続のビルドで別のバージョンが使用されることがあります。 この動作により、異なるバージョンの pip によって解決されるパッケージが異なる場合に、再現性の問題などの予期しないエラーの原因になる可能性があります。
適用対象: Python SDK azureml v1
conda 依存関係で pip バージョンを指定します
env.python.conda_dependencies.add_conda_package("pip==22.3.1")
conda 仕様に YAML を使用している場合は、pip のバージョンを指定します
name: project_environment
dependencies:
- python=3.8
- pip=22.3.1
- pip:
- numpy=1.24.1
channels:
- anaconda
- conda-forge
リソース
- 詳細については、conda パッケージのピン留めに関するセクションを参照してください
その他の環境についての問題
R セクションは非推奨です
考えられる原因:
- 環境定義で R セクションが指定されています
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
Azure Machine Learning SDK for R は、2021 年末に非推奨になり、Azure CLI v2 を使用するように改善された R トレーニングとデプロイ エクスペリエンスに置き換えられました
Azure CLI v2 を使用して R モデルのトレーニングを開始する場合は、サンプル リポジトリを参照してください
環境の定義が存在していません
考えられる原因:
- 存在していない環境または登録されていないが指定されています
- 環境名または環境バージョンの指定方法にスペルミスまたは構文エラーがありました
影響を受けた領域 (現象):
- 環境の登録に失敗
トラブルシューティングの手順
環境名が正しいバージョンと共に正しく指定されていることを確認してください
path-to-resource:version-number
環境の "最新" バージョンを別の方法で指定する必要があります
path-to-resource@latest
イメージのビルドに関する問題
ACR の問題
ACR に到達できない
この問題は、ワークスペースに関連付けられている Azure Container Registry (ACR) リソースにアクセスできない場合に発生する可能性があります。
考えられる原因:
- ワークスペースの ACR が仮想ネットワーク (VNet) (プライベート エンドポイントまたはサービス エンドポイント) の内側にあり、イメージのビルドにコンピューティング クラスターを使用していません。
- ワークスペースの ACR が仮想ネットワーク (VNet) (プライベート エンドポイントまたはサービス エンドポイント) の内側にあり、イメージのビルドに使用されるコンピューティング クラスターがワークスペースの ACR にアクセスできません。
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
- パイプライン ジョブの失敗。
- モデル デプロイの失敗。
トラブルシューティングの手順
- コンピューティング クラスターの VNet がワークスペースの ACR にアクセスできるかどうかを確認します。
- コンピューティング クラスターが CPU ベースであることを確かめます。
Note
- サポートされるのは Azure Machine Learning コンピューティング クラスターのみです。 Compute、Azure Kubernetes Service (AKS) などの種類のインスタンスは、イメージ ビルドコンピューティングではサポートされていません。
リソース
予期しない Dockerfile 形式
この問題は、Dockerfile の形式が正しくない場合に発生する可能性があります。
考えられる原因:
- Dockerfile に無効な構文が含まれています
- Dockerfile に、UTF-8 との互換性がない文字が含まれています
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで暗黙的に環境がビルドされるため、ジョブの実行に失敗します。
トラブルシューティングの手順
- Dockerfile が正しく書式設定され、UTF-8 でエンコードされていることを確認する
リソース
Docker pull に関する問題
Docker イメージをプルできませんでした
この問題は、イメージのビルド中に Docker イメージのプルが失敗したときに発生する可能性があります。
考えられる原因:
- コンテナー レジストリへのパス名が正しくありません
- 仮想ネットワークの背後にあるコンテナー レジストリが、サポートされていないリージョンでプライベート エンドポイントを使っています
- 参照しようとしているイメージが、指定したコンテナー レジストリに存在しません
- イメージをプルしようとしているプライベート レジストリの資格情報を指定していないか、指定された資格情報が正しくありません
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
コンテナー レジストリへのパス名が正しいことを確認します
- レジストリ
my-registry.io
とイメージtest/image
のタグが3.2
の場合、有効なイメージ パスはmy-registry.io/test/image:3.2
となるはずです - 詳細については、レジストリ パスのドキュメントを参照してください
コンテナー レジストリが仮想ネットワークの背後にあるか、サポートされていないリージョンのプライベート エンドポイントを使用している場合
- ポータルからサービス エンドポイント (パブリック アクセス) を使ってコンテナー レジストリを構成し、再試行します
- 仮想ネットワークの背後にコンテナー レジストリを配置した後、Azure Resource Manager テンプレートを実行して、ワークスペースがコンテナー レジストリ インスタンスと通信できるようにします
参照しようとしているイメージが、指定したコンテナー レジストリに存在しない場合
- 正しいタグを使用していること、および
user_managed_dependencies
をTrue
に設定していることを確認してください。 user_managed_dependencies をTrue
に設定すると conda が無効になり、ユーザーがインストールしたパッケージが使用されます
プルしようとしているプライベート レジストリの資格情報を指定していないか、指定された資格情報が正しくありません
- 必要に応じてコンテナー レジストリのワークスペース接続を設定してください
リソース
I/O エラー
この問題は、ネットワークの問題が原因で Docker イメージのプルが失敗した場合に発生する可能性があります。
考えられる原因:
- ネットワーク接続の問題 (一時的な可能性があります)
- ファイアウォールによって接続がブロックされている
- ACR にアクセスできず、ネットワークが分離している。 詳細については、「ACR に到達できない」をご覧ください。
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
ファイアウォール規則にホストを追加する
- VNet の背後にあるワークスペースとリソースに Azure Firewall を使用する方法については、「ネットワークの受信トラフィックおよび送信トラフィックを構成する」を参照してください
ワークスペースのセットアップを評価します。 仮想ネットワークを使用している、あるいはイメージのビルド中にアクセスしようとしているリソースが仮想ネットワークの背後にありますか?
- 仮想ネットワークを使用したワークスペースのセキュリティ保護に関するこの記事の手順に従っていることを確認してください
- Azure Machine Learning は、パブリック インターネットへの受信アクセスと送信アクセスの両方が必要です。 仮想ネットワークのセットアップに問題がある場合は、イメージのビルド時に必要な特定のリポジトリへのアクセスに問題が発生する可能性があります
仮想ネットワークを使用していない場合、または正しく構成されている場合
- イメージを再構築してみてください。 ネットワークの問題が原因でタイムアウトが発生している場合、問題は一時的なものである可能性があり、再構築によって問題を解決できることがあります
Conda のビルド中に発生する問題
仕様が無効です
この問題は、conda の仕様に記載されているパッケージが無効であるか、conda コマンドを正しく実行していない場合に発生する可能性があります。
考えられる原因:
- conda の仕様で使った構文が正しくありません
- conda コマンドを正しく実行していません
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
conda の仕様のエラーは conda create コマンドを正しく使っていない場合に発生する可能性があります
- ドキュメントを読んで、有効なオプションと構文を使っていることを確認します
conda env create
とconda create
については紛らわしいことが知られています。 conda の対応や他のユーザーの既知の解決方法については、こちらを参照してください
ビルドを成功させるには、conda yaml で適切な構文と有効なパッケージの仕様を使っていることを確認します
- パッケージの一致の仕様と conda ファイルを手動で作成する方法に関するページを参照してください
通信エラー
この問題は、conda の仕様に記載されているパッケージをダウンロードするエンティティとの通信に失敗したときに発生する可能性があります。
考えられる原因:
- conda チャネルまたはパッケージ リポジトリとの通信に失敗しました
- これらの失敗は、一時的なネットワーク障害が原因である可能性があります
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
conda の仕様で使っている conda チャネル/リポジトリが正しいことを確認します
- それらが存在し、それらのスペルが正しいことを確認します
conda チャネル/リポジトリが正しい場合
- イメージのリビルドを試みます。障害が一時的なもので、リビルドすることにより問題が解決する可能性があります
- conda の仕様に記載されているパッケージが、指定したチャネル/リポジトリに存在することを確認します
コンパイル エラー
この問題は、コンパイラ エラーが原因で Conda 環境に必要なパッケージのビルドに失敗した場合に発生する可能性があります。
考えられる原因:
- パッケージのスペルが正しくないため、認識されなかった
- コンパイラに問題がある
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
コンパイラを使用している場合
- 使用しているコンパイラが認識されていることを確認します
- 必要に応じて、インストール手順を Dockerfile に追加します
- コンパイラのバージョンを確認し、使用しているすべてのコマンドまたはオプションがコンパイラのバージョンと互換性があることを確認します
- 必要に応じて、コンパイラのバージョンをアップグレードします
一覧表示されているすべてのパッケージのスペルが正しいことと、ピン留めしたバージョンが正しいことを確認します
リソース
コマンドがありません
この問題は、イメージのビルド中または指定された Python パッケージ要件でコマンドが認識されない場合に発生することがあります。
考えられる原因:
- コマンドのスペルが正しくない
- 必要なパッケージがインストールされていないため、コマンドを実行できない
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
- コマンドのスペルが正しいことを確認します
- 実行しようとしているコマンドの実行に必要なパッケージをインストールしていることを確認します
- 必要に応じて、インストール手順を Dockerfile に追加します
リソース
Conda がタイムアウトしています
この問題は、conda のパッケージ解決の完了に時間がかかりすぎる場合に起きる可能性があります。
考えられる原因:
- conda の仕様に記載されているパッケージの数が多く、不要なパッケージが含まれています
- 依存関係をピン留めしていません (tensorflow=2.8 ではなく、tensorflow を含めている)
- 解決方法がないパッケージを記載しています (パッケージ X=1.3 と Y=2.8 を含めているが、X のバージョンが Y のバージョンと互換性がない)
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
- conda の仕様から不要なパッケージを削除します
- パッケージをピン留めする -- 環境の解決が速くなります
- それでも問題が解決しない場合は、この記事を参照して conda のパフォーマンスの理解と向上について詳しく確認してくださいい
メモリ不足
この問題は、使用可能なメモリ不足で conda パッケージの解決が失敗した場合に発生する可能性があります。
考えられる原因:
- conda の仕様に記載されているパッケージの数が多く、不要なパッケージが含まれています
- 依存関係をピン留めしていません (tensorflow=2.8 ではなく、tensorflow を含めている)
- 解決方法がないパッケージを記載しています (パッケージ X=1.3 と Y=2.8 を含めているが、X のバージョンが Y のバージョンと互換性がない)
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
- conda の仕様から不要なパッケージを削除します
- パッケージをピン留めする -- 環境の解決が速くなります
- それでも問題が解決しない場合は、この記事を参照して conda のパフォーマンスの理解と向上について詳しく確認してくださいい
パッケージが見つからない
この問題は、仕様に記載されている 1 つ以上の conda パッケージがチャネル/リポジトリで見つからない場合に発生する可能性があります。
考えられる原因:
- パッケージの名前またはバージョンが、conda の仕様に正しく記載されていません
- conda の仕様に記載されていないパッケージが conda チャネルに存在します
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
- パッケージのスペルが正しいことと、指定したバージョンが存在することを確認します
- 対象となるチャネルにパッケージが存在することを確認します
- パッケージの解決中にパッケージが正しくプルされるように、チャネル/リポジトリが conda の仕様に記載されていることを確認します
conda の仕様でチャネルを指定します。
channels:
- conda-forge
- anaconda
dependencies:
- python=3.8
- tensorflow=2.8
Name: my_environment
リソース
Python モジュールがありません
この問題は、conda の仕様に記載されている Python モジュールが存在しないか、有効でない場合に発生する可能性があります。
考えられる原因:
- モジュールのスペルが正しくありません
- モジュールが認識されていません
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
- モジュールのスペルが正しいことと、モジュールが存在することを確認します
- そのモジュールが conda の仕様で指定した Python バージョンと互換性があることを確認します
- conda の仕様に特定の Python バージョンを記載していない場合は、モジュールと互換性のある特定のバージョンを記載するようにしてください。そうでない場合は、互換性のない既定値が使われる可能性があります
使っている pip モジュールと互換性のある Python バージョンをピン留めします。
channels:
- conda-forge
- anaconda
dependencies:
- python=3.8
- pip:
- dataclasses
Name: my_environment
一致するディストリビューションがありません
この問題は、指定したバージョンに一致するパッケージが見つからない場合に発生する可能性があります。
考えられる原因:
- パッケージ名のスペルが正しくない
- 指定したチャネルまたはフィードにパッケージやバージョンが見つからない
- 指定したバージョンが存在しない
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
- パッケージのスペルが正しいことと、パッケージが存在することを確認します
- パッケージに指定したバージョンが存在することを確認します
- パッケージのインストール元のチャネルを指定していることを確認します。 チャネルを指定しなかった場合、既定値が使用され、その既定値には探しているパッケージがある場合とない場合があります
以下は、Conda yaml 仕様でチャネルを一覧表示する方法です。
channels:
- conda-forge
- anaconda
dependencies:
- python = 3.8
- tensorflow = 2.8
Name: my_environment
リソース
mpi4py をビルドできません
この問題は、mpi4py のホイールのビルドに失敗した場合に発生する可能性があります。
考えられる原因:
- mpi4py のインストールが正常に行われるための要件が満たされていない
- 選択した mpi4py のインストール方法に問題がある
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
MPI が正常にインストールされていることを確認します (MPI-3 のサポートと、MPI が共有/動的ライブラリでビルドされていることが望ましい)
- 詳細については、mpi4py のインストールに関するページを参照してください
- 必要に応じて、MPI のビルドに関する手順に従います
互換性のある Python バージョンを使用していることを確認します
- 古いバージョンが期限切れに近づいているため、Python 3.8 以降をお勧めします
- 詳細については、mpi4py のインストールに関するページを参照してください
リソース
対話型認証が試行されました
この問題は、パッケージのインストール時に pip が対話型認証を試行したときに発生する可能性があります。
考えられる原因:
- 認証が必要なパッケージを一覧表示しましたが、資格情報を提供していません
- イメージのビルド中に、pip は認証を求めるメッセージを表示しようとしましたが、ビルド中は対話型の認証を提供できないため、ビルドに失敗します
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
ワークスペース接続を介して認証を行ってください
適用対象: Python SDK azureml v1
from azureml.core import Workspace
ws = Workspace.from_config()
ws.set_connection("connection1", "PythonFeed", "<URL>", "Basic", "{'Username': '<username>', 'Password': '<password>'}")
適用対象: Azure CLI ml 拡張機能 v2 (現行)
YAML 仕様ファイルからワークスペース接続を作成します
az ml connection create --file connection.yml --resource-group my-resource-group --workspace-name my-workspace
リソース
BLOB が許可されていません
この問題は、ストレージ アカウントの BLOB にアクセスしようとして拒否された場合に発生する可能性があります。
考えられる原因:
- ストレージ アカウントへのアクセスに使っている認可方法が無効です
- Shared Access Signature (SAS) を介して認可しようとしましたが、SAS トークンが期限切れか無効です
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
Azure portal で BLOB データへのアクセスを認可する方法についてはこちらを参照してください
Azure Storage 内のデータへのアクセスを認可する方法についてはこちらを参照してください。
SAS を使って Azure ストレージ リソースにアクセスすることに関心がある場合はこちらを参照してください。
Horovod のビルド
この問題は、horovod のビルドに失敗したために conda 環境の作成または更新に失敗した場合に発生する可能性があります。
考えられる原因:
- horovod のインストールに必要な他のモジュールがインストールされていません
- horovod のインストールに必要な特定のライブラリを含めていません
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
horovod の失敗を引き起こす問題は多数あり、その包括的な一覧は horovod のドキュメントに記載されています
- horovod トラブルシューティング ガイドを参照してください
- 実際のビルド ログを見直して、horovod がビルドに失敗したときに表示されたエラー メッセージがあるかどうか確認します
- 発生している問題と解決策が horovod トラブルシューティング ガイドに記載されている可能性があります
リソース
Conda のコマンドが見つからない
この問題は、conda 環境の作成時または更新時に conda コマンドが認識されない場合に発生する可能性があります。
考えられる原因:
- 使用している基本イメージに conda をインストールしていない
- conda コマンドの実行前に、Dockerfile 経由で conda をインストールしていない
- パスに conda を含めていないか、パスに追加していない
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
conda コマンドの実行前に、Dockerfile に conda のインストール手順があることを確認します
- このconda インストーラーの一覧を確認して、目的のシナリオに必要なものを判断します
conda をインストールしようとするときに、この問題が発生する場合は、conda がパスに追加されていることを確認してください
- ガイダンスについては、このサンプルを確認してください
- Dockerfile の環境変数を設定する方法を確認します
リソース
- conda リポジトリには、利用可能なすべての conda ディストリビューションがあります
Python のバージョンに互換性がありません
この問題は、指定した Python バージョンと互換性がないパッケージが conda 環境で指定されている場合に発生する可能性があります。
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
指定した Python バージョンと互換性がある別バージョンのパッケージを使用します
または、指定したパッケージと互換性がある別バージョンの Python を使用します
- Python のバージョンを変更する場合は、サポートされているバージョンで、有効期限が間近でないものを使用します
- Python の有効期限を参照してください
リソース
Conda ベア リダイレクト
この問題は、引用符を使用することなく、コマンドラインで "<" または ">" を使用してパッケージを指定したときに発生することがあります。 この構文では、conda 環境の作成や更新が失敗する可能性があります。
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
パッケージ仕様を囲む引用符を追加します
- たとえば、
conda install -y pip<=20.1.1
をconda install -y "pip<=20.1.1"
に変更します
UTF-8 デコードのエラー
この問題は、conda 仕様に含まれる文字のデコードに失敗した場合に発生する可能性があります。
考えられる原因:
- conda YAML ファイルに、UTF-8 との互換性がない文字が含まれています。
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
Pip のビルド中に発生する問題
パッケージをインストールできませんでした
この問題は、Python パッケージのインストール時にイメージのビルドが失敗した場合に発生する可能性があります。
考えられる原因:
- このエラーの原因になる可能性がある問題は多数あります
- このメッセージは汎用であり、発生しているエラーがまだ Azure Machine Learning 分析の対象になっていない場合に表示されます
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
イメージ ビルドのエラー詳細については、ビルド ログを確認してください
発生中のエラーを分析するために、Azure Machine Learning チームに向けてフィードバックを残します
パッケージをアンインストールできませんでした
この問題は、オペレーティング システムのパッケージ マネージャーがインストールした Python パッケージのアンインストールに pip で失敗した場合に発生する可能性があります。
考えられる原因:
- 既存の pip の問題または問題のある pip バージョン
- 隔離された環境を使用しないことに起因する問題
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
次の項目を読んで、既存の pip の問題が原因でエラーが発生しているかどうかを判断します
次の操作を試してください
pip install --ignore-installed [package]
conda を使用して別の環境を作成してみてください
無効な演算子
この問題は、要件に無効な演算子が見つかり、pip が Python パッケージのインストールに失敗した場合に発生することがあります。
考えられる原因:
- Python パッケージの要件に無効な演算子が見つかった
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
- パッケージのスペルが正しいことと、指定したバージョンが存在することを確認します
- パッケージ バージョン指定子の書式が正しいことと、有効な比較演算子を使用していることを確認します。 「バージョン指定子」を参照してください。
- 無効な演算子を、エラー メッセージで推奨される演算子に置き換えます。
一致するディストリビューションがありません
この問題は、指定したバージョンに一致するパッケージが見つからない場合に発生する可能性があります。
考えられる原因:
- パッケージ名のスペルが正しくない
- 指定したチャネルまたはフィードにパッケージやバージョンが見つからない
- 指定したバージョンが存在しない
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
- パッケージのスペルが正しいことと、パッケージが存在することを確認します
- パッケージに指定したバージョンが存在することを確認します
pip install --upgrade pip
を実行し、その後、元のコマンドをもう一度実行します。- 使用している pip で目的の Python バージョンのパッケージをインストールできることを確認します。 「pip または pip3 を使用すべきですか?」を参照してください。
リソース
ホイール ファイル名が無効です
この問題は、ホイール ファイルを正しく指定していない場合に発生する可能性があります。
考えられる原因:
- ホイール ファイル名のスペルが間違っているか、不適切な書式設定が使用されています
- 指定したホイール ファイルが見つかりません
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
- ファイル名のスペルが正しいことと、ファイルが存在することを確認します
- ホイール ファイル名の形式に従っていることを確認します
問題を発生させる
ターゲットが指定されておらず、メイクファイルが見つかりません
この問題は、make
の実行時にターゲットを指定せず、メイクファイルが見つからない場合に発生する可能性があります。
考えられる原因:
- メイクファイルが現在のディレクトリに存在しません
- ターゲットが指定されていません
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
- メイクファイルのスペルが正しいことを確認します
- メイクファイルが現在のディレクトリに存在することを確認します
- カスタム メイクファイルがある場合は、
make -f custommakefile
を使用して指定します - メイクファイルまたはコマンド ラインでターゲットを指定します
- ビルドを構成し、メイクファイルを生成します
- メイクファイルが正しく書式設定されていることと、インデントにタブを使用していることを確認します
リソース
コピーの問題
ファイルが見つからない
この問題は、Docker がファイルを検出してコピーできない場合に発生する可能性があります。
考えられる原因:
- Docker ビルド コンテキストでソース ファイルが見つかりません
.dockerignore
によって除外されたソース ファイル
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで暗黙的に環境がビルドされるため、ジョブの実行に失敗します。
トラブルシューティングの手順
- ソース ファイルが Docker ビルド コンテキストに存在することを確認します
- ソース パスと宛先パスが存在し、スペルが正しいことを確認します
- ソース ファイルが現在のディレクトリと親ディレクトリの
.dockerignore
に一覧表示されていないことを確認します COPY
コマンドと同じ行から末尾のコメントをすべて削除してください
リソース
apt-get 問題
apt-get コマンドの実行に失敗しました
この問題は、apt-get の実行に失敗した場合に発生することがあります。
考えられる原因:
- ネットワーク接続の問題 (一時的な可能性があります)
- apt-get を実行しているパッケージに関連する依存関係が破損した
- apt-get コマンドを使用するための適切なアクセス許可がない
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで暗黙的に環境がビルドされるため、ジョブの実行に失敗します。
トラブルシューティングの手順
- ネットワーク接続と DNS 設定を確認します。
apt-get check
を実行して、破損した依存関係を確認します。apt-get update
を実行し、その後、元のコマンドをもう一度実行します。- フラグを指定して コマンドを
-f
実行します。これにより、破損した依存関係からの問題を解決しようとします sudo apt-get install <package-name>
などのsudo
アクセス許可でコマンドを実行します。
リソース
Docker プッシュの問題
Docker イメージを格納できませんでした
この問題は、Docker イメージをコンテナー レジストリにプッシュするときにエラーがあったときに発生する可能性があります。
考えられる原因:
- ワークスペースに関連付けられている ACR で一時的な問題が発生した
- 仮想ネットワークの背後にあるコンテナー レジストリが、サポートされていないリージョンでプライベート エンドポイントを使っています
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドしているときのエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
このエラーがワークスペースの Azure Container Registry (ACR) での一時的な問題と推測される場合は、環境のビルドを再試行します
コンテナー レジストリが仮想ネットワークの背後にあるか、サポートされていないリージョンのプライベート エンドポイントを使用している場合
- ポータルからサービス エンドポイント (パブリック アクセス) を使ってコンテナー レジストリを構成し、再試行します
- 仮想ネットワークの背後にコンテナー レジストリを配置した後、Azure Resource Manager テンプレートを実行して、ワークスペースがコンテナー レジストリ インスタンスと通信できるようにします
仮想ネットワークを使用していない場合や正しく構成してある場合は、単純なローカル ビルドを試して、ACR の資格情報が正しいことをテストします
- Azure portal からワークスペース ACR の資格情報を取得します
docker login <myregistry.azurecr.io> -u "username" -p "password"
を使用して ACR にログインします- イメージ "helloworld" の場合は、
docker push helloworld
を実行して ACR へのプッシュをテストします - クイック スタート: Azure Container Registry タスクを使用したコンテナー イメージのビルドと実行を参照してください
不明な Docker コマンド
不明な Docker 命令
この問題は、Docker が Dockerfile の命令を認識しない場合に発生する可能性があります。
考えられる原因:
- Dockerfile で使用されている不明な Docker 命令
- Dockerfile に無効な構文が含まれています
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで暗黙的に環境がビルドされるため、ジョブの実行に失敗します。
トラブルシューティングの手順
- Docker コマンドが有効で、スペルが正しいことを確認します
- Docker コマンドと引数の間にスペースがあることを確認します
- Dockerfile に不要な空白がないことを確認します
- Dockerfile が正しく書式設定され、UTF-8 でエンコードされていることを確認する
リソース
コマンドが見つからない
コマンドが認識されません
この問題は、実行されているコマンドが認識されない場合に発生することがあります。
考えられる原因:
- コマンドの実行前に、Dockerfile 経由で conda をインストールしていない
- パスにコマンドを含めていないか、パスに追加していない
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで暗黙的に環境がビルドされるため、ジョブの実行に失敗します。
トラブルシューティングの手順コマンドの実行を試行する前に、Dockerfile にコマンドのインストール 手順があることを確認します。
- この例を確認します。
conda をインストールしようとするときに、この問題が発生する場合は、conda がパスに追加されていることを確認してください
- この例を確認します。
- Dockerfile の環境変数を設定する方法を確認します
その他のビルドの問題
ビルド ログを使用できません
考えられる原因:
- Azure Machine Learning に、ビルド ログをストレージ アカウントに格納する権限がない
- ビルド ログの保存中に一時的なエラーが発生した
- イメージ ビルドがトリガーされる前にシステム エラーが発生した
影響を受けた領域 (現象):
- ビルドは成功するが、利用可能なログがない。
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで Azure Machine Learning によって暗黙的に環境がビルドされることが原因で発生するジョブの実行エラー。
トラブルシューティングの手順
一時的な場合は、リビルドで問題が解決される可能性があります
イメージが見つかりません
この問題は、指定した基本イメージが見つからない場合に発生する可能性があります。
考えられる原因:
- イメージを誤って指定した
- 指定したイメージが指定したレジストリに存在しない
影響を受けた領域 (現象):
- UI、SDK、CLI から環境をビルドする際のエラー。
- 最初のステップで暗黙的に環境がビルドされるため、ジョブの実行に失敗します。
トラブルシューティングの手順
- 基本イメージのスペルと書式設定が正しいことを確認します
- 使用している基本イメージが指定したレジストリに存在することを確認します
リソース