2023年11月

17

【てくさぽBLOG】IBM watsonx.aiを使ってみた(Part2)

こんにちは。
てくさぽBLOGメンバーの高村です。

Part1はご覧いただけましたでしょうか。
watsonx.ai にご興味をもっていただければ幸いです。

Part2(本記事)は応用編ということで、watsonx.ai を利用した Retrieval-Augmented Generation(以下 RAG)検証をやってみた感想をご紹介します。

RAGとは?

生成AIの分野で「RAG」が話題となっていることはご存じでしょうか。
RAG とは、言語モデルが学習していない社内情報や最新情報などのデータ(以下 外部データ)から情報を補完し、言語モデルが生成する回答の品質を向上するフレームワークです。

例えば言語モデルのみを利用した QA の場合、図1の様にユーザが質問をすると、生成AI は質問に対して的確に答えることもあれば、学習データに含まれたいい加減な情報を吐き出すこともあります。
言語モデルのチューニングにより回答精度を調整することも可能ですが、都度アップデートされる情報をモデルに学習させることは労力が必要です。

言語モデルのみを利用した場合の情報検索
図1. 言語モデルのみを利用した場合の情報検索

そこで考えられたのが、RAG というフレームワークです。

図2のように、外部データをデータベースに保存しその検索結果に基づいて言語モデルに回答を生成させることで、より正確な情報を得ることが可能です。

RAGを利用した情報検索
図2. RAGを利用した情報検索

RAGのメリット

RAG は、検索と生成AI を統合することでより正確な関連性の高い回答を提供します。
以下は、RAG を利用することで得られるメリットです。

  • より正確な情報を得られる:
    初めに外部の知識ベースで検索を実行するため、生成AI だけを使った回答よりもより専門的で正確な回答を提供します。
  • 質問の文脈を踏まえた回答を得られる:
    検索と生成AI を組み合わせることで多くの情報源から情報を収集し、人間のような新しい回答を生成することができます。
  • モデル学習に必要なデータ準備と作業労力を削減:
    言語モデルの訓練には大量のデータが必要ですが、RAG は外部データを利用するためモデルへ学習データを取り込むた必要がなく、チューニングにかかる労力も削減できます。

RAGの活用シーン

RAG は様々な業種での活用が考えられます。以下に具体例を挙げます。

  • 顧客サポート:
    コールセンターや保守業務において、顧客の問い合わせに対して専門的かつ正確な回答を提供します。
    RAG を利用することにより迅速な回答提供や効率的な運用が可能となり、顧客満足度を向上します。
  • バックオフィス業務サポート:
    社内情報の検索において、自己調査が容易になり対応時間を短縮することが可能です。
  • オペレーション業務サポート:
    例えば現場作業員の機器操作手順など、RAG を利用することにより効率的に解決することが可能です。

watsonx.aiを使ってRAGを検証してみた

watsonx.ai の言語モデルを利用し、自分の端末から PDF の内容を QA をする RAG を作ります。
利用するコンポーネントは以下の4つです。

  • watsonx.ai:
    回答を生成する生成AI。言語モデルは llama-2-70b-chat を利用します。
  • ベクターストア:
    今回はオープンソースのベクターストアである ChromaDB を利用します。
    ベクターストアとはデータを文字列ではなくベクトル形式で保管するデータベースです。PDF の内容を質問するため、LangChain により PDFデータをテキストとチャンクに分け、変換し、ベクターストアに取り込みます。
  • LangChain:
    言語モデルを活用したサービス開発する際に利用するオープンソースライブラリです。
    PDF をベクターストアに保存する際にチャンクデータとして分割したり、ベクターストア内を検索し結果を watsonx.ai へ渡します。
  • PythonSDKの実行環境 –Jupyter Notebook–:
    LangChain は Python と JavaScript の2つの言語プログラミング言語に対応していますが、今回は Python の LangChain を利用します。
    PythonSDK の実行環境として作業端末に Anaconda をインストールし、Jupyter Notebook からスクリプトを実行します。

