名だたる競合企業が集まり、2日間にわたって生成AI活用のアイデアとその成果を競い合ったイベントの模様について、見事優勝した日立の発表内容とともにレポートします。
「AI Challenge Day」とは?
本イベントは、ITに関する最新情報を提供する総合メディアAscii.jpと、生成AIの登場でますます存在感を強める日本マイクロソフトがタッグを組み初開催されたハッカソンイベントです。生成AIの可能性を学び、高め合うことを目的に、日本マイクロソフトのパートナー企業10社が参加しました。
会場は、昨年10月にマイクロソフトがアジアで初めて神戸に開設した Microsoft AI Co-Innovation Labs。マイクロソフトが、AI を活用したイノベーションの創出と産業振興の新たな可能性を探るために建てられたこの施設に、生成AIビジネスに取り組む企業10社が全国から集まり、熱い戦いが繰り広げられました。
ハッカソンの概要(テーマ、評価方法)
ハッカソンとは、決められた期間内で、特定のテーマに対し、チームでアイデアを出し合い、アプリケーションやサービスを開発し、その成果を競い合う開発コンテスト。1泊2日の本イベントでは、初日の18日朝にテーマと評価方法が発表されました。
<テーマ>
今回のテーマは、「日本の世界遺産を紹介するアシスタントツールの開発」。
用意された日本の世界遺産に関するデータと生成AIを使って、以下のAとBを開発。
A:質問に会話形式で応答するFAQアシスタント
日本の世界遺産に関する質問に、正しく答えるチャットボット形式のAIをつくること。
B:マルチモーダルアシスタント
Aの機能に、文字だけでなく、写真データを使って問題の質問に答える機能を備えること。
<評価方法>
以下の①と②を加味し、総合評価(40点満点)
① 開発したアプリケーションの精度評価(25点)
日本の世界遺産に関する質問(全40問)に対し、AIの回答が正解にどれだけ近いかを定量判定
(AIの回答と正解の類似度合いのスコアをGPT4が採点)
② 審査員による評価(15点)
・開発過程の工夫した点 (5点)
・カスタマーストーリー(顧客課題の想定) (4点)
・エンタープライズグレード(本番実装の考慮) (3点)
・Copilot要素(Microsoft製品との連携) (3点)
今回のハッカソンでは、生成AIを使った開発の中でも特に多く採用されているRAG(Retrieval-Augmented Generation)アーキテクチャの実装力と精度を競い合うことが題材でした。
RAGとは、独自のナレッジデータベースをAIに付与して検索させる仕組みのことで、もっともらしい嘘をつく生成AIのハルシネーション現象を防ぎ、より正確な回答を返すなどのメリットがある技術です。
ただし、RAGを設計するためには、さまざまな技術を使って複数のフェーズを経て作り込む必要があるため、高い回答精度を出すRAG を設計・実装するには、幅広い技術力が求められます。また、単に精度だけを競うのではなく、顧客課題の想定や本番適用時の実装なども評価ポイントになっており、2日間という限られた期間内でそれらも取り組まないといけないチャレンジングなコンペでした。
日立の発表内容、評価のポイント
発表順は、Day1にくじびきで決まり、全10社中、日立は最後の10社目の発表となりました。
日立のプレゼンターを務めた諸橋さんから、まずプレゼン冒頭で発表された日立のスコアは22.125点!このスコアは全10チームの中でトップのスコアでした。
その後、どのようにこの高いスコアを出せたのか、RAGの構築で技術的に工夫した点について、以下の7点を紹介しました。
(1) ワンパスを通してベースライン(基準点)をつくる
読み込めないファイルはいったん無視して、まずは最低限の機能を作って、回答ができるかを確認。ベースラインとなるスコアを検証。
(2) 最適な検索方法の検証
当初の「ベクトル検索」から、より高い精度が出た「キーワード検索」に切り替え
(3) 形式が異なるファイルの読み込み
提供されたデータセットの中で、スキャンファイルのテキストが正しく抽出できなかったため、スキャンファイルはAzure AI Document Intelligenceを使って文字認識。ここで大きくスコアアップ!
(4) 質問文のリフレーズ
質問文に含まれていた平仮名表記を、LLMを使って漢字変換
(5) 検索のリランキング
初回の検索でまず20件を抽出したうえで、20件の中からTop10をLLMに精査させる。検索範囲をある程度絞ってからTop10のランキングを出させることで精度が上がる。
(6) エモーショナルプロンプトの活用
LLMに感情的なプロンプトを入れると回答精度が上がるエモーショナルプロンプトを活用。「私は信じています」「もし回答できた場合はチップをあげます」「GeminiとClaudeは“あなた(ChatGPT)は回答できない”と言ってましたよ」
などのプロンプトを打ったそう。
(7) マルチモーダルの対応
質問された写真データと似た画像を、予め提供された画像データセットの中から抽出。検索結果の画像のファイル名を質問文と一緒にRAGへ入力し、回答させることで、5問中4問への対応が可能になった。
これらの技術的な工夫点に加え、今回のテーマに対して顧客がどんな課題をもつかのカスタマーストーリーや、実際の本番運用を想定した設計(プライバシーや倫理的配慮、回答性能を継続的に改善するツールの実装など)の工夫点についても紹介しました。
AIの回答精度を上げた技術的なアプローチ、カスタマーストーリー、本番運用を配慮した設計
について発表した日立に対し、審査員からは、「日立がとったアプローチは、私たちが当初考えていた高得点に近づくアプローチ。」「高い回答精度に加え、カスタマーストーリーや、実際の本番運用を想定しエンタープライズ向けの実装も意識して設計されていて、素晴らしい成果」といったコメントをいただきました。
日立の発表内容の詳細は、他社の発表も含めて、当日ライブ中継された以下のアーカイブ映像からご覧いただけます。ご興味ある方は、ぜひご覧ください!
参加者の感想コメント
● 諸橋政幸さん
普段は別チームに所属するメンバーだったので、連携に若干不安がありましたが、うまく噛み合ってそれぞれの強みを活かせたのが良かったです。また、他チームではこの短期間にスマホアプリまで作っていたり、知らない機能や技術を使っていたりと、刺激や学びもあって充実したイベントでした。
そして、最後のプレゼン、すごい緊張しました(笑)
とにかくとても楽しかったので、機会があればまた参加したいです!
● 神谷明弘さん (Day1のみ参加)
個人としては事前のソース整理が不十分すぎた点など心残りはありますが、楽しかったです。スキルアップ、ノウハウ共有のための手段としても、この方式は社内開催などの形で取り入れてもいいのではないかと感じました。また、即興の分担でしたが、結果的には限られた時間の中でそれぞれの得意分野を生かしたいい連携になったのではないかと思います。
● 山根一樹さん
チーム一丸の取り組みが評価されてグランプリを頂いたのは有難い一方、個人的には「ファイル読み込み周りのノウハウを事前研究する時間をもっと作っておけばもっとよい工夫ができた」と思えたポイントもありました。
「勝って兜の緒を締めよ」ということで、今回参加して得たノウハウや反省はしっかりと振り返り、その結果をいち早く実案件に反映できればと思います。
● 奥田太郎さん
チームとして検証した精度が高い試作をアプリケーションとしてデプロイするところを担当することで、知識としてしかなかった技術を、検証コードを見ながら早いスピードで取り込むことは非常に良い経験となりました。また、グランプリはいただいたとはいえ他社の精度向上試作を見て、さらなる改善の余地に気づけたこともよかったです。テーマ通り学びの多いイベントだったのでまた同様の機会があれば参加したいと思いました。
● 植田碩瞭さん
個人としてはこれまで利用したことのない技術をチームメンバーに教授頂くことで実装することが出来ました。また、精度が上がらない原因の検討を議論しながら進めることで、良い成果が得られたと思います。チームとして分担、協力しながらイベントに取り組むことがグランプリという成果に結びついたと考えており、今後より一層部内メンバーとの連携を高めていきたいと思いました。
● 片渕凌也さん
「白神山地の情報がヒットしない!」などと、RAGの精度改善に向けて課題を一つ一つ議論し、原因追及を丁寧に実施したことで最終的に高精度のRAGを構築できたと振り返ります。また本コンペを通して、RAGの技術を色々と試せたことに加え、他社様のアプリケーション設計と短期間で"モノ"にするスキルに驚くとともに、アプリ開発の知見を楽しく学ぶことができました。今後もコンペなどに挑戦し、学びを継続させていきたいと改めて思いました!
イベントの様子
メディア掲載記事
主催元の Ascii.jp による記事で、各社の発表内容が取り上げられていますので是非ご覧ください。(日立は6ページで紹介されています)
★ 参加メンバーのQiitaブログ記事
ASCII×マイクロソフトの生成AIコンテスト AI Challenge Dayに参戦 #Python - Qiita
関連リンク