Red Hat® AI InstructLab on IBM Cloud® は、 Red Hat Enterprise Linux AIによって提供される、ビジネス対応のプライベートで安全なジェネレーティブAIソリューションです。

Red Hat AI InstructLab on IBM Cloud 概説

Red Hat® AI InstructLab on IBM Cloud®、 AIに予測、推奨、意思決定を行うために、知識をモデルという形で取得、処理、作成、適用する能力。飛び込む準備をしよう!

InstructLab は、 IBM と Red Hat によるオープンソースプロジェクトで、 機械人工知能(AI)とコンピュータサイエンスの分野の1つで、人間が学習する方法を模倣するためにデータとアルゴリズムの使用に重点を置き、AIモデルの精度を徐々に向上させる。学習の世界への費用対効果の高い入り口となる。 InstructLab、ハードウェア・インフラを所有・運用することなく、大規模な言語モデルに貢献することができる。

InstructLab。

Red Hat AI InstructLab とは何ですか?

InstructLab を使うのに、予備知識は必要ない。 まだ何を作るかアイデアがなくてもいい。 まずは概念に慣れることから始めよう。

InstructLab 大規模言語モデル(LLM )は、機械学習技術を用いて人間の言語を生成するAIモデルである。 まず、ビジネスにとって最も重要な知識やスキルを、 タクソノミー (データのディレクトリ)として提供する。 この分類法は合成データの生成に使用され、その後、何段階もの微調整を経てモデルの訓練に使用される。 このプロセスは、一般的な知識だけでなく、あなた独自のビジネスニーズにとって最も重要な特定のスキルと文脈を提供することによって、あなたのLLMをあなたの目標に合わせるものです。

詳しくは「 仕組み 」をご覧ください。 または、 最初のタクソノミーを準備してアップロードする ことから始めてください。

IBM Cloud® アカウント設定

続行する前に以下を確認してください。

オプション分類法を準備する

  1. IBM Cloud の分類法を参照するか、独自の分類法を作成する。

    • まだタクソノミーをお持ちでない場合は、 IBM Cloud タクソノミーのレポをフォークして、ローカルマシンにクローンしてください。 この分類法では、正しいファイル構造がすでに作成されています。 対応するディレクトリに知識やスキルを追加することができます。

    • 代わりに独自のタクソノミーを作成するには、「 タクソノミーの準備 」を参照してください。

    また、 IBM Cloud コミュニティ Jupyter ノートブックを使って分類法を作成することもできる。 詳細については、 redhat-ai-instructlab-jupyter-notebooks GitHub repo を参照してください

  2. タクソノミーを更新する。 次の例では、韻を踏んだ質問を言語学ディレクトリに追加しています。

    a. フォーク内の compositional_skills/linguistics ディレクトリに、 qna.yaml ファイルを作成する。

    b. qna.yml ファイルに、韻を踏む言葉に関する質問を追加する。

    - answer: 'Here are two rhyming words for "cave":
        1\. Brave
    
        2\. Gave'
      question: 'Give me two words that rhyme with cave'
    

    c. ウェブ記事やGithubにあるファイルなどの参照ドキュメントを追加する場合、 この例の ように、公開されている GitHub リポジトリとファイルのSHAを参照することができます。

    document:
    repo: https://github.com/<organization>/<repository>
    commit: <commit_sha>
    patterns:
        - <filename>.md
    

    d. 変更を保存し、変更をフォークにプッシュします。

    f. オプション: 更新した分類法を検証する。

  3. ブラウザで、GitHub リポジトリの Releases ページを開きます。 例: https://github.com/<my-org>/taxonomy/releases。

  4. リリースの作成 」をクリックします。

  5. タグを作成し、ターゲットブランチを選択し、リリースの名前を入力します。

  6. リリースの公開をクリックします。

  7. ソースコード ( tar.gz ) をクリックして、リリースから自動的に生成されたパッケージ化された tar.gz ファイルをダウンロードしてください。

  8. オプション : タクソノミ・ナレッジ・ドキュメントのプライベート・リポジトリを使用している場合は、以下の手順を実行します。

    1. GitHub のドキュメントに従って、 クラシックなパーソナル・アクセストークン (PAT)を作成してください。

    2. リポジトリアクセスセクションで、PATをタクソノミーのリポジトリにスコープします。

    3. リポジトリの権限セクションで、 Contents > read-only and Metadata > read-only を選択します。

コンソールを使ってタクソノミーをアップロードする

Object Storage にタクソノミーを保存するには、以下の手順を実行します。

  1. プロジェクトの ページから、プロジェクトを選択します。

  2. 「分類」 をクリックします。

  3. アップロードをクリックし、以下の詳細を入力する。

    分類ファイル
    .tar.gz ファイルを選択してください。
    分類名
    分類法に英数字の名前をつける。
    プライベート・リポジトリへのアクセス
    タクソノミ・ナレッジ・ドキュメントがプライベート・リポジトリにある場合、このオプションを有効にします。
    Secrets Manager サービスインスタンス :既存のインスタンスを選択するか、インスタンスを作成します。
    Secrets Manager secret: 既存のシークレットを選択するか、作成します。 シークレットを作成する場合は、 Key-Value シークレットタイプを選択し、以下の形式で個人アクセストークンを追加します。 なお、 github_url の値は、https:// を含んでいなければならない。 URL は、タクソノミーのドキュメント・リファレンスの repo セクションで使用したのと同じ URL です。
    {
    "github_url": "https://...",
    "github_pat": "xxxxx"
    }
    

    詳細については、 Key-value シークレットの作成 を参照のこと。

    クラウド・ストレージ
    使用する Object Storage インスタンスとバケットを選択するか、インスタンスとバケットを作成する。
    サービス許可
    InstructLab にあなたのタクソノミーを書き込むことを許可するボックスにチェックを入れる。 Object Storage
    オプションのストレージ設定
    Object Storage のタクソノミー tar.gz を保存するパスを指定します。
  4. アップロードをクリック

