特集・ブログ

ブログ

2024年04月08日

特集一覧 (ブログ、コラム 他) [2024年度]

コーポレートサイトに掲載している2024年度のブログやコラムの一覧です。 ハードウェアやソフトウェア製品に関するコラムやソリューション情報、それらの製品を使った弊社エンジニアのブログやホワイトペーパーなど皆様のビジネスにお役立てください。 コラム・ブログ一覧 カテゴリ タイトル 公開日 ブログ 【てくさぽBLOG】watsonx Assistant + Watson Discovery + watsonx.aiを連携してみた 24/04/08 アーカイブ 2023年度 2022年度 2021年度 2020年度 2019年度  

2024年04月08日

【てくさぽBLOG】watsonx Assistant + Watson Discovery + watsonx.aiを連携してみた

こんにちは。てくさぽBLOGメンバーの高村です。 ビジネスへの生成AI の取り込みに注目が集まっている今日、watsonx.ai をどう活用すればいいのか、多くのお客様からお問い合わせ頂いています。そこで前回の「【てくさぽBLOG】IBM watsonx.aiを使ってみた(Part2)」では、watsonx.ai のユースケースとして Retrieval-Augmented Generation(以下 RAG)をご紹介しました。 今回は、RAG の仕組みを利用し AIチャットボットを提供する「watsonx Assistant(以下 Assistant)」と検索エンジン機能を提供する「Watson Discovery(以下 Discovery)」、「watsonx.ai」を組み合わせた連携ソリューションをご紹介します。 目次 AssistantとDiscoveryの連携 watsonx.aiを取り入れた連携 Assistant + Discovery + watsonx.aiを連携してみた さいごに お問い合わせ AssistantとDiscoveryの連携 本来なら各製品を一つのブログで詳しくご説明したいところですが、今回は連携した結果についてのご紹介となりますので、Assistant と Discovery については今後のブログであらためてご紹介したいと思います。 Assistant は watsonx の大規模言語モデルが搭載され、自然言語の問い合わせを理解し、適切な回答を返すことができるチャットボット機能を提供する製品です。一方 Discovery はドキュメントから適切な情報を検索する検索エンジン機能、パターンや傾向を読み取る分析エンジンとしての機能を備えた製品です。 Assistant と Discovery を組合わせたユースケースでは Assistant にあらかじめ回答を用意してルールベースで回答させ、答えることが難しい問い合わせに対しては Discovery の検索結果を利用して回答します。 watsonx.aiを取り入れた連携 上記の連携では Discovery の検索結果がユーザーに表示される仕組みとなっていますが、watsonx.ai を介して回答を提供することでDiscovery が得た検索結果をさらに整理し、より理解しやすい形での返答が実現できます。 Assistant + Discovery + watsonx.aiを連携してみた Assistant、Discovery、watsonx.ai を連携してみます。 事前準備 利用環境 今回は IBM Cloud で提供される SaaS を利用して検証します。なお、Assistant と Discovery の Plusプランは30日間無償期間が付属されていますので、是非ご活用ください。 watsonx Assistant:Plusプラン(30日間無償期間あり、以降は有償) Watson Discovery:Plusプラン(30日間無償期間あり、以降は有償) watsonx.ai:Essentialプラン(有償) 検証の目的 検証では構築手順の他、以下の点を確認します。 「Assistant + Discovery + watsonx.ai」と「Assistant + Discovery」の連携による回答の違いを比較 言語モデルを変えて問い合わせを行い、回答の違いの比較 実施手順 以下の流れで検証を実施します。 Assistantのプロビジョニング Discoveryのプロビジョニング、検索対象とするデータの取り込み※取り込むデータは「IBM Power S1014 データシート」のS1014のPDF watsonx.aiのプロビジョニング Assistantの初期設定 Assistantのカスタム拡張機能からDiscoveryを繋げる Assistantのカスタム拡張機能からwatsonx.aiを繋げる Assistantアクションの作成、問い合わせの検証 言語モデルを変えて問い合わせの検証 検証実施 1. Assistantのプロビジョニング はじめに Assistant のプロビジョニングを行います。 IBM Cloud にログインし、カタログ画面から "Assistant" を選択します。 ロケーションとプランを選択し「作成」をクリックします。 しばらくすると以下の画面の様に、Assistant がプロビジョニングされます。 2. Discoveryのプロビジョニング 次に Discovery をプロビジョニングします。 カタログ画面から "Discovery" を選択します。 ロケーションとプランを選択し「作成」をクリックします。 しばらくすると以下の画面の様に、Discovery がプロビジョニングされます。※ここで、資格情報内にある「API鍵」と「URL」をメモに控えます 「Watson Discoveryの起動」をクリックし「New Project +」をクリックします。 Project name に任意の名前を入力、Project type では「Conversational Serch」を選択し「Next」をクリックします。 作成されたプロジェクトをクリックします。 「Integration Deploy」をクリックします。 「API Information」タブをクリックし「Project ID」をメモに控えます。 次に検索対象の PDF を Discovery に取り込みます。 「Manage collections」から「New collection +」をクリックし、「Collection name」に任意の名前を入力、「Select language」を「Japanese」に設定します。 Upload files の領域に PDF をドラッグアンドドロップして「Finish」をクリックします。 アップロードが完了しました。次に、Smart Document Understanding機能(以下 SDU)を利用して PDF内のヘッダーやテキストなどのフィールドを定義します。 SDU は、PDFをはじめとする非構造化データの文書構造を理解して検索や分析の精度を向上させる機能です。例えばタイトルと定義した箇所を検索キーとしたり、検索対象をテキストと定義した箇所のみとするなど可能になります。 「Identify Field」タブをクリックします。 取り込んだ PDF が表示されるので右側の Field labels からヘッダー箇所やタイトル箇所などをドラッグアンドドロップして指定していきます。 ページの定義が終わったら「Submit page」をクリックして次の頁を定義していきます。 SDU では数ページ指定すると自動的にヘッダー箇所やテキスト箇所を認識してくれるので、何ページもあるドキュメントには便利な機能です。 今回は SDU を使って PDF の文書構造を定義しました。SDU以外の Discovery の機能については、また別の機会にご紹介したいと思います。 3. watsonx.aiのプロビジョニング ※watsonx.ai のプロビジョニング方法は「【てくさぽBLOG】IBM watsonx.aiを使ってみた(Part1)」をご参照ください。 4. Assistantの初期設定 Assistant の初期設定を行います。 Assistant を起動します。 起動後、以下の項目を入力します。 Assistant name:任意の名前を入力 Assistant Language:「English」を選択※日本語を選択することが可能ですが、Assistant のスターターキットは英語での利用を想定しているため今回はEinglishを選択します Assistant の公開先を「web」に設定します。※"Tell us about your self" 以降はご自身の情報を入力ください 入力後「Next」をクリックします。 デフォルトのチャットUI を利用するため「Next」をクリックします。 プレビュー画面が表示されるので「Create」をクリックします。(以下の画面は「Create」が隠れてしまっています) 「Congratulations!」と表示されたら初期設定は完了です。 5. Assistantのカスタム拡張機能からDiscoveryを繋げる 「Githubのassistant-toolkit」から "watson-discovery-query-openapi.jsonファイル" をダウンロードします。 Assistant のメニューから「Integration」をクリックします。 下にスクロールし「Build custom extension」をクリックします。 以下の画面が表示されるので「Next」をクリックします。 「Extension name」に任意の名前を入力し「Next」をクリックします。 先程ダウンロードした watson-discovery-query-openapi.jsonファイルをドラッグアンドドロップでアップロードします。 以下の画面が表示されるので「Finish」をクリックします。 追加した Extension の「Add +」をクリックします。 以下の画面が表示されるので「Next」をクリックします。 以下の画面が表示されるので、選択および入力します。 Authentication type:「Basic auth」を選択 Username:「apikey」と入力 Password:メモに控えたWatson DiscoveryのAPI鍵 discovery_url:メモに控えたWatson DiscoveryのURLから"http://"を除いた値 ※以下の画面ショットは discovery_url入力箇所が切れてしまっていますが、実際は「Servers」の下に discovery_url の項目があります 以下の画面が表示されるので「Finish」をクリックします。 Extension が「Open」となっていることを確認します。 これで watsonx Assistant と Watson Discovery が連携できました。 6. Assistantのカスタム拡張機能からwatsonx.aiを繋げる 次に、Assistant のカスタム拡張機能から watsonx.ai を利用できるように設定します。 設定には IBM Cloud の APIキーと watsonx.ai のプロジェクトID が必要です。取得方法は「【てくさぽBLOG】IBM watsonx.aiを使ってみた(Part2)」をご参照ください。なお、今回は東京リージョンで watsonx.ai をプロビジョニングします。 Github の「assistant-toolkit」から "watsonx-openapi.json" をダウンロードします。 Visual Studio Code などで東京リージョンの URL に編集し保存します。 Discovery の連携と同様に、Assistant のメニューから「Integration」「Build custom extension」をクリックします。 以下の画面が表示されるので、任意の Extension name を入力して「Next」をクリックします。 編集した watson-discovery-query-openapi.jsonファイルをドラッグアンドドロップでアップロードして「Next」をクリックします。 以下の画面が表示されるので「Finish」をクリックします。 追加した Extension の「Add +」をクリックします。 以下の画面が表示されるので、選択および入力します。 Authentication type:「Oauth 2.0」を選択 Grant type:「Custom apikey」を入力 apikey:取得済みのIBM CloudのAPIキー Client authentication:「Send as Body」を選択 Header prefix:Bearer(デフォルト) Servers:https://jp-tok.ml.cloud.ibm.com(自動入力) 以下の画面が表示されるので「Finish」をクリックします。 Extension が「Open」となっていることを確認します。 これで Assistant と watsonx.ai が連携できました。 7. Assistantアクションの作成、問い合わせの検証 Github の「assistant-toolkit」から "discovery-watsonx-actions.json" をダウンロードします。 Assistant の「Actions」から「Global Setting」をクリックします。 「Upload/Download」タブをクリックし、Uploadスペースに discovery-watsonx-actions.json をドラッグアンドドロップしてアップロードします。 以下の画面が表示されるので「Upload and replace」をクリックします。 以下の画面の通り、3つのアクションが作成されます。 メニューから「Variables」「Created by you」をクリックします。 「discovery_project_id」の値をメモに控えていた Discovery のプロジェクトID を入力し「Save」をクリックします。 「watsonx_project_id」の値をメモに控えて置いた watsonx.ai のプロジェクトID を入力し「Save」をクリックします。 「model_id」の値で watsonx.ai で使用する言語モデルを指定します。2024年2月29日に GA された日本語で訓練された Granite-japaneseモデルを使用するため、「ibm/granite-8b-japanese」を入力し「Save」をクリックします。(その他変数はデフォルト値とします) 「Actions」から「Generate Answer」を選択し、「model_input」の値を以下の例の様に日本語に変更します。 例: ("<s>[INST] <<SYS>>\nあなたは親切で、礼儀正しく、誠実なアシスタントです。常に安全を保ちながら、できるだけ役立つように答えてください。答えは簡潔に日本語で回答してください。回答には、有害、非倫理的、人種差別的、性差別的、有毒、危険、または違法なコンテンツを含めてはいけません。回答が社会的に偏見がなく、本質的に前向きであることを確認してください。\n\n質問が意味をなさない場合、または事実に一貫性がない場合は、正しくないことに答えるのではなく、その理由を説明してください。質問の答えがわからない場合は、誤った情報を共有しないでください。\n<</SYS>>\n\n質問に答えることで、次のエージェントの応答を生成します。タイトルが付いたいくつかの文書が提供されます。答えが異なる文書から得られた場合は、あらゆる可能性について言及し、文書のタイトルを使用してトピックまたは領域を区切ってください。与えられた文書に基づいて回答できない場合は、回答がない旨を記載してください。\n\n").concat(passages).concat("\n\n[question]: ").concat(query_text).concat("[/INST]") 以上で設定は完了です。 さっそく Assistant から問い合わせをしてみます。 右下の「Preview」をクリックします。 チャットから S1014 の特徴について問い合わせしてみます。約18秒後に以下の回答が返ってきました。 「Inspect」をクリックすると、Discovery の検索結果が以下の通り watsonx.ai に渡されていることがわかります。 <s>[INST] <<SYS>> あなたは親切で、礼儀正しく、誠実なアシスタントです。常に安全を保ちながら、できるだけ役立つように答えてください。答えは簡潔に日本語で回答してください。回答には、有害、非倫理的、人種差別的、性差別的、有毒、危険、または違法なコンテンツを含めてはいけません。回答が社会的に偏見がなく、本質的に前向きであることを確認してください。 質問が意味をなさない場合、または事実に一貫性がない場合は、正しくないことに答えるのではなく、その理由を説明してください。質問の答えがわからない場合は、誤った情報を共有しないでください。 <</SYS>> 質問に答えることで、次のエージェントの応答を生成します。タイトルが付いたいくつかの文書が提供されます。答えが異なる文書から得られた場合は、あらゆる可能性について言及し、文書のタイトルを使用してトピックまたは領域を区切ってください。与えられた文書に基づいて回答できない場合は、回答がない旨を記載してください。[title]: IBM Power S1014 柔軟かつセキュアなハイブリッドクラウド・インフ ラストラクチャーで俊敏性を実現[document]: 1 コ ア 当 た り 4 つ の M a t r i x Math Acceleratorによる迅速 なAI推論のために洞察と自動 化を合理化 業界標準のDIMMより2倍優 れたメモリーの信頼性と可用 性を提供 IBM® Power® S1014 は、1ソケット、4U Power10プロセッサーをベースにしたサー バーで、IBM AIX®、IBM iまたは Linux®上のビジネス・クリティカルなワークロード 向けに設計されています。Power S1014を使用することで、ワークロードはより 少数のサーバーに統合され、ソフトウェア・ライセンスの数、電力と冷却のコスト を削減します。Power S1014サーバーは、プロセッサー上でのメモリー暗号化を 使用してエンドツーエンドからデータを安全に保護し、ラック型またはタワーフォー ム・ファクターで購入できます。 プロセッサー・レベルでのメモリー暗号化と、POWER9 と比較してすべてのコア で4倍の暗号化エンジンによりコアからクラウドまでのデータを保護 ますます高度に分散した環境に存在するデータには、もはや境界線を設定すること は不可能です。 [question]: S1014の特徴は?[/INST] Assistant と Discovery のみの連携で検索した結果は以下の通りです。watsonx.ai を使用した方がより簡潔で分かりやすい回答を得られることが分かります。 8. 言語モデルを変えて問い合わせの検証 言語モデルを "llama-2-70b" にして同様の問い合わせをしたところ、約24秒後に回答が返ってきました。箇条書きで丁寧な印象です。 言語モデルを "elyza-japanese" にした際は10秒ほどで回答がありました。主語として「S1014の特徴は」とあることで、問いに対する回答が分かりやすくなっています。 言語モデルを変えて試した結果、llama-2-70B は箇条書きで回答し丁寧な印象を受けましたが、回答が得られるまでに24秒かかりました。一方 Granite-japanese や elyza-japanese はシンプルな回答を生成し、Granite-japanese は18秒、elyza-japanese は10秒というより短い時間で回答を得られました。 Watson Discovery の検索結果に基づき watsonx.ai で回答を生成するので、ある程度時間がかかると予想していましたが、elyza-japanese は速い回答で主語を添えてわかりやすく回答してくれました。 また、llama-2-70B は汎用的で使いやすいモデルですが、プロントで「日本語で回答して」と指示をしても問い合わせ内容によっては英語で回答することがありました。日本語の回答精度を求める場合は、Granite-japanese や elyza-japanese を使用した方が精度の高い回答を得ることができます。 モデルを変えて問い合わせてみると、モデルごとに得意なタスクが異なることがわかりました。数百億のパラメータで訓練された大規模言語モデルを一概に選択するのではなく、言語やタスクの特性に合わせて最適なモデルを選定することが重要になりそうですね。 さいごに いかがでしたでしょうか。Github から提供されているスターターキットを使って Assistant、Discovery、watsonx.ai を繋げてみましたが、ほどんど躓くことなく UI から簡単に設定することができました。 接続自体に高度な難しさは感じませんでしたが、問い合わせに対して正確な情報を得るためには Assistant の検索設定を調整する必要があります。今回は1つの PDFファイルの検索を行いましたが、複数の PDFファイルから情報を引き出す際には Assistant で query を設定することで特定の PDFファイルからの検索が可能です。 このように PDF などの非構造化データを検索対象として精度の高い回答を得るには、Discovery において文書の構造を明確に定義し、Assistant の検索設定を調整することが必要です。 実際にヘルプデスクなどの Webチャットで利用する場合は、Assistant にあらかじめ用意した回答をルールベースで回答させ、それでも解決できない問い合わせについては Discovery を通じて検索を行い、watsonx.ai を用いて回答を生成するという流れが効果的です。 ただし、生成AI によって生成される回答は常に”100%正確な回答”ではないので、より高い精度の回答を追求するためにはプロンプトの調整などチューニングを施すことが必要です。その結果、より使いやすい Webチャットの実現が期待できます。 お問い合わせ エヌアイシー・パートナーズ株式会社E-Mail:nicp_support@NIandC.co.jp   .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; } .bigger { font-size: larger; }