QA処理の流れは以下の通りです。

  1. LangCain経由で質問
  2. LangChainからベクターストアへ情報検索
  3. 検索結果をLangChainへ渡す
  4. 検索結果をwatsonx.aiの言語モデルへ渡す
  5. watsonx.aiが回答を生成し、回答

それではさっそく RAG を作って検証してみましょう。

watsonx.aiプロビジョニング、プロジェクト作成

事前に watsonx.aiプロビジョニング、プロジェクト作成が必要です。
※作成方法は part1 をご参照ください

APIキー、プロジェクトIDの取得

watsonx.ai の言語モデルに接続するためには、APIキーとプロジェクトID の取得が必要です。

  • APIキーの取得は IBM Cloud画面「管理」⇒「アクセス(IAM)」をクリックし、「APIキー」をクリックします。

watsonx.aiプロビジョニング、プロジェクト作成-1

  • 「作成+」をクリックし、任意の名前と説明を入力しキーを作成します。

watsonx.aiプロビジョニング、プロジェクト作成-2

  • APIキーが作成されたので、コピーして手元にメモしておきます。

watsonx.aiプロビジョニング、プロジェクト作成-3

次に、watsonx.ai のプロジェクトIDを取得します。

  • watsonx.ai のプロジェクトをクリックします。

watsonx.aiプロビジョニング、プロジェクト作成-4

  • 「管理」タブから「一般」をクリックするとプロジェクトID が表示されるので、コピーして手元にメモします。

watsonx.aiプロビジョニング、プロジェクト作成-5

PythonSDKの実行環境準備

  • 以下の URL から Anaconda のイメージをダウンロードし、作業端末にインストールし、インストールが完了したら Jupyter Notebook を起動します。
    https://www.anaconda.com/download

PythonSDKの実行環境準備-1

  • 事前に作成したスクリプトをクリックして開きます。

PythonSDKの実行環境準備-2

認証設定、モジュールのインポート

はじめに、必要な Pythonライブラリをインストールします。

  • 「Run」ボタンをクリックすると、セル内のプログラムが実行されます。

認証設定、モジュールのインポート-1

  • セルの左箇所が [*] から [1] になると完了です。
    特にエラーが出力されていないことを確認します。

認証設定、モジュールのインポート-2

認証情報をセットします。

  • 先ほど取得した APIキーとプロジェクトID、エンドポイントの URL を指定します。
    今回はダラスの Watson Machine learning を使用しているので、ダラスのエンドポイントを指定します。
    ※エンドポイントの URL は「IBM Cloud API Docs」から確認できます

認証設定、モジュールのインポート-3

  • LangChain で使う Watson Machine learning のモジュールを複数インポートします。

認証設定、モジュールのインポート-4

一旦 LangChain 無しで watsonx.ai の言語モデルに質問をしてみたいと思います。

  • まず、使用する言語モデルのパラメータを設定します。
    以下に各パラメータの説明を記載します。
パラメータ名 値の範囲例 内容
MAX_NEW_TOKENS 1~1000の整数値 一度に生成されるトークンの最大数を制御する。
TEMPERATURE 0.00~2.00 生成されるテキストの創造性を制御する。値が低いと予測可能なテキスト、値が高いと創造的なテキストを生成する。
TOP_K 1~100の整数値 各ステップで考慮されるトークンの数を制御する。 モデルは、トークンの確率分布から上位K個のトークンのみを考慮し、残りは無視する。
TOP_P 0.01~1.00 累積確率の閾値を設定する。モデルは累積確率がこの閾値を超えるまでのトークンのみを考慮しま

認証設定、モジュールのインポート-5

  • 質問する言語モデルをセットします。

認証設定、モジュールのインポート-6

  • 質問をしてみたところ、正常に回答が返ってきました。

認証設定、モジュールのインポート-7

LangChainの作成

それでは、LangChain を作成していきます。

  • LangChain に必要なモジュールをインポートします。

