最短で見る!watsonx.aiで作るチャットボットの裏側

2.6K Views

March 28, 25

スライド概要

IBM TechXchange Dojo セミナー「最短で見る!watsonx.aiで作るチャットボットの裏側」用スライド
👇詳細は以下より👇
https://ibm-developer.connpass.com/event/347304/

関連スライド

各ページのテキスト
1.

最短で見る! watsonx.aiで作る チャットボットの裏側 2025年3月28日 AIT公式キャラクター LOWATI 株式会社AIT

2.

免責事項 • 当イベントは日本IBMおよびAITの有志によって企画された勉強会です。 • AIやBIツールなどのテーマを中心に、今後も色々な勉強会・イベントを開催する予定です。 • 本勉強会の内容は、個人の見解であり、所属する企業の公式見解ではありません。 • セッション中はマイクミュートでの参加にご協力お願いします。 • 本発表で利用している製品の名称およびロゴは下記の個人、組織または企業の商標となります。 – IBM、watsonx は、 世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等 は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtml をご覧ください現時点でのIBMの商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。 – Google Colaboratoryは、Google LLCの登録商標または商標です。 – Pythonは、Python Software Foundationの登録商標または商標です。 – LangChainは、LangChain, Inc.の登録商標または商標です。 – Gradioは、Gradio, Inc.の登録商標または商標です。 – その他本⽂記載の会社名及び製品名は、それぞれ各社の商標⼜は登録商標です。 COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 2

3.

会社概要 & 自己紹介 社名 事業内容 株式会社AIT(エーアイティ) - IBM製品を中心にHW・SWの販売 1991年 戦略的合弁会社として設立 125名 従業員数 125名 日本IBM 売上高 161億円(2024年度3月期) 名前 防村 略歴 ~2022年 : 食品メーカー 営業 2023年~ : 株式会社AIT アナリティクス&サービス営業部 1991年 設立 SRA - インフラ構築や技術支援等のサービス - トータルソリューション 「AI365」詳しくは 信太郎(ヨケムラ コチラ! シンタロウ) COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 3

4.

本日のアジェンダ ■セミナーの目的とゴール ‐ やろうと思った動機と目的、 どんなものを作るのか ■watsonx.aiを色々触ってみよう ‐ Prompt Lab、 API ■会話ができるようにしよう ‐ LangChain ■チャットのUIを作ってみよう ‐ Gradio ■まとめと発展に向けて COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 4

5.

01 セミナーの 目的 と ゴール COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 5

6.

なぜAIチャットボットを作ろうと思った? & セミナーの目的 ■ 営業活動で感じている課題 - ユーザー様のAIへの期待値は高く、ヒアリング時は抽象的になりがち… - 一般的な製品紹介やサービス説明では具体的な活用イメージは難しい… ■ 課題による影響 - 営業段階で話が停滞し、具体的な技術提案(SEにつなぐ段階)まで進めない - AI本来の可能性を正しく伝えられず、お客様を落胆させてしまうことも… ■ 根本的な原因 - 営業担当として、私が「AIで何ができるか」を具体的に理解できていない - 結果として、お客様の業務課題に適したAI活用方法を具体的に提案できない まずは身近な「チャットボット」から自分で作り、仕組みをざっくり理解。 ユーザー目線で「AIを業務にどう生かせるか」の解像度を上げることが目的! COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 6

7.

今日はどんなものを作る? ■ 機能&テーマ ‐ マルチターンの会話ができる ‐ ビジネスマナーを教えてくれる ■ 何を使って作る? 本セミナーで扱わないこと ‐ RAGやAIエージェント、精度向上に寄与する技術 ‐ 作りこんだUI画面を作る ‐ watsonx.aiのセッティング ‐ 実行環境:GoogleColab ‐ 言語:Python 想定ユーザー ⇒4月から入る 新入社員 UI部分 ⇒Gradio 画面の見た目はこんな感じ LLM 会話履歴管理 ⇒Llama他 watsonx.aiから 呼び出す ⇒LangChain COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 7