2024年01月16日

特集一覧 (ブログ、コラム 他) [2023年度]

コーポレートサイトに掲載している2023年度のブログやコラムの一覧です。 (さらに…)

2024年01月16日

【イベント開催レポート】IBM watsonx.ai ハンズオンセミナー

こんにちは。ソリューション推進部です。 2023年12月12日に、エヌアイシー・パートナーズ株式会社として初めてのハンズオンセミナー『「IBM watsonx.ai 」を利用したRAGのハンズオンセミナー』を開催しました。 今回のハンズオンセミナーは、以下の2つのことを目的として行いました。 パートナー様に製品の紹介とハンズオンを合わせて体験いただくことで、製品をより深く知っていただくこと 製品を活用したビジネスの新たな応用の可能性を見つけ出していただくこと 私たちのチームでは、パートナー様にご紹介・ご説明する製品を「実際に触ってみること」を大切にしています。これは私たち自身の技術力の向上という目的もありますが、パートナー様に私たちのリアルな経験を交えながら製品のご説明をすることが、お客様の具体的な課題発掘や案件創出に繋がっていると考えているためです。 今回のハンズオンを通して、パートナー様ご自身が製品の価値を体感しご理解いただくことで、新しいビジネス展開のイメージを創出するお役に立ちたいと考えました。 それでは、今回実施したセミナーの内容について簡単にご紹介いたします。 目次 レポート watsonx.ai紹介講義 ハンズオン実施 IBMさまによる最新情報紹介・講義 さいごに お問い合わせ レポート 1. watsonx.ai紹介講義 ハンズオンを実施する前に、watsonx.ai と RAG についての講義を行いました。 国内では生成AIビジネスが加速し、競争力やセキュリティなどの課題が増えています。これらの課題を解決する製品として、IBM watsonx をご紹介しました。 watsonx は「watsonx.ai」「watsonx.governance」「watsonx.data」という3つの製品から成り立っています。watsonx.ai は、基盤モデルをベースとした AI開発スタジオです。 ここでは、IBM が信頼できるデータを用いて事前に学習した基盤モデルや Hugging Face, Inc.* と連携したオープンソースの基盤モデルが利用可能で、ビジネスの状況や要件に応じて最適な基盤モデルを選択することが可能です。 また、RAG についての概念や利点、活用が期待されるシーンもご説明しました。RAG を用いた具体的なユースケースとしては、IBM Watson Speech to Text や Watson Discovery、watsonx.ai を活用したコールセンター業務の事例や、watsonx Assistant や Watson Discovery、watsonx.ai を活用した ECサイトの問い合わせの事例を取り上げました。 時間の制約からこれら2つの事例しかご紹介できませんでしたが、今後、watsonx.ai を活用した多様な事例を私たち自身も理解し、パートナーさまと共に議論を深めていきたいと思います。 *Hugging Face, Inc.:機械学習 アプリケーションを作成するためのツールを開発しているアメリカの企業。 2. ハンズオン実施 ハンズオンでは、受講者の方々に「RAG」を活用した watsonx.ai の Foundation Model(LLM)への問い合わせを体験していただきました。 RAG とは「Retrieval-Augmented Generation」の略で、LLM への問い合わせをする際に、事前に用意したベクターストアへデータ(今回はPDF)を取り込んでおき、問い合わせプロンプトをもとにベクターストアを検索し、その結果を付与して LLM へ問い合わせを行う、というテクノロジーです。 RAG を使うことで、一般公開されていない社内情報を活用して LLM を利用することが可能となるため、自社での利用やお客様の課題を解決するための方法として有効であると考えています。 ハンズオンの環境につきましては、準備に時間をかけずスムーズに始められるよう、事前に弊社にて PC や RAG を利用するための Jupyter Notebook を用意いたしました。 また、watsonx.ai では複数の Foundation Model を利用できるため、複数のモデルを使って挙動の違いを確認してみたり、取り込む PDFファイルを追加することで回答がどう変わるのか、など、ご自身で自由に検証をする時間を多く設けました。皆さまそれぞれに前提スキルは異なっていたかもしれませんが、「体験の時間が足りない…」ということはなかったかと思います。 今回ベクターストアへ取り込むのは PDF のみとしましたが、テキストファイルや PowerPoint なども取り込むことができるので、応用できる使い方が非常に広いということを理解いただけたのではないかと感じています。 3. IBMさまによる最新情報紹介・講義 日本アイ・ビー・エム データ・AI・オートメーション事業部 四元さまに「watsonx」に関して、最新事例と製品アップデート情報の2本立てで講義をしていただきました。 事例においては、IBM社内の watsonx活用事例(AskIT)は特筆すべきと言えるでしょう。 AskIT は、IBMの自然言語処理(NLP)能力を活かし、30万件を超えるサポートチケットから抽出された知見をもとに、重要なサポートトピックに迅速に対処する AIアシスタントとして開発されたそうです。このツールは4ヶ月で133,000人の IBM社員に利用され、問い合わせの75%以上が AI によるチャットで解決されるなど、非常に大きな成果を上げています。 製品アップデート情報のメインは、12月に発表された「watsonx.governance」でした。 AI を組織として採用するためには倫理感のある意思決定が必須であり、watsonx.governance は AIガバナンスとして以下の3つの機能を提供する製品である、というご説明をいただきました。 AIライフサイクルを通してAIモデルの実態を把握するための「モデル・インベントリ」 AIの性能や課題の管理などを行う「評価・モニタリング」 総合監視画面を提供しリスクを可視化する「モデル・リスクガバナンス」 モデル・インベントリでは、他社の AI商品である「Amazon SageMaker」「Azure Machine Learning」などの AIモデルも合わせて管理・監視できることが非常に興味深いです。 watsonx は、AIワークフローを一貫してサポートすることで倫理的かつ透明性の高い AI利用を可能にしています。これらの技術革新は私たちが直面している数多くの課題に対する解決策を見出し、先進的なビジネス環境を促進していく上での重要なステップと言えるでしょう。 日本アイ・ビー・エム株式会社 データ・AI・オートメーション事業部 四元 さま さいごに セミナー後には、参加いただいたパートナーさまとご支援いただいた IBMさまとの懇親会を開催いたしました。 当懇親会を通してパートナー様の生成AI に対する取り組みや課題を直に伺うことができ、大変有意義な場となりました。 2023年12月18日に弊社は10周年を迎えました。10年間で培った経験を糧にし、今後さらに新しい取り組みにチャレンジしていきたいと考えております。 本年も、ブログを通してパートナーの皆さまへ様々な情報をお届けさせていただきます!今後ともどうぞよろしくお願いいたします。 懇親会会場 お問い合わせ エヌアイシー・パートナーズ株式会社E-Mail:nicp_support@NIandC.co.jp   .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; } .bigger { font-size: larger; }

