SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

最新イベントはこちら!

Data Tech 2024

2024年11月21日(木)オンライン開催

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

EnterpriseZine(エンタープライズジン)

EnterpriseZine編集部が最旬ITトピックの深層に迫る。ここでしか読めない、エンタープライズITの最新トピックをお届けします。

『EnterpriseZine Press』

2024年秋号(EnterpriseZine Press 2024 Autumn)特集「生成AI時代に考える“真のDX人材育成”──『スキル策定』『実践』2つの観点で紐解く」

生成AIの企業活用

失敗事例から学ぶ!生成AI 実践の成功への道筋──回答精度を90%向上したRAG構築のポイント

「Macnica Data・AI Forum 2024冬 レポート#01

 企業での生成AIの実用化には、システム開発チームとユーザーチームの協働と継続的な改善が不可欠だ。マクニカの山本聡氏は講演で、同社の失敗事例を基に、RAG(Retrieval Augmented Generation)の理解とチーム連携の重要性を説いた。検索と生成を分けて精度を高め、AIモデルのフレームワークによるシステム構築と運用の可視化により回答精度は約90%まで向上。山本氏は、ユーザー協働と効果測定の継続が、生成AIシステム開発の勘所だと強調した。

株式会社マクニカ ネットワークス カンパニー データ&アプリケーション事業部 主席 山本聡氏
2002年に株式会社マクニカ入社。以来、サーバーソフトウェア、 仮想化含むネットワークセキュリティ、エンドポイントセキュリティ、テレコムセキュリティのエンジニアとして従事する。また、SOC チームの立ち上げにも従事し、その業務の中でAI を使ったデータ分析に出会い、データ &AIエンジニアとなる。現在は、Databricks Champion としてデータ基盤商材のDatabricks を担当しながら、生成 AI を使ったシステムの構築、改善方法を試行錯誤している。

生成AIシステム開発の失敗事例から見えてきた課題

 一昨年のChatGPT登場を受け、マクニカ ネットワークス カンパニーのシステムチームも、生成AIを使ったチャットボットの開発に着手した。社内の製品情報やナレッジ、対応履歴を学習させ、製品仕様や独自のトラブルシューティング手法を活用できるボットの実現を目指したという。

 しかし、いざユーザーに使ってもらうと、期待したような精度の高い回答は得られなかった。「例えば、日本語で質問しているのに英語で回答されるなどの問題が発生しました」と山本氏は振り返る。

 この時点では、システムチームは精度改善の糸口もつかめずにいた。「どこに問題があるのかもわからない状態でした」と山本氏。そこでチャットボットの構成を分析したところ、いくつかの課題が浮かび上がった。

RAGの理解とチーム連携の重要性

 精度向上への第一歩は、チャットボットの構成を理解することだった。同社のチャットボットは「RAG(Retrieval Augmented Generation)」による一般的な構成を採用していた。

 資料提供:マクニカ [画像クリックで拡大]

 RAGは大きく分けて3つの処理から成る。まず「Retrieval」では、ユーザーの入力に関連するデータを検索して取得する。次に「Augmented」で、プロンプトを基にユーザーの入力した文章と検索結果によりプロンプトを拡張。最後に「Generation」で、拡張されたプロンプトから文章を生成する。

 山本氏が相談を受けたチャットボットは、RAG構成を実装するためにLlamaIndexというライブラリを使用していた。データベース部には、製品のマニュアルや仕様書などの英語PDFと自社の日本語データが格納されており、これらを検索対象としていた。

 プロンプト部分は日本語で回答するように作成され、LLMにはAzure OpenAI ChatGPT3.5 Turboが使用されていた。山本氏はこれらのシステム状況を確認した上で、ヒアリングから見えてきた課題を整理した。

  1. 各コンポーネントの処理がどうなっているのか理解されておらず、各コンポーネントの精度や動作を確認する仕組みが無い
  2. チャットボットの対象となるユーザー業務の詳細が定義されていない
  3. システムチームはユーザー業務の詳細を理解していない

 課題の1つ目は、ライブラリの中身を理解せずにそのまま検索から生成までを実装していたため、各処理の詳細が理解されていなかったことだ。山本氏は「ライブラリの各処理を理解した上で、必要な部分は分解し、処理ごとの精度や動作を確認する仕組みを作ることが重要」と指摘する。

 課題の2つ目と3つ目については、「ユーザーチームとシステムのチーム分かれた状態で実施をしていたため、ユーザーチームの業務の調整が実施されなかったことと、それによりシステムチームがユーザーチームの詳細を理解できていなかったことが問題でした」と山本氏。

検索と生成を分けて考える

 対策としてまず取り組んだのが、RAGの「検索(Retrieval)」と「生成(Augmented Generation)」を切り分けて捉え直すことだった。精度低下の主因は、検索部分で適切な結果が得られていないことにあると山本氏は指摘する。

 「まずは検索精度の向上に注力し、それから文書生成の精度を高めるアプローチを取りました」。質問と回答の距離を計算し、一定以上離れた回答は採用しないようにするなどの工夫を施したという。

 文書生成については、検索で得られた結果を基に期待する文書が生成できているかを確認。複数の情報ソースを活用することで、さらなる精度向上を目指した。

言語の壁を乗り越える

 英語と日本語が混在することによる弊害も、看過できない問題だった。「言語ごとにデータベースを分けて構築し、それぞれの言語のデータを格納するようにしました」と山本氏。

 加えて、日本語の質問を英語に、英語の質問を日本語に自動翻訳し、適切なデータベースに問い合わせる仕組みも用意した。さらに、生成された回答を質問と同じ言語に翻訳して出力する機能も実装。これにより、言語の壁を乗り越えることに成功したのである。

RAG構成の実行環境

 改善を重ねた結果、RAG構成は次のようになった。まず、各言語ごとにデータベースとプロンプトを用意。そこから得られた情報を統合し、共通のLLMで回答を生成する。質問文の翻訳と回答の翻訳も、同じLLMを活用している。

 資料提供:マクニカ [画像クリックで拡大]

次のページ
回答精度の検証

この記事は参考になりましたか?

  • Facebook
  • X
  • Pocket
  • note
生成AIの企業活用連載記事一覧

もっと読む

この記事の著者

京部康男 (編集部)(キョウベヤスオ)

ライター兼エディター。翔泳社EnterpriseZineには業務委託として関わる。翔泳社在籍時には各種イベントの立ち上げやメディア、書籍、イベントに関わってきた。現在は、EnterpriseZineをメインにした取材編集活動、フリーランスとして企業のWeb記事作成、企業出版の支援などもおこなっている。 ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/19496 2024/04/09 09:00

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング