5.3. カスタムモデルの設定


組織管理者は、組織の既存の Ansible コンテンツでトレーニングされた、微調整されたカスタムモデルを作成して使用できます。この機能を使用すると、組織の自動化パターンに合わせてモデルを調整し、コード推奨エクスペリエンスを向上させることができます。

カスタムモデルを作成したら、次のいずれかのアクセスタイプを指定できます。

  • 組織内の全ユーザーのアクセスを有効にする

    組織のデフォルトモデルとしてカスタムモデルを設定できます。組織内の全ユーザーがカスタムモデルを使用できます。

  • 組織内の一部の Ansible ユーザーのアクセスを有効にする

    Ansible VS Code 拡張機能の model-override 設定を使用すると、特定の Ansible ユーザーは、Ansible Lightspeed サービスを調整して、デフォルトモデルではなくカスタムモデルを使用できます。

5.3.1. カスタムモデル設定のプロセス

カスタムモデルを設定するには、以下のタスクを実行します。

5.3.2. コンテンツパーサーツールを使用したトレーニングデータセットの作成

コマンドラインインターフェイス (CLI) ツールであるコンテンツパーサーツールを使用して、既存の Ansible ファイルをスキャンし、カスタムモデルトレーニングデータセットを生成します。トレーニングデータセットには、Ansible ファイルのリストと、プロジェクトルートからの相対パスが含まれています。次に、このデータセットを IBM watsonx Code Assistant にアップロードし、これを使用して、組織の既存の Ansible コンテンツに登録されたカスタムモデルを作成できます。

5.3.2.1. トレーニングセットの作成方法

次のいずれかの方法を使用して、トレーニングデータセットを生成できます。

  • ansible-lint 前処理を使用する場合

    デフォルトでは、コンテンツパーサーツールは、ansible-lint 前処理を使用してトレーニングデータセットを生成します。コンテンツパーサーツールは、ansible-lint ルールを使用して Ansible ファイルをスキャンし、コンテンツが Ansible のベストプラクティスに準拠していることを確認します。ルール違反が見つかった場合、コンテンツパーサーツールは生成された出力からこれらのファイルを除外します。このようなシナリオでは、ルール違反を解決し、コンテンツパーサーツールを再度実行して、生成された出力にすべての Ansible ファイルが含まれるようにする必要があります。

  • ansible-lint 前処理を使用しない場合

    ansible-lint の前処理を行わずにトレーニングデータセットを生成できます。この方法では、コンテンツパーサーツールは Ansible ファイルの ansible-lint ルール違反をスキャンしないため、トレーニングデータセットにはすべてのファイルが含まれます。トレーニングデータセットにはすべてのファイルが含まれていますが、Ansible のベストプラクティスに準拠していない可能性があり、コード推奨エクスペリエンスの品質に影響を与える可能性があります。

5.3.2.2. サポートされるデータソース

コンテンツパーサーツールは、以下のディレクトリーおよびファイル形式をスキャンします。

  • ローカルディレクトリー
  • アーカイブファイル (.zip.tar.tar.gz.tar.bz2.tar.xz ファイルなど)
  • Git リポジトリー URL (プライベートリポジトリーとパブリックリポジトリーの両方を含む)

5.3.2.3. トレーニングデータセットの作成プロセス

カスタムモデルトレーニングデータセットを作成するには、次のタスクを実行します。

  1. コンテンツパーサーツールをコンピューターにインストールする
  2. カスタムモデルトレーニングデータセットを生成する
  3. 生成されたトレーニングデータセットを表示する
  4. ansible-lint ルール違反を解決する (オプション: ansible-lint 前処理を使用してトレーニングデータセットを生成し、ansible-lint ルール違反を検出した場合)
  5. 複数のトレーニングデータセットを 1 つの JSONL ファイルにマージする (オプション: 複数のトレーニングデータセットを生成した場合)

5.3.2.4. コンテンツパーサーツールのインストール