2023年12月27日

【イベント参加レポート】「Lenovo Tech World 2023」に参加してきた

レノボグループ最大の年次イベント「Lenovo Tech World Japan 2023」が2023年12月5日に東京で開催され、足を運んできました。 今年は「AI for ALL インテリジェントな変革に向けて」をメインテーマに、AI活用によるインテリジェントな変革を企業や個人に届けるためのレノボの取り組みが、多数のセッションや展示を通じて紹介されていました。 レノボグループは PC事業/サーバー事業ともに IBM より引き継いでおりいずれも現在は世界の市場において確固たる地位を占めていますが、ハードウェア製品が中心というイメージがあるレノボにおいて AIビジネスへの対応としてどのような取り組みを行っているか、という点に興味がありました。 いくつかのセッションに参加してみて、レノボの AI分野における取組みとしては大きく以下の2分野が中心かな、と感じました。 レノボ = ハードウェア製品のリーダー:利用者が便利にAIを活用するための(裏方としての)ITインフラの継続的な革新を実施 ターンキーソリューションの推進:ISVパートナーエコシステム「Lenovo AI Innovators」を通じて、利用者のAI活用を支援 レノボとしてはこうした AI領域のビジネスに対し10億米ドルの投資を計画しており、単なるハードウェア・ベンダーとしての位置づけを超え AIビジネスに対する取り組みへの「本気度合」が伝わりました。 当レポートでは、参加したいくつかのセッションについてご紹介します。 レポート目次 生成AIとレノボインフラストラクチャー・ソリューション レノボとエヌビディアが目指すスマートで高速化した未来、デジタルツイン カーボンニュートラルからカーボンネガティブへ 未来を創造するレノボのOPEN AIソリューション レポート 生成AIとレノボインフラストラクチャー・ソリューション まず、レノボの AI関連インフラストラクチャー投資戦略の紹介では "3年で10億米ドル" という非常に大きな規模の投資が計画されており、レノボの AI に対する注力度の高さを感じました。 また、レノボと ISV が組んだ AI対応の取り組みである AI Innovatorsプログラムは、すでに世界で150以上のソリューションが提供されているとのことです。お客様や ISV への検証環境やノウハウを支援する当プログラムは、お客様の AI活用の促進に有効であると感じました。 さらに、AI を利用して手話をリアルタイムで文字に変換するというソリューションも紹介されており、聴覚の弱い方でもコミュニケーションの幅が広げられる有効なソリューションであることを感じると同時に、AI活用領域の幅広さを改めて実感しました。 興味深かったのが、レノボと NVIDIA のハイブリッドAIソリューションの発表です。データセンター向けの新GPU の生成AI の提案として、L40S が紹介されていました。その AI処理性能の高さは、各企業が AI をより効率的に活用するための大きな武器となると確信できる内容でした。 「NVIDIA = GPU」というイメージでしたが、製品開発投資の60%以上がソフトウェア製品に向いているというのが意外でした。OSSベースが多い AIソリューションをお客様が安心して使えるようにするためのソフトウェア・スタックの開発が中心で、OSS のままではなく認定・サポートすることでのリスク低減を行っていくとのことです。 ストレージについても新しい発表がありました。Weka という NVMe に最適化されたストレージや ddnアプライアンスの OEM取り扱いに関する情報は、AIインフラに必要となるストレージとして注目したい内容でした。 ハードウェアメーカーの印象が強かったレノボグループですが、ハードウェアの枠を超えお客様の AI活用に向けてさまざまな取り組みを実践していることが感じられました。 レノボとエヌビディアが目指すスマートで高速化した未来、デジタルツイン このセッションでは、レノボとエヌビディアが連携して提供するデジタルツインを実現するためのアプリケーション「OMNIVERSE」について詳しく説明されました。 デジタルツインが実現すれば、物理的な世界の出来事をデジタルで再現・分析することが可能になります。 このテクノロジーの一部として、エヌビディアの仮想工場を作り出すデジタルツインのユースケースが紹介されました。これらの技術は自動車や建築業界などを始め、多くの分野でデジタル化を後押しする強力なエンジンとなると強く感じました。 レノボの最新ワークステーション「ThinkStation PX」はこの OMNIVERSE を活用して開発されており、こうした最新のテクノロジーが構想段階ではなくすでに実用化の領域に入っていることが実感できます。 また、大規模なデジタルツインを実現するために設計されたコンピューティング・システムである NVIDIA OVXシステムに対応した GPUラック・サーバー「SR675V3」の紹介もありました。 全体的に非常に先進的で興味深い内容でした。デジタルツインの活用はこの先、さらに様々な業界で重要性を増していくでしょう。 今回のセッションで得た知識を生かしてデジタルツインについてより理解を深め、ビジネスに繋げていきたいと思います。 カーボンニュートラルからカーボンネガティブへ 「AIの普及 > GPUの高性能化 > 消費電力抑制との闘い」という流れは、AI の普及に伴い避けては通れない課題です。 業界に先駆けて実施されているレノボの「カーボンオフセットサービス」は、企業単位で地球温暖化に貢献できる具体的なソリューションとして、改めて有効性を感じました。 また、レノボは HPC分野において最も多くのスーパーコンピューターを提供しているベンダーですが、一方で電力あたりの処理能力のベンチマークである「Green500」においても最もクリーンなベンダーであることが実証されています。 既に製品化されている水冷技術「Lenovo Neptune」は排熱の98%以上の削減を実現しており、レノボがこの分野において大きく業界をリードしていることを再認識しました。 未来を創造するレノボのOPEN AIソリューション 今回のセッションタイトルを Chat GPT が作成したということからも、OPEN AI は確実かつ急速に普及していることが分ります。しかしその一方で、約72%の日本企業では業務での Chat GPT の使用を禁止している、という調査結果があるのも現状です。 利便性よりも "情報漏洩" や "誤情報の拡散リスク" を重視するという企業は多いですが、使い方によっては十分に業務利用に耐え、かつ大幅な業務効率の向上が期待できます。 レノボではワークショップ形式でお客様の安全な利用をサポートしていくとのことで、効率性や安全性に悩んでいるお客様に対する支援策として有効性を感じました。   以上が簡単ではありますが、Lenovo Tech World Japan 2023 への参加レポートとなります。最後までお読みいただき、ありがとうございました。 お問い合わせ エヌアイシー・パートナーズ株式会社E-Mail:nicp_support@NIandC.co.jp   .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; } .bigger { font-size: larger; }

2023年11月17日

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

