「ASCII×Microsoft 'AI Challenge Day Tokyo' で2日間のRAGシステム開発!」

こんにちは、ウルシステムズ株式会社の久慈です。6月11日(火)と12日(水)の2日間にわたって開催されたAI開発コンテスト「AI Challenge Day」に参加してきました。参加メンバーは、当社の中でも特に先端技術に携わることが多い5名で構成されました。


AI Challenge Dayとは

「AI Challenge Day」は、株式会社角川アスキー総合研究所日本マイクロソフト株式会社の共催で行われたイベントです。パートナ企業10社が参加し、生成AI技術におけるRAGアーキテクチャの実装について、コンテスト形式で競い合い学び合うLearning Eventです。

AI Challenge Dayの概要

第2回目のテーマ

今回のテーマは、第1回目と同じで「日本の世界遺産を紹介するトラベルアシスタントを開発しよう!」でした。RAGアプリケーションには、テキスト質問に対する回答生成だけでなく、画像に対する適切な回答生成も求められ、マルチモーダル対応が課題となりました。

RAGアプリケーションに求めらる処理としてはテキストに対する回答生成だけではなく、画像に対しても適切な回答生成を行う必要があるため、マルチモーダル対応が求めらました。

提供されたデータセットについて

RAGの検索対象となるデータセットには、様々な拡張子が含まれていました。Pythonスクリプトを使って調査した結果は以下の通りです。

$ python3 file_extention_checker.py
{'.txt': 157, '.pdf': 22, '.docx': 4, '.pptx': 1, '.csv': 1, '.jpg': 465, '.png': 7, '.gif': 2}

我々のRAGアーキテクチャについて

試行錯誤中のホワイトボードの様子をご紹介します。

Dify x AKS のアーキテクチャを採用

Difyを採用した理由

  • Difyは、迅速かつ効果的なプロトタイピングが可能であり、今回AI ChallengeDayのニーズに非常にマッチしていたため採用しました。また、ユーザーフレンドリーなインターフェースと豊富な機能セットが、短期間での開発において大いに助けとなりました。

AKSを採用した理由

  • AI Challenge Dayでは、エンタープライズ要素も評価軸として存在していたため、AKS(Azure Kubernetes Service)を採用しました。AKSは高可用性とスケーラビリティを提供しており、大規模なデータ処理を必要とするアプリケーションに最適でした。また、Microsoftのクラウドサービスとの統合も容易であったため、選択しました。

アーキテクチャの主要な要素

  • データセット

    • 今回のデータセットが多種多様なものであったため、以下の対応を行いました。

      1. テキスト:無加工

      2. 静止画像:キーワード生成

      3. PDF: Document Intelligence

  • バックエンド

    • AI Search

      • AI Searchは質問に対する最適な回答を高速かつ正確に提供するための検索エンジンです。OpenAIの技術とベクトル検索の技術を組み合わせたシステムで、ユーザーのテキスト質問や画像に対して関連する情報をナレッジベースから検索します。

    • CustomAPI

      • DifyにはAI Searchとのインタフェースがなかったため、AppService上にCustom APIを構築して、AI Searchの結果をDifyで受け取れるようにしました。

    • Dify

      • 下記のワークフローをDifyの画面上で作成しました。

苦労したこと

  • Difyのワークフローで画像を外部サービスに連携することが制御できなかった。

  • そのため画像の説明文をOpenAIを使って生成し、その説明文でEmbeddingしたが、想定よりもヒットしなかった。

他社の取り組み

今回参加した10社の大半は、AIに精通した精鋭部隊でチームを編成していました。しかし、高得点(20点以上)を叩き出せたのはわずか3社でした。これらの高得点を獲得したチームについて、私なりに分析した結果、以下の2つの要素が挙げられます。

  • 検証サイクルが早く、数をこなしていた。

    • インデックスのチューニングなどに時間を割ける。

  • データごとに丁寧な分析を行えていた。

    • データ種別に対して丁寧な処理(クレンジング)を実施していた。

まとめ

今回のハッカソンに参加して感じたのは、準備がいかに大切かということです(前日の23:00にチームメンバーが確定)。いろいろと反省点を書いてしまいましたが、この経験は非常に刺激的であり、次回はより万全な準備を重ねて臨みたいと思います。

ぜひ、次回も皆さんと一緒にAI技術の進展を楽しみながら学びたいと思います。よろしくお願いします!


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