0 / 0
資料の 英語版 に戻る
外部ライブラリとパッケージを使ってランタイムをカスタマイズする
最終更新: 2024年11月21日
外部ライブラリとパッケージを使ってランタイムをカスタマイズする

カスタム・ソフトウェア仕様を使用して、任意のサード・パーティーのライブラリーまたはユーザー作成の Python パッケージ、あるいはその両方を参照できます。 サード・パーティー・ライブラリーまたはユーザー作成の Python パッケージは、カスタム・ソフトウェア仕様で参照できるように、パッケージ拡張として指定する必要があります。

デプロイメント・ランタイムは、以下の方法でカスタマイズできます。

watsonx.aiStudio プロジェクトでカスタマイズを定義し、デプロイメントスペースにプロモートする

watsonx.aiStudio プロジェクトの環境は、Anaconda またはPyPIリポジトリからインストールできるサードパーティライブラリを含めるようにカスタマイズできます。

詳しくは、 環境を参照してください。

カスタム環境の作成の一環として、以下のステップが内部で実行されます (ユーザーに表示されます)。

  • サード・パーティー・ライブラリーの詳細を含むパッケージ拡張は、 conda YAML formatで作成されます。
  • カスタム環境と同じ名前のカスタム・ソフトウェア仕様が作成され、作成されたパッケージ拡張がこのカスタム・ソフトウェア仕様に関連付けられます。

カスタム環境で作成されたモデルやPython関数/スクリプトは、プロジェクトスコープ内のwatsonx.aiRuntime リポジトリに保存される際に、カスタムソフトウェア仕様を参照する必要があります。

プロジェクトからデプロイメント・スペースへのソフトウェア仕様およびパッケージ拡張の伝搬

watsonx.aiStudio プロジェクトで作成されたカスタムソフトウェア仕様とパッケージ拡張をデプロイメントスペ ースにエクスポートします:

  1. プロジェクト・インターフェースから、 「管理」 タブをクリックします。
  2. 「環境」を選択します。
  3. 「テンプレート」 タブをクリックします。
  4. カスタム環境の 「オプション」 メニューから、 「スペースにプロモート」を選択します。

watsonx.aiStudio のインターフェイスで、カスタム環境の「スペースにプロモート」を選択する

または、カスタム環境に関連付けられたモデルやPython関数をwatsonx.aiStudio プロジェクトからデプロイメント スペースに昇格させると、関連付けられたカスタム ソフトウェア仕様とパッケージ拡張子もデプロイメント スペースに昇格します。

ソフトウェア仕様およびパッケージ拡張をデプロイメント・スペースにプロモートした後に更新する場合は、以下の手順を実行します。

  1. デプロイメント・スペースで、 watsonx.ai Python クライアントを使用して、ソフトウェア仕様、パッケージ拡張、および関連モデル (オプション) を削除します。
  2. プロジェクトで、変更されたカスタム・ソフトウェア仕様およびパッケージ拡張に関連付けられているモデル、関数、またはスクリプトをスペースにプロモートします。

ソフトウェア仕様は、それを含むプロジェクトまたはスペースをインポートするときにも組み込まれます。

watsonx.aiRuntimePythonクライアントを使用した、デプロイメントスペースでのパッケージ拡張とカスタムソフトウェア仕様の作成

watsonx.aiRuntime API またはPythonクライアントを使用して、基本仕様から派生したカスタムソフトウェア仕様を定義することができます。

サード・パーティー・ライブラリーまたはユーザー作成の Python パッケージを使用するカスタム・ソフトウェア仕様を作成する手順の概要は、以下のとおりです。

  1. オプション: サード・パーティー・ライブラリーのリストを含む conda YAML ファイルを保存する か、 ユーザー作成の Python ライブラリーを保存してパッケージ拡張を作成します

    注: モデルがサード・パーティー・ライブラリーまたはユーザー作成の Python ライブラリーに依存していない場合、このステップは必要ありません。
  2. カスタム・ソフトウェア仕様を作成する。

  3. 作成したカスタム・ソフトウェア仕様にパッケージ拡張の参照を追加します。