こんにちは。てくさぽBLOGメンバーの高村です。 Part1はご覧いただけましたでしょうか。watsonx.ai にご興味をもっていただければ幸いです。 Part2(本記事)は応用編ということで、watsonx.ai を利用した Retrieval-Augmented Generation(以下 RAG)検証をやってみた感想をご紹介します。 目次 RAGとは? watsonx.aiを使ってRAGを検証してみた さいごに お問い合わせ RAGとは? 生成AIの分野で「RAG」が話題となっていることはご存じでしょうか。RAG とは、言語モデルが学習していない社内情報や最新情報などのデータ(以下 外部データ)から情報を補完し、言語モデルが生成する回答の品質を向上するフレームワークです。 例えば言語モデルのみを利用した QA の場合、図1の様にユーザが質問をすると、生成AI は質問に対して的確に答えることもあれば、学習データに含まれたいい加減な情報を吐き出すこともあります。言語モデルのチューニングにより回答精度を調整することも可能ですが、都度アップデートされる情報をモデルに学習させることは労力が必要です。 図1. 言語モデルのみを利用した場合の情報検索 そこで考えられたのが、RAG というフレームワークです。 図2のように、外部データをデータベースに保存しその検索結果に基づいて言語モデルに回答を生成させることで、より正確な情報を得ることが可能です。 図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処理の流れは以下の通りです。 LangCain経由で質問 LangChainからベクターストアへ情報検索 検索結果をLangChainへ渡す 検索結果をwatsonx.aiの言語モデルへ渡す watsonx.aiが回答を生成し、回答 それではさっそく RAG を作って検証してみましょう。 watsonx.aiプロビジョニング、プロジェクト作成 事前に watsonx.aiプロビジョニング、プロジェクト作成が必要です。※作成方法は part1 をご参照ください APIキー、プロジェクトIDの取得 watsonx.ai の言語モデルに接続するためには、APIキーとプロジェクトID の取得が必要です。 APIキーの取得は IBM Cloud画面「管理」⇒「アクセス(IAM)」をクリックし、「APIキー」をクリックします。 「作成+」をクリックし、任意の名前と説明を入力しキーを作成します。 APIキーが作成されたので、コピーして手元にメモしておきます。 次に、watsonx.ai のプロジェクトIDを取得します。 watsonx.ai のプロジェクトをクリックします。 「管理」タブから「一般」をクリックするとプロジェクトID が表示されるので、コピーして手元にメモします。 PythonSDKの実行環境準備 以下の URL から Anaconda のイメージをダウンロードし、作業端末にインストールし、インストールが完了したら Jupyter Notebook を起動します。「https://www.anaconda.com/download」 事前に作成したスクリプトをクリックして開きます。 認証設定、モジュールのインポート はじめに、必要な Pythonライブラリをインストールします。 「Run」ボタンをクリックすると、セル内のプログラムが実行されます。 セルの左箇所が [*] から [1] になると完了です。特にエラーが出力されていないことを確認します。 認証情報をセットします。 先ほど取得した APIキーとプロジェクトID、エンドポイントの URL を指定します。今回はダラスの Watson Machine learning を使用しているので、ダラスのエンドポイントを指定します。※エンドポイントの URL は「IBM Cloud API Docs」から確認できます LangChain で使う Watson Machine learning のモジュールを複数インポートします。 一旦 LangChain 無しで watsonx.ai の言語モデルに質問をしてみたいと思います。 まず、使用する言語モデルのパラメータを設定します。以下に各パラメータの説明を記載します。 パラメータ名 値の範囲例 内容 MAX_NEW_TOKENS 1~1000の整数値 一度に生成されるトークンの最大数を制御する。 TEMPERATURE 0.00~2.00 生成されるテキストの創造性を制御する。値が低いと予測可能なテキスト、値が高いと創造的なテキストを生成する。 TOP_K 1~100の整数値 各ステップで考慮されるトークンの数を制御する。 モデルは、トークンの確率分布から上位K個のトークンのみを考慮し、残りは無視する。 TOP_P 0.01~1.00 累積確率の閾値を設定する。モデルは累積確率がこの閾値を超えるまでのトークンのみを考慮しま 質問する言語モデルをセットします。 質問をしてみたところ、正常に回答が返ってきました。 LangChainの作成 それでは、LangChain を作成していきます。 LangChain に必要なモジュールをインポートします。 pdfsフォルダにある PDF を読み込み、ベクターストアへ取り込みます。ベクターストアへ取り込むみする際は LangChain で提供される intfloat/multilingual-e5-largeモデルを使用します。 言語モデルは Llama2 を使用します。先程と同様にモデルの設定とパラメータを定義します。Llama2 は回答指示を渡すことが推奨されているため以下の様に指示文を追加します。 RAGを使って質問する PDF の内容を質問したところ、PDF から該当箇所を検索し回答が生成されました。 ChatUI を起動して質問します。また、PDF のどの箇所を参考にしたか出力するよう指示します。(補足:ChatUIはPythonライブラリのGradioを使用) ChatUI で質問してみました。実用化したときのイメージが湧きますね。 PDF のどの箇所を検索したのか、参考箇所も出力されています。 以上が、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   .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; } .bigger { font-size: larger; }

2023年11月14日

【イベント参加レポート】「IBM TechXchange」に参加してきた

