見出し画像

アスキー社 × マイクロソフト社主催 生成AIコンテスト「AI Challenge Day」参加レポート

皆さん、こんにちは。
4/18 - 4/19 で開催されたASCIIさん×マイクロソフトさん主催の生成AIコンテスト「AI Challenge Day」に、参加させていただきました。
私たちのチームは、ありがたいことに”準グランプリ”をいただくことができました! 今回はコンテスト2日間の模様をお届けしたいと思います。


自己紹介

私たちの会社は5名チームで参加しました。チームメンバーは全員、生成AIの研究開発やプロダクト開発、活用推進に従事しており、今回がチームプロジェクトとしては初めての経験でした。
顔合わせが初めてのメンバーも何名かいました。

AI Challenge Day: コンテスト概要とテーマ

イベント概要

  • 日付:2024/4/18 - 19

  • 場所:Microsoft AI Co-Innovation Lab @Kobe

  • 参加企業:Microsoft社のパートナー企業 10社

Microsoft AI Co-Innovation Lab @Kobe

コンテストの概要: 世界遺産トラベルアシスタント

コンテストの課題は「日本の世界遺産」を紹介するトラベルアシスタントの開発でした。参加者は提供されたデータを基に、質問応答の精度とアプリの完成度を競います。精度はMicrosoftさんが提供するスクリプトで評価されました。

世界遺産トラベルアシスタントのお題

コンテストのテーマ:マルチモーダルアシスタント

具体的なテーマは
①質問応答FAQアシスタント、
②マルチモーダルアシスタント
 
の2つでした。
このお題が発表されたとき、会場が少しざわつきました。
①のFAQアシスタントは、今まさに多くの企業が試行錯誤している、テキストをベースとしたRAGだと思います。しかし、②のマルチモーダル(画像を入力とする)は未着手という企業が多かったのではないでしょうか。
もちろん私たちもマルチモーダルの経験はなく、どうしようかと頭を抱えました。

テーマ

コンテスト期間の舞台裏:開発期間の取り組み

コンテストは2日間ですが、2日目の午後は発表でしたので、開発期間は実質1日でした。時間がなくとても焦りました…。
私たちのチームは、アプリのUI開発とRAGのバックエンド開発にざっくりと役割を分けて進めました。
また一旦、細かい前処理は後回しにして、Microsoft様にご用意いただいた評価用スクリプトを実行し、ベースラインの結果を出すことを優先しました。このアプローチは後々かなりよかったと気づきました。

精度について

まず初めに精度です。
期間中に2回評価スクリプトを実行することができました。
最終的なスコアは20.975 / 25 点 でした。全体でも上位の結果を残すことができました。
1回目:15.950
とりあえずPDFのみを前処理なしでAI-Searchに登録
2回目:20.975
前述した前処理を施したうえでAI-Searchに登録
前処理ってやっぱり重要ですね….。

この後は具体的な開発内容について記載します。

アーキテクチャについて

RAGアーキテクチャを構築するにあたり、Azure Machine LearningのPrompt Flowを活用しました。
Prompt Flowを用いることで、LLMとAI-Searchをローコードで連携することができ、スピーディーに動くものができあがりました。APIのエンドポイントをGUIから簡単に作成できることも、アプリとして動くものを短期間で作らなければならなかったため非常に助かりました。

構成については下記を利用しました。
構成
・AI-Search
 検索手法   :セマンティックハイブリッド検索
 Embedding手法:text-embedding-ada-002
・LLM
 マルチモーダル時の入力:GPT-4-vision-preview
 生成         :GPT-4-32k

特にマルチモーダルは、画像入力を何らかの形でテキストに変換する必要があると考え、GPT-4-visionで入力画像を説明させた後に、説明文で関連文書を検索するというアプローチを取りました。(このアプローチはよくなかったようです…..)

全体概要
RAGの動作イメージ

データ前処理の工夫点

アーキテクチャ自体はよくある構成だと思いますが、私たちのチームは前処理部分を工夫しました。

データセット
コンテストが始まりデータを確認したところ、下記が含まれていました。
・テキストデータ
・PDF(文字情報あり)
・PDF(スキャンされた文字情報なし)
・画像
・PPTX
・CSV
割合としては、テキストデータ、PDF、画像、Officeの順に多かったように思います。一筋縄ではいかないデータが多く、苦労しながらも楽しみました。結果的に、画像データはうまく扱うことができませんでした。

チャンク分割
PDFに関して文字情報なしのデータが多く含まれていたため、Document Intelligenceを用いることで、AI-OCRと構造抽出(Markdown化)をおこないました。
チャンク分割をする際に、AI-Searchの検索精度を上げることと、GPT-4が解釈しやすい情報となるように意識しました。