サード・パーティー・ライブラリーのリストを含む conda YAML ファイルの保存

サード・パーティー・ライブラリーのリストを含む conda YAML ファイルをパッケージ拡張として保存し、パッケージ拡張にリンクされたカスタム・ソフトウェア仕様を作成するには、以下のようにします。

  1. 認証してクライアントを作成します。

  2. デフォルトのデプロイメント・スペースを作成して設定してから、使用可能なソフトウェア仕様をリストします。

     metadata = {
         wml_client.spaces.ConfigurationMetaNames.NAME:
             'examples-create-software-spec',
         wml_client.spaces.ConfigurationMetaNames.DESCRIPTION:
             'For my models'
     }
     space_details = wml_client.spaces.store(meta_props=metadata)
     space_uid = wml_client.spaces.get_id(space_details)
    
     # set the default space
     wml_client.set.default_space(space_uid)
    
     # see available meta names for software specs
     print('Available software specs configuration:', wml_client.software_specifications.ConfigurationMetaNames.get())
     wml_client.software_specifications.list()
    
     asset_id = 'undefined'
     pe_asset_id = 'undefined'
    
  3. 基本仕様に追加するパッケージ拡張用のメタデータを作成します。

    pe_metadata = {
        wml_client.package_extensions.ConfigurationMetaNames.NAME:
            'My custom library',
        # optional:
        # wml_client.software_specifications.ConfigurationMetaNames.DESCRIPTION:
        wml_client.package_extensions.ConfigurationMetaNames.TYPE:
            'conda_yml'
    }
    
  4. パッケージのリストを含む yaml ファイルを作成し、 customlibrary.yamlという名前で保存します。

    yaml ファイルの例:

    name: add-regex-package
    dependencies:
        - regex
    

    詳しくは、 カスタマイズの例を参照してください。

  5. パッケージ拡張情報を保存します。

    pe_asset_details = wml_client.package_extensions.store(
        meta_props=pe_metadata,
        file_path='customlibrary.yaml'
    )
    pe_asset_id = wml_client.package_extensions.get_id(pe_asset_details)
    
  6. ソフトウェア仕様のメタデータを作成し、ソフトウェア仕様を保管します。

    # Get the id of the base software specification
    base_id = wml_client.software_specifications.get_id_by_name('default_py3.9')
    
    # create the metadata for software specs
    ss_metadata = {
        wml_client.software_specifications.ConfigurationMetaNames.NAME:
            'Python 3.9 with pre-installed ML package',
        wml_client.software_specifications.ConfigurationMetaNames.DESCRIPTION:
            'Adding some custom libraries like regex', # optional
        wml_client.software_specifications.ConfigurationMetaNames.BASE_SOFTWARE_SPECIFICATION:
            {'guid': base_id},
        wml_client.software_specifications.ConfigurationMetaNames.PACKAGE_EXTENSIONS:
            [{'guid': pe_asset_id}]
    }
    
    # store the software spec
    ss_asset_details = wml_client.software_specifications.store(meta_props=ss_metadata)
    
    # get the id of the new asset
    asset_id = wml_client.software_specifications.get_id(ss_asset_details)
    
    # view new software specification details
    import pprint as pp
    
    ss_asset_details = wml_client.software_specifications.get_details(asset_id)
    print('Package extensions', pp.pformat(
        ss_asset_details['entity']['software_specification']['package_extensions']
    ))
    

ユーザー作成の Python ライブラリーの保存とパッケージ拡張の作成

詳しくは、 モデルでカスタム・コンポーネントを使用するための要件を参照してください。

