このページの本文へ

エンジニア魂が燃えたぎる!生成AI開発イベント「AI Challenge Day」 第1回

ASCII&マイクロソフトの「AI Challenge Day 2024 in Kobe」レポート

日本マイクロソフトのAIパートナー10社が神戸に集合 RAGとマルチモーダルに挑む

2024年05月21日 09時00分更新

文● 大谷イビサ 編集●ASCII

提供: 日本マイクロソフト

  • この記事をはてなブックマークに追加
  • 本文印刷

・マルチモーダルを捨てて、RAGを磨き上げたワークスアプリケーションズ

 5番手はERPやSaaSなどのサービス提供を行なっているワークスアプリケーションズ。今回のイベントのために東京、シンガポール、徳島から集まった4人でチームが構成されているが、普段の業務は生成AIやチャットボットの開発、新規事業の開発、保守サポートなどバラバラだという。ワークスアプリケーションズの山村氏は「多様なメンバーが集まったので、個性を活かしてがんばりたい」と意気込みを語った。

RAGの精度向上に注力したワークスアプリケーションズの山村氏

 評価スクリプトの結果は20.461点。実はお題の1つであるマルチモーダルにほとんど手を付けない状態でこの点数なので、かなりすごい。アーキテクチャとしては、Copilot Studioからの質問に対して、Azure AI Searchで検索し、Azure OpenAI Serviceで回答を生成するというオーソドックスな構成。PDFやWord、PowerPointなどのファイルのテキスト抽出をAzure AI Document Intelligenceで行なっているのも鉄板と言える。

 マルチモーダルを捨て、ここまで点数を挙げた1つの理由は前処理だ。「実運用を考えると、使っていくうちに新しい観光地を増やしたいという要望になる。こうして情報を増やしていくと、ドキュメントの検索精度が劣化してしまうので、今回はテキストの前処理に力を入れた」と山村氏は語る。

 たとえばチャンキングは最新の論文を用いて、オーバーラップサイスをチャンクサイズの半分に設定。また、Azure AI Document Intelligenceの後処理としてヘッダーやフッター、不要なタグなどを除去。文字種の違いを揃えるためにユニコード正規化も施した。さらに同社がOSSで提供している日本語形態素解析エンジンの「Sudachi」を活用した表記揺れにも取り組んだ。たとえば、「受付」と「受付け」、「シュミレーション」と「シミュレーション」などの表記揺れを辞書を元に表記正規化。クエリリライティングも2種類試し、キーワードベースの書き換えを採用した。

 Azure AI Searchを用いた検索に関しては、ベクトルとフルテキストのハイブリッド検索を採用。回答生成に関しても、マークダウンを出力しないように抑制したり、入力された言語で回答を返すようにした。コンテキストを示す根拠文書はファイル名をそのまま出力するようにしたという。

 構想はいろいろあったが、実現に至らなかった部分もあった。たとえば、実現したRAGをAPI化することで、Copilotにエンドポイントを連携させ、Teamsからもやりとりできるようにしたり、クエリと関連性のある画像をネット検索で抽出することで、UXを向上させたり、アップセルの機会を創出する仕組みも実装まではいかなかったという。あわせて出力のストリーミング化や回答できなかったときのリアクションの実装も、山村氏は実運用では重要になると指摘した。

 最後、山村氏は「非常にいい刺激を受けて、楽しいイベントでした」と感謝のコメントをしつつ、きちんと採用募集まで行なった。内藤氏は、「非常に技術力が高い。論文の引用や自社製品の利用も含め、前処理をきちんとやるとここまで行くんだと思わせる素晴らしい取り組み。限られた時間で、ここまで仕上げてもらい、感謝の気持ちしかない」とコメントした。

・ゼロからマルチモーダルにチャレンジしたソフトクリエイト/ecbeing

 6番手はソフトクリエイトとecbeingの合同チームで、発表はecbeingの太田優一氏。普段はECサイトの構築や運用、自社製品の開発、社内でのAIエバンジェリストなどを務めている。今回はデータ加工・インデックス生成、API・インフラ、画像処理・フロントエンドなどが得意な20代中心のメンバーで挑んだ。生成AIを用いたチャットボットサービスや企業向けChatGPTなどの開発実績もあるが、「マルチモーダルを誰もやったことなかった。昨日、お題が発表されたときはどうしようと思った」というスタートだった。

マルチモーダル未経験から始めたソフトクリエイト/ecbeingの太田優一氏

 評価スクリプトの結果は18.525点。未経験からスタートして、マルチモーダルまで対応できたが、RAGの精度向上まで手が及ばなかったため、この数字だったという。システム構成はAzureサービスをフル活用しており、ユーザーの質問をAzure StorageのWebサイトで受け、Azure AppServiceをハブとして、Azure OpenAI Service、Azure SQL、Azure AI Vision、Azure AI Searchに接続している。

 一番苦労したのはデータセットにあったPDFの扱い。悩んだ結果、PDFを解析し、画像と文章のインデックスを別々に作ることにした。Pythonプログラムで画像と文章を分離しつつ、両者の整合性をとるようにし、画像生成文はGPT-4 Turbo with Visionで生成。それぞれに画像・チャンクされた文章、ベクターデータ、説明文、ファイル名、出現ページなどを格納するようにした。

 ユーザーからの入力で画像がある場合、ない場合でセマンティック検索でのインデックスを分けているのが特徴。画像あり・なしの系統でファイル名と出現ページから文章インデックスを取得し、回答を生成している。画像と文章データの位置関係を与えるためにインデックスを自前で生成するプログラムをPython+Pandasで構築しつつ、画像が付加されている質問に対するプロンプトも工夫を施したという。「マルチモーダルの知識が皆無だったところから動くものができたのが喜び」と太田氏は語る。

 このチームはフロントエンドサイトも構築。「世界遺産は観光しながら調べる人は多い」という前提で、レスポンシブなデザインにも対応している。太田氏はスマホで検索している場面を動画で披露。画像付きの回答が、コンテキスト付きできちんと表示されていた。審査員の大谷は「お題を聞いて、ゼロからマルチモーダルに挑んだ点がすばらしい。あと、観光情報はPDFで提供されることが多いので、実運用にも耐えられそう。なにしろ動画で動いているところを見るとインパクトを感じた」とコメントした。

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード