【三宮.dev × つながる勉強会 共催】AIテックハッカソン2023にて見事優勝!1ヶ月にわたる長期イベント参加の裏側を紹介します!
テック界隈でよく耳にする「ハッカソン」。hack(ハック)とmarathon(マラソン)を組み合わせた造語で、ITエンジニアがチームを組み、与えられたテーマに関するソフトウェアやサービスを期限内に開発するイベントのことを指します。斬新なアイデアや技術力の高さが評価の対象とされ、オープンイノベーションが誕生する可能性を秘めたイベントとしても近年注目を集めています。
今回は株式会社SceneLiveのエンジニア2名が参加した「AIテックハッカソン2023」での様子について、詳しく伺いました。
AIハッカソン2023 参加メンバー【プロフィール】
服部さん(右) / 開発本部 ソフトウェア開発部
前職ではSIerにて鉄道システムの開発に従事。2021年に株式会社SceneLiveへ転職し、同社の主要サービスである『List Navigator.』のフルリプレイスを担当してきた。現在は『List Navigator.』プロジェクトのチームリーダーを務めている。
廣井さん(左) / 開発本部 ソフトウェア開発部
前職はSIer、さらにはSESにて受託開発を担当。システム開発を手がけてきた経験を活かし、株式会社SceneLiveへ転職した。『List Navigator.』プロジェクトのメンバーとしても活躍中。
ーー「AIハッカソン2023」について詳しく教えてください。
服部さん:
神戸市、ITエンジニアコミュニティ、IT勉強会コミュニティの合計3つの団体が共同開催したイベントです。1ヶ月にわたって開催される長期ハッカソンイベントとなりました。今回探究するテーマは「AI(機械学習)関連の技術」。「AI関連技術の有効的な活用方法」はまだ事例が少なく、ハッカソンにおいて模索・共有してみようとの目的でこのテーマが採用されました。自由なアイデアが実現できるハッカソンにぴったりなテーマだったと思います。
4月22日(土)にテーマが告知され、5月27日(土)に参加チームによる成果物の発表がありました。その後発表の結果が伝えられ、その後は交流会も開かれました。最先端のIT技術の知見を高め、有効活用する機会となりました。
ーー「AIハッカソン2023」に参加した理由は?
服部さん:
実は運営スタッフのひとりと知り合いで、「AI技術の開発に挑戦してみない?」と誘われたのがきっかけでした。開発部の仕事でAIに携わることも多少はあったため興味もあり、やってみることにしたんです。
大規模言語モデルChatGPTは、開発メンバーの中でも当然話題になっていました。ただ企業の生産性向上に直結するアイデアや、新しいものを生み出すためにどう活かすかといった具体的な形まではまったくの未知数。部分的な導入や検証段階として試しに作ってみる程度でした。「AIハッカソン2023」を足がかりに、社内の生産性向上や新たなプロダクト開発に活かせたら良さそう。当初は、そう思っていましたね。チームを集めてイベントに参加し、何かを作る取り組みは楽しいものです。社内のプロダクト開発とは違った楽しみがあり、新しい技術に挑戦できる喜びがありました。
廣井さん:
服部さんから「ハッカソンに参加することになりました。興味のある人いますか?」と呼びかけがあったんです。その呼びかけに乗っかる形で「参加します!」と手を挙げました。自分自身のスキルアップにつなげるため、新しい技術を積極的に取り入れようとの姿勢で臨みました。テーマが告知されてから「こういう方向性で開発しよう」とは決めていたものの、途中で様々なアイデアが浮かび、追加したい機能も増えたんです。良さそうなアイデアはどんどん出し合って、2人で肉付けしながら開発を進めました。仕事と並行して取り組んでいたので、正直大変でした。でもすごく楽しくて、毎日夢中でした。SceneLiveはこういった取り組みを応援してくれる文化があるので、没頭して開発に勤しんでいましたね。
ーーテーマ発表〜当日までは1ヶ月の長期間。どのように開発を?
服部さん:
4月22日にテーマが告知されてから1ヶ月間でテーマに沿った何かしらのプロダクトを作り、最後に発表するまでがハッカソンになります。
まずは廣井さんに「こういう機能を実現してみたいね」と相談するところからスタートしました。最初は話し合いを重ねて、やってみたいことを全てその場に出しました。その上で残り1ヶ月で現実的にどこまでできそうかを判断し、すぐに実現できる部分から開発をスタートさせました。ある程度使える状態のものが出来上がったら、それを維持しながら少しずつ機能を追加していきます。当初目指していたゴールとは少し違ったものにはなりましたが、実用できる機能を盛り込むことができました。
ーー実際にどのようなものを作ったのでしょうか?
廣井さん:
私たちが手がけたのは、データ可視化ツール「sAIneria(サイネリア)」です。社内で蓄積されたデータを気軽に抽出し、可視化する目的で開発しました。
以前、エンジニアではない社員から「SQLを利用してデータを抽出したい」と要望されたことがありました。SQLはプログラミング言語に近く、専門性が高くて扱いがとても難しいもの。結果として頓挫してしまった経験があり、この課題を解決するものが作れないだろうかと考えたんです。エンジニアですら苦手意識を持つ人も多い「SQLによるデータ抽出」が可能になれば、他の場面でも役に立ちそうじゃないですか。営業でもデータを活用するプロダクトがあれば助かるでしょうし、データに関する感度が上がれば分析スピードも速まり、業務効率もアップします。なるべくデータ抽出・分析のハードルを下げ、可視化できるようなものを目指しました。
メインの開発言語はPythonです。社内ではVue.jsとLaravelでプロダクト開発をしていましたが、どうせならとことん挑戦しようとあえて全く別の言語を使って挑戦しました。自然言語としては単純な日本語の文字を入力し、そこからデータを抽出するSQLを生成。さらに可視化するグラフの自動生成を可能にしました。これなら操作している人も「実行に移して良いかどうか」を簡単に判断できます。
最初の壁となったのは、セキュリティです。自社のデータ・個人情報を外部に一切出さず、活用できるかどうかが課題でした。例えば、ChatGPTは具体的な指示を入力すると外部にデータが送られて結果が出力されます。そうではなく、指示を入力した後に直接生成できるように開発しました。
次の壁は、可視化されたグラフの生成です。CSVから生成できるようLangChainを活用しました。LangChainはまだ実用化されて日が浅く、ChatGPTを使いやすくしたツールのようなものです。それをさらにカスタムして使用しました。こちらも同様に、自社のデータを外部に流さずにグラフを生成することを目指しました。「指示→結果」ではなく、「指示→可視化コード」が生まれるプログラムにフォーカスを当てた開発となりました。
データを可視化するには、データの取りうる範囲である「最小値・最大値・平均値」が重要になります。発表の際にはこうしたデータの扱いについて説明するために、デモ動画とパワーポイント資料を駆使しました。プロンプトが見える形で発表したので、使う時のイメージがしやすかったのではないかと思います。
今回使ったツールは、いずれもまだ実験的なものばかり。論文を元に実験的に実現したものが多く、カスタムと検証を繰り返し、調べながら作っていきました。
ーー苦労したポイントについてもお聞かせください。
服部さん:
グラフを可視化する部分です。データの中身である「値」を使わずに、どのようにグラフを生成するかは本当に悩ましいポイントでした。そのための検証に、ほとんどの時間を費やしました。
例えば、AIへの指示文を細かく修正していくんです。まず日本語で指示を出し、次に英語で最適化する作業を100回ほど続けます。その後、指示文を少しずつ変えながら100〜500回ほど同じ作業を行います。表示するデータの中身を変えながら結果を照らし合わせ、何度もトライアンドエラーを繰り返しました。
廣井さん:
私はデザイン画面を担当したのですが、使える時間が限られていたことに苦労しました。仕事で担当しているプロジェクトも抱えながら対応するため、優先度の高いものから選択し、進めていくのが大変でしたね。少ない労力で最大限の成果を得るために、実現しやすい機能から実装していくことを学びました。
ーーどのような評価をいただいたのでしょうか?
服部さん:
なんと「優勝」しました!
データの中身である「値」をオープンAIに直接渡さず処理できる点をメリットとして感じてもらえたようです。自社のデータには個人情報が含まれているため、データを渡さずに実行するプログラムが必須です。セキュリティを守りつつ、誰でも簡単にデータを可視化・分析できるツールが作れたことが、高い評価に繋がりました。
現段階でAI機能を専門的に開発しているエンジニアも「どのように自社データと組み合わせて活用するか」を模索している最中だと思います。仕組み自体は、そこまでオープンには広がっていないからです。
また、神戸市の担当者からは「この仕組みをぜひ活用したい」と名刺をいただき、興味を持っていただけました。「実際にビジネス展開もできるほど完成度が高い」との声もあり、想定外の高評価でした。ちなみに「AIハッカソン」ということで、AIも審査員を務めていたのですが、人間の審査員と違って辛口な評価をつけてくれました。改善点まで指摘してくれて、非常に興味深かったです。
ーー他の参加者の様子は、いかがでしたか?
服部さん:
学生が多く、とても活発に質問してくれました。「外部AIに自社のデータを渡さない仕組みとは?」「1回のグラフ生成につきAIと何回やり取りをしているのか?」など、かなり具体的な質問内容でしたね。
学生の発表の中で印象に残ったものはAIによる画像検索でメニューを特定し、食べたいものを効率良く選ぶためのツールです。画像の中から自分の食べたいものを検索し、提供しているレストランを特定できるというものでした。
また学生にとって、データ分析は日常的に行っているものなんですよね。大学の研究で日々使っているためアプローチ方法に対するアドバイスももらえて、非常に刺激になりました。自分たちの未熟な部分も見えて、拡張に向けた方針も立てることができました。
廣井さん:
20歳ぐらいの若い女性が、すでにVRの会社を立ち上げていてびっくりしましたね。「AIにも興味があって、ハッカソンに参加した」とコメントをしていて、もっと頑張らないととエネルギーをもらいました。
ーー今回の経験をどのように仕事に活かしたいと思いますか?
服部さん:
今回はAIに特化したハッカソンでしたが、自分たちが得意なプロダクトにおける技術や業務領域に踏み込んでいるハッカソンもあるはず。こうしたテック系イベントには、今後も積極的に参加したいです。めちゃくちゃ楽しみながら作っている学生を見て「なんかいいな」と思いました。
楽しみながら開発するって、仕事をしていると忘れてしまいがちです。ハッカソンには初参加でしたが、会社のメンバーを誘ってやってみて、プロダクト開発とは異なる楽しみがあると気づきました。新しい技術を使ったものづくりをしてみると、知識のキャッチアップも速くなります。廣井さんはもちろん、アイデアを出してくれたり、後押ししてくれたりしたメンバーもいました。こうした社員が気軽に挑戦できる環境があることは、とてもありがたいです。
廣井さん:
ハッカソンに参加する前からChatGPTを使って、自分の作業効率が飛躍したと感じていました。今後はさらに作業効率が高まるようになれば嬉しいですし、周りのメンバーにも「sAIneria(サイネリア)」を使ってもらいたいです。
他にも社内のチャットツールにChatGPTを導入したり、音声から議事録を作成するアプリを作っているところです。社員みんなでAIを活用しながら、会社全体のパフォーマンスが上がれば最高ですね。これから入社してくる方とも、一緒に楽しく開発に携わりたいと思います。