注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

トラブルシューティングガイド

カスタム環境の初期化が遅い

初期化が遅いことは、通常、環境定義が大きすぎるか、複雑すぎることを意味します。環境内のパッケージ数に応じて、初期化時間は超線形的に増加する傾向があります。また、Foundry は一般的によく使われる環境を事前に初期化するため、デフォルトプロファイルに基づいてカスタム環境を作成した場合、遅さはおそらく事前に初期化された環境をもう受け取らないためです。新しい環境が作成されるのを待つ必要があります。環境作成プロセスについての詳細は、環境作成の概要を参照してください。

以下を試してみてください。

  1. 元に戻す - 環境の初期化が、その設定に変更が加えられた後に遅くなり始めた場合、変更を元に戻してみてください。特定のケースで、たとえ 1 つのパッケージを追加するだけでも、初期化時間が劇的に増加することがあります。
  2. 単純化する - 環境定義から不要なパッケージを削除します。小さく特化した環境は、大規模で汎用性のあるものよりもはるかに高性能です。
  3. バージョンを固定する - 環境設定パネルで、いくつかのパッケージにバージョン制約を追加します。これは、環境の選択で説明されています。python のように多くの可能なバージョンがあるパッケージや、scipy のように依存関係グラフが複雑なパッケージに対して行うと効果的です。特定のパッケージを追加することで環境が遅くなった場合、そのパッケージのバージョンを固定してみてください。
    • 注意: バージョン固定を追加すると、環境が満たせなくなることがあります。環境の初期化に失敗した場合、固定を緩めてみてください。例えば、python=3.6.10 はそのバージョンのみに一致しますが、python=3.6python 3.6.x のいずれかに一致するため、満たしやすくなります。
    • 1 つの方法として、環境が(ピンなしで)解決するのを待ってから、選択されたバージョンを確認し(解決済み環境の表示を参照)、初期化パフォーマンスが十分に速くなるまで、それらの特定のバージョンに対してピンを追加することができます。通常、多くの依存関係があるパッケージのバージョンを固定し、他のすべてのパッケージを固定しないのが最適です。

環境の初期化に失敗する

環境の初期化に失敗した場合、環境起動エラーログを表示して、何が悪いかについての追加情報を確認できます。

environment_error_dialog

ログの最初の行は、「Execution failed with non-zero exit code:」という文字列に続いて整数のエラーコードが表示されます。このエラーコードは、特定の失敗モードを示しています。

コード 1 - 環境解決エラー

このエラーは、指定されたパッケージの一部(および/またはその依存関係)が互換性がないか、インストールできないことを示しています。環境設定パネルでの最近の変更が初期化の失敗を引き起こした場合、変更を元に戻してみてください。以下は、一般的な環境解決エラーのリストです。

新しい Mamba エラーメッセージ

Palantir は、環境初期化エラーメッセージのフォーマットを改善することで、オープンソースの Mamba コミュニティに貢献しました。2023年2月以降、Foundry サービスは、環境の失敗によって侵害される依存関係ツリーをより正確に表すエラーを利用できるようになりました。

これらの新しいメッセージを理解する方法、解釈する方法、および修復する方法についてのアドバイスについては、新しいエラーメッセージを参照してください。

レガシー Mamba エラーメッセージ

以下は、新しい Mamba エラーメッセージが導入される前の、レガシーエラーメッセージからの一般的なエラーメッセージのリストです。

パッケージが見つからない

この場合、設定されたチャネルのどれもが、パッケージ A 依存関係を提供していません。

Copied!
1 問題:要求されたA.a.a.aを提供するものがありません

この問題は、ピン留めされたパッケージのバージョンが存在しない場合に発生することがあります。この場合、meta.ymlの中でパッケージのバージョン指定を緩めるか削除してみてください。たとえば、matplotlib 1.1.1matplotlibに変更することができます。また、別の原因として、環境マネージャが指定されたバージョンをインストールするために必要なパッケージを見つけることができなかったことも考えられます。

依存関係が見つからない

このケースでは、パッケージ A が必須の依存関係 B を含んでいるが、それがどのチャンネルからも提供されていない状況です。

Copied!
1 問題: A-a.a.a に必要な B-b.b.b を提供するものがありません:

Bはユーザーが明示的に要求したパッケージ(meta.yml/foundry-ml/vectorプロファイル内)であるか、または間接的な依存関係である場合があります。

これは、Bがユーザーのエンロールメントにインストールできない場合に発生することがあります。たとえば、Bがリコールされたため、インストールできない状態になっているかもしれません。

この場合、Aの固定バージョンを削除して、すべての依存関係が利用可能なAのバージョンがあるかどうかを確認するか、またはPalantirの担当者に連絡して、必要なパッケージをFoundryにインポートしてもらってください。

重複するパッケージエラー
Copied!
1 2 // X.a.b.c と X.d.e.f の両方をインストールできません cannot install both X.a.b.c and X.d.e.f

このエラーは、同じパッケージ X をインストールし、両方に対して異なるバージョンのピン留めを試みると発生します。例えば、meta.ymlpython 3.6.*python 3.7.* の両方をピン留めしようとするとこのエラーが発生するかもしれません。この問題は、重複したパッケージのピン留めのうち1つを削除することで解決できます。

権限エラー
Copied!
1 2 // CondaService:ReadRepositoryPermissionDenied // Condaサービス:リポジトリ読取り権限拒否

このエラーが表示される場合、エンロールメントに必要なアセットやパッケージが利用できない可能性があります。

パッケージの競合

この場合、パッケージ A がパッケージ B のバージョンに依存していますが、このバージョンの B が他のパッケージと競合します:

Copied!
1 問題: パッケージ A-a.a.a は B >=2.2.5,<2.3.0a0 を要求しますが、インストールできるプロバイダが存在しません

このメッセージは、特定のバージョンのパッケージBが必要であるが、そのバージョンが利用可能でないため、パッケージA-a.a.aをインストールできないことを示しています。 B パッケージは、環境で明示的に要件としてリストされていない A の推移的依存関係を指している場合があります。推移的依存関係についての詳細は、Resolved Environment のドキュメントを参照してください。

Code 1 エラーの修復

環境の失敗を修復するには、次の手順を検討してください。

  1. 環境の起動ログで STDOUT を確認します。
  2. 失敗する解決策の最小限の例を作成します。環境が初期化されるまでパッケージを削除し、ブロッカーとなるパッケージを特定するまでパッケージを追加し直します。
  3. パッケージのピンを削除して制約を緩和してみてください。
    • このプロセスを高速化するために、複数のワークブックや同じワークブックの複数のブランチを別々のウィンドウで開くことができます。
    • 問題の発見にはバイナリ検索を使用することをお勧めします。1つのワークブックですべての制約を削除し、別のワークブックで制約の半分を削除し、別のワークブックで残りの半分を削除し、以降も同様に行います。

Code 137 - モジュールのメモリが不足

このエラーは、通常、環境の初期化に必要なメモリがSparkモジュールで利用可能なメモリよりも多いことを示しています。環境設定パネルでの最近の変更が初期化の失敗を引き起こした場合、変更を元に戻してみてください。それ以外の場合、以下の提案のうち1つ以上を試してみてください。

  • 環境から不要なパッケージを削除します。環境内のパッケージの数が増えると、メモリ使用量は超線形的に増加するため、いくつかのパッケージを削除するだけで問題が解決するかもしれません。
  • 環境の初期化が遅い のセクションのステップ3で説明されているように、いくつかのパッケージにバージョン制約を追加します。ピン留めするパッケージのバージョンごとに、環境の解決の複雑さが減少し、環境の初期化に必要なメモリ量が減少します。

不要なパッケージをすべて削除し、残りのパッケージの一部を特定のバージョンに固定した後も、環境の初期化に失敗する場合は、Palantirの代表者に連絡し、試したデバッグ手順の詳細を含めてください。

その他のコード

上記にリストされていないエラーコードで環境の初期化に失敗し、リトライしても環境が再び失敗する場合は、Palantirの代表者に連絡し、エラーログの全文を含めてください。

デフォルトの環境初期化速度が一定でない

デフォルトのプロファイルが時々素早く初期化され、時々時間がかかることを想定しています。後者の場合、Mambaが環境仕様を解決し、WorkbookをバックアップするSparkモジュールにインストールするのを待っています。これがデフォルトの動作です。前者の場合、事前に初期化されたモジュールを取得しているか、環境仕様がキャッシュ内の解決済み環境と一致してすぐにインストールできる状態になっています。多くのユーザーが同時にワークブックを開いている場合、事前に初期化されたモジュールを取得する可能性が低く、新しいモジュールが起動されるのを待たなければなりません。

CondaパッケージとJARの両方が必要なパッケージ

一部のパッケージは、CondaパッケージとJARの両方が必要であるため、利用可能になります。一般的な例は、graphframesパッケージです。このようなパッケージには特別なセットアッププロセスが必要であり、このパッケージがインスタンスに対して以前に設定されていない場合、ビルド時に次のエラーが発生することがあります。

Copied!
1 2 // o257.loadClass.: java.lang.ClassNotFoundException:<Class> // o257.loadClass: Java言語のクラスが見つからない例外:<クラス>

JARファイルは、コントロールパネルのConda環境設定タブの詳細セクションで、プロファイルの設定に追加することができます(Code Workbookプロファイルの設定を参照してください)。 このようなパッケージの設定に関してサポートが必要な場合は、Palantirの担当者にお問い合わせください。

その他の問題

上記のガイダンスが問題を解決するのに十分でない場合や、このガイドの範囲外の問題に遭遇した場合は、Palantirの担当者に連絡し、試みたデバッグ手順の詳細を含めてください。