8.

02 watsonx.aiを 色々触ってみよう COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 8

9.

「watsonx.ai」とは? ※SaaS版(IBM watsonx as a Service)に限定して紹介 ■ 概要 watsonx - AIモデルの開発・調整・展開を支援する企業向け開発スタジオ - IBMのクラウドサービス「IBMCloud」上で提供される統合型 AIプラットフォーム「watsonx」のコンポーネントの1つ ■ 主な機能 watsonx.data データ管理基盤 watsonx.governance 運用管理・ガバナンス watsonx.ai 開発スタジオ ※その他諸々の機能についてはコチラを参照ください 機能名 概要 Tuning Studio 独自データで基盤モデルを微調整(チューニング)し、応答の最適化を行うツール Prompt Lab 各種基盤モデル(Granite等)に対してプロンプトを試行・調整できる実験環境 API(Python他) PythonやRESTAPIで、基盤モデル・RAG・プロンプト操作などをプログラムから直接制御 Agen Lab(β版) 業務特化AIエージェントをノーコードで簡単に作成・管理できるIBMの開発支援ツール ■ 事前準備 ※本セミナーでは割愛。以下をご参照お願い致します。 ①watsonx.ai無料体験版: https://jp-tok.dataplatform.cloud.ibm.com/registration/stepone?context=wx&preselect_region=true ②事前準備(アカウント作成他):https://speakerdeck.com/oniak3ibm/watsonx-ai-dojo-prereq ③アクセス出来たら(プロジェクト作成他): https://github.com/IBM/japan-technology/tree/main/watsonx.ai/dojo/create-new-project COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 9

10.

COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 10

11.

「watsonx.ai」を使ってみよう ~Prompt Lab~ ■ Prompt Labとは? - 各種基盤モデル(Granite等)に対して プロンプトを試行・調整できる実験環境。 ・詳しい機能説明(Document):リンク ・クイックスタート(watsonxDoc):リンク ・もう少し詳しいガイド(GitHub): リンク - 使うLLMによって相性の良いプロンプト手法が様々ある。そのためにまずはPrompt Lab でLLMとプロンプト手法の組み合わせの実験を行い、本番で使う組み合わせの模索をする。 ■早速試してみよう 実際の画面 - 設定: 新入社員のユーザーがビジネスマナーについて聞く - 入力: “正しい名刺の渡し方について教えてください!” モデルの変更 もできる! 実際にやってみよう! COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 11

12.

「watsonx.ai」を使ってみよう ~Prompt Lab~ ■ LLMの出力を改善するために… ※参考:https://www.promptingguide.ai/jp - プロンプトエンジニアリング:入力するプロンプトを改善する手法 - システムプロンプト:会話の前提としてLLMに与えられるプロンプトの事 ■ プロンプトエンジニアリングを試す 具体的に何をどうしてほしいか 一つ一つのプロンプトについて記述する - 今回は Cot(Chain-of-Thought) だけ試す - 入力:”正しい名刺の渡し方についてStep-by-Stepで教えてください!” ■ システムプロンプトを試す LLMにどんな役割、ルールで話してほしいか チャット全体の振る舞いについて記述する - 入力: “あなたはビジネスマナー講師です、 五つの原則(表情、挨拶、 言葉遣い、態度) の観点から、簡潔に質問に答えてください” ※参考:https://www.shain-kyouiku.jp/column/202409/002.html PromptLabの 画面右上の 歯車マーク から入力可能 ※ https://arxiv.org/pdf/2407.12994の様なサーベイを見ると、各タスクに対して、どのLLMで、どのプロンプト手法を使うと 効果的かを具体的に試しているため、arxiv等で既存研究を当たって、良い組合せの当たりを付けると良いかも COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 12

13.