コマンドラインインターフェイス (CLI) ツールであるコンテンツパーサーツールをコンピューターにインストールします。

前提条件

コンピューターに次のいずれかのサポートされている OS があることを確認します。

  • Python バージョン 3.10 以降。
  • Linux や Mac OS などの UNIX OS。

    注記

    Microsoft Windows OS へのコンテンツパーサーツールのインストールはサポートされていません。

手順

  1. 作業ディレクトリーを作成し、venv Python 仮想環境を設定します。

    $ python -m venv ./venv

    $ source ./venv/bin/activate

  2. pip リポジトリーから最新バージョンのコンテンツパーサーツールをインストールします。

    $ pip install --upgrade pip

    $ pip install --upgrade ansible-content-parser

  3. 以下のいずれかのタスクを実行します。

    • ansible-lint の前処理なしでトレーニングデータセットを生成するには、カスタムモデルトレーニングデータセットの生成 セクションを参照してください。
    • ansible-lint 前処理を使用してトレーニングデータセットを生成するには、最新バージョンの ansible-lint がコンピューターにインストールされていることを確認してください。

      1. コンピューターにインストールされている ansible-lint のバージョンを表示します。

        $ ansible-content-parser --version

        $ ansible-lint --version

        アプリケーションのバージョンとその依存関係のリストが表示されます。

      2. コンテンツパーサーツールでインストールされた ansible-lint のバージョンが、以前にインストールされた ansible-lint のバージョンと同じであることを出力で確認します。インストールされている ansible-lint のバージョンが一致しないと、コンテンツパーサーツールと ansible-lint の結果が矛盾します。

        たとえば、次の出力では、コンテンツパーサーツールのインストールには、以前にインストールされた ansible-lint バージョン 6.13.1 とは一致しない ansible-lint バージョン 6.20.0 が含まれています。

        $ ansible-content-parser --version
        ansible-content-parser 0.0.1 using ansible-lint:6.20.0 ansible-core:2.15.4
        $ ansible-lint --version
        ansible-lint 6.13.1 using ansible 2.15.4
        A new release of ansible-lint is available: 6.13.1  6.20.0
        Copy to Clipboard
      3. ansible-lint のバージョンが一致しない場合は、venv Python 仮想環境を非アクティブ化して、アクティブ化し直します。

        $ deactivate

        $ source ./venv/bin/activate

      4. コンテンツパーサーツールでインストールされた ansible-lint のバージョンが、以前にインストールされた ansible-lint のバージョンと同じであることを確認します。

        $ ansible-content-parser --version

        $ ansible-lint --version

        たとえば、次の出力は、コンピューター上の両方の ansible-lint インストールがバージョン 6.20.0 であることを示しています。

        $ ansible-content-parser --version
        ansible-content-parser 0.0.1 using ansible-lint:6.20.0 ansible-core:2.15.4
        $ ansible-lint --version
        ansible-lint 6.20.0 using ansible-core:2.15.4
        ansible-compat:4.1.10 ruamel-yaml:0.17.32 ruamel-yaml-clib:0.2.7
        Copy to Clipboard

5.3.2.5. カスタムモデルトレーニングデータセットの生成

コンテンツパーサーツールをインストールした後、それを実行してカスタム Ansible ファイルをスキャンし、カスタムモデルトレーニングデータセットを生成します。その後、トレーニングデータセットを IBM watsonx Code Assistant にアップロードし、組織向けのカスタムモデルを作成できます。ansible-lint 前処理を使用していてルール違反が発生した場合は、トレーニングデータセットを IBM watsonx Code Assistant にアップロードする前に ルール違反を解決する 必要があります。