日本アイ・ビー・エム株式会社 代表取締役社長執行役員 山口 明夫 氏 こんにちは。ソリューション推進部の村上です。 2023年10月31日と11月1日の2日間、久しぶりにオンサイト(ベルサール東京日本橋)で IBM の Bigなテクノロジーイベント「IBM TechXchange Conference Japan」が開催されました。セッション数は100を超え、IBM製品のテクノロジーに関する最新情報がふんだんに盛り込まれていました。 見所としては、デモの数々が挙げられます。参加者は最新の IBMテクノロジーを直接目の当たりにし、その操作感や性能をチェックすることができました。またハンズオンの場も提供され、テクノロジーに触れながら学べる環境も整っていました。 TechXchange はただ情報を吸収する場というだけではなくコミュニティ形成も大切にされていることから、IBM技術者との交流の場も用意されており、気鋭の技術者から新たな知識や視点を得ることができる貴重な機会となりました。 今回エヌアイシー・パートナーズからは10名程度の社員が本イベントに参加しました。以下に、参加者から寄せられたコメントをブランド別にピックアップしご紹介いたします。ぜひご覧ください。 目次 ブランド・カテゴリ別レポート Business Automation Data Management & watsonx.data Power AIOps Apptio Storage Cloud Mainframe Security まとめ お問い合わせ ブランド・カテゴリ別レポート Business Automation 「第一生命におけるIBM BAWとODMの導入上の設計課題と対策」セッションに参加しました。第一生命様の情報システム子会社である第一生命情報システムの方が登壇されていました。 保険業務について全く詳しくないのですが、保険の種類の多さやその支払い条件に関わるルールが15,000以上もあるということにまず驚きました。 重要な処理はメインフレームを使っているので、ODM のシステム構成としてもパフォーマンスと運用性を考慮して選択したということが説明されていました。確かにメインフレームの中だけで完結する処理のルールエンジンを外部で実行したらパフォーマンスに影響することは容易に想像できます。それを実験しながらパフォーマンスを担保できるような構成にした、ということが勉強になりました。 また、ルールエンジンである ODM の導入期間が1年程度だったのに対し、ワークフローエンジンである BAW の導入期間が3年にも及んだと説明されていました。 効果として、いずれも開発期間や情報が届くまでの期間の短縮が挙げられています。新しい施策を素早く実施するためには現場で使えるようになるまでの期間を短縮することが必要なので、ユーザー視点でもメリットがある導入だったと理解を深めることができました。 Data Management & watsonx.data IBM Watson の最新情報に関するセッションに参加しました。 その中で印象に残ったのは、watsonx Assistant と Watson Discovery を組み合わせたコールセンターシステムの導入事例でした。 紹介されていた事例では、コールセンターの業務負担の増加や新人研修の増加に対応するため、2020年1月から watsonx Assistant と Watson Discovery を組み込んだ AIシステムの運用を開始したそうです。その結果、オペレーターの対応時間が短縮し管理者の業務負担が軽減され、さらに品質も向上したとのことで、AI の導入効果を強く実感できました。 特に印象的だったのは、ユーザーとオペレーターの会話をリアルタイムにテキスト化し警戒すべきワードを抽出する機能や、自動生成する評価シートで管理職の負担を軽減している点です。通話テキストを抽出し翌営業日にフィードバックを得ることで業務改善を図っているところも、現場レベルでの AI活用の秀逸な事例だと感じました。 今後は生成AI の導入を検討しているとのことで、watsonx.ai と組み合わせたシステムのさらなる可能性を感じることができました。 Power 「オンプレ環境でas a Serviceを実現するには」セッションに参加しました。 IBM Powerシステムはオンプレミス環境に「as a Service」を提供することで、使った分だけのコストでクラウドの利便性を享受しセキュリティを強化させることを可能にしています。これはオンデマンド容量の提供により予測不可能なビジネス環境下でも迅速な対応を可能にし、コスト削減と効率的なリソース管理を実現します。また、デモシミュレーションを通じて投資効果を具体的に示し、ハイブリッドクラウドのトレンドに対応します。 新しいコンセプト「Power Private Cloud with Shared Utility Capacity」は、プライベートクラウド内で使った分だけ支払うというクラウドのメリットを実現。これにより、企業は必要な時に必要なリソースを使用し、余剰コストを削減できます。さらに、簡易見積ツールやアセスメントサービスを提供し、運用の最適化をサポートします。 このように、Powerシステムはまだパブリッククラウドには抵抗があるユーザーにもオンプレでクラウドを疑似体験しやすい環境であることを、改めて実感できました。 AIOps 「Turbonomic×クラウドコスト最適化事例紹介 FinOpsの実践に向けて」セッションに参加しました。 登壇者の山崎さんは別のセミナーでは Instana についてのお話をされていましたが、今回は Turbonomic という ARM(Application Resource Management)製品を FinOps の観点でお話されていました。”FinOps” というまだ馴染みのない単語を事例を交えながら話をしてくれたので、どのようなことを指しているのかが非常にイメージしやすかったです。 セッションの中でもあった「「無駄」なのか「備え」なのか、それが問題だ」という言葉がインフラコストの最適化を難しくしていることを端的に表現しており、私としても判断が難しいところだなぁと考えさせられました。 「最適化」をいざ始めようとしても「どこから着手してよいのか?」が分からず、手探りで闇雲に実施することになります。それを Turbonomic を使って可視化するところから始め、最適化についてもこのツールの支援をもらいながら人間が判断して実施していくことでより無駄を省くことができる、ということが理解できたよいセッションでした。 Apptio Apptio 田中さんと IBM 上野さんが登壇された「Apptio社との統合戦略と製品のご紹介」セッションの参加レポです。 Apptio Inc. は、2023年8月に IBM に戦略的買収がなされた IT投資の最適化ソリューションのリーダー的企業です。11月1日から正式に IBM に加わることになったそうです。 本セッションの前半では TBM(Technology Business Management)の詳しい解説があり、企業が IT支出を管理・最適化し自動化を推進することの必要性を実感することができました。TBM は奥が深い方法論ですが、じっくり読み込むととても面白いです。後半は、ApptioOne が TBM の実現にどのように役立つ製品なのかの解説がありました。ビジネスの中で IT の重要性は増すばかりで、企業は IT の具体的な財務価値や業務改革を実現することに注力してくるはずです。 このセッションを通じて、IBM が Apptio を戦略的に組織に加えることで、企業の IT運用の最適化と業務改革実現に向けた強力な支援体制を築き上げていることが伺えました。 Storage セッション「DXを支えるAI&データ活用に必要不可欠なインフラ基盤とは?」に参加しました。 AI とデータ活用が日常業務に取り入れられるようになり非構造化データも増えていますが、その管理・活用が企業の大きな課題となっています。ただデータが増えていくだけではなくあらゆるところに散在しているため、必要なときにすぐに利用できる状態にすることが求められています。 その解決の鍵を握るのが、データ中心の考え方と、一貫した統一されたデータ・サービス基盤の構築です。なぜこの考え方が重要なのかというと、あらゆる拠点で大量のデータがリアルタイムに発生し、それを高速に柔軟に活用できるインフラが求められるからです。 非構造化データを一元管理する次世代データ基盤が「IBM Global Data Platform(GDP)ソリューション」です。AI、分析、バックアップなど、あらゆるワークロードに柔軟に対応可能です。その中で鍵となるのが「IBM Storage Scale」と「IBM Storage Discover」です。データ配置を最適化し、スモール・スタートでも容易にデータを扱うことができます。 事例としては、車載センサーデータや動画データを一元管理し自動運転体験を実現している企業の例や、ヘルスケア分野で複雑な課題解決に役立てられている病院の例が紹介されました。 このセッションに参加して感じたのは、AI やデータ活用だけでなく、それらを支えるインフラ基盤の重要性です。デジタル時代に向けて進む我々にとって、これからのデータ活用とそのインフラの重要性を再認識できたセッションでした。 Cloud IBM Cloud では「生成系AIの基盤を支えるCloud Native Super Computer「Vela」の実態」のセッションが印象的でした。 「Vela」は、AI に最適化されたクラウドネイティブのスーパーコンピューターとして IBM が開発し、最新の GPU と Openshift AI が構成要素となります。話題の製品「watsonx」もこの Vela を活用して開発されているそうです。画像認識AI の Maximo Visual Inspection が IBM Cloud上の GPU で稼働できることは知っていましたが、AI のモデル開発にも利用できることを興味深く思いました。 AIモデルの開発には巨大な計算能力を持つ最新の GPU が必要不可欠ですが、一方で GPU は消費電力を膨大に使用してしまいます。IBM Cloud上で稼働する Vela は GPU を利用しつつも、IBM Cloud が掲げている通り環境への負荷を軽減できているそうです。 本セッションを通して、クラウドネイティブなスーパーコンピューティングの時代が確実に到来していることを実感しました。引き続き Vela の動きに注目していきたいと思います。 Mainframe 「メインフレーム技術者が元気になる!テクノロジー・アーキテクチャーとは何か」の参加レポートになります。 このセッションは、メインフレームの特長とそのアーキテクチャーについての理解を深めることを目的としています。 メインフレームの特長として、堅牢性、高スループット、高セキュリティ、オープン技術の取り込み、地球環境に優しい省エネと仮想化技術が挙げられています。また、新たな特長として API対応とデータ連携ハブが追加されており、トランザクション処理やデータベース処理などのニーズに応える能力があります。 特に強調されているのは、2023年5月から z16全モデルに適用された「zIIP入れ放題」で、汎用CP(GCP)と zIIP の個数制限1:2を撤廃し、Java、Python、RESTful APIアクセス、DRDA など、様々なワークロードを汎用CP からオフロードすることが可能で、zIIP分のソフトウェア料金はかかりません。これによりメインフレームを利用するコストを大幅に削減し、メインフレームの利活用を進めることができます。 全体を通して、メインフレームはこれからも多くのトランザクションを取り込もうという意志を感じました。 Security 多くのセキュリティ製品がセミナーで紹介されていました。 QRadar では、まず SOAR が紹介されました。SIEM に集まる場合、そのパフォーマンスとキャパシティに影響があるため、一台の SIEM に集約せずとも各センサーから SOAR に集約して処理するという考え方です。インテリジェントになっている EDR などは、確かに SOAR で処理させるのは良いと思います。 QRadar ではさらに UAS(Unified Analyst Experience)についても紹介されました。各拠点に散らばった SIEM を横串で見る場合や SIEM のリアルタイム検知が不要な場合、複数の SIEM やログサーバを横串で見る場合には、UAX でも可能という方式です。 Trusteer では、サイバーアタックにおける三大侵入経路「脆弱点」「ウィルス」「なりすましログイン(不正ログイン)」と、その対策について紹介されていました。「システムへ直接攻撃」「システムに関与する社員への間接攻撃」「サービス利用者になりすます」という課題があり、「サービス利用者になりすます」を防げるのが Trusteer だというわかりやすい説明がありました。外部サービスを公開されている企業様には有効なソリューションだと思います。 IBM では、x-forceサービスをはじめ多くの知見を元に IBM Security製品が提供されていますので、ぜひご利用ください。 まとめ 以上のように、今回の TechXchange はテクノロジーコミュニティとの交流の場として、また、最新の IBM製品やテクノロジーについての学習の場として、大いに活用することができました。 次回の開催が待ち遠しいですね。 ※本ブログは参加者の主観や体験内容が中心であり、記載されている情報は正確性に欠ける場合があります。記載したブランドの紹介をご希望の方は、以下の問い合わせ先までご連絡ください。 お問い合わせ エヌアイシー・パートナーズ株式会社技術支援本部E-Mail:nicp_support@NIandC.co.jp   .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; } .bigger { font-size: larger; }

2023年10月27日

【てくさぽBLOG】Windows Server 2012/R2のEnd Of Support(EOS)による対応方法