「watsonx.ai」を使ってみよう ~API~ ※PythonのAPIに限定して紹介 ■ APIとは? - プログラム(Python等)からLLM等の機能を呼び出すためのインターフェース - 自分でボットを作りたい場合や、自社システムに組み込む場合は、APIを使う。 ■ APIの情報元 ‐ 開発者ハブ:https://www.ibm.com/watsonx/developer/ →開発者が利用する各コンポーネントの概要や使い方のまとめ。 ‐ Pythonライブラリのリファレンス:https://ibm.github.io/watsonx-ai-python-sdk/index.html →インストール方法やAPIの詳細な機能、実装について。 ■ 一般的な利用例を見たい場合 - リソース・ハブ:https://jp-tok.dataplatform.cloud.ibm.com/samples?context=wx&tab=samples →watsonx上で見れる、notebook形式の利用例やサンプルデータなどがある。 - GitHubのサンプルリポジトリ:https://github.com/IBM/watsonx-ai-samples →AutoAIやLangChainの利用例など。リソース・ハブになかったらこっちを当たろう。 今回はGoogleColaboratory上でPythonを書く中で、このAPIを呼び出す。 COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 13

14.

「watsonx.ai」を使ってみよう ~API~ ■ Google Colaboratory(以下Colab)とは? ‐ ブラウザ上でPython等を入力実行できるサービス。Googleアカウントがあれば利用可能。 ■ 事前準備 ① ② ③ - watsonx.aiのHomeのDeveloper accessでProjectID、エンドポイント、APIKeyの準備 ※本セミナーでは、こちらの準備については詳しく取り扱いません。わからない方こちらを参照 リンク - GoogleDriveを開き、適当なフォルダで右クリック⇒その他⇒GoogleColaboratoryを追加 - 出来たファイルに名前を付けて、「シークレット」にAPIKey、ProjectIDを保存 ① ② 名前(例) 値 WATSONX_APIKEY ③ WATSONX_PROJECT_ID ② ③ COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 14

15.

「watsonx.ai」を使ってみよう ~API~ - 今回使う全てのライブラリをインストール、 ※バージョンは記載のもので動作確認をしております。 - シークレットに格納した①APIKey②ProjectID と ③エンドポイントを取得しておく。 ■ DeveloperHubのQickStartを実行してみよう! - のサンプルコードを少し改造してみる https://www.ibm.com/watsonx/developer/capabilities/chat#example - 試すプロンプトは先程のPromptLabと同じ - 前ページで作ったColabにコードを貼り付けて改造しよう - APIKey、エンドポイントの認証を した後、APIを初期化 COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 15

16.

「watsonx.ai」を使ってみよう - パラメーターはそのまま。 参考:APIリファレンスリンク - 上記で設定したものや、使用するLLMを設定 参考:APIリファレンスリンク - role = 該当テキストの話者の役割 ⇒ system = システムプロンプト ⇒ user = ユーザー(人間) ⇒ assistant = AI - content = プロンプトの内容 ⇒ type指定でデータ種類を決める。 例:image、text - APIからのレスポンスを見てみよう COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 16

17.

APIのレスポンス - LLMの回答。と同じく content と role(LLmの返答のroleは assistant)がある。 - 返答だけ取得したいときは .choices.message[0].content - 使用したモデル、トークン数 パラメーターなどが見れる 他社のAPIの返答 と比べると面白い (例はOpenAI) COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 17

18.

COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 18

19.

03 会話ができる ようにしよう LangChainを使ってみよう COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 19

20.

会話履歴の管理はどうする? ~LangChain~ ■ 今のままだと、一回の会話しかできない… - 会話履歴の保持や、管理をしたい ⇒ せっかくなのでLangChainを使ってみよう - 前章で作ったものと同じものをLangChainで作る。そこに会話履歴管理機能を追加する。 ■ LangChainとは? - LLMの機能拡張を効率的に実装するためのOSSライブラリ(PythonやTypeScriptで提供) RAGを組むための様々な機能や、会話履歴の管理が楽に行える。 - 機能が非常に多い&増えているので、必要最低限の欲しい機能を選んで使う。 例えば今回使うのは… ※一部古いlangchain(Ver0.1.0以下)も使用します。 langchain-core:様々なコアとなる機能を提供するパッケージ。メインで使う。 langchain-ibm等:各ベンダーのAPIとLangChainを統合するためのパッケージ。 ■ 情報源 ※langchain-ibm(v0.3)についてのみ記載 - 公式概要ページ:https://python.langchain.com/docs/integrations/providers/ibm/ - APIリファレンス:https://python.langchain.com/api_reference/ibm/index.html# - 実装:https://github.com/langchain-ai/langchain-ibm COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 20