次のいずれかの方法を使用して、トレーニングデータセットを生成できます。

  • ansible-lint 前処理を使用する場合

    デフォルトでは、コンテンツパーサーツールは、ansible-lint 前処理を使用してトレーニングデータセットを生成します。コンテンツパーサーツールは、ansible-lint ルールを使用して Ansible ファイルをスキャンし、コンテンツが Ansible のベストプラクティスに準拠していることを確認します。ルール違反が見つかった場合、コンテンツパーサーツールは生成された出力からこれらのファイルを除外します。このようなシナリオでは、ルール違反を解決し、コンテンツパーサーツールを再度実行して、生成された出力にすべての Ansible ファイルが含まれるようにする必要があります。

  • ansible-lint 前処理を使用しない場合

    ansible-lint の前処理を行わずにトレーニングデータセットを生成できます。この方法では、コンテンツパーサーツールは Ansible ファイルの ansible-lint ルール違反をスキャンしないため、トレーニングデータセットにはすべてのファイルが含まれます。トレーニングデータセットにはすべてのファイルが含まれていますが、Ansible のベストプラクティスに準拠していない可能性があり、コード推奨エクスペリエンスの品質に影響を与える可能性があります。

前提条件

  • コンピューターにコンテンツパーサーツールがインストール済みである。
  • コンテンツパーサーツールでインストールされた ansible-lint のバージョンが、以前にインストールされた ansible-lint のバージョンと同じであることを確認する必要があります。

手順

  1. コンテンツパーサーツールを実行してトレーニングデータセットを生成します。

    • ansible-lint 前処理を使用する場合: $ ansible-content-parser source output
    • ansible-lint 前処理を使用しない場合: $ ansible-content-parser source output -S

      次の表に、必要なパラメーターをまとめています。

      パラメーター説明

      source

      トレーニングデータセットのソースを指定します。

      output

      トレーニングデータセットの出力を指定します。

      -S または --skip-ansible-lint

      トレーニングデータセットの生成中に ansible-lint の前処理をスキップするように指定します。

    例: ソースが Github URL https://github.com/ansible/ansible-tower-samples.git で、出力ディレクトリーが /tmp/out の場合、コマンドプロンプトは、
    $ ansible-content-parser https://github.com/ansible/ansible-tower-samples.git/tmp/out のようになります。

  2. オプション: 追加情報を含むトレーニングデータセットを生成するには、コンテンツパーサーツールの実行中に次のパラメーターを指定します。

    パラメーター説明

    --source-license

    source ディレクトリーのライセンス情報をトレーニングのデータセットに含めるように指定します。

    --source-description

    トレーニングデータセットにソースディレクトリーの説明を含めるように指定します。

    --repo-name

    トレーニングデータセットにリポジトリー名を含めるように指定します。リポジトリー名を指定しない場合、コンテンツパーサーツールはソース名からリポジトリー名を自動的に生成します。

    --repo-url

    トレーニングデータセットにリポジトリー URL を含めるように指定します。リポジトリー URL を指定しない場合、コンテンツパーサーツールはソース URL からリポジトリー URL を自動的に生成します。

    -v または --verbose

    コンソールのログ情報を表示します。

    Github リポジトリー ansible-tower-samples のコマンドプロンプトの例

    $ ansible-content-parser --profile min \
    --source-license undefined \
    --source-description Samples \
    --repo-name ansible-tower-samples \
    --repo-url 'https://github.com/ansible/ansible-tower-samples' \
    git@github.com:ansible/ansible-tower-samples.git /var/tmp/out_dir
    Copy to Clipboard

    Github リポジトリーの ansible-tower-samples 用に生成されたトレーニングデータセットの例

    トレーニングデータセットは、コマンドライン JSON 処理ツールである Jeff Goldblum (jg) でフォーマットされます。

    $ cat out_dir/ftdata.jsonl| jq
    {
    "data_source_description": "Samples",
    "input": "---\n- name: Hello World Sample\n hosts: all\n tasks:\n - name: Hello Message",
    "license": "undefined",
    "module": "debug",
    "output": " debug:\n msg: Hello World!",
    "path": "hello_world.yml",
    "repo_name": "ansible-tower-samples",
    "repo_url": "https://github.com/ansible/ansible-tower-samples"
    }
    Copy to Clipboard