こんにちは。てくさぽBLOGメンバーの宮里です。 既に Windows Server 2012/R2 は End Of Support(以下 EOS)となっていますが、その後もそのまま使い続ける方も多いと思います。EOS のまま使い続けた場合にはセキュリティ面・障害対応の観点でリスクがあるので、何らかの対策が必要です。 Windows Server 2012/R2 を使い続けられる方は、ぜひ本ブログを参考にしてリスク軽減のためのセキュリティ対策をご検討ください。 目次 Windows Server 2012 / R2のEOSの概要 EOS後のリスク 対応方法 まとめ 関連情報 お問い合わせ Windows Server 2012 / R2のEOS概要 EOS(End Of Support)とは、ソフトウェアやハードウェアのメーカーがその製品のサポートを終了することを意味します。 Windows Server 2012/R2 のサポートが終了した場合、具体的にどのようなサポートが得られなくなるのかご存知でしょうか。 まず Microsoft のサポート内容からご説明いたします。 Microsoftのサポート内容 Microsoft のサポートは、メインストリームと延長サポートの2段階に分かれています。 メインストリームサポート セキュリティ更新プログラムに加え、新機能の追加や仕様変更などのサポートも提供されます。(Windows Server発売後5年間) インシデント サポート(無償/有償インシデント サポート、1時間ごとに課金されるサポート、保証請求のサポート) セキュリティ更新プログラムのサポート セキュリティ以外の更新プログラム要求 延長サポート セキュリティ更新プログラムのみが提供されます。(メインストリームサポート終了から5年間) 有償サポート セキュリティ更新プログラム(追加料金不要) セキュリティ以外の更新プログラム要求 つまり、メインストリームサポートではセキュリティ更新プログラムに加え、Windows Server の最新機能を活用することができます。一方延長サポートではセキュリティ更新プログラムのみが提供されるため、既存機能のアップデートや新機能の追加はされません。 なお、Windows Server 2012/R2 は以下の通り2023年10月10日で既に EOS を迎えています。 参照:Microsoft ライフサイクル ポリシー EOS後のリスクと対策 EOS になった製品を使い続けると、脆弱性を利用したサイバー攻撃によって被害を受けるリスクが高まります。 ランサムウェア攻撃による被害事例がありますので、以下にご紹介します。 *  *  *  *  *  * とある会社で、ランサムウェア攻撃により基幹系の会計システムなどの複数のシステムやパソコンに被害が生じました。同社グループ会社のネットワークから侵入されランサムウェア攻撃を実行されたことで、パソコン上のデータや Windowsサーバーのデータが暗号化され、脅迫文も残されていました。 この攻撃により、復旧に2か月かかっただけでなく個人情報の漏洩も発生しており、顧客や従業員に関する氏名や生年月日、電話番号、メールアドレスなど、約186万件の個人情報の流出が懸念されています。 *  *  *  *  *  * 上記の事例からも分かる通り、ランサムウェア攻撃の被害を受けるとビジネス機会が損失するばかりか、システムやデータの復旧に莫大な費用・時間がかかり、さらに、大量の個人情報漏洩の可能性は企業イメージを著しく低下させてしまいます。 セキュリティインシデントを防ぐためにはデジタル環境を安全に保つための防御策を立て、常に注意を払うことが必要です。 また、Windows 2012/R2 の EOS が及ぼす影響の範囲として、Windows上で稼働するソフトウェアにも注意が必要です。 EOS を迎えると、周辺機器やソフトウェアとの互換性も保証されなくなります。そのため、周辺機器やソフトウェアのアップデートにより製品が利用できなくなる可能性があります。 これらのリスクを回避するために、EOS への対策を講じることはとても重要です。以下に2つの具体的な対策をご紹介します。 EOSリスク回避のための2つの対策 1. 新バージョンまたは新製品への移行を検討する 早めに新バージョンまたは新製品への移行を検討しましょう。新製品への移行にはコストがかかりますが、リスク回避のためには必要な投資と言えます。 2. セキュリティ対策を強化する EOS となったバージョンを使い続ける場合は、残り続ける脆弱性のリスクを軽減するために、IPS/IDS/UTM の強化など自社の環境に合わせたセキュリティ対策を講じましょう。 EOS は ITインフラの担当者にとって避けて通れない課題です。リスクを理解し早めに対策を講じることで、安全かつ円滑な移行を実現しましょう。 対応方法 ここまでは、EOS後のリスクとリスク軽減のための対策について解説してきました。次に、具体的な対応方法について確認していきます。 Azure Stack HCIへ移行 バージョンアップが出来ないという場合も多いかと思います。その場合は、Azure Stack HCI への移行を検討しましょう。 Azure Stack HCI* では、Windows Server 2012/R2 の拡張セキュリティ更新プログラムを2026年10月まで受けることが可能です。バージョンアップの対応が無理なので、あればこの期間を利用して段階的に移行を進めるのが良いでしょう。 Azure Stack HCIとは:Microsoft が提供しているハイブリッドクラウドインフラストラクチャサービスの一つです。HCI とはハイパーコンバージドインフラストラクチャの略で、コンピューティング、ストレージ、ネットワーク機能を一つに統合したソリューションを指します。3層構造の仮想環境をx86サーバー+ソフトウェアにシンプルに統合管理することができます。 Azure Stack HCI への移行は、デジタルトランスフォーメーション戦略に一石を投じることになります。これにより、企業は効率性の向上、柔軟性、さらなる拡張性を享受する機会を得ることができます。また、サーバー管理であるパッチ管理やバックアップなどの一部タスクの自動化が可能なため、不必要な管理タスクから解放されます。 Azure Stack HCIアプライアンス&認定ノードとしておすすめする製品が、「Lenovo ThinkAgile MX」です。 Lenovo のサーバーは最もセキュリティに優れた x86サーバーの評価を獲得しています。ITICグローバルサーバーハードウェアセキュリティレポートによると、Lenovo ThinkSystemサーバーは、4年連続ですべてのx86サーバーディストリビューションの中で最高のセキュリティスコアを達成したとして評価され、また2022年には、ハッキング攻撃によるダウンタイムを経験した Lenovo ThinkSystemサーバーはわずか4%と報告されています。 Azure Stack HCI は、小規模な環境やミディアムエンタープライズをご利用のお客様全てに推奨できますが、Microsoft製品を中心に扱われているお客様や Windows Server をお使いのお客様、これからクラウド利用を進めたいとお考えのお客様には特に親和性が高い製品です。最小1ノードから構成でき、他の HCI製品に比べ一番低い価格帯から幅広くご提供が可能です。 ロックダウンまたは仮想パッチで対応 「環境を変更できないが、その上で稼働するアプリケーションの互換性が問題で Windows 2012/R2 を使い続ける必要がある」というお客様は非常に多いと思います。その場合は、ロックダウンまたは仮想パッチでリスクを減らすことができます。 ロックダウンと仮想パッチの違いについては、以下の図の通り対応方法や対応箇所が変わってきますので、今使っている環境にあった方法をご選択ください。 ロックダウンと仮想パッチについて、以下でさらなる詳細をご説明します。 ロックダウン ロックダウン方式とは、ユーザーが承認したアプリケーションのみが動作する状況を作り出す方式です。 事前に許可された挙動や機能以外の全ての動き(例えばマルウェアや不正行為)を阻止することができます。これにより、産業用アプリケーションに対してファイルやレジストリの変更をブロックし、正規アプリケーションに見せかける DLLインジェクション等を防ぐといった、未知の脅威やゼロデイ攻撃の予防が可能です。 また、サポート終了OSもサポートし、かつパターン更新等の手間がかからないため、セキュリティ運用の負担軽減も可能です。 ロックダウンを実現するための製品としてお勧めなのが、「TXOne StellarProtect」です。 TXOne StellarProtect には以下の機能が備わっており、Windows 2012/R2環境であっても USB経由でのマルウェア侵入やランサムウェアへの対策を実現できます。 産業用PCに適したウイルス対策 産業用アプリケーションの保護 USBデバイス制御 ファイルレス攻撃対策 レガシーOS対応 仮想パッチ 脆弱性を狙う攻撃コードをネットワークレベルでブロックし仮想的にパッチが当たっている状態にすることだけでなく、脆弱性が悪用される前に迅速にシステムを保護し、実質的に脆弱性を悪用した攻撃を無効化する Intrusion Prevention System/Intrusion Detection System(IPS/IDS)の技術が利用されています。 システムに影響を与えず、サポート終了OSの利用が可能なこともメリットの1つです。 仮想パッチを実現するための製品が、「Cloud One Workload Security」です。以下の機能によって Windows 2012/R2 などの EOS後の OS を保護します。 ホストベースの仮想パッチ機能により脆弱性攻撃をブロック サーバーセキュリティに必要な機能を1つの保護モジュールに実装 管理サーバーの構築・運用が不要 まとめ EOS後のサーバー更改は企業にとって重要な課題です。EOS を迎えたサーバーをサイバー攻撃から守るため、Azure Stack HCI へ移行し延命させる、あるいは OS を守るためのセキュリティを行うなどの対策を進めましょう。 強固なセキュリティ対策は IT環境の持続的な安全性を確保するために不可欠であり、TXOne StellarProtect によるロックダウンや Cloud One Workload Security による仮想パッチを活用することで、Windows Server 2012/R2 であってもより高度なセキュリティ環境を構築することが可能です。 EOS後のサーバー更新、そしてそのセキュリティ対策については、細心の注意を払い最適な対策を行いましょう。 この記事が参考となれば幸いです。また、おすすめとして紹介した Azure Stack HCI を導入して検証したブログもございますので、是非そちらもご覧ください。 関連情報 第一回:【やってみた】Azure Stack HCIを導入してみた:Azure Stack HCI構築編(ブログ) 第二回:【やってみた】Azure Stack HCIを導入してみた:管理機能編(ブログ) 第三回:【やってみた】Azure Stack HCIを導入してみた:Azureと連携編(ブログ) IBM Security Verify(製品情報) お問い合わせ この記事に関するご質問は下記までご連絡ください。 エヌアイシー・パートナーズ株式会社技術支援本部E-Mail:nicp_support@NIandC.co.jp   .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; } .bigger { font-size: larger; }

2023年10月18日

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

こんにちは。てくさぽBLOGメンバーの高村です。 IBM の定例イベント「Think 2023」で発表された IBM watsonx はご存じでしょうか? AI開発の最前線を走り続けている IBM Watson は、2023年7月に企業向けAI及びデータ・プラットフォーム IBM watsonx(以下 watsonx)のサービス提供を開始しました。なお、watsonx の概要は製品紹介ページで紹介していますので、是非ご覧ください。 今回は watsonx製品の一つ、生成AI開発プラットフォームを担う「IBM watsonx.ai」(以下 watsonx.ai)を使用し、その感想を二部構成でご紹介したいと思います。 Part1(本記事)では、watsonx.ai のご紹介とサービスのプロビジョニング、UI画面にてプロンプトを使ってみた感想を、Part2では、watsonx.ai を利用した Retrieval-Augmented Generation(RAG)検証をご紹介します。 乞うご期待ください。 目次 ビジネスにおける生成AIの活用 watsonx.aiとは? プロンプト・ラボを使ってみる さいごに お問い合わせ ビジネスにおける生成AIの活用 2022年の ChatGPT公開を機に生成AI は脅威的なスピードで生活に普及されています。企業も生成AI をビジネスに取り入れる動きが加速しており、例えば、OpenAI社は企業向けに ChatGPT Enterprise、Microsoft社は Azure上で Azure OpenAI Service を提供しています。 このように企業向け生成AIサービスも次々発表されている状況で、企業はビジネスの目的に合ったサービスを選ぶことが重要になってきています。 それでは、生成AI を採用する際にどのような考慮点があるでしょうか。以下にいくつかご紹介します。 生成AI採用時の考慮点 回答精度の問題:生成AI は状況や文脈を完全に理解しておらず、適切な回答を生成することが困難となる場合があります。そのため、モデルのチューニングや精度の高い回答を出せるように指示を設計する仕組みが必要です。 他社との差別化:今後多くの企業が生成AI を活用したビジネスを展開していくと、他社との差別化がますます重要となります。ベンダー独自の大規模言語モデルを利用することは勿論ですが、AI開発の先駆者であるサード・パーティーが提供するモデルを利用できることなど、複数のモデルから選択できる点もポイントになります。 セキュリティ対策:ビジネスで生成AI を活用する上では機密情報の取り扱いを注意しなければいけません。個人情報を含んだ情報が他のユーザの回答に利用されることが無いよう、セキュリティ対策が求められます。 このように、企業が求める精度の高い AIモデルを実現でき、他社との差別化及び生産性向上を図ることが可能なサービスが watsonx.ai です。 watsonx.aiとは? サービス提供形態 はじめにサービス提供形態をご紹介します。 2023年10月時点、watsonx.ai は IBM Cloud からの SaaS提供のみとなっています。また、watsonx.ai を利用するには従来から提供されている Watson Studio(機械学習モデルを開発するための統合環境)と Watson Machine Learning(機械学習環境)の2つのサービスが必要です。 IBM Cloud のカタログ上では「watsonx.ai」という名前のサービスは無く、Watson Studio をプロビジョニングし Watson Machine Learning を紐づけることで、watsonx.ai が利用できるようになります。 料金は Lite/Essentials/Standard のプランが提供されています。(2023年10月時点)Lite は容量制限のある無料プランです。機能を試したい場合はこのプランをご選択ください。Essennsials、Standard は以下の①②③を合計した料金プラン(月額請求)です。 ①プランの基本料金 ※Essentials の基本料金は$0/月です(2023年10月時点)②基盤モデルの利用料③Watson StudioとWatson Machine Learningの利用料 watsonx.aiの特徴 以下の図の通り、watsonx.ai は基盤モデルの選択から調整、テスト、デプロイまでを一貫して行うことができる AI開発スタジオです。 基盤モデル(Foundation Model) watsonx.ai は基盤モデル(Foundation Model)を利用した AI開発スタジオです。 従来の機械学習による AI開発は用途ごとにモデルを作成していましたが、基盤モデルによる AI開発は大量のデータで事前学習を行い、一つの基盤モデルを作成し、用途別に少量のデータでカスタマイズしモデルを作成します。これにより用途向けのモデルは少量のデータで学習が可能となり、今までのような学習時間やリソースを大幅に削減できます。 IBM独自の基盤モデル、サード・パーティーの基盤モデルを提供 watsonx.ai は IBM独自の基盤モデル、サード・パーティーのモデルを提供しており、用途によって選択することは勿論、最先端な技術をサービスに取り入れることが可能です。 2023年10月現在、IBM独自の基盤モデルは2つ、Hugging Face などのサード・パーティーの基盤モデルは7つ提供されています。詳細は「watsonx.ai で使用可能なサポート対象のファウンデーション・モデル」(IBMサイト)をご確認ください。 プロンプト・ラボ watsonx.ai では抽出や生成、分類などのタスクをプロンプトラボで調整します。 プロンプトラボには最大トークン数などのパラメータを調整する機能やサンプルプロンプトも提供されており、迅速なデプロイが可能です。こちらは後ほど試してみようと思います。 今後基盤モデルのチューニング・スタジオも提供予定です。アップデートが楽しみですね。 プロンプト・ラボを使ってみる watsonx.ai をプロビジョニングし、UI画面からプロンプト・ラボを使用してみましょう。(※前提としてIBM Cloudアカウントが作成されていることとします) IBM Cloud のカタログ画面から「Watson Studio」を検索し、クリックします。 料金プランはライトプラン、ロケーションは「ダラス(us-south)」を選択します。※基盤モデルの推論とプロンプト・ラボはダラスとフランクフルトのリージョンでのみ使用可能 以下の画面が表示されるので「Launch in」をプルダウンしてプラットフォームを「IBM watsonx」にします。 以下の画面が表示されるので閉じます。 以下の画面が表示されるので閉じます。 以下の画面で「新規プロジェクト +」をクリックします。 プロジェクト作成画面で「空のプロジェクトを作成」をクリックします。 新規プロジェクト作成画面で任意の名前を入力し「作成」をクリックします。 プロジェクトが作成されました。 左側メニューから「すべてのプロジェクトの表示」をクリックし、作成したプロジェクトを選択します。 「サービスおよび統合」を選択し「サービスの関連付け +」をクリックします。 「Watson Machine Learning」にチェックを入れサービスを関連付けます。 Watson Machine Learning が関連付けられました。 ホーム画面に戻り「ファウンデーション・モデルを試し、プロンプトを作成する」をクリックします。 サンプル・プロンプトから「Questions about an article」を選択し、命令箇所に命令と対象のArticleを入力します。(今回はサンプル・プロンプトを使用してみます) 「llama-2-70b-chat」は一つ以上の例を指定するとより効果的に機能するため、例の箇所に QuestionとAnswer の例を入力します。(このプロンプトは基盤モデル「llama-2-70b-chat」を指定しています) Question へ「トマトの栽培になぜマルチを使用すべきなのか」と入力し「生成」をクリックします。 Answer の箇所に回答が生成されました。(原文と照らし合わせると、適切な箇所を参考にして生成していることがわかります) なお、「モデルパラメータ」をクリックすると最大トークン数などのパラメータ調整もすることが可能です。 UI画面もわかり易く、サンプルをベースに目的のプロンプトを作成できそうです。他にもコールメモの要約やコード生成などのサンプル・プロンプトがありますが、ここでのご紹介は割愛させていただきます。 基盤モデルは IBM独自の基盤モデルやオープンソースの基盤モデルが選択できますが、どれを選べばよいのか迷うところです。基盤モデルを選択においては「watsonx.ai でのファウンデーション・モデルの選択」(IBMサイト)に考慮点が掲載されていますので、こちらを参考に選択いただければと思います。 さいごに いかがでしたでしょうか。watsonx.ai のご紹介とサービスのプロビジョニング、UI画面にてプロンプトを使ってみた感想をご紹介しました。 watsonx.ai には複数の基盤モデルが用意され、今後基盤モデルのチューニングスタジオもリリース予定されています。目的にあったモデルの選定、検証は考慮が必要ですが、カスタマイズの幅が広く、ビジネスの目的にあったAIモデルを実現できますね。 次回の Part2 では、watsonx.ai を利用した Retrieval-Augmented Generation(RAG)の検証結果をご紹介します。watsonx.ai をビジネスにどのように繋げられるかのヒントになると思いますので、ぜひご覧いただければ幸いです。 お問い合わせ この記事に関するご質問は下記までご連絡ください。 エヌアイシー・パートナーズ株式会社E-Mail:nicp_support@NIandC.co.jp   .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; } .bigger { font-size: larger; }

