ASCII×マイクロソフト主催の生成AIコンテスト「AI Challenge Day」に参加してきました!

はじめに

こんにちは、AITCの矢作です。
この度、4月18日、19日の2日間に神戸の Microsoft AI Co-Innovation Labs で開催されたAI開発コンテスト「AI Challenge Day」に参加してきました。 参加メンバーは、AITCから3名、金融事業部から1名、製造事業部から1名の合計5名でした。
本記事ではイベントに参加した感想をまとめます。

始まったばかりでまだ余裕がある参加者たち

AI Challenge Dayとは

AI Challenge Dayは、株式会社角川アスキー総合研究所と日本マイクロソフト株式会社が共同で企画したハッカソンイベントで、日本マイクロソフトのパートナー企業10社が生成AI技術の活用やアイデアを競います。 弊社も招待いただき、生成AIの知見を深めるために参加しました。

本コンテストの模様はYouTubeでアーカイブされておりますので、ぜひ以下の記事からご覧ください。

ascii.jp

ハッカソンの概要

テーマ

「日本の世界遺産を紹介するアシスタントを開発しよう!」というテーマのもと、日本の世界遺産についての質問に回答できるRAG(検索拡張生成)システムを開発しました。
システムは、テキストの入力だけでなく画像データに対するマルチモーダル対応が求められました。

データについて

RAGの検索対象となるドキュメントには、様々な工夫が凝らされてました。 基本的に情報源はWikipediaですが、ざっくり以下のような特徴がありました。

  • 多様なファイル形式: Word、PPTX、PDF、TXT形式に分けられている。

  • 物理スキャンされたドキュメント: Wikipediaを物理スキャンしたドキュメントも含まれており、OCRを使ってテキスト抽出する必要がある。

  • 仮想の世界遺産: GPTの知識から答えられない仮想の世界遺産も含まれている。

多様なファイル形式や物理スキャンされたドキュメントへの対応は、実際の現場でも求められるため、良いデータセットだなと感じました。

評価方法について

ここでは詳細な説明は省きますが、RAGの回答精度に加えて、審査員による採点では以下の項目も評価対象となりました。

  • アーキテクチャの工夫点
  • カスタマーストーリーの構成
  • エンタープライズグレード(セキュリティや耐障害性など)
  • Copilotとの連携

これらの評価基準に基づいてシステム構築を行いました。

結果

実際に構築したシステム

私たちは、以下のようなアプリケーションを構築しました。
アプリケーション画面から対話形式で日本の世界遺産について質問することができます。

アプリケーションの画面

アーキテクチャ図

工夫したポイント

[1] Azure AI Studioを用いたRAG構築

ルール上「RAGのアーキテクチャは自由」だったため、今回は学習も兼ねてAzure AI StudioのPrompt Flowを利用しました。 Prompt Flowは、生成AIワークフローを効率的に構築できるビジュアルツールです。画面上でノードをつなぎ合わせながらRAGのシステムを構築することができます。 ワークフローはテンプレートが用意されているため、使い方に慣れれば簡単にRAGを構築することができます。また、ワークフローをデプロイすることでAPI経由でリクエストを送ることもできます。

Prompt Flowの画面

[2] Azure AI Document Intelligence によるテキスト抽出

『物理スキャンされたドキュメント』からテキストを抽出するために、Azure AI Document Intelligenceを活用しました。 Azure AI Document Intelligenceは、ドキュメントから情報を自動的に抽出するためのAzure AIサービスで、手書き文字やスキャンされた画像、PDF、フォームなどから構造化データを簡単に取得できます。
今回はAzure Functionsを用いて、ストレージアカウントにファイルがアップロードされると自動的にテキスト抽出処理が走る仕組みを構築しました。

順位について

実はトラブルによりRAGの改善活動まで取り組む余裕がなく、結果は下位で終了となりました。 具体的にどんなトラブルがあったのか、次に説明します。

発生したトラブルについて

Azure AI StudioのPrompt Flowを初めて利用したこともあり、RAGの構築には多少時間がかかったものの、1日目の時点でデモができるアプリケーションは完成していました。 2日目は午後から発表だったため、午前中にRAGの改善活動を行う予定でした。

しかし2日目の朝、会場に向かう準備をしている最中に絶望のチャットが飛んできました。

実際のメッセージ

どうやら「今回のイベント用に用意された無償クレジット」の枠が上限に達し、リソースが利用できなくなっていたのです。

こちらの問題は、Microsoft担当者の迅速な対応により、別のサブスクリプションにリソースを確保してもらえましたが、リソースの中身(アプリケーションの設定、前処理パイプライン、構築したRAG、AI Searchのインデックス)は全てリセットされた状態でした。 そのため、2日目の午前中はシステムの復旧に全力を注ぎ、結果的にRAGの改善には取り組む余裕はありませんでした。 幸い、アプリケーションや前処理パイプラインについては、Dockerイメージを残していたこともあり、必要リソースをプロビジョニングすることでスムーズに復旧することができました。 このシステム復旧に関しては、評価には含まれませんでしたが、審査員も評価していたとコメントをいただけたのが救いでした。

こういったトラブルにも見舞われましたが、最後まで走り切ることができてよかったです。

参加して感じたこと

ハッカソンへの参加は私自身初めてかつ、トラブルもあり大変でしたが、学びも多く、何よりオフラインで顔を合わせて開発するのはとても楽しかったです。 特に、発表後のテクノロジースペシャリストによる解説は非常に勉強になり、今後の製品開発に活かせる貴重な内容が詰まっていました。 また、最初は勉強目的での参加でしたが、いざ結果が発表されると悔しい気持ちが湧いてきますね。次回があれば、ぜひリベンジしたいと思います!

その他

せっかくの出張ということで、しっかり神戸は満喫してきました!

Microsoftロゴバックの写真(どうしても撮りたかった)

先輩に奢ってもらった神戸牛(最高に美味しかった)

私の宿泊先(わかる人には伝わるはず)

おわりに

本記事では、弊社が参加した生成AIコンテスト「AI Challenge Day」についてまとめました。後日、より詳細なRAG改善アプローチについて掲載予定なので、お楽しみに!

AITCでは共に働いてくださるメンバーを募集しています。本記事を読んで、AITCの活動に興味を持っていただけますと幸いです。

下記のページにAITCでの働き方や募集職種、組織などの採用に関わる情報をまとめています。 カジュアル面談の応募フォームもこちらのページにリンクがありますのでぜひご覧ください。 aitc.dentsusoken.com


執筆
AITC AIコンサルティングGグループ
矢作銀平