5.3.2.6. 生成されたトレーニングデータセットの表示

コンテンツパーサーツールは、Ansible ファイルをスキャンした後、出力ディレクトリーにトレーニングデータセットを生成します。トレーニングデータセットには、コンテンツパーサーツールのメイン出力である ftdata.jsonl ファイルが含まれています。このファイルは JSON Lines ファイル形式で利用でき、各行のエントリーは JSON オブジェクトを表します。カスタムモデルを作成するには、この JSONL ファイルを IBM watsonx Code Assistant にアップロードする必要があります。

結果

生成された出力ディレクトリーには、以下のファイル構造があります。

output/
  |-- ftdata.jsonl  # Training dataset
  |-- report.txt   # A human-readable report
  |
  |-- repository/
  |     |-- (files copied from the source repository)
  |
  |-- metadata/
        |-- (metadata files generated during the execution)
Copy to Clipboard

詳細は以下のようになります。

  • ftdata.jsonl: コンテンツパーサーツールのメイン出力であるトレーニングデータセットファイル。このファイルは JSON Lines ファイル形式で利用でき、各行のエントリーは JSON オブジェクトを表します。カスタムモデルを作成するには、この JSONL ファイルを IBM watsonx Code Assistant にアップロードする必要があります。
  • report.txt: すべてのコンテンツパーサーツールの実行をまとめた、人間が判読できるテキストファイル。
  • repository: ソースリポジトリーのファイルを含むディレクトリー。場合によっては、ansible-lint は設定されたルールに従ってディレクトリーを更新するため、出力ディレクトリーのファイルの内容がソースリポジトリーと異なる場合があります。
  • metadata: 各コンテンツパーサーツールの実行中に生成されるメタデータファイルが複数含まれるディレクトリー。

次のステップ

report.txt ファイルを使用して ansible-lint ポリシー違反を解決できます。report.txt ファイルには、次の情報が含まれています。

  • タイプごとのファイル数: Playbook、タスク、ハンドラー、jinja2 などのファイルタイプに応じたファイルのリスト。
  • 識別された Ansible ファイルのリスト: ansible-lint によってファイル名別、ファイルタイプ別に識別されたファイルのリスト。そのファイルが以降の処理から除外されたか、または ansible-lint によって自動的に修正されたかどうかが示されます。
  • タスクで検出された Ansible モジュールのリスト: ansible-lint によってモジュール名別、モジュールタイプ別に識別されたモジュールのリスト。また、ファイルが以降の処理から除外されたか、または ansible-lint によって自動的に修正されたかどうかが示されます。
  • ansible-lint で検出された問題: ansible-lint の実行結果の概要と問題のリスト。ansible-lint は最初の実行で構文チェックエラーのあるファイルに遭遇すると、2 回目の実行を開始し、エラーのあるファイルをスキャンから除外します。この情報を使用して、ansible-lint ルール違反を解決できます。

5.3.2.7. ansible-lint ポリシー違反について

デフォルトでは、コンテンツパーサーツールは、ansible-lint ルールを使用して Ansible ファイルをスキャンし、コンテンツが Ansible のベストプラクティスに準拠していることを確認します。ルール違反が見つかった場合、コンテンツパーサーツールは生成された出力からこれらのファイルを除外します。このようなシナリオでは、トレーニングデータセットを IBM watsonx Code Assistant にアップロードする前に、ルール違反のあるファイルを修正することを推奨します。

デフォルトでは、ansible-lint は、Ansible ファイルのスキャン中に ansible-lint/src/ansiblelint/rules に設定されているルールを適用します。ansible-lint ルールの詳細は、Ansible Lint のドキュメント を参照してください。

5.3.2.7.1. コンテンツパーサーツールはルール違反をどのように処理しますか?
  • 自動修正の使用

    コンテンツパーサーツールは --fix=all オプションを指定して ansible-lint を実行し、自動修正し、そのルールによって特定された問題を修正し、ルールで識別された問題修正を簡素化します。

    ansible-lint で、自動修正が関連付けられているルール違反が特定されると、ルール違反がある問題を自動的に修正するか、修正を簡素化します。ansible-lint は、自動修正が関連付けられていないルール違反を特定した場合、これらのインスタンスを手動で修正する必要があるルール違反として報告します。自動修正の詳細は、Ansible Lint ドキュメントの 自動修正 を参照してください。

  • syntax-checks の使用

    Ansible-lint は、Ansible ファイルのスキャン中に構文チェックも実行します。syntax-check エラーが見つかった場合、ansible-lint はファイルの処理を停止します。syntax-check エラーの詳細は、Ansible Lint ドキュメントの syntax-check を参照してください。

    コンテンツパーサーツールは、次の方法で syntax-check ルールの違反を処理します。

    • ansible-lint の最初の実行で syntax-check エラーが見つかった場合、コンテンツパーサーツールはルール違反を含むファイルのリストを生成します。
    • ansible-lint の最初の実行で 1 つ以上の syntax-check エラーが見つかった場合、コンテンツパーサーツールは ansible-lint を再度実行しますが、構文チェックエラーのあるファイルは除外されます。スキャンが完了すると、コンテンツパーサーツールはルール違反を含むファイルのリストを生成します。リストには、syntax-check エラーやその他のルール違反の原因となったすべてのファイルが含まれます。コンテンツパーサーツールは、今後の全スキャンでルール違反のあるファイルを除外するため、最終的なトレーニングデータセットには除外されたファイルのデータは含まれません。

5.3.2.8. ansible-lint ルール違反の解決

コンテンツパーサーツールが Ansible ファイルで ansible-lint ポリシー違反を見つける場合は、トレーニングデータセットを IBM watsonx Code Assistant にアップロードする前に、ルール違反のあるファイルを修正することを推奨します。ルールの条件を解決しない場合、コンテンツパーサーツールはこれらのファイルを生成された出力から除外します。

手順

ansible-lint ルール違反を解決するには、次のいずれかの方法を使用します。

  • --no-exclude オプションを指定してコンテンツパーサーツールを実行します。

    構文チェックエラーなどのルール違反が見つかった場合、実行はエラーで中止され、トレーニングデータセットは作成されません。

  • --profile オプションを使用して、ansible-lint がデータのスキャンに使用するルールのセットを制限します。

    ルール違反のあるファイルを修正することを推奨します。ただし、ソースファイルを変更しない場合は、ansible-lint がデータのスキャンに使用するルールのセットを制限できます。ansible-lint がデータのスキャンに使用するルールのセットを制限するには、事前定義されたプロファイル (例: minbasicmoderatesafetyshared、または production プロファイル) で --profile オプションを指定するか、ansible-lint 設定ファイルを使用して指定します。詳細は、Ansible Lint のドキュメント を参照してください。

  • ansible-lint の前処理をスキップしてコンテンツパーサーツールを実行します。

    ansible-lint の前処理なしでコンテンツパーサーを実行できます。コンテンツパーサーツールは、ansible-lint ルール違反をスキャンせずにトレーニングデータセットを生成します。

    ansible-lint 前処理を行わずにコンテンツパーサーツールを実行するには、
    $ ansible-content-parser source output -S のコマンドを実行します。

    詳細は以下のようになります。

    • Source: トレーニングデータセットのソースを指定します。
    • output: 登録データセットの出力を指定します。
    • -S または --skip-ansible-lint: トレーニングデータセットの生成中に ansible-lint の前処理をスキップするように指定します。

5.3.2.9. 複数のトレーニングデータセットの単一ファイルへの結合