CLIを使用して、 Object Storage にタクソノミーを追加します

Object Storage にタクソノミーを保存するには、以下の手順を実行します。

set コマンドを使って、 Object Storage バケツの詳細や認証情報などを保存することができます。 これにより、今後のコマンドを簡素化することができる。 set コマンドを使用する場合は、各値を個別に設定する必要があることに注意。 詳細については、 Configコマンドのリファレンスを 参照してください。

  1. CLIから IBM Cloud アカウントログインする。

    ibmcloud login -a https://cloud.ibm.com --sso -r us-east
    
  2. InstructLab に IBM Cloud® Object Storage Instance リソースを作成させる場合は、リソースグループをターゲットにします。

    ibmcloud target -g <resource_group>
    

    次に例を示します。

    ibmcloud target -g Default
    
  1. InstructLab と Object Storage の認可ポリシーを作成する。

    ibmcloud iam authorization-policy-create Writer --source-service-name instructlab --target-service-name cloud-object-storage
    
  2. オプション : プライベート・レポを使用してタクソノミ・ナレッジ・ドキュメントを保存している場合は、以下の手順を実行します。

    1. Secrets Manager インスタンスとシークレットへのアクセスを InstructLab に許可するサービス認可を作成します。

      ibmcloud iam authorization-policy-create Reader --source-service-name instructlab --target-service-name secrets-manager
      
    2. Key-value シークレットを作成し、 Secrets Manager にパーソナル・アクセストークン(PAT)を追加します。 キー・バリューの詳細が以下のフォーマットで保存されていることを確認してください。

      {
      "github_url": "https://...",
      "github_pat": "xxxxx"
      }
      

      キー・バリューの秘密を作成するコマンドの例。

      ibmcloud secrets-manager secret-create --secret-prototype='{"name": "my-secret","description": "Description of my key-value secret.","secret_type": "kv","secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a","labels": ["dev","us-south"],"data": {"github_url": "https://...","github_pat": "xxxxx"},"custom_metadata": {"metadata_custom_key": "metadata_custom_value"},"version_custom_metadata": {"custom_version_key": "custom_version_value"}}'
      

      詳細については、 Key-value シークレットの作成 を参照のこと。

    3. Secrets Manager インスタンスをリストアップしてください。

      ibmcloud resource service-instances --service-name secrets-manager
      
    4. インスタンスの詳細を取得します。

      ibmcloud resource service-instance INSTANCE
      
  3. taxonomy add --help コマンドを実行し、コマンドオプションを確認する。

    ibmcloud ilab taxonomy add --help
    
  4. オプション使用したい既存の Object Storage インスタンスがある場合は、サービスインスタンスの詳細を取得します。

    1. Object Storage インスタンスをリストアップしてください。
      ibmcloud resource service-instances --service-name cloud-object-storage
      
    2. インスタンスの詳細を取得します。
      ibmcloud resource service-instances INSTANCE
      
  5. タクソノミーを Object Storage バケツに追加します。 以下のコマンド例を見てみよう。

    クイックスタート アカウントに Object Storage インスタンスとバケットを自動的に作成し、 ./taxonomy フォルダからタクソノミーをアップロードするコマンド例です。

    ibmcloud ilab taxonomy add \
    --name example-taxonomy-1 \
    --taxonomy-path "./taxonomy"
    

    マシンの taxonomy フォルダから既存の Object Storage インスタンスとバケットにタクソノミーをアップロードするコマンドの例。

    ibmcloud ilab taxonomy add \
    	--name example-taxonomy-name-1 \
    	--taxonomy-path-cos "taxonomies/taxonomy.tar.gz" \
    	--taxonomy-path "./taxonomy" \
    	--cos-bucket example-cloud-object-storage-bucket-1 \
    	--cos-endpoint https://s3.us-east.cloud-object-storage.appdomain.cloud
    

    既存の Object Storage インスタンスとバケット、および Secrets Manager 認証情報を使用するコマンド例。

    ibmcloud ilab taxonomy add \
    --name example-taxonomy-1 \
    --taxonomy-path-cos taxonomies/taxonomy.tar.gz \
    --taxonomy-path "./taxonomy" \
    --cos-endpoint https://s3.us-east.cloud-object-storage.appdomain.cloud \
    --secrets-manager-git-id SEC-MGR-ID
    --secrets-manager-git-url https://URL
    

    タクソノミーを /Users/USER/instructlab-taxonomy フォルダから新しい自動作成されたバケツにアップロードするコマンドの例です。

    ibmcloud ilab taxonomy add \
    --name test \
    --taxonomy-path "/Users/USER/instructlab-taxonomy" \
    --cos-endpoint https://s3.us-east.cloud-object-storage.appdomain.cloud \
    --cos-id 628e4348-2183-42fa-a03a-6f0f78453530
    

次のステップ

タクソノミーをアップロードしたので、次のステップは タクソノミーからデータを生成する ことです