このチュートリアルでは、IBM watsonx.ai の基盤モデルを使用して、検索補強型生成パターンを適用して、知識ベース内の情報に基づいた事実に基づいて正確な出力を生成する方法を学びます。 基盤モデルは、さまざまな理由で事実上不正確な出力を生成する可能性があります。 生成されるアウトプットの精度を向上させる1つの方法は、プロンプトテキストのコンテキストとして必要な事実を提供することです。 このチュートリアルでは、生成された出力の精度を向上させるために、検索を利用した生成パターン法を用いたサンプル・ノートブックを使用します。
- 必須のサービス
- watsonx.aiスタジオ
- watsonx.aiランタイム
基本的なワークフローには、以下のタスクが含まれます:
- プロジェクトを開きます。 プロジェクトは、データを処理するために他のユーザーと共同作業できる場所です。
- プロジェクトにノートブックを追加する。 自分のノートブックを作成することも、サンプルノートブックをプロジェクトに追加することもできます。
- コードを追加・編集し、ノートブックを実行する。
- ノートブックの出力を確認する。
検索を利用した生成パターンについて読む
ナレッジベースの情報を活用すれば、プロンプトにコンテキストを含めるテクニックをスケールアウトできる。 検索を利用した生成パターンには、3つの基本ステップがある:
- ナレッジベース内の関連コンテンツを検索
- 最も関連性の高いコンテンツを文脈としてプロンプトに取り込む
- 出力を生成するために、組み合わせたプロンプトテキストをモデルに送る
リトリーバル・オーグメンテッド・ジェネレーション・パターンの使い方をビデオで見る
このチュートリアルのステップをプレビューするには、このビデオをご覧ください。 ビデオで紹介されているユーザー・インターフェースには若干の違いがあるかもしれません。 このビデオは、書面でのチュートリアルに付随するものです。
このビデオは、このドキュメントのコンセプトとタスクを学ぶための視覚的な方法を提供します。
取得拡張された生成パターンを使用して基盤モデルのプロンプトを出すチュートリアルを試す
このチュートリアルでは、以下のタスクを実行します:
このチュートリアルを完了するためのヒント
このチュートリアルを成功させるためのヒントを紹介します。
ビデオのピクチャー・イン・ピクチャーを使う
次のアニメーション画像は、ビデオのピクチャー・イン・ピクチャーと目次機能の使い方を示しています:
地域の助けを借りる
このチュートリアルで助けが必要な場合は、watsonxコミュニティーのディスカッション・フォーラムで質問したり、答えを見つけることができます。
ブラウザのウィンドウを設定する
このチュートリアルを最適に完了するには、Cloud Pak for Data を 1 つのブラウザ ウィンドウで開き、このチュートリアルのページを別のブラウザ ウィンドウで開いておくと、2 つのアプリケーションを簡単に切り替えることができます。 2つのブラウザウィンドウを横に並べると、より見やすくなります。
タスク 1:プロジェクトを開く
サンプル・ノートブックを保存するプロジェクトが必要です。
サンドボックスプロジェクトを作成し、サービスを関連付ける方法をビデオでご覧ください。 次に、既存のプロジェクトを確認するか、サンドボックス・プロジェクトを作成する手順に従ってください。
このビデオは、このドキュメントのコンセプトとタスクを学ぶための視覚的な方法を提供します。
手順に従って、既存のプロジェクトを確認するか、プロジェクトを作成してください。
watsonx ホーム画面で、プロジェクト セクションまでスクロールします。 プロジェクトが表示されている場合は、 watsonx.aiRuntime サービスの関連付けに進んでください。 プロジェクトが表示されない場合は、以下の手順に従ってプロジェクトを作成してください。
サンドボックスプロジェクトを作成をクリックします。 プロジェクトが作成されると、プロジェクトセクションにサンドボックスが表示されます。
既存のプロジェクトまたは新しいサンドボックスプロジェクトを開きます。
watsonx.aiRuntime サービスをプロジェクトに関連付ける
foundation modelのプロンプトにはwatsonx.aiRuntime を使うので、以下の手順に従ってwatsonx.aiRuntime サービスインスタンスをプロジェクトに関連付けます。
プロジェクトで、管理タブをクリックします。
サービス & 統合ページをクリックします。
このプロジェクトに関連するwatsonx.aiRuntime サービスがあるかどうかを確認します。 関連するサービスがない場合は、以下の手順に従ってください:
サービスを関連付けるをクリックします。
watsonx.aiRuntimeサービスインスタンスの横にあるボックスにチェックを入れます。
アソシエイトをクリックします。
必要に応じて、キャンセルをクリックし、サービス & 統合ページに戻ります。
詳細またはビデオについては、プロジェクトの作成をご覧ください。
進捗状況を確認する
次の図は、管理タブと関連するサービスを示しています。 これでサンプルノートブックをプロジェクトに追加する準備ができました。
タスク 2: サンプルノートブックをプロジェクトに追加する
サンプル・ノートブックでは、基本的なパターンを示すために、小さな知識ベースとシンプルな検索コンポーネントを使用しています。 このノートで使用するシナリオは、庭に植える種を販売する会社のものである。 オンライン種子カタログのウェブサイトには、顧客が庭造りを計画し、最終的にどの種子を購入するかを選択するのに役立つ記事が多数掲載されている。 新しいウィッジは、記事の内容に関する顧客の質問に答えるためにウェブサイトに追加されている。
このビデオで、サンプルノートブックをプロジェクトに追加する方法をご覧ください。
このビデオは、このドキュメントのコンセプトとタスクを学ぶための視覚的な方法を提供します。
リソース・ハブにある「RAG:簡単な導入ノート」にアクセスしてください。
プロジェクトに追加をクリックしてください。
リストからプロジェクトを選択し、追加をクリックします。
ノートブックの名前と説明(オプション)を入力します。
このノートブックのランタイム環境を選択してください。
「作成」 をクリックします。 ノートブック・エディターがロードされるまで待ちます。
メニューからKernel > Restart & Clear Outputをクリックし、Restart and Clear All Outputsをクリックして確認すると、最後に保存した実行の出力がクリアされます。
関連サービスの詳細については、関連サービスの追加を参照してください。
進捗状況を確認する
次の画像はノートブックを編集モードで開いたものです。
これで、ノートブックを実行するための前提条件を設定する準備ができました
タスク3:ノートブックの編集
このタスクをプレビューするには、00:57から始まるビデオを見てください。
ノートブックを実行する前に、環境をセットアップする必要があります。 以下の手順に従って、ノートブックの前提条件を確認してください:
ノートブックの For IBM watsonx on IBM Cloud セクションまでスクロールすると、ノートブックを実行するための 2 つの前提条件が表示されます。
Create anIBM CloudAPI keyセクションでは、API キーを使用してwatsonx.aiRuntime API に認証情報を渡す必要があります。 保存された API キーがまだない場合は、以下の手順に従って API キーを作成します。
IBM Cloudコンソールの API キーのページにアクセスします。
「IBM Cloud API キーの作成」をクリックします。 既存のAPIキーがある場合、ボタンは作成と表示されます。
名前および説明を入力します。
「作成」 をクリックします。
API キーをコピーします 。
将来使用するために API キーをダウンロードします。
「 watsonx.aiRuntime サービスのインスタンスを現在のプロジェクトに関連付ける」セクションを確認します。 この前提条件はタスク1で完了しました。
Run cell to provide IBM Cloud API key セクションまでスクロールします:
実行アイコン「クリックしてセルを実行する。
APIキーを貼り付け、
Enter
を押します。
Run the cell to set credentials forIBM watsonxonIBM Cloud」の下で、「Run」アイコンの「」をクリックしてセルを実行し、資格情報を設定します。
進捗状況を確認する
次の画像は、前提条件が完了したノートブックです。
これでノートブックを実行し、出力を確認する準備ができた
タスク4:ノートブックを実行し、出力を確認する
このタスクをプレビューするには、 01:03から始まるビデオをご覧ください。
サンプル・ノートブックには、検索機能を追加した世代に関する情報と、特定のユースケースにノートブックを適応させる方法が含まれています。 以下の手順に従ってノートブックを実行し、出力を確認してください:
ノートブックのステップ2:ナレッジベースの作成セクションまでスクロールしてください:
そのセクションの3つのセルそれぞれについて、実行アイコン「」をクリックする。
セクション内の3つのセルの出力を確認する。 これらのセル内のコードは、知識ベースを2つの記事のコレクションとしてセットアップする。 これらの記事はwatsonx.aiのサンプルとして書かれたもので、他のどこかで発表された本物の記事ではありません。 著者と出版年は架空のものである。
ノートブックのステップ3:シンプルな検索コンポーネントを作成するセクションまでスクロールしてください:
そのセクションの2つのセルそれぞれについて、実行アイコン「」をクリックする。
セクションの2つのセルの出力を確認する。 これらのセル内のコードは、単純な検索コンポーネントを構築する。 検索機能付き生成について論じた多くの記事は、検索コンポーネントがベクトルデータベースを使用することを前提としている。 しかし、一般的な検索-拡張生成パターンを実行するためには、知識ベースから関連するコンテンツを確実に返すことができる検索-検索方法であれば何でもよい。 このノートブックでは、検索コンポーネントは、単純な正規表現のマッチに基づき、知識ベース内の2つの記事のどちらか一方のインデックスを返す些細な検索機能である。
ノートブックのステップ4:プロンプトテキストの作成セクションまでスクロールします:
そのセクションの2つのセルそれぞれについて、実行アイコン「」をクリックする。
セクションの2つのセルの出力を確認する。 これらのセルのコードは、プロンプト・テキストを作成する。 どのような仕事にも、最適なプロンプトは存在しない。 しかし、bigscience/mt0-xxl-13b、google/flan-t5-xxl-11b、google/flan-ul2-20bのようなインストラクションチューニングされたモデルは、一般的にサンプルプロンプトでこのタスクを実行できます。 保守的な解読法では、簡潔な答えになる傾向がある。 プロンプトでは、生成時に置き換えられる2つの文字列プレースホルダー(%sでマークされている)に注目してほしい:
- 最初のプレースホルダは、ナレッジベースの関連記事のテキストに置き換えられます
- 2番目のプレースホルダは、回答する質問で置き換えられます
ノートブックのStep 5: 基礎モデルPythonライブラリを使用して出力を生成するセクションまでスクロールしてください:
そのセクションの3つのセルそれぞれについて、実行アイコン「」をクリックする。
セクション内の3つのセルの出力を確認する。 これらのセル内のコードは、Pythonライブラリを使って出力を生成します。 Python ライブラリーを使用して、 watsonx.ai で基盤モデルのプロンプトをプログラマチックに出すことができます。 ライブラリーの詳細については、以下のトピックを参照:
ノートブックのステップ6:検索-拡張生成を実行するためにすべてをまとめるセクションまでスクロールしてください:
そのセクションの2つのセルそれぞれについて、実行アイコン「」をクリックする。 このコードは、検索補強された生成を実行するためにすべてをまとめている。
セクションの最初のセルの出力を確認する。 このセルのコードは、ユーザー入力要素を設定する。
セクションの2番目のセルに、トマトまたはキュウリに関する質問を入力すると、答えと出典が表示されます。 例えば、
Do I use mulch with tomatoes?
などです。質問の答えを見直してください。
進捗状況を確認する
以下の画像は完成したノートブックです
今後のステップ
- 02:55から始まるビデオを見て、検索を利用した生成パターンをプロダクション・ソリューションに適用する際の注意点について学んでください。
- プロンプト・ラボを使用して、 基盤モデルのプロンプトを出す チュートリアルをお試しください。
- 他のwatsonx.ai ユースケース・チュートリアルも試してみてください。
その他のリソース
詳しくは、 ビデオを参照してください。
サンプルデータセット、プロジェクト、モデル、プロンプト、ノートブックをリソースハブで見つけて、実践的な経験を積むことができます:
ノートブックをプロジェクトに追加することで、データの分析やモデルの構築を始めることができます。
ノートブック、データセット、プロンプト、その他のアセットを含むインポート可能なプロジェクト。
プロジェクトを改良、分析、モデル構築するために追加できるデータセット。
プロンプト 。プロンプト・ラボで基盤モデルのプロンプトを出すために使用できます。
プロンプト・ラボで使用できる 基盤モデル 。
親トピック: クイック・スタート・チュートリアル