2023年08月25日

【てくさぽBLOG】IBM Cloud Schematicsを使ってPower Virtual Serverをプロビジョニングしてみた

こんにちは。てくさぽBLOGメンバーの高村です。 今回は IBM Cloud Schematics(以下 Schematics)を利用して IBM Power Virtual Server のプロビジョニングを検証してみました。 IBM Cloud Schematics とは、Infrastructure as a Code(以下 IaC)を提供する IBM Cloud のマネージドサービスです。IaC や Schematics などについてご存じでない方もいらっしゃると思いますので、順番にご紹介します。 目次 IaCとは? Schematicsとは? 検証の概要 Githubの設定 Schematicsワークスペースの設定・プランの実行 さいごに お問い合わせ IaCとは? IaC はインフラストラクチャの設定や管理をコードで行うアプローチです。具体的には、サーバーやネットワークなどのインフラストラクチャをコードで定義し、必要な時に実行し展開・変更することができます。 IaC を利用するメリットとしては以下が挙げられます。 構築・管理の効率化: インフラストラクチャをコードとして管理することで構築・管理を自動化することができます。またコードを再利用することもできるため、複数の環境に対して同じ構成やリソース追加を効率的に構築することができます。 共有の容易化: IaC は通常、ソースコード管理システム(Githubなど)を使用してコードを管理します。これにより、チームメンバーとの共有・変更の管理が容易になります。 人為的ミスの削減: 人為的なミスのリスクが減り、変更の管理やインフラストラクチャの状態の監視も容易になります。 以下はコードが実行される流れを表した図です。作業者がコードを作成し、そのコードを Gitリポジトリなどにアップロードすると構成管理ツールによってコードが実行され、自動的に環境が構築される流れになります。 IaC を実現するためには構成管理ツールを利用します。代表的なツールとしては「Terraform」「Ansible」「chef」などがあります。以下に簡単にご紹介します。 Terraform: インフラストラクチャのコードを記述することで、インフラストラクチャの作成、構成、および変更を自動化します。Terraform は主に IaaS に焦点を当てており、インフラストラクチャの構成及び状態の管理に使用されます。 Ansible: 構成管理、アプリケーションのデプロイ、タスクのオーケストレーションなど、幅広い自動化タスクに使用されるツールです。主に構成管理とアプリケーションのデプロイに使用されます。 Chef: Chefサーバーとクライアントを使用して設定を管理します。主にシステム設定やソフトウェアの導入などの自動化に使用されます。 ツール毎に得意とする分野があり、使用目的や環境に応じて使い分けられています。これからご紹介する Schematics は上記の Terraform や Ansible の機能を統合し、IBM Cloud環境での IaC を実現するマネージドサービスです。 Schematicsとは? Schematics は IBM Cloud のサービスの一つとして提供されるマネージドサービスです。 Schematics自体は無償サービスで、プロビジョニングしたリソースに対し費用が発生します。2023年8月時点で、Schematics自体のリソースは北アメリカやヨーロッパなど一部の地域に作成されます。ただし IBM Cloud のリソースを作成する場合は、Schematics のロケーションに関係なくどこでも作成することができます。 Schematics は大きく分けて3つの機能を利用することができます。 Schematicsワークスペース: Terraform の機能を利用し、IBM Cloud環境へのリソースのプロビジョニングと構成の管理の自動化を行います。 Schematicsアクション: Ansible as a Service機能を利用し、構成の管理及びアプリケーションを IBM Cloud環境にデプロイします。 Schematics Blueprints(2023年8月現在ベータ版): 定義したインフラコードをモジュールとして取り扱い、組み合わせることで大規模環境をデプロイします。 Schematicsワークスペースと Schematicsアクションの使い分けとしては、リソースのプロビジョニングは Schematicsワークスペースを利用し、ソフトウェアのデプロイや設定管理には Schematicsアクションを利用することが推奨されています。 今回の検証では、Schematicsワークスペースを利用した Power Virtual Server のプロビジョニングをご紹介いたします。 検証の概要 Schematicsワークスペースの利用シーンとしては、複数の区画をプロビジョニングしたり、構成変更や別環境へ同一構成をプロビジョニングすることなどが考えられます。 今回の検証では Power Virtual Server を東京リージョンにプロビジョニングし、メモリ容量を変更を行います。また、大阪リージョンにも同じ区画をプロビジョニングしていきます。 なお、事前に Power Virtual Server のワークスペースを東京と大阪に作成しておきます。ワークスペースの作成方法につきましては「【やってみた】IBM Power Virtual ServerのAIX環境とIBM Cloud Object Storageを接続してみた -Part1-」の「2) IBM Power Virtual Serverの作成」をご参照ください。 以下は検証の構成図です。コードは Github のプライベートリポジトリに配置します。外部のソースコード管理ツールを使用したくない場合は IBM Cloud Toolchain の Gitlab を利用することも可能です。 Githubの設定 プライベートリポジトリの作成 Github の使用は初めてなので、アカウントやリポジトリ作成方法は Web で検索しました。以下の画面は Github のトップ画面です。デザインがカッコいいですね。 アカウントを作成し、ダッシュボード画面に入ります。コードは外部公開しない想定のため、プライベートリポジトリを使用します。任意のリポジトリ名を入力、[Private] を選択し [Create a new repository] をクリックします。 プライベートリポジトリが作成できました。作成したリポジトリにコードを配置していきます。 コードの作成 Power Virtual Server をプロビジョニングするためのコードですが、こちらの Github に「サンプルコード」が公開されています。5つのコードファイルがありますが全て使用します。以下各コードファイルの説明です。 README.md:Readmeファイル main.tf   :インフラ定義を記述するファイル provider.tf :対象のクラウドなどの情報を記述するファイル(リージョンなども記述) variable.tf :変数を記述するファイル versions.tf :使用するモジュールとバージョンの組み合わせを記述 プライベートリポジトリの画面に戻り、[Add file] から [Create new file] をクリックします。 ファイル名を入力し、サンプルコードをコピー&ペーストします。最後に [Commit change] をクリックします。 5つのコードファイルを作成しました。 コードの編集 検証では以下構成の Power Virtual Server をプロビジョニングしていきます。 リージョン:東京 インスタンス名:test_AIX OS:AIX V7.3 CPUタイプ:Uncapped Shared CPU:0.25 メモリ:2GB ストレージタイプ:Tier3 外部ディスク名:dg 外部ディスクサイズ:1GB NW名:pvs_test_nw サンプルコードのままでは上記の構成を作成することはできないため、変数ファイル「variable.tf」を編集する必要があります。main.tf、provider.tf は variable.tf の値をみて動きますので特に編集は不要です。versions.tf は変更無し、README.md は適宜編集します。 以下は variable.tf の内容です。各パラメータの説明は割愛いたしますが、ピンク字①~③の値の確認方法は下にご紹介します。 // Service / Account variable "ibm_cloud_api_key" { description = "API Key" type = string default = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }<① variable "region" { description = "Reigon of Service" type = string default = "tok" } variable "zone" { description = "Zone of Service" type = string default = "tok04" } variable "cloud_instance_id" { description = "Cloud Instance ID of Service" type = string default = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }<②// Image variable "image_name" { description = "Name of the image to be used" type = string default = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }<③// Instance variable "instance_name" { description = "Name of the instance" type = string default = "test_AIX" } variable "memory" { description = "Instance memory" type = number default = 2 } variable "processors" { description = "Instance processors" type = number default = 0.25 } variable "proc_type" { description = "Instance ProcType" type = string default = "shared" } variable "storage_type" { description = "The storage type to be used" type = string default = "tier3" } variable "sys_type" { description = "Instance System Type" type = string default = "s922" }// SSH Key variable "ssh_key_name" { description = "Name of the ssh key to be used" type = string default = "ssh_20230719" } variable "ssh_key_rsa" { description = "Public ssh key" type = string default = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }<公開鍵を入力// Network variable "network_name" { description = "Name of the network" type = string default = "pvs_test_nw" } variable "network_type" { description = "Type of a network" type = string default = "pub-vlan" } variable "network_count" { description = "Number of networks to provision" type = number default = 1 }// Volume variable "volume_name" { description = "Name of the volume" type = string default = "dg" } variable "volume_size" { description = "Size of a volume" type = number default = 1 } variable "volume_shareable" { description = "Is a volume shareable" type = bool default = false } variable "volume_type" { description = "Type of a volume" type = string default = "tier3" } ピンク字①~③の値の確認方法は以下です。 ①APIキー APIキーの作成方法は「APIキーの作成方法」(IBMサイト)をご参照ください。作成したAPIキーを控えます。 ②クラウドインスタンスID IBM Cloudリソースリストから Power Virtual Server のワークスペースを選択すると GUID が表示されるので控えます。 ③イメージID IBM Cloud Shell からコマンドを実行してブートイメージのイメージIDを取得します。Cloud Shell は管理コンソール画面の右上のアイコンから入ります。 Cloud Shell で以下コマンドを実行します。 $ ibmcloud pi servicelist  <ワークスペースのcrnが表示されます $ ibmcloud pi service-target crn:XXXXXXXX <表示された対象ワークスペースのcrnを入力します $ ibmcloud pi images <イメージIDが表示されるのでIDを控えます 以下は出力結果画面です。マスキングが多く申し訳ございませんが、ご参考ください。 これでコードの編集が完了しました。サンプルコードが提供されているので、variable.tf の変数を編集すれば目的のコードを作ることができますね。 トークンの取得 Schematics から Github のプライベートリポジトリにアクセスする際にパーソナルアクセストークンが必要となるため、Github からパーソナルアクセストークンを取得します。メニューから [Settings] をクリックします。 左側メニューの [<>Developer settings] をクリックします。 [Tokens(classic)] をクリックします。 [Generate new token(classic)] をクリックします。 [Note] に適宜入力し、[Expiration] を30日に設定し、"Select scopes" では [repo] にチェックを入れます。画面を下にスクロールし、[Generate token] をクリックします。 パーソナルアクセストークンが作成できました。後程Schematicsワークスペースの作成で必要になるためメモ帳などに控えておきます。 リポジトリーのURL取得 プライベートリポジトリのURLを取得します。リポジトリ画面に戻り [<>Code] をクリックし、[HTTPS] を選択して URL を控えておきます。 これで Github の設定は完了しました。 Schematicsワークスペースの設定・プランの実行 Schematicsワークスペースの作成 Schematicsワークスペースから Power Virtual Server をプロビジョニングにしてみましょう。 IBM Cloud のカタログから "Schematics" を選択します。 Schematics のホーム画面に入りました。[ワークスペースの作成+] をクリックします。 ワークスペース作成画面です。[GithubのURL] にはプライベートリポジトリの URL、[パーソナル・アクセス・トークン] には Github で作成したトークンを入力します。[完全リポジトリーの使用] のチェックボックスはデフォルトままにします。[Terraformバージョン] は最新バージョンを指定して [次へ] をクリックします。 [ワークスペース名] に任意の名前を入力し、[ローケーション] を北アメリカ/ロンドン/フランクフルトの中から選択し、[次へ] をクリックします。 設定値が表示されるので確認し、[作成] をクリックします。 約1分程でワークスペースが作成できました。variable.tf の変数が読み込まれ、ワークスペースの変数に表示されています。 [README] を選択すると、README.md が読み込まれていることがわかります。 Power Virtual Serverのプロビジョニング 右上の [プランの生成] をクリックし、コードのチェックを行います。 プランの生成が成功すると、[ジョブ] 画面に以下のように表示されます。 ちなみに失敗時は以下の画面が表示されます。失敗した場合はエラーメッセージから原因を確認します。ここでは記載しませんが、何回かプランの生成に失敗しコードを修正しました。 コードを修正した場合は、[最新をプル] をクリックすると最新の状態にすることができます。 話がそれましたが、プランを適用してプロビジョニングを実行します。[プランの適用] をクリックします。 進行状況は [ジョブ] から確認できます。 適用が進んでいますね。 約15分程でプランの適用が完了しました。 Power Virtual Server のワークスペースを確認すると、指定通りのインスタンスが作成されていました。 構成変更 Schematicsワークスペースにてメモリ容量を2GBから4GBへ変更します。Github のコード編集ではなく、ワークスペースから変数を上書きすることができます。ワークスペースの変数画面から [memory] の編集アイコンをクリックします。 値を [4] にして [保存] をクリックします。なお、デフォルト値に戻したいときは [デフォルトの使用] にチェックを入れて保存します。 メモリの変数がデフォルトは2、オーバーライド値が4になりました。 プランの生成、適用を行い正常に行われたことを確認します。 Power Virtual Server を確認するとサイズ変更が実行されていました。 数分後、メモリが2GBから4GBに変更されたことを確認できました。 大阪リージョンへプロビジョニング 東京リージョンに作成した区画と同じ構成を大阪リージョンに作成します。リソース変更手順と同様にワークスペースの変数を編集します。[region] を選択して [編集] をクリックします。 大阪リージョンの [osa] を入力して [保存] をクリックします。 同様に、zone, cloud_instane_id, image_name の変数を大阪リージョンの値に上書きします。 変数の上書きをした後、プランの生成を行ったところ生成が失敗してしまいました。ログをみると、イメージを Get できない内容のエラーが出力されています。 しかし、変数のオーバーライド値には大阪リージョンの値を入力しています。Github のコードを編集して Schematicsワークスペースを更新してみましたが、同様のエラーで失敗しました。プラン適用時に環境変数が残ってしまっているのかも?と考え、新たに大阪リージョンの用の Schematicsワークスペースを作成し、変数は大阪リージョンの値を登録しました。 プランの生成・適用を行ったところ、無事成功しました。変数の値は間違っていないようです。 大阪のワークスペースを確認すると、指定した構成で作成されていました。Schematicsワークスペースはリージョン毎に分けた方が良いのかもしれません。 以上で検証は完了です。 コード作成の経験がない私でも、Schematicsワークスペースから Power Virtual Server をプロビジョニングすることができました。サンプルコードはカスタマイズや修正を行えば実行できたので、作業の難易度はそこまで高くありませんでした。 さいごに いかがでしたでしょうか。 Schematicsワークスペースを利用して Power Virtual Server のプロビジョニング、構成変更、別環境へ同一構成のプロビジョニングを行いました。コード作成はスキルが必要と思われる方も多いかと思いますが、サンプルコードが提供されているため初心者でも取り掛かりやすいと思います。 検証では1区画のみの作成でしたが、複数区画作成する場合は GUI で作業するよりもコードを定義し Schematicsワークスペースから実行した方が工数・ミスを削減できるのではと感じます。また、ワークスペース上で変数のデフォルト値が保持されているため、デフォルト値に戻したい場合はクリック一つで設定を戻すことができ、デフォルト値がわからなくなるといったミスを防ぐことができます。 別環境へのプロビジョニングでは変数を上書きしてもプランを適用できなかったため、別リージョン専用のワークスペースを作成しました。明らかな原因を突き止めることができなかったのですが、環境ごとに Schematicsワークスペースを分けた方が運用面では管理がしやすいですね。 また今回は検証しませんでしたが、ベータ版の Schematics Blueprints は定義したコードをモジュールとして取り扱い・組み合わせることで大規模環境をデプロイすることができる機能です。例えば本番環境と同一構成を別リージョンに作成したい場合、通常は一つ一つリソースをプロビジョニングし別環境にも同じ作業を行います。コードを定義し Schematics Blueprints を使用すればコードを組み合わせて環境をデプロイできるため、作業工数の削減が期待できます。 システムの構築は設計から始まり、構築、試験の実施、運用手順書の作成など多くの過程があり、長い時間と労力が必要です。昨今 Schematics をはじめとする IaC の実現ツールが徐々に広まりつつありますが、これからは従来の構築作業がコードとツールを利用した作業や運用に移行していくかもしれません。 最新情報 2023年8月23日に Terraform バージョン0.x が2023年9月末で営業活動終了、2024年9月末にサポート終了されることが発表されました。既存でバージョン0.xをご利用されている場合は2024年9月末までにバージョン1.x以上にアップグレードする必要があります。 Schematics に限らず、IBM Cloudサービスの営業活動終了/サポート終了などは定期的に発表されますので、留意してご利用いただくことが重要です。 お問い合わせ この記事に関するご質問は下記までご連絡ください。 エヌアイシー・パートナーズ株式会社E-Mail:nicp_support@NIandC.co.jp   .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; } .bigger { font-size: larger; }

1 2 3 13
back to top