LangChainの作成-1

  • pdfsフォルダにある PDF を読み込み、ベクターストアへ取り込みます。
    ベクターストアへ取り込むみする際は LangChain で提供される intfloat/multilingual-e5-largeモデルを使用します。

LangChainの作成-2

  • 言語モデルは Llama2 を使用します。
    先程と同様にモデルの設定とパラメータを定義します。
    Llama2 は回答指示を渡すことが推奨されているため以下の様に指示文を追加します。

LangChainの作成-3

RAGを使って質問する

  • PDF の内容を質問したところ、PDF から該当箇所を検索し回答が生成されました。

RAGを使って質問する-1

  • ChatUI を起動して質問します。
    また、PDF のどの箇所を参考にしたか出力するよう指示します。
    (補足:ChatUIはPythonライブラリのGradioを使用)

RAGを使って質問する-2

  • ChatUI で質問してみました。
    実用化したときのイメージが湧きますね。

RAGを使って質問する-3

  • PDF のどの箇所を検索したのか、参考箇所も出力されています。

RAGを使って質問する-4

以上が、watsonx.ai の言語モデルを利用した RAG検証です。

今回は1つの PDF で検証しましたが、回答まで30秒ほどかかりました。
複数の PDF を検索する場合はもう少し時間がかかりそうなので、実用するには調整が必要かもしれません。

さいごに

いかがでしょうか。
言語モデルに更新情報や専門的な情報をチューニングするのは手間がかかりますが、RAG を使えば、情報をベクターストアに格納して簡単に検索できます。

今回は PDF の内容を検索するものでしたが、テキストの内容や URL の情報も検索可能です。
また Google Colab を使えば、Googleドライブ上のフォルダ内の情報も検索できることが確認できています。

今回の検証で費用が発生した製品は watsonx.ai のみで、LangChain やベクターストアはオープンソースを利用しています。
それほどコストをかけずに実装できるため、社内の検索システムとして導入するなど取り掛かり易い点が魅力的だと思います。

本ブログを読んでいる方々の社内共有プラットフォームにも、RAG を用いた検索システムを導入できるかもしれません。ぜひ試してみてください。

“音声から情報を検索して回答を生成する” など、より高機能なシステムを検討している場合は、watsonx Assistant や Watson Discovery と連携することで実現可能です。
ソリューションの詳細は個別にご説明いたしますので、お問い合わせください。

2024年2月頃、日本語で訓練された言語モデル「Granite」の提供が予定されています。
Llama2 などの言語モデルも日本語の回答は可能ですが、日本語の精度は保証されていません。そのため、新たな「Granite」モデルの提供により、日本国内で watsonx.ai の実用化が進むことを期待しています。

お問い合わせ

この記事に関するご質問は下記までご連絡ください。

エヌアイシー・パートナーズ株式会社
E-Mail:nicp_support@NIandC.co.jp

 

その他の記事

2025年06月26日

次世代型のインフラ構築を実現するIBM Fusion HCIがクラウドシフトを加速

