このページの本文へ

RAGとマルチモーダルにチャレンジするエンジニアの祭典が戻ってきた

生成AIの熱き戦いが品川でも! GPT-4oもフル活用されたAI Challenge Day 2nd

2024年07月19日 09時00分更新

文● 大谷イビサ 編集●ASCII

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

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

安定の技術力で高得点をたたき出したFIXER

 5社目は若手5人でチームを構成したFIXERの本田匠氏。オリジナルの生成AIサービス「GaiXer」の開発や基盤プロジェクトの設計・開発などを行なっており、Plateauハッカソンに参加したメンバーや Microsoft AI Partner Training RoadshowのProctorを務めたメンバーなどで参加した。本田氏は、「がんばり屋さんが多いチーム。間に合わなかったけど、がんばったなというところもお話ししていきたい」と語る。

FIXERの本田匠氏

 評価スクリプトは、ここまでで初めての20点超えとなる20.050点。テキスト部分が21点くらいで、足を引っ張ったのが18点くらいだった画像周り。「やっぱりデータが命なんだなと思いました」と本田氏は感想を語る。

 アーキテクチャとしては、メインのロジックはほぼRustで書かれており、AI Searchを用いた検索、LLMを用いた回答生成の大きな2つのパートに分かれる。前処理はAI Visionも用いており、やりとりした結果は、Cosmos DBに格納されている。

 回答生成のフローとしては、まず検索ワードが入力されると、テキストのハイブリッド検索が走り、画像がある場合は、そちらもベクトル検索。両者の結果から回答生成を行なう。前処理はファイルごとにそれぞれ適した方法で行なっており、画像はAI Visionでベクトル化、PowerPointはテキスト抽出とベクトル化、PDFやWordはDocument Intelligenceでマークダウン化、CSVは各行でJSON化している。

 今回課題で提供されたPowerPointは凝ったデータになっており、「画像もあり、画像の前にもボックスがあり、ノートがあった」とのこと。そのため、ノート自体の取得やPowerPoint内の画像取得はPythonで行なった。また、PPTXファイルのPDF化をLibreofficeで、PDFのPNG化をPopplerで行ない、それぞれをベクトル化・検索可能にした。

実案件でありがちな凝ったPowerPointファイル

 カスタマーストーリーとしては、PowerPointやWordのCopilotと同じく、さまざまな資料を提案してくれるとうれしいと考えた。ユーザーが聞きたいことがわからない場合も多いので、直接的な回答にとどまらず、追加情報を積極的に提供することで、ユーザーの満足度を向上させることにした。

 今回入れられなかった点としては、クエリの変換やリランクを入れることで、回答精度を向上するためのコンテキストをチェックする手法が挙げられた。今回はコンテキストが不足していた場合は、それを検知して追加のコンテキストを取得する方法が試された。回答するか、質問を返すかを判断するプロンプトまでは完成しており、この後に追加質問を元に再度Retrieveを実施することで、十分なコンテキストで回答できる見込みだという。

 また、コンテキストの精度を追求すると、応答速度が自ずと遅くなるため、クエリ分割・変換、回答・追加質問など複数の役割を1つのプロンプトで担うことで応答時間を短縮する工夫も必要になると指摘した。さらにクエリ分割やクエリ変換を行なうことで、複数の質問のテキストから効果的なクエリを生成し、検索精度を向上させるという取り組みも披露された。「たとえば屋久島特別地域気象観測所における6月から8月までの合計降水量は何mmになりますか?という質問に関しては、6月、7月、8月の降水量に分割してクエリをかけると、LLMも回答してくれるはず」と本田氏は語る。

 その他、GPT-4oで画像の説明文を生成し、コンテキストに含めることで検索での引っかかりをよくしたり、CopilotとSharePoint、Teamsなどの連携により、旅行会社の提案書の補助することもできるなど、さまざまなアイデアも披露された。最後、本田氏は、「やはりデータが命。今後は画像だけでなく、映像や音声も来ると思う。今回の経験を元に、自社サービスのGaiXerの開発に活かしていきたい」と抱負を語った。

 エンタープライズパートナーを担当する日本マイクロソフトの木村靖氏は、「評価スクリプト20点超えはさすがに技術力をお持ちだなと。特にマルチモーダルのための画像処理を丁寧にやっているところが、この点数に結びついたのだと思いました。ユーザーストーリーも丁寧に作られており、自治体も実際に使いたいのではないか」と評価した。

「とんでもないところ」でPower Platform力を見せたリコージャパン

 6社目はリコージャパンの新山健太氏。オフィスプリンティングで知られるリコージャパンだが、マイクロソフトのパートナーとしても実績を上げており、特にMicrosoft 365の販売で強みを出しているという。

リコージャパンの新山健太氏

 今回参加した5人もMicrosoft 365の導入支援やPower Platformのアプリ開発に携わっているメンバーで、東京、大阪、名古屋から集まった。社内での生成AIアプリ開発は経験しているが、正直あまり経験がないとのこと。「面白そうだからということで参加表明をした後に前回の動画を見て、とんでもないところに来てしまったと痛感しました(笑)」と新山氏はコメントする。

 評価スクリプトの結果は16.150点。「満足できる点数ではないが、最初は10点台だったので、そこから比べると、この2日間がんばれたのかなと思う」と新山氏。ユースケースはガイドを想定しており、説明対象を検索して回答を得たり、ツアー客の質問を検索して、リアルタイムに回答を得るといった用途を考えたという。

 アーキテクチャは2種類考えた。AI SearchやGPT-4oを利用するバックエンドの構成はおおむね他社と同じだが、UI/UX側がメンバーの得意なPower Apps/Power Automateというのが特徴的だ。新山氏が構築したAzure Functionsとベクトル検索を用いたアーキテクチャと、他のメンバーが構築したPower Automateによるキーワード検索を用いたアーキテクチャを用意し、最終的にはスクリプトの高かった後者を採用。「Power Automateはローコードと言われていますが、ローコードとは言えない状態になった(笑)」とのことで、かなりのコードが記述されたようだ。

Power Automateを前面に配する独自なアーキテクチャ

 RAGの構築に関しての工夫としては、AI Searchのインデックスをファイルごとに分けたり、入力キーワードの分割などの前処理を行なった。また、社内で使っているCopilot Studioでも利用できるようにPower Platformを利用しており、UIをユーザーがカスタマイズできる前提で構築した。

 最後、所感として新山氏は「普段RAG構築やPythonの開発を行なっていないので、短い期間で集中できたので、いい経験となった」とコメント。普段会えない仲間とリアルに会って、濃い時間を過ごせたという。一方で、改修し足りないポイントが満載だったのが反省。「最初はスコアが出ればいいくらいの感覚だったが、やり始めるとどんどんスコアも上がってきた。UIや検索精度、エンタプライズグレードなども足りなかったというのが正直なところ」とのこと。この経験をCopilotのライセンス販売にカスタマイズしたアプリケーションをうまくからませていきたいと抱負を述べた。

 審査員の大谷は、「神戸のときも含めて、Power Platformをインターフェイス側に持ってきたのは初めて。普段使っているものからチャレンジしていく姿勢がよい。今回のアプリ自体はB2C前提だと思うけど、B2Bの用途を想定しているのが印象的。あとはアーキテクチャの決め方も、優れている方を採用するというのが民主的だった。Copilot連携に期待したい」とコメントした。

カテゴリートップへ

  • 角川アスキー総合研究所
  • アスキーカード