

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 外部ライブラリとカーネルのインストール
<a name="nbi-add-external"></a>

**重要**  
現時点では、ノートブックインスタンス内のすべてのパッケージは、Amazon SageMaker AI での使用がライセンス許諾されており、追加の商用ライセンスは必要ありません。ただし、これは今後変更される可能性があります。使用許諾条項が改定されていないか、定期的に確認することをお勧めします。

Amazon SageMaker ノートブックインスタンスには、複数の環境が既にインストールされています。これらの環境には、Jupyter カーネルと scikit、Pandas、NumPy、TensorFlow、MXNet などの Python パッケージが含まれます。これらの環境と、`sample-notebooks` フォルダ内のすべてのファイルは、ノートブックインスタンスを停止して起動すると更新されます。選択したパッケージとカーネルを含む独自の環境をインストールすることもできます。

Amazon SageMaker ノートブックインスタンス内の異なる Jupyter カーネルは別々の conda 環境です。conda 環境については、Conda のドキュメントの 「*環境を管理する*」を参照してください。[https://conda.io/docs/user-guide/tasks/manage-environments.html](https://conda.io/docs/user-guide/tasks/manage-environments.html)

ノートブックインスタンスの Amazon EBS ボリュームにカスタム環境とカーネルをインストールします。これにより、ノートブックインスタンスを停止して再起動してもこれらは保持され、インストールした外部ライブラリが SageMaker AI によって更新されなくなります。そのためには、ノートブックインスタンスの作成時に実行されるスクリプト (`on-create)`) とノートブックインスタンスを再起動するたびに実行されるスクリプト (`on-start`) の両方を含むライフサイクル設定を使用します。ノートブックインスタンスのライフサイクル設定の使用方法については、「[LCC スクリプトを使用した SageMaker ノートブックインスタンスのカスタマイズ](notebook-lifecycle-config.md)」を参照してください。ライフサイクル設定スクリプトサンプルを含む GitHub リポジトリは、「[SageMaker AI ノートブックインスタンスのライフサイクル設定サンプル](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples)」で提供されています。

[https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-create.sh](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-create.sh) と [https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-start.sh](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-start.sh) のサンプルは、ノートブックインスタンスに環境とカーネルをインストールするためのベストプラクティスです。`on-create` スクリプトによって、Jupyter カーネルとしてカスタム環境を作成する `ipykernel` ライブラリがインストールされ、`pip install` と `conda install` を使用してライブラリがインストールされます。スクリプトを調整すれば、必要なカスタム環境を作成してライブラリをインストールできます。SageMaker AI は、ノートブックインスタンスを停止して再起動してもこれらのライブラリを更新しないため、カスタム環境に必要なライブラリの特定のバージョンを保持できます。`on-start` スクリプトでは Jupyter カーネルとして作成したカスタム環境がインストールされ、Jupyter の **[New]** (新規) メニューのドロップダウンリストに環境が表示されます。

## パッケージインストールツール
<a name="nbi-add-external-tools"></a>

SageMaker ノートブックでは、次のパッケージインストールツールをサポートしています。
+ conda install
+ pip install

パッケージは、次の方法を使用してインストールできます。
+ ライフサイクル設定スクリプト。

  スクリプトのサンプルについては、「[SageMaker ノートブックインスタンスのライフサイクル設定サンプル](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples)」を参照してください。ライフサイクル設定の詳細については、「[ライフサイクル設定スクリプトを使用してノートブックインスタンスをカスタマイズする](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html)」を参照してください。
+ ノートブック - 次のコマンドがサポートされています。
  + `%conda install`
  + `%pip install`
+ Jupyter ターミナル - pip と conda を使用してパッケージを直接インストールできます。

ノートブック内からシステムコマンド構文 (\$1 で始まる行) を使用して、パッケージをインストールできます (例: `!pip install` と `!conda install`)。最近、新しいコマンドが IPython に追加されました (`%pip` と `%conda`)。使用されているアクティブ環境やインタプリタが正しく考慮されるため、ノートブックからパッケージをインストールする際には、これらのコマンドを使用することをお勧めします。詳細については、「[%pip and %conda マジック関数を追加する](https://github.com/ipython/ipython/pull/11524)」を参照してください。

### Conda
<a name="nbi-add-external-tools-conda"></a>

Conda は、オープンソースのパッケージ管理システムおよび環境管理システムであり、パッケージとその依存関係をインストールできます。SageMaker AI は、デフォルトチャネルと conda-forge チャネルの 2 つのメインチャネルでの Conda の使用をサポートしています。詳細については、「[Conda チャネル](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/channels.html)」を参照してください。conda-forge チャネルは、コントリビューターがパッケージをアップロードできるコミュニティチャネルです。

**注記**  
Conda による依存関係グラフの解決方法が原因となり、conda-forge からのパッケージのインストールに非常に長い時間がかかることがあります (最もかかる場合は 10 分以上)。

深層学習 AMI には、多くの conda 環境とパッケージがプリインストールされています。プリインストールされているパッケージの数が多いため、互換性が保証されているパッケージのセットを見つけることは困難です。「環境が矛盾しています。パッケージプランをよく確認してください」という警告が表示されることがあります。この警告にもかかわらず、SageMaker AI は SageMaker AI が提供するすべての環境が適切であると認識します。SageMaker AI は、ユーザーがインストールしたパッケージが適切に機能することを保証することはできません。

**注記**  
SageMaker AI AWS Deep Learning AMIs と Amazon EMR のユーザーは、これらのサービスで Anaconda を使用する場合、2024 年 2 月 1 日まで商用ライセンスを取得することなく、商用 Anaconda リポジトリにアクセスできます。2024 年 2 月 1 日以降に商用 Anaconda リポジトリを使用する場合、お客様は独自の Anaconda ライセンス要件を判断する責任があります。

Conda では、conda activate/deactivate と source activate/deactivate の 2 つの方法を使用して、環境を有効化できます。詳細については、「[Linuxで conda activate を使いますか、source activate を使いますか](https://stackoverflow.com/questions/49600611/python-anaconda-should-i-use-conda-activate-or-source-activate-in-linux)」を参照してください。

SageMaker AI は、Amazon EBS ボリュームへの Conda 環境の移動をサポートしています。移動した環境は、インスタンスが停止しても保持されます。環境がルートボリュームにインストールされている場合は、環境が保持されません。これはデフォルトの動作です。ライフサイクルスクリプトのサンプルについては、「[persistent-conda-ebs](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/tree/master/scripts/persistent-conda-ebs)」を参照してください。

**サポートされている conda オペレーション (このトピックの下部にある注釈を参照)**
+ 単一環境でのパッケージの conda install
+ すべての環境でのパッケージの conda install
+ R 環境での R パッケージの conda install
+ メイン conda リポジトリからのパッケージのインストール
+ conda-forge からのパッケージのインストール
+ EBS を使用する conda install の場所の変更
+ conda activate と source activate の両方のサポート

### Pip
<a name="nbi-add-external-tools-pip"></a>

Pip は Python パッケージをインストールして管理するための標準ツールです。Pip は、デフォルトで Python パッケージインデックス (PyPI) 上のパッケージを検索します。Conda とは異なり、pip には環境サポートが組み込まれておらず、ネイティブ/システムライブラリの依存関係を持つパッケージに関しては Conda ほどの完全性を持ちません Pip は Conda 環境にパッケージをインストールする際に使用できます。

PyPI の代わりに pip で代替パッケージリポジトリを使用できます。ライフサイクルスクリプトのサンプルについては、「[on-start.sh](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/add-pypi-repository/on-start.sh)」を参照してください。

**サポートされている pip オペレーション (このトピックの下部にある注釈を参照)**
+ pip を使用した、アクティブな conda 環境のないパッケージのインストール (パッケージをシステム全体にインストールする)
+ pip を使用した、conda 環境へのパッケージのインストール
+ pip を使用した、すべての conda 環境へのパッケージのインストール
+ EBS を使用する pip install の場所の変更
+ 代替リポジトリを使用した、pip によるパッケージのインストール

### サポートされていません
<a name="nbi-add-external-tools-misc"></a>

SageMaker AI では、できるだけ多くのパッケージインストールオペレーションをサポートすることを目指しています。ただし、SageMaker AI または DLAMI がパッケージをインストールした場合、これらのパッケージで以下のオペレーションを実行すると、ノートブックインスタンスが不安定になる場合があります。
+ アンインストール
+ ダウングレード
+ アップグレード

yum install によるパッケージのインストールや、CRAN からの R パッケージのインストールはサポートされません。

ネットワークの状態や設定、Conda や PyPi の可用性などの潜在的な問題があるため、パッケージが一定の時間内にインストールされることは保証できません。

**注記**  
パッケージが正常にインストールされることは保証できません。互換性のない依存関係を持つ環境にパッケージをインストールしようとすると、インストールが失敗する可能性があります。そのような場合は、ライブラリのメンテナンス担当者に連絡して、パッケージの依存関係を更新できるかどうかを確認してください。また、インストールを許可するように環境を変更することもできます。ただし、このような変更を行う場合は、既存のパッケージを削除または更新する必要があり、この環境の安定性が保証されなくなります。