公開日:2025-06-26 クラウドファースト時代となり、企業のインフラ構築においてもクラウドネイティブなアーキテクチャをめざす潮流が高まりつつあります。なかでも重要な技術とされるのが、コンテナベースの基盤づくりで、アプリケーションをコンテナ化できれば、その移植性や効率性、スケーラビリティなどが大きく高まり、ビジネスの展開を高速化できると期待が集まっています。 しかし、基盤のコンテナ化は、これまでのシステム構築のあり方と大きく“作法”が異なり、専門のナレッジやスキルが求められます。ただでさえ IT人材が不足している今日、一朝一夕に移行するのは難しく、この点が多くの企業にとって大きなジレンマとなっています。 貴社においても、 「クラウド移行は進めたものの、残るオンプレミスシステムとどう連携させればいいのか」 「自社で腰を据えてAI活用に取り組みたいが、社内リソースが足りない」 などのお悩みはないでしょうか。 今回は、企業が課題を抱えがちな次世代型のインフラ構築をあっさり実現するソリューションIBM Fusion HCIを紹介します。 目次 インフラ基盤が抱える課題 IBM Fusion HCIの概要 インフラ基盤が抱える課題への最適策 IBM Fusion HCIを利用したユースケース 次世代のインフラ基盤への鍵を握るIBM Fusion HCI お問い合わせ インフラ基盤が抱える課題 今日、企業情報システムのインフラ基盤は様々な意味で岐路に立っているといえます。これまで同様の手法では、刻一刻と変化し続けるビジネス環境を受けとめきれず企業競争力を低下させる恐れもあります。 例えば、具体的な危惧の内容として次のようなものがあります。 1. クラウドネイティブなアーキテクチャ導入の高い難易度 クラウドネイティブなアーキテクチャは柔軟性やスケーラビリティを重視した設計手法で、ビジネススピードの向上にも貢献します。しかしその導入には既存のシステムとは手法が異なるため、互換性確保や高度な専門知識を持つ人材の確保といった点に障壁があります。また、従来型の開発手法から移行する際には、文化的変革や技術的理解のギャップが課題になっています。結果、プロジェクトを立ち上げたものの頓挫してしまった、というケースも発生しています。 2. マルチクラウド戦略を推進する上での壁 マルチクラウド戦略とは複数のクラウドサービスを使い分けることで、効率的なリソース管理やリスク分散を実現することを指します。多くの企業が「オンプレとクラウドを統合」または「複数のクラウド環境を最適化」したいと考えています。 しかし、相互接続性やデータ移動に大きな課題があります。また、異なるプロバイダ間での運用調整やコスト管理の複雑化も実践の妨げになりがちです。特に、各クラウド特有の設計要件への対応やパブリッククラウドとプライベートクラウド間のデータ連携には多くのリソースとノウハウが必要です。 3. 自社AIワークロードの拡大 AIワークロードの拡大は、迅速なデータ処理や大量データ解析を可能にします。しかし、これに伴って高性能なインフラ整備が求められます。既存のインフラでは計算負荷が高く、パフォーマンスが著しく制限されるためです。慎重に選定を進めなければ計算資源の増加による費用の急増が発生するリスクがあります。 エッジ環境でのデータ処理や通信コストの抑制に対応できる基盤という観点も重視しなければなりません。開発プロセスの最適化や適切な AIモデルの選定なども大きな課題です。 4. VMware基盤のコスト問題 すべての企業に当てはまるわけではありませんが、仮想化基盤として VMware を採用するのは普遍的なソリューションであり、信頼性の高い仮想化テクノロジーを提供します。 しかし、近年そのコスト問題が大きく取り沙汰されており、ライセンス料や運用費用の高さが企業にとって大きな負担となっています。長期的な予算圧迫を招く可能性があり、特に運用規模が拡大していくビジネス環境の場合、コスト管理が難航するリスクがあります。さらに、技術的な側面では仮想マシン単位でしか運用管理できないという点があり、リソースの効率的な活用に限界があります。 IBM Fusion HCIの概要 IBM Fusion HCI は、上記のようなインフラ課題を解決するために登場したハイパーコンバージドインフラ(HCI)ソリューションです。コンテナ(Red Hat OpenShift、以下 OpenShift)ベースのシステムを構築するために必要な機能をあらかじめすべてパッケージ化しており、コンテナ専用のオール・イン・ワンソリューションといえます。 具体的に必要な機能とは、統合運用管理ダッシュボード、ストレージファイルシステム、バックアップリストア、コンテナ、仮想マシンを指しており、オプションでデータ連携カタログも選択できます。納品後最短4時間で構築が完了し、すぐに使用を開始することができます。 図1:IBM Fusion HCI概念図 これにより、企業において統合データ管理やクラウドとの透過的アクセス、アプリケーションの高速化といった次世代志向のインフラ構築が実現します。また、IBM Fusion HCI はサーバー/スイッチも統合管理でき、サポートを IBM に統一できるという点においても企業の運用管理負荷を大きく軽減することが可能です。AI を含む負荷の高いワークロードにも対応できます。 このプラットフォームで、データ管理、計算リソース、ストレージを効率的に統合できるため、AIアプリケーションの実行に必要な環境がシームレスに整います。例えば、AIモデルのトレーニングや推論処理を高速化するために計算資源にスケーラビリティをもたせるといったことも可能です。さらに、セキュリティ面でも信頼性の高い機能が提供されており、企業の重要なデータを安全に保護します。 インフラ基盤が抱える課題への最適策 IBM Fusion HCI は 導入しやすく柔軟でパフォーマンスに優れたインフラ基盤 です。コンテナベースのシステム構築を進めたい企業にとって最適の選択肢といえ、そのメリットとしては次のようなものがあります。 1. クラウドネイティブへのスムーズな移行を実現 Red Hat OpenShift を基盤とし、これをあらかじめパッケージした HCI であるため、ユーザーはクラウドネイティブなコンテナ基盤を導入する際に設計を始めとした複雑な調整を省けます。また、専用インストーラーを搭載しており導入をスムーズに進めることができるため、製品が到着したその日からデジタルトランスフォーメーションに着手することが可能です。 2. マルチクラウド/エッジ環境への移行 IBM Fusion HCI は、オンプレミス、パブリッククラウド、エッジ環境のどこでも稼働することができます。特に、ハイブリッドクラウドのアプローチを強化するために設計された新しいサービス「IBM Cloud Satellite」を活用すれば、IBM Cloud サービスのメリットを IBM Fusion HCI の環境にも容易に拡張できます。 例えば、データが特定の地域に留まる必要がある法規制に従う際に、IBM Cloud Satellite はその地域でのデプロイメントをサポートしつつ IBM Cloud が提供する最新の AI、セキュリティ、ストレージ機能をオンプレミス環境で利用できます。 この透過的なデータ連携能力は、マルチクラウド環境のデータ制御に大きな力を発揮します。 3. AIワークロードに対する優れた対応力 セルフ型オンプレミスクラウドの提供 IBM Fusion HCI は AIワークロードに特化した柔軟で高度なインフラ基盤を提供します。強みは、watsonx との連携によるセルフ型オンプレミスクラウドの構築が可能 である点です。この連携により、クラウドの利便性をオンプレミス環境に取り入れ、AIモデルのトレーニングやインファレンス(推論)作業をシームレスかつ効率的に進められます。 AI処理に最適化された設計 IBM Fusion HCI には高速な AI処理を実現する設計が施されています。NVIDIA GPU の活用を可能とし、AIモデルのトレーニングや推論の速度を飛躍的に向上させます。また、watsonx.data と組み合わせることでデータクエリのパフォーマンスを従来インフラの最大90倍まで高速化 することが可能です。 エンタープライズグレードのデータ基盤 IBM Fusion HCI はデータレイクハウスとしての機能を提供し、AIワークロードに必要なデータ収集・分析基盤の構築を支援します。エンタープライズ規模の大容量データ管理に対応し高い柔軟性と拡張性を持つため、DX を推進する企業にとって理想的な選択肢と言えます。 4. コスト削減と効率性の向上 VMwareのライセンス費用をカット IBM Fusion HCI は、VMware を利用した仮想化基盤の代替として大幅なコスト削減の可能性とします。物理サーバー上に Red Hat OpenShift環境を直接構築する仕組みによって VMwareライセンス費用や運用コストを削減すると同時に、OpenShift利用における費用も最適化できます。 効率的なリソース管理 コンテナ単位での精細なリソース管理を実現する IBM Fusion HCI は、従来の仮想マシン管理よりも大きな効率性を発揮します。これにより、仮想化環境の課題(例:仮想マシン単位でしかリソースを扱えない問題)を解消し、リソースの使用効率を最大化します。 運用負荷とコストの削減 IBM Fusion HCI は設計・導入・運用にかかる負担を軽減し、運用管理の効率化を達成します。IBM による一元的なサポートが可能なため、トラブル発生時の対応が迅速かつスムーズです。また、watsonx を活用した次世代ワークロードに最適化されており、最新技術を活用しながら長期的なライセンスコストの抑制を実現します。 5. 障害時の運用負荷負担削減 IBM Fusion HCI は、システムの信頼性を高めるために設計された自動監視および報告機能である CallHome機能を搭載しています。そのため、障害発生時に IBM に自動通知でき、運用負担を軽減することができます。統合管理コンソールによりシステムの状態を一元的に確認できるため、トラブルシューティングも容易に行うことができます。 IBM Fusion HCIを利用したユースケース 1. IoTサービスでの利用 製造業で IoTサービスを開始したいという場合、製品や生産機械から IoTデータを収集し、このデータをクラウドなど IoTサービスの拠点に送る必要があります。しかし、生産拠点によってはセキュリティやネットワーク要件が厳しくデータをクラウドに出せないということもあります。 そこで、条件の厳しい工場には IBM Fusion HCI を設置しクラウド同様の IoTサービスを展開することで、エンドユーザーにデータから得られる知見を提供できます。 2. マルチクラウドでの利用 すでに進んでいるクラウド移行を統一管理したい場合にも IBM Fusion HCI は活躍します。例えば、複数クラウドの OpenShift環境に統一したセキュリティポリシーを適用するとした場合、お客様サイトの IBM Fusion HCI を起点として IBM Cloud を介して様々なロケーションの OpenShiftサービスを一元化できます。ポリシーをアップデートする際も変更が自動的に反映されるため、運用管理の負荷が大きく軽減できます。 3. AIワークロードでの利用 AIデータ処理を IBM Fusion HCI上の NVIDIA A100 GPU で実行することができます。これにより、大規模な AIシステムを構成するコアシステムやクラウド上の AIアプリケーションのデータへライブストリーミングすることができます。また、エッジで処理を終えてから、コアシステムやクラウド上のデータレイクやデータウェアハウスに送信するといったことも可能です。 図2:エッジのIBM Fusion HCIでAIデータ処理を実行 次世代のインフラ基盤への鍵を握るIBM Fusion HCI 未来志向のインフラ基盤に求められるのは「柔軟性」「効率性」「スピード」「安全性」です。IBM Fusion HCI は、これらすべてを備えた次世代型のソリューションとして、顧客提案の新しい切り札になると考えられます。 エヌアイシー・パートナーズは、IBM ソフトウェア/ハードウェアの認定ディストリビューターとして、IBM Fusion HCI のお客様への提案をサポートします。また、IBM のソフトウェア製品およびハードウェア製品を組み合わせた最適な提案を提供するとともに、製品の特長や利点をお客様にわかりやすく説明し、お客様・パートナー様のビジネスをサポートしています。 「お客様のニーズや要件に合わせて総合的なIBMソリューションを提案したい」 「IBM製品の機能や適用方法についての問い合わせに適切に対応したい」 「IBM製品の特長や利点を活かしてお客様ビジネスに最適なプランを提示したい」 といったご要望をお持ちの際は、お気軽にエヌアイシー・パートナーズへご相談ください。 お問い合わせ この記事に関するお問い合せは以下のボタンよりお願いいたします。お問い合わせ   .highlighter { background: linear-gradient(transparent 50%, #ffff52 90% 90%, transparent 90%); } .anchor{ display: block; margin-top:-20px; padding-top:40px; } .btn_A{ height:26px; } .btn_A a{ display:block; width:100%; height:100%; text-decoration: none; background:#eb6100; text-align:center; border:1px solid #FFFFFF; color:#FFFFFF; font-size:16px; border-radius:50px; -webkit-border-radius:50px; -moz-border-radius:50px; box-shadow:0px 0px 0px 4px #eb6100; transition: all 0.5s ease; } .btn_A a:hover{ background:#f56500; color:#999999; margin-left:0px; margin-top:0px; box-shadow:0px 0px 0px 4px #f56500; } .bigger { font-size: larger; }

back to top