ユーザー作成の Python パッケージをパッケージ拡張として保存し、パッケージ拡張にリンクされたカスタム・ソフトウェア仕様を作成するには、以下のようにします。

  1. 認証してクライアントを作成します。

  2. デフォルトのデプロイメント・スペースを作成して設定してから、使用可能なソフトウェア仕様をリストします。

     metadata = {
         wml_client.spaces.ConfigurationMetaNames.NAME:
             'examples-create-software-spec',
         wml_client.spaces.ConfigurationMetaNames.DESCRIPTION:
             'For my models'
     }
     space_details = wml_client.spaces.store(meta_props=metadata)
     space_uid = wml_client.spaces.get_id(space_details)
    
     # set the default space
     wml_client.set.default_space(space_uid)
    
     # see available meta names for software specs
     print('Available software specs configuration:', wml_client.software_specifications.ConfigurationMetaNames.get())
     wml_client.software_specifications.list()
    
     asset_id = 'undefined'
     pe_asset_id = 'undefined'
    
  3. 基本仕様に追加するパッケージ拡張用のメタデータを作成します。

    注:

    pip_zip は、 wml_client.package_extensions.ConfigurationMetaNames.TYPE メタデータ・プロパティーの値としてのみ指定できます。

    pe_metadata = {
        wml_client.package_extensions.ConfigurationMetaNames.NAME:
            'My Python library',
        # optional:
        # wml_client.software_specifications.ConfigurationMetaNames.DESCRIPTION:
        wml_client.package_extensions.ConfigurationMetaNames.TYPE:
            'pip.zip'
    }
    
  4. ユーザー作成の Python ライブラリーのパスを指定します。

    python_lib_file_path="my-python-library-0.1.zip"
    

    詳しくは、 モデルでカスタム・コンポーネントを使用するための要件を参照してください。

  5. パッケージ拡張情報を保存します。

    pe_asset_details = wml_client.package_extensions.store(
        meta_props=pe_metadata,
        file_path=python_lib_file_path
    )
    pe_asset_id = wml_client.package_extensions.get_id(pe_asset_details)
    
  6. ソフトウェア仕様のメタデータを作成し、ソフトウェア仕様を保管します。

    # Get the id of the base software specification
    base_id = wml_client.software_specifications.get_id_by_name('default_py3.9')
    
    # create the metadata for software specs
    ss_metadata = {
        wml_client.software_specifications.ConfigurationMetaNames.NAME:
            'Python 3.9 with pre-installed ML package',
        wml_client.software_specifications.ConfigurationMetaNames.DESCRIPTION:
            'Adding some custom libraries like regex', # optional
        wml_client.software_specifications.ConfigurationMetaNames.BASE_SOFTWARE_SPECIFICATION:
            {'guid': base_id},
        wml_client.software_specifications.ConfigurationMetaNames.PACKAGE_EXTENSIONS:
            [{'guid': pe_asset_id}]
    }
    
    # store the software spec
    ss_asset_details = wml_client.software_specifications.store(meta_props=ss_metadata)
    
    # get the id of the new asset
    asset_id = wml_client.software_specifications.get_id(ss_asset_details)
    
    # view new software specification details
    import pprint as pp
    
    ss_asset_details = wml_client.software_specifications.get_details(asset_id)
    print('Package extensions', pp.pformat(
        ss_asset_details['entity']['software_specification']['package_extensions']
    ))
    

トラブルシューティング

When a conda yml-based custom library installation fails with this error: Encountered error while installing custom library, try these alternatives:

  • 該当する Python バージョンに対して、Anaconda で使用可能な同じパッケージの別のバージョンを使用してください。

  • pip を使用して、pypi リポジトリーからライブラリーをインストールします。 conda yml インストール・ファイルの内容を編集します:

    name: <conda yml file name>
    dependencies:
    - numpy
    - pip:
        - pandas==1.2.5
    

親トピック: デプロイメント・ランタイムのカスタマイズ

生成 AI の検索と回答
これらの回答は、製品資料の内容に基づいて、 watsonx.ai のラージ言語モデルによって生成されます。 詳細