PDFは構造抽出情報を、セクション単位(h1タグ、h2タグごとに)でチャンク分割しました。このようにすることで文脈を途中で切ってしまうことを防ぎました。またHTMLタグにより準構造化することで、表などが表現できるため、GPT-4の出力性能の向上を期待できます。
テキストデータに関しては、ファイル名をチャンク分割したテキストの文頭に挿入し、何について書かれているかを明確にしました。
その他のOfficeデータは時間の都合上、前処理は実施できなかったため、そのまま利用しました。

チャンク分割の戦略
HTML変換によるチャンク

アプリについて

精度で上位がとれるか不安だったため、誰がどのような目的で使うものかを明確にし、アプリの完成度を上げました。
審査員の方からも、私たちのチームはアプリ利用シーンを評価いただけたように思います。

アプリの利用場面
観光時に利用するアプリ。観光地にQRコードを設置し、読み込むことでその観光地についてチャットで質問ができる。
外国人もターゲットとしているため多言語対応もしている。

アプリのポイント(特にアピールしたポイント)
①多言語対応

特にニーズのあると考えられる日本語、英語、中国語に対応しました。
仕組みは非常にシンプルで、プロンプトに「○○語で回答して」と付け加えるだけの実装で実現しています。
③ハルシネーション対策
RAGの仕組みを作るうえで、ハルシネーション対策は非常に重要です。
回答に対して100%の精度を保証することはできないため、関西人らくしく語尾に「知らんけど」を付けることで、間違えた際の保険をかけました。回答文もよく見ると関西弁で回答しています。
私たちは参加企業唯一の関西企業だったので、ここぞとばかりに関西人をアピールしました。

アプリUI


準グランプリを獲得できた理由(所感)

私たちのチームは結果的に準グランプリをいただくことができました。
その理由を下記に自分なりに考えてみました。

  • 早い段階でベースラインの精度を作成した
    開発がスタートして、まずはベースラインの精度を算出することを目標に手を動かしました。1日目のお昼過ぎには、前処理などはできていないものの1回目の精度を算出することができました。
    この時点で、「まぁ最悪この結果を出せばいいかと…」という精神的な安心感を得られたことで、落ち着いて進めることができました。

  • アプリのカスタマーストーリーを具体化した
    当初、精度面で太刀打ちできるか不安だったため、アプリのカスタマーストーリーをしっかり練るということにも力を入れると決めていました。
    また2日目の朝の段階で、コンテスト中に使用できるAzureのクレジットを使い切ってしまい、2日目はほぼカスタマーストーリーを考えていたことも具体化できた理由です。(いいのか悪いのか…)
    審査員の方からもカスタマストーリーについての、評価を頂けたように思います。

  • Microsoft社サポーターに積極的にアドバイスを求めた
    開発期間中はMicrosoft社のサポーターにアドバイスを求めたり、技術的な質問をさせていただくことができました。
    前処理の方法やPaaSの活用に関する多くの質問に対応していただきました。これにより、効率的に問題を解決し、スムーズに開発を進めることができました。
    Microsoft社の皆様、ほんとうにありがとうございました。

感想

このコンテストに参加したことで、大きな成長と学びがありました。
苦労した点:
短期間での開発は非常に緊張感があり苦労しました。特にPrompt Flowなど未経験の技術を用いた開発は、調べながらもあり苦労しましたが大きな学びもありました。参照用の画像データは上手く扱うことができませんでしたが、他企業の発表を聞いて、大変勉強になりました。
短期間での成果
普段業務では数週間から1ヶ月以上かけて行うような開発を、わずか2日間で行うことができました。これは、チームメンバーの協力とサポートいただいたMicrosoft様のおかげです。短期間で成果を残せたという事実は、今後の自信にも繋がりました。
他企業のアプローチの学び
他の参加企業のアプローチを見ることができたのは非常に刺激的でした。異なる視点や新しい技術の応用方法を知ることができ、私たちの見識を広げる大きな機会となりました。

このような素敵な機会をいただき、ASCIIの皆様、Microsoftの皆様、本当にありがとうございました。

おまけ

部屋割りや発表順

開発に使う部屋や、プレゼンの発表順はくじ引きで決めました。
生成AIという最先端のコンテストでありながら、超アナログに物理的なくじを引くという方法で面白かったです。
実際に各企業の代表者が出てきて、くじを引く場面は盛り上がりました。

くじ引きで部屋と発表順を決める

休憩中に見た景色

神戸商工貿易センタービルの高層階に会場があるので、とても見晴らしがよかったです。

会場からの景色

アーカイブ動画

当日の発表の様子は下記アーカイブ動画でご覧いただけますので、ぜひご覧ください!


この記事が気に入ったらサポートをしてみませんか?