21.

LangChainを使ってみよう ■ まずは前章と同じものを作ろう -プロンプトをテンプレート化、 ユーザー入力だけ変数として受け取り再利用可能に 参考:ChatPromptTempleteのリンク - watsonxのLLMをLangChainで使えるよう にし、 テンプレに基づいた入力をLLMに送信 参考:ChatWatsonxのリンク - LLMから返ってきた出力から、 回答部分 のテキストだけを抽出して⽂字列化 参考:StrOutputParserのリンク - 上記のテンプレ、LLM、出力成形の流れ を一連のパイプライン(chain)として定義 ※参考:LCELについて - 実行部分を関数化し実行。結果を見てみよう COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 21

22.

COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 22

23.

LangChainで会話履歴管理の機能を追加しよう ■ 実装する関数の流れ ~概要~ ■実装する関数のイメージ 入力:過去の会話履歴、ユーザーのプロンプト 関数(gen_response) ①過去の会話履歴を受け取り、メモリに一時 保存。会話履歴が無ければメモリ初期化。 メモリ ②メモリから会話履歴を取りだし、ユーザー のプロンプトと一緒にLLMに入力。 ③会話(②)に続くLLMの返答を受け取る。 ④LLMの返答(③)とユーザーのプロンプトを ペアにして、メモリに追加保存。 ⑤LLMの出力テキストのみをユーザーに出力。 役割 会話内容 人間 … 会話履歴 AI … ② 人間 … ① AI … ④ ユーザー ⑤ 人間 正しい名刺の… AI 名刺の渡し方は… ② ③ LLM 前ページの実装に加えて、会話履歴を保存管理するメモリ機能と、 LLMへ入力するプロンプトに履歴を差し込むホルダー(②で使う)が必要。 COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 23

24.

LangChainで会話履歴管理の機能を追加しよう ■ 前ページの関数を実装してみよう ~実装~ ※「model」は21ページのものを使ってます。 - このテンプレにホルダーを追加。 ここに会話を足していき、使いまわす。 ※variable_nameを設定すると、chain実行時に更新される ※参考:Placeholderのリンク - メモリを初期化。これで履歴を管理・再利用 ※実装の簡略化の為、旧langchainのMemory機能で実装。 ※参考:ConversationBufferMemoryのリンク ※現在推奨されているMemory機能の実装の仕方 - 受け取った会話履歴(history)が… ⇒無ければメモリを初期化、 ⇒あれば各会話内容ペアをメモリへ追加。 - メモリから会話履歴を取得。 - ユーザー入力(message)と履歴をLLMに入力 - LLMの返答とユーザー入力をメモリに保存。 COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 24

25.

04 チャットのUI を作ってみよう Gradio COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 25

26.

ユーザーが触る画面はどうする? ~Gradio~ ■ 今のままだと、プログラム上でプロンプトをいじるしかできない… - ユーザーが直感的に触る画面を整備したい ⇒ Gradioを使ってみよう - 前章で作った関数はこれを実装する為でした… ■ Gradioとは? - 機械学習モデルのデモを、誰でも簡単に実装できるOSSライブラリ(Python等で使える) - Webインターフェースを使用しており、手軽に実装・共有ができるため、Pythonのみで モデルの性能を見せたいときに向いている。(まさにこういったセミナーにピッタリ!) - 似たものにStreamlitがあるが、Gradioの方がシンプルかつ「モデルのデモ」に向いている ■ 情報源 - 公式概要ページ:https://www.gradio.app/ - デモの使用感は以下から試せます: ①公式PlayGroundリンク ②HuggingfaceSpaceリンク ③用途別にまとまっているリンク - 実装例を見たい場合は HuggigfaceSpace ⇒ Files ⇒ app.pyなどを見ると載っています。 COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 26

27.

ユーザーインターフェースを整備しよう ~Gradio~ ■ …と言っても先程のコードに少し付け足すだけ! - Gradioで用意されているチャット形式の インターフェースに、先ほど実装した 関数(gen_response)を渡すだけ。 ※今回は簡単にできるChatInterfaceクラスで実装しています ※Blocksクラスの方が柔軟性が高くUIを構築可能 先程の実装の下に 付け足してます。 - チャットの画面に表示させたい タイトルや、チャットの用途の説明⽂ 等も設定可能。 ※参考:ChatInterfaceクラスのリンク - 実行時にURLを発行して共有ができる 実際に実行してみてUIを見てみよう。 ※URLを発行でブラウザで確認ができます。 GoogleColabの画面でも確認できます。 ※参考:共有についてリンク リンクシェアの仕組みリンク COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 27

28.

完成したチャットボットを動かしてみよう! ■機能の確認 - 全体的には普通のチャットと同じ。 - タイトル、説明⽂もしっかり 入っている - 設定から外観を変更できる ■他、テキストを入れて確認する点 ・ 前章と同じようにシステムプロンプトを意識できてる? ・2回目以降の会話で、過去の会話の内容を踏まえているか? COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 28

29.

05 まとめ と 発展に向けて Tips COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 29

30.

まとめ & 発展に向けて & 感想 ■ まとめ watsonx.aiの様々な機能 + LangChain、Gradioを使って一連の流れで実装してみること でチャットボットの裏側では、どのような機能が使われ、どのような流れで動いているのか をその一端を垣間見ることができたのではないでしょうか? 今後、対外的な説明時や、実際にAIチャットボットを使用する際に、少しだけ裏側を 意識できるようになっていると嬉しいです。 ■ 発展に向けて RAGやAIエージェントにより、チャットの精度向上や機能拡張にチャレンジしてみる… - RAGハンズオン:https://github.com/bRAGAI/bRAG-langchain - RAGテクニック紹介:https://github.com/NirDiamant/RAG_Techniques - AIエージェントのリソースハブ:https://www.aiagenttoolkit.xyz/t/frameworks ■ 感想 シンプルで簡単な実装ではあったが、営業の自分にとっては難しかった。 もっと簡単にできる手段を探したい… COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 30

31.

IBM watsonx Orchestrate こんな便利なものが既に… ■シンプルなチャットbotの役割を担うのはもちろんのこと、業務指示をチャットで入力するだけで、 企業内システムと連携した業務処理やフローを自動実行するデジタルレイバープラットフォームです。 • 問い合わせ対応や複数業務の自動処理、LLMを活用した生成AIでの効率化 • 業務の手間を削減し、効率的かつ信頼性の高い結果を提供 COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 31

32.

COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 32

33.

最後に… ITソリューション「AI365」 のご案内 自分たちのAIを手に入れよう AIを始めたいお客様へ コンサルタントから、構築、運用までトータルサポート COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 33

34.

データ分析支援サービス AIを始めたいお客様へコンサルタントから、構築、運用までトータルサポート! アドバイザリーサービス データ分析支援サービス ビジネス目標につながるデータ活用のアドバイス データの準備や分析モデル作成を支援 ①企画目標設定 ②分析設計 ③データ準備 教 ④モデル開発評価 ⑤業務適用 育 統計の座学トレーニングや分析ツールを操作しながら、 データ加工や分析モデル作成方法を学習いただけます COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 34

35.

ご清聴ありがとうございました!! AI365ホームページ IBM watsonx.ai へのアクセスはこちら AITお問い合わせ先 AIT公式キャラクター LOWATI COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 35