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年10月10日

現地からお届け!【参加レポート】IBM TechXchange 2025 Orlando

公開日:2025-10-10 こんにちは。 現在エヌアイシー・パートナーズ 技術企画本部のメンバーで、アメリカのオーランドで開催されている「IBM TechXchange 2025」に参加しています。 (現地時間:2025年10月9日、日本時間:2025年10月10日時点) 本記事では 現地からの速報 として、このイベントの概要や見どころ、最新情報をお伝えいたします。 目次 イベント概要 IBM Techxchange 2025 主要メッセージ - 1. Anthropicとのパートナーシップ発表 - 2. コード開発AI Agent「Project Bob」 - 3. AI基盤のための「Project Infragraph」 AI Accelerator “Spyre” Observability さいごに お問い合わせ イベント概要 IBM TechXchange は世界各国のIBMファンが集う年に1度の技術者向けイベントで、今年は3回目となりました。 年々規模も参加者も拡大しており、IBM TechXchange 2025 では、1,800以上の技術者向けセッションがあり、その中で400以上のハンズオンラボやデモが展開されています。 今年はアメリカのフロリダ州にあるオーランドの Orange Country Convention Center にて10月6日から10月9日の4日間で開催中で、日本から100名近くの方々が参加しています。 今年のテーマは「we are GO / Explore Build Launch 」です。 IBM Techxchange 2025 主要メッセージ TechXchange 2025の基調講演では、AIエージェントを活用・展開するために必要となる4つの要素を紹介していました。 この4つの要素のうちEcosystem・Developer Tools・AI infrastructure managementについてお伝えします。 Ecosystem IBMが単独でAIエージェントを開発・展開するのではなくパートナーシップやIBMパートナーがAIエージェントを開発・運用することでOpenな展開をしていくという方針となります。 この方針を実現するためにAgent Connectプログラムを展開しており、多数のAIエージェントを早期に提供することを目指しています。 Developer Tools Developer Toolsとしてドメインエージェントの提供があります。 ドメインエージェントとは、業務特化型のエージェントを指します。例えば購買業務に特化したエージェントであったり、人事業務に特化したエージェントです。 AI infrastructure management AIを利用する上で必要となる基盤の管理を指します。これを実現するためにProject “Infragraph” というプロジェクトでソリューション提供を目指しています。   他にも、TechXchangeでは様々な新しい発表がありました。その発表の中から今後大注目となる3点について共有します。 1.  Anthropicとのパートナーシップ発表 既に日本でもニュースとなっているので認識されている方も多いと思いますが、Anthropicとのパートナーシップの発表がありました。 IBMはAIのガバナンス、セキュリティ、オブザーバビリティ分野でソリューションを提供しており、これがIBMの強みとなっています。Anthropicとの協業は、この強みを背景とした補完的なパートナーシップであると思われます。 このパートナーシップの目的は、LLMであるClaudeをIBMソリューションに組み込むことだけではありません。企業ユースでAIエージェントを開発・運用する時に検討が必要となる要素を体系化した「Architecting secure enterprise AI agents with MCP」をIBMが作成し、Anthropicがそれを検証する協業も行っています。 このガイドを参照してAIエージェントを開発することで、今後拡大が見込まれるAIエージェントを安全かつ安心して活用できるベースとすることができます。 2.  コード開発AI Agent「Project Bob」 統合開発環境(IDE)をエージェント型で提供する「Project Bob」が発表されました。 このニュースと共にかわいらしいマスコットのBobもお披露目になりました。 Project Bobを利用することで、コードをバージョンアップするための設計、テストの自動化、本番運用、コンプライアンス維持と開発のライフサイクル全体をAIエージェントを用いて自動化することができます。 Project Bobは、発表と共にPublicプレビュー段階に入りました。 開発者のワークフロー負荷を軽減してくれるProject Bob の提供開始が楽しみですね! 3.  AI基盤のための「Project Infragraph」 HashiCorpが主体となって開発している基盤自動化のためのプロジェクトです。 詳細は不明ですが、以下の実現を目指しています。 サイロを横断した統合インサイト クラウドインフラストラクチャーリソースを単一のビューで把握できます。 実用的なインテリジェンス コストの最適化、ガバナンスの強化、リスクの軽減に役立つコンテキストを提供します。 自動化の基盤 インフラストラクチャークラウド全体にわたる、次世代のインテリジェントなAI駆動型運用を実現します。 AI Accelerator “Spyre” IBM Spyre Accelerator はエンタープライズワークフロー向けのAIソリューションを提供し、AIサービスを簡単にインストール・構成・移動できる統合された推論プラットフォームとアクセラレートされたインフラストラクチャーを備えています。 Spyreのユースケースとしては、IT運用、開発、ERP、銀行・金融、ヘルスケア、保険、公共分野など、様々な業界でデジタルアシスタント、データ・コンテンツ管理、ディーププロセス統合などのプリビルドAIサービスを提供します。 Observability AI Firstとして各種機能提供、Intelligent、Integrated experienceとしてUIやDataレイヤーの統合がされるという情報が共有されました。 またAIキーワードとしてはLLMやAIのワークロードをInstanaでObservabilityする機能が2025 4Qのロードマップとして示されました。 さいごに 2日目の夜のお楽しみとして「Evening Entertainment at Universal Orlando Resorts Islands of Adventure」が開催されました。 世界各国から集まった技術者とともに過ごした Universal Orlando Resorts Islands of Adventure での一夜は格別な体験となりました。 さて、本日、来年のTechXchangeがアメリカ ジョージア州の「アトランタ」で開催されることが正式に発表されました。 次回のイベントにも期待が高まります! お問い合わせ エヌアイシー・パートナーズ株式会社 技術企画本部 E-mail:voice_partners@niandc.co.jp   .bigger { font-size: larger; } .highlighter { background: linear-gradient(transparent 50%, #ffff52 90% 90%, transparent 90%); } .anchor{ display: block; margin-top:-20px; padding-top:40px; } .btn_A{ height:30px; } .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; } .table { border-collapse: collapse; border-spacing: 0; width: 100%; } .td { padding: 10px; vertical-align: top; line-height: 1.5; } .tbody tr td:first-child { font-weight: bold; width: 20%; } .tbody tr td:last-child { width: 80%; } .ul { margin: 0 !important; padding: 0 0 0 20px !important; } .ol { margin: 0 !important; padding: 0 0 0 20px !important; } .tr { height: auto; } .table { margin: 0; } *, *:before, *:after { -webkit-box-sizing: inherit; box-sizing: inherit; } .html { -webkit-box-sizing: border-box; box-sizing: border-box; font-size: 62.5%; } .btn, a.btn, button.btn { font-size: 1.6rem; font-weight: 700; line-height: 1.5; position: relative; display: inline-block; padding: 1rem 4rem; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-transition: all 0.3s; transition: all 0.3s; text-align: center; vertical-align: middle; text-decoration: none; letter-spacing: 0.1em; color: #212529; border-radius: 0.5rem; } a.btn--orange { color: #fff; background-color: #eb6100; border-bottom: 5px solid #b84c00; } a.btn--orange:hover { margin-top: 3px; color: #fff; background: #f56500; border-bottom: 2px solid #b84c00; } a.btn--shadow { -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3); box-shadow: 0 3px 5px rgba(0, 0, 0, .3); }

2025年10月06日

【イベントレポート】watsonx Orchestrate テクニカルワークショップ第二回 開催しました

公開日:2025-10-06 こんにちは。てくさぽブログメンバーの高村です。 2025年9月24日に第2回「watsonx Orchestrate テクニカルワークショップ」を開催しました。 第一回(7月開催)では、アップデートされた watsonx Orchestrate の基本的な使い方をご紹介しました。詳しくは、ブログ記事「【イベントレポート】watsonx Orchestrate テクニカルワークショップ第一回 開催しました」をご覧ください。 今回の第二回では、Agent Development Kit(以下、ADK) を用いた、Pythonによるエージェント開発のハンズオンを実施しました。 また、第1回同様、ハンズオン終了後にはグループに分かれてワークショップを行いました。参加者様同士が、日々の業務で抱えている課題を洗い出し、AIを活用して解決できる方法についてディスカッションし、その結果を発表する時間を設けました。参加者同士のコミュニケーションも活発に行われ、有意義な時間となりました。 それでは、当日の様子をご紹介します。 目次 watsonx Orchestrate概要 watsonx Orchestrateハンズオン- Agent Development Kitを用いたエージェント開発 ワークショップ まとめ お問い合わせ watsonx Orchestrate概要 このセッションでは、watsonx Orchestrate概要、ユースケース、ご提供プランをご紹介しました。 watsonx Orchestrateでは、ユーザーの目的や業務に合わせたエージェント開発が可能です。開発方法としては、ローコード と コーディング の両方が提供されており、ニーズに応じて選択できます。 今回のハンズオンで使用して頂く Agent Development Kit(ADK) および watsonx Orchestrate Developer Edition は、コーディングによるエージェントやツールの開発を支援するための環境です。Toolは Python または OpenAPI 定義によって開発でき、高度な実装やデバッグも柔軟に行えます。 watsonx Orchestrateのご提供プランは、Essentials Agentic、Standard Agentic、Premium Agenticの3種類があり、特に最近ご質問の多いEssentialsとStandardの規模感と費用感についても目安をご紹介させて頂きました。 watsonx Orchestrateハンズオン – Agent Development Kitを用いたエージェント開発 ハンズオンでは、ADK と watsonx Orchestrate Developer Edition を使い、実際にエージェント開発を体験していただきました。 参加者には事前に IBM Technology Zone(以下、Techzone) の ADK 環境を予約していただき、VSCode がインストールされた環境で開発を進めました。VSCode上でADKを利用し、完成したエージェントを watsonx Orchestrate Developer Edition にインポートして動作確認を行う流れです。 実施内容 Tool・Agent の作成 watsonx Orchestrate Developer Editionで Agent の動作確認 Knowledge を使用する Agent の作成 内部基盤モデルの追加 Flow の作成 実施した内容の中でTool、エージェントの作成とwatsonx Orchestrate Developer Editionで エージェントの動作確認について簡単にご紹介します。 作成して頂いたエージェントは、入力フレーズを造語「ザルガリ語」に翻訳し、その文字数をカウントした後、ジョークを回答します。 まずADKから①Tool(translateToZargari)と②Tool(word_length)をPythonで定義してwatsonx Orchestrate Developer Editionへインポートします。下記画面ショットのサンプルはtool() 関数を利用することでエージェントが使用可能なツールとして定義します。 次にエージェントをyaml形式で定義し、watsonx Orchestrate Developer Editionへインポートします。下記がエージェントのサンプルです。エージェントのスタイル、基盤モデルの指定、振る舞い、使用するtoolを定義します。 最後にwatsonx Orchestrate Developer Editionでエージェントの動作確認を行います。下記画面ショットがwatsonx Orchestrate Developer Editionのホーム画面です。watsonx Orchestrate Developer Editionは本製品とほぼ同等の機能を利用することができます。 Previewでエージェントの動作確認を行い、想定通り入力フレーズがザルガリ語に翻訳され、文字数をカウント、ジョークが生成されることを確認しました。 Tool、エージェントの作成、エージェントの動作確認のハンズオンは以上です。その他のハンズオンについて詳しく知りたい方は、ブログの最後に記載している「お問い合わせ」までお気軽にご連絡ください。 ワークショップ ワークショップでは2チームにわかれて日々の業務やお客さまの業務で困っていることを洗い出し、AIでの解決方法を考えるブレインストーミングを行いました。 以下のステップで進行しました 個人作業:「時間がかかっていること」「困っていること」「やりたいのにできていないこと」を3つ挙げ、ポストイットに記入し、AIでの解決可能性を考える チーム作業:模造紙にポストイットを貼りながらカテゴリー分け、AI活用のアイデアをディスカッション。 チームで話あったことを発表 当日挙がった意見を抜粋してご紹介します。 「検索業務に関して検索結果が多すぎて回答にたどり着くまで時間がかかる」 「顧客からの質問に対する回答探しに手間取る」 「同じ質問に対して効率化できないか」 AI活用について RAGを取り入れる方法 予め質問と回答を用意しチャットボットで回答させるなど工夫が必要 といった意見が出ました。 その他、コード開発でのレビューや修正にAIを活用すること、複雑な社内手続きをスムーズにするためにAIエージェントを導入する可能性についても、意見が挙がりました。 AIでどのように解決できるか、具体的な方法まで議論が進んでいない項目もありましたが、参加者同士で現在の課題や困りごとを共有いただけたことは大きな収穫でした。 今回の意見交換が、社内の「クライアントゼロ化」や日々の業務改善の検討につながる一歩となり、今後の改善活動に活かしていただけると幸いです。 まとめ 第2回 watsonx Orchestrate テクニカルワークショップ では、ADKと watsonx Orchestrate Developer Edition を用いてコードベースのエージェント開発を体験していただきました。 後半のワークショップでは、日々の業務課題から、AI活用について活発な意見交換が行われ、技術的な学びと参加者間の交流の場となりました。 今後も、製品を実際に体験できるハンズオンと、参加者同士が交流・情報共有を行えるワークショップを継続的に開催してまいります。次回もぜひご参加いただけますと幸いです。 お問い合わせ エヌアイシー・パートナーズ株式会社技術企画本部E-mail:voice_partners@niandc.co.jp   .bigger { font-size: larger; } .highlighter { background: linear-gradient(transparent 50%, #ffff52 90% 90%, transparent 90%); } .anchor{ display: block; margin-top:-20px; padding-top:40px; } .btn_A{ height:30px; } .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; } .table { border-collapse: collapse; border-spacing: 0; width: 100%; } .td { padding: 10px; vertical-align: top; line-height: 1.5; } .tbody tr td:first-child { font-weight: bold; width: 20%; } .tbody tr td:last-child { width: 80%; } .ul { margin: 0 !important; padding: 0 0 0 20px !important; } .ol { margin: 0 !important; padding: 0 0 0 20px !important; } .tr { height: auto; } .table { margin: 0; } *, *:before, *:after { -webkit-box-sizing: inherit; box-sizing: inherit; } .html { -webkit-box-sizing: border-box; box-sizing: border-box; font-size: 62.5%; } .btn, a.btn, button.btn { font-size: 1.6rem; font-weight: 700; line-height: 1.5; position: relative; display: inline-block; padding: 1rem 4rem; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-transition: all 0.3s; transition: all 0.3s; text-align: center; vertical-align: middle; text-decoration: none; letter-spacing: 0.1em; color: #212529; border-radius: 0.5rem; } a.btn--orange { color: #fff; background-color: #eb6100; border-bottom: 5px solid #b84c00; } a.btn--orange:hover { margin-top: 3px; color: #fff; background: #f56500; border-bottom: 2px solid #b84c00; } a.btn--shadow { -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3); box-shadow: 0 3px 5px rgba(0, 0, 0, .3); }

2025年09月30日

日本アイ・ビー・エム様主催「Women in Tech Japan 夏の会」イベント開催レポート

公開日:2025-09-30 こんにちは。エヌアイシー・パートナーズ 村上です。 2025年8月20日に、IBM様が主催されている女性エンジニア中心のコミュニティ 「Women in Tech Japan」の夏の会のイベントが開催され、弊社エヌアイシー・パートナーズは会場提供(@NI+Cガーデン)という形でご協力させていただきました。 本ブログでは、イベントの様子とそこで感じ得た学びについてご報告させていただきます。 目次 Women Tech in Japanについて 「キャリアを考える」セッションから得た学び 夏のビール会! 今後の活動 さいごに お問い合わせ Women Tech in Japanについて 「Women in Tech Japan」は、2024年10月にラスベガスで開催された「TechXchange」をきっかけに発足しました。 女性エンジニアが、他社の女性エンジニアとキャリアやワークライフバランスについて語り合うことを目的としています。 日本では海外に比べてまだまだ女性エンジニアが少なく、働き方やキャリアプランを参考にするロールモデルが少ない状況ですが、女性エンジニアが輝いているIBM様がこのコミュニティをリードしてくださり、沢山の発見や学びを培う機会を作ってくださっています。 Women in Tech Japanは男性の参加も大歓迎とされていらっしゃいます。 夏の会のイベント当日は、性別や年齢、所属企業を問わず、多様なバックグラウンドを持つ方々が参加されました。 「キャリアを考える」セッションから得た学び イベントのハイライトの一つは、「キャリアを考える」をテーマにした日本アイ・ビー・エム 大久保そのみ様のセッションでした。 大久保様は国家資格キャリアコンサルトとしても活躍していらっしゃいます。 セッションから得る学びは人によって違うと思いますが、私は下記のような学びを得ましたのでご紹介です。 キャリアの選択肢は一つではなく、個々のライフスタイルや目標に合わせて柔軟に設計していくことが大切- 5年後の私が当たり前のようにイメージできなくてもいい(来年の自分を思い描く) 限られた時間をどう有効に使うかを考え実践する - 例えば・・「やりたいと思っているのに出来ていないこと」に踏み出す! 毎日をできるだけポジティブエネルギーで満たしてみたいと思うようになれた - ネガティブなことへの向き合い方を見直す 参加者の皆さまとは、その後の懇親会で本セッションの意見交換をさせていただくことができました。 大久保様、大変有意義なセッションをありがとうございました! 夏のビール会! 夕方からはNI+Cガーデンに設置しているビールサーバーをご利用いただき「夏のビール会」と称して参加者の皆さんと懇親会を行いました。 美味しい食事とクラフトビールを囲み、参加者の皆さんの会話も弾み、和やかな雰囲気となりました。 セッションでは聞けなかったキャリアの話や、日頃のちょっとした悩みを相談したりと、あっという間に時間が過ぎていきました。 このような素晴らしい機会を企画してくださった日本アイ・ビー・エムの皆様に、心より感謝申し上げます。 今後の活動 「Women tech in Japan」は、今後は下記のような継続的な活動が予定されています。 TechXchange フロリダ・オーランド にて「Empowering Women in Tech with AI」セッション(2025年10月7日)IBM TechXchange 2025 We are GO/(IBMサイト) TechXchange Japan での活動紹介(2025月12月3日)IBM TechXchange Summit Japan 2025(IBMサイト) さいごに 昨今、IT業界に限らず、共通のカテゴリーを持つ人々が集まるコミュニティが数多く存在しています。 初めてのコミュニティへの参加には、誰もが多少なりともハードルの高さを感じるかもしれません。 私自身もそうでしたが、もし少しでも興味があるなら、ぜひ一歩踏み出して参加してみることをお勧めします。 きっと、新しい出会いや、新しい発見があり、多くの経験を得ることができると思います! この度は、IBM様が主催された素晴らしいイベントに貢献できたことを、大変光栄に思います。 弊社としましては、今後もこのようなコミュニティの活動に積極的に参加・支援させていただき、女性エンジニアがさらに活躍できる社会の実現に貢献していきたいと考えております。 お問い合わせ エヌアイシー・パートナーズ株式会社E-mail:voice_partners@niandc.co.jp   .bigger { font-size: larger; } .highlighter { background: linear-gradient(transparent 50%, #ffff52 90% 90%, transparent 90%); } .anchor{ display: block; margin-top:-20px; padding-top:40px; } .btn_A{ height:30px; } .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; } .table { border-collapse: collapse; border-spacing: 0; width: 100%; } .td { padding: 10px; vertical-align: top; line-height: 1.5; } .tbody tr td:first-child { font-weight: bold; width: 20%; } .tbody tr td:last-child { width: 80%; } .ul { margin: 0 !important; padding: 0 0 0 20px !important; } .ol { margin: 0 !important; padding: 0 0 0 20px !important; } .tr { height: auto; } .table { margin: 0; } *, *:before, *:after { -webkit-box-sizing: inherit; box-sizing: inherit; } .html { -webkit-box-sizing: border-box; box-sizing: border-box; font-size: 62.5%; } .btn, a.btn, button.btn { font-size: 1.6rem; font-weight: 700; line-height: 1.5; position: relative; display: inline-block; padding: 1rem 4rem; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-transition: all 0.3s; transition: all 0.3s; text-align: center; vertical-align: middle; text-decoration: none; letter-spacing: 0.1em; color: #212529; border-radius: 0.5rem; } a.btn--orange { color: #fff; background-color: #eb6100; border-bottom: 5px solid #b84c00; } a.btn--orange:hover { margin-top: 3px; color: #fff; background: #f56500; border-bottom: 2px solid #b84c00; } a.btn--shadow { -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3); box-shadow: 0 3px 5px rgba(0, 0, 0, .3); }

2025年09月30日

【てくさぽBLOG】InstanaとTurbonomicを連携したリソース最適化検証

公開日:2025-09-30 こんにちは、てくさぽBLOGメンバーの和田です。 昨今、システムの複雑化やハイブリッドクラウドなど複数環境の運用などで運用にかかる負荷が増加しております。しかし従来の運用管理ツールだけで解決するのは難しくなってきています。そんな中、運用の高度化・効率化のため、アプリケーションパフォーマンス管理、アプリケーション・リソース管理、そしてAIの技術を採用した「AIOps」製品が注目を集めています。 弊社はIBMのAIOps製品の拡販に注力しており、かつ、私たち自身で製品のことを知りパートナー様に商材をご紹介したいと考えていることより、IBMのAIOps製品を組み合わせて社内検証を実施しましたので、今回から3回にわけてご紹介したいと思います。 まず1回目はInstanaとTurbonomicを組み合わせてリソース最適化の検証を実施しましたので、その内容と結果、苦労した点などをご紹介します。 目次 InstanaとTurbonomicの概要と連携させることで可能になること 検証内容 検証結果 苦労した点 さいごに お問い合わせ InstanaとTurbonomicの概要と連携させることで可能になること Instanaは、アプリケーションモニタリングの分野で高い評価を得ているツールです。 アプリケーション呼び出し時のコールリスエストのトレーシングやCPU、メモリといったメトリクス情報収集を通じて、アプリケーション・インフラの状況をリアルタイムで可視化します。特に自動化された監視設定や障害発生した際の関連情報を分析し一目で原因を特定できます。 Turbonomicは、インフラリソースおよびアプリケーションの効率的な配置・利用を最適化するプラットフォームです。 リソースの過剰利用や不足をリアルタイムで把握し、必要な改善アクションを推奨または自動実行します。 詳細な機能についてはそれぞれBLOGで紹介しておりますので下記をご確認ください。 Instana Turbonomic 連携させることで得られる効果 InstanaとTurbonomicを連携させることで、以下の効果が得られます。 リアルタイムモニタリングの強化: Instanaを通して詳細なリソース使用状況を把握し、Turbonomicがそれを基に適切なリソース割当を推奨。 自動リソース最適化: 必要に応じてTurbonomicが推奨するアクションをInstanaから直接実行可能。 アプリケーションとインフラの統合可視化: 両製品の連携により、アプリケーションのパフォーマンスだけでなく、それを支えるインフラ(仮想マシン、コンテナ、クラウド)の状態までを統合的に可視化できます。 検証内容 今回の検証では、以下の環境・シナリオを設定しました。 環境構成 Turbonomic: IBM Cloudのベアメタルサーバ(Hyper-V)上にデプロイ。 本環境で使用するAWSアカウントをターゲット追加。 Instana: SaaS形式で利用。 監視対象: AWS EC2インスタンスA(instana03、インスタンスタイプ:m7a.medium)にInstana agent導入。 アプリケーション: AWS EC2インスタンスAにサンプルwebアプリケーションのRobot Shopを導入。 Instana上ではInstana03_robot-shopとして登録。 【参照】GitHub 負荷ツール: AWS EC2インスタンスBにJMeterを導入。構成については下記の通り。 検証内容 EC2インスタンスBのJmeterからEC2インスタンスA上のアプリケーションへ同時多発webアクセスを行いリソース使用率の負荷をかける。 負荷は下記図の通りスレッド数5000、ramp-up期間は1秒、持続時間は3600で設定 Turbonomicがリソース使用率を検知し、インスタンスタイプ変更のアクションが推奨されることを確認する。 Instanaで推奨されるアクションを実行し、実際にEC2インスタンスAのリソースが拡張されるかを確認をする。 インスタンスタイプ変更後も同量の負荷をかけ続けリソース使用率が問題ないか確認する。 検証結果 検証開始前のTurbonomicの状況です。 左側の仮想マシンの箇所は緑となっておりインスタンスタイプは赤枠で囲われているm7a.mediumとなっています。 また、Instana上ではインスタンスタイプ変更のアクションは表示されていません。 この状態から負荷を掛けていきます。 負荷を掛けていくことで、下記図の通り、検証開始前は安定したリソース使用率でしたが、負荷をかけることで仮想CPUや仮想メモリへの負荷を確認できます。 また、点線で囲んでいる部分についてはTurbonomicが推測する今後のリソース使用率になります。左側の仮想マシンという部分についても赤くなっております。 Turbonomicが不足するリソースを検出し、最適なインスタンスへの変更を推奨しています。 Turbonomicで推奨されたアクションがInstanaで推奨アクションとして表示されます。 Instana上でアクションを実行します。 実行後Turbonomic上でインスタンスタイプが変更されていることを確認できます。 また、インスタンスタイプ変更後も負荷を掛け続けた結果、インスタンスタイプ変更後にリソース使用率が低下していることを確認できました。 ※★のタイミングでインスタンスタイプを変更しています。 この結果、リソースの過不足を迅速に解消し、安定したアプリケーション運用が可能であることを確認しました。 検証の結果以下を確認することができました。 負荷シミュレーション時、EC2インスタンスAのCPU使用率やメモリ使用率の上昇を可視化。 InstanaにTurbonomicの推奨アクションが表示され、Instana上でアクションを実行することでインスタンスタイプが変更され、負荷が下がる過程を可視化。 インスタンスタイプ変更後も同量の負荷をかけつづけリソース使用率が問題ないことを確認。 苦労した点 今回の検証を進める中で以下のような課題に直面しました。 TurbonomicがデプロイされているISOイメージから仮想サーバを作成する方式なのですが、Hyper-V用ISOイメージがなく、VMware用のISOイメージから作成しようとしても失敗したためIBMサポートへ問い合わせを行いました。 仮想サーバをデプロイしたあとTurbonomicコンソールへアクセスしようとしたところ、Hyper-V内のネットワーク設定が誤っておりインターネットからアクセスができませんでした。 TurbonomicからAWSアカウントのターゲット追加する際にDNS設定が正しく設定されていなかったため、正常に追加登録が完了しませんでした。 InstanaとTurbonomicをスムーズに連携させるための設定確認とチューニングに時間を要しました。特にInstana側からTurbonomic側への設定追加の際に、設定項目がドキュメントからは読み取れず、設定内容が間違っていたためサポートへ問い合わせを行い解決しました。 負荷テストを行う際に最初はWebアプリケーションに付随するスクリプトで実施していましたが、インスタンスタイプ変更に伴う再起動が発生するためJMeterで実行するワークロード設計に工夫が必要でした。 Turbonomic上で推奨アクションがあらかじめ表示されている場合、負荷をかけることで推奨アクションが更新されると想定していましたが、更新されなかったため想定していた挙動となりませんでした。 インスタンスAに負荷を与えても推奨アクションが表示されなかったため、ポリシーの設定変更に時間を要した。特に観測期間を短くし、積極性をあげることで短い期間内での負荷に敏感になるように設定しました。 観測期間の最低値が7日間のため、一度推奨アクションが表示されるまで負荷を掛け続けインスタンスタイプを変更しないでおくと、推奨アクションが継続して表示されてしまい、推奨アクションが表示されなくなるまで時間がかかってしまいました。 さいごに InstanaとTurbonomicを連携させ、AWS EC2インスタンスのリソース最適化の自動化を検証しました。 今回の検証ではTurbonomicをオンプレミスに導入しましたが、SaaSでの提供もありますので今回の検証で苦労したTurbonomicの構築といった手間を省略することも可能です。 InstanaとTurbonomicを連携させることで、操作時にコンソールを移動せずとも実行は一つのコンソールで実施できるようになります。リソース不足の解消やアプリケーション性能の安定化とともに、現場での手動作業を削減できによる運用の高度化・効率化が期待されます。 お問い合わせ エヌアイシー・パートナーズ株式会社 E-mail:voice_partners@niandc.co.jp   .bigger { font-size: larger; } .highlighter { background: linear-gradient(transparent 50%, #ffff52 90% 90%, transparent 90%); } .anchor{ display: block; margin-top:-20px; padding-top:40px; } .btn_A{ height:30px; } .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; } .table { border-collapse: collapse; border-spacing: 0; width: 100%; } .td { padding: 10px; vertical-align: top; line-height: 1.5; } .tbody tr td:first-child { font-weight: bold; width: 20%; } .tbody tr td:last-child { width: 80%; } .ul { margin: 0 !important; padding: 0 0 0 20px !important; } .ol { margin: 0 !important; padding: 0 0 0 20px !important; } .tr { height: auto; } .table { margin: 0; } *, *:before, *:after { -webkit-box-sizing: inherit; box-sizing: inherit; } .html { -webkit-box-sizing: border-box; box-sizing: border-box; font-size: 62.5%; } .btn, a.btn, button.btn { font-size: 1.6rem; font-weight: 700; line-height: 1.5; position: relative; display: inline-block; padding: 1rem 4rem; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-transition: all 0.3s; transition: all 0.3s; text-align: center; vertical-align: middle; text-decoration: none; letter-spacing: 0.1em; color: #212529; border-radius: 0.5rem; } a.btn--orange { color: #fff; background-color: #eb6100; border-bottom: 5px solid #b84c00; } a.btn--orange:hover { margin-top: 3px; color: #fff; background: #f56500; border-bottom: 2px solid #b84c00; } a.btn--shadow { -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3); box-shadow: 0 3px 5px rgba(0, 0, 0, .3); }

back to top