実行ごとに、コンテンツパーサーツールは ftdata.jsonl という名前のトレーニングデータセット JSONL ファイルを作成します。カスタムモデルを作成するために、このファイルを IBM watsonx Code Assistant にアップロードします。コンテンツパーサーツールを複数回実行すると、複数の JSONL ファイルが作成されます。IBM watsonx Code Assistant は、単一の JSONL ファイルのアップロードのみをサポートします。したがって、複数の JSONL ファイルがある場合は、それらを 1 つの連結されたファイルにマージする必要があります。親ディレクトリー内の複数のサブディレクトリーに生成された複数の JSONL ファイルを 1 つのファイルにマージすることもできます。

手順

  1. コマンドプロンプトを使用して、親ディレクトリーに移動します。

  2. find . -name ftdata.json | xargs cat > concatenated.json コマンドを実行して、連結されたファイルを 1 つ作成します。
  3. オプション: 識別しやすいように、連結されたファイルの名前を変更します。

これで、マージされた JSONL ファイルを IBM watsonx Code Assistant にアップロードし、カスタムモデルを作成できるようになります。

5.3.3. IBM watsonx Code Assistant でのカスタムモデルの作成およびデプロイ

コンテンツパーサーツールがカスタムモデルトレーニングデータセットを生成した後、JSONL ファイル ftdata.jsonl を IBM watsonx Code Assistant にアップロードし、組織用のカスタムモデルを作成します。

重要

IBM watsonx Code Assistant は、トレーニングデータセットのサイズによっては、カスタムモデルの作成に数時間かかる場合があります。カスタムモデル作成のステータスは、IBM Tuning Studio を引き続き監視する必要があります。

IBM watsonx Code Assistant でカスタムモデルを作成およびデプロイする方法は、IBM watsonx Code Assistant のドキュメント を参照してください。

5.3.4. カスタムモデルを使用するための Red Hat Ansible Lightspeed の設定

IBM watsonx Code Assistant でカスタムモデルを作成してデプロイした後に、組織のカスタムモデルを使用できるように Red Hat Ansible Lightspeed を設定する必要があります。

カスタムモデルを使用するには、以下のいずれかの設定を指定できます。

  • 組織内の全ユーザーのアクセスを有効にする

    組織のデフォルトモデルとしてカスタムモデルを設定できます。組織内の全ユーザーがカスタムモデルを使用できます。

  • 組織内の一部の Ansible ユーザーのアクセスを有効にする

    Ansible VS Code 拡張機能の model-override 設定を使用すると、特定の Ansible ユーザーは、Ansible Lightspeed サービスを調整して、デフォルトモデルではなくカスタムモデルを使用できます。たとえば、組織管理者とエンドユーザーの両方として Red Hat Ansible Lightspeed を使用している場合、一部の Ansible ユーザー向けのカスタムモデルをテストしてから、組織内のすべてのユーザーにそのモデルを提供することが可能です。

手順

カスタムモデルには、次の設定のいずれかを選択します。

  • 組織内のすべての Ansible ユーザーのカスタムモデルを設定します。

    1. 組織管理者として Ansible Lightspeed with IBM watsonx Code Assistant Hybrid Cloud Console にログインします。
    2. カスタムモデルのモデル ID を指定します。

      1. Model Settings をクリックします。
      2. Model IDAdd Model ID をクリックします。Model ID を入力する画面が表示されます。
      3. カスタムモデルの Model ID を入力します。
      4. オプション: Test model ID をクリックしてモデル ID を検証します。
      5. Save をクリックします。
  • 組織内の一部の Ansible ユーザーのカスタムモデルを設定します。

    1. Red Hat アカウントを使用して VS Code アプリケーションにログインします。
    2. アクティビティーバーから、Extensions アイコン Extensions をクリックします。
    3. Installed Extensions リストから Ansible を選択します。
    4. Ansible 拡張機能ページで、Settings アイコンをクリックし、Extension Settings を選択します。
    5. 設定のリストから、Ansible Lightspeed を選択します。
    6. Model ID Override フィールドに、カスタムモデルのモデル ID を入力します。

      設定は VS Code に自動的に保存され、カスタムモデルを使用できるようになります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat