パソナのエンジニアが「AWS Japan 生成AI ハッカソン」に参加
アマゾン ウェブ サービス ジャパン合同会社(AWS Japan)が主催する「AWS Japan 生成AI ハッカソン」にパソナのエンジニアを中心に参加しました。
日時:2024年10月31日
場所:ザ・プリンス パークタワー東京 B2 コンベンションホール
アマゾン ウェブ サービス ジャパン合同会社(AWS Japan)が主催する「AWS Japan 生成AI ハッカソン」にパソナのエンジニアを中心に参加しました。
日時:2024年10月31日
場所:ザ・プリンス パークタワー東京 B2 コンベンションホール
DX
2024/12/20 UP
- クラウド
- AWS
- 働き方
はじめに
アマゾン ウェブ サービス ジャパン合同会社(AWS Japan)が主催する「AWS Japan 生成AI ハッカソン」にパソナのエンジニアを中心に参加しました。
ハッカソンの成果発表会では、予選を勝ち進み最終プレゼンテーションまで進みました。そこでは全体で3位という高評価をいただきました。
この記事を通して、イベントの概要や作成したアプリケーションのご紹介、そしてその過程で直面した困難や解決するために工夫した点についてお伝えします。
イベント概要
本ハッカソンのテーマは「生成AIを活用したアプリで社員がもっと楽しく、楽に仕事をすることが出来る仕組みを作ろう」というもので、Amazon Bedrockを使用することが条件でした。今回のハッカソンのスケジュールは以下の通りです。
- ・アイデアソン:2024年10月11日(オンライン)
- ・開発期間:2024年10月14日〜25日(オンライン)
- ・成果発表会:2024年10月31日(オフライン、AWS AI Dayに参加)
私たちは9月30日に本イベントの存在を知り、応募締め切りが10月2日と迫っているなかで急遽出場を決め、並行してチームを編成して応募しました。
4名までメンバー登録が可能だったので、インフラ・サーバサイド・フロントエンド・企画という役割分担を軸にチームを組みました。
開発予定のユースケースおよびアプリの構想
応募にあたり、開発予定のユースケース・アプリの構想を提出し、それを元に出場の選考が実施されました。
私たちのチームは、生成AIを活用しつつ以下のような構想を提出しました。
アプリ概要
人材会社の株式会社パソナが提供する本アプリは、求職者が求人企業の仮想採用担当者(AI)と面接ロールプレイを行い、面接力を向上させるシミュレーションサービスです。
面接対策をゲーム感覚で行い、指定された時間内にいかに多くのポイントを獲得できるかを競います。面接シミュレーションの流れ
・指定された面接時間内に、AI面接官からの質問に回答し、いかに多くのポイントを獲得できるかを競います。
・回答内容の論理性、説得力、自己PR力をもとに、AIがリアルタイムで採点し、通過率を予測します。ゲーム感覚で面接力を向上
・面接中にリアルタイムスコアを表示し、求職者がどの部分で得点したかを確認できるようにしました。
・面接終了後にはAIがフィードバックを提供し、改善点と成功の要素を具体的に提示します。目的
・求職者がゲーム感覚で面接力を鍛え、実際の面接においても自信を持って臨めるよう支援し、求職活動の質を向上させることを目指します。
応募の2日後に選考通過の連絡が来まして、40組応募中の12組に選ばれました。
構築したアプリケーションについて
私たちのチームが作成したのは、「AI面接エージェント」というアプリケーションです。
主にパソナ社内の人材紹介事業(転職支援サービス)に従事する方の業務を支援することを想定し、企画を進めました。
転職支援サービスでは、1人の担当者が複数の求職者を担当することが多いため、担当者の負担が非常に大きいのが課題となっていました。
今回のアプリケーションでは、求職者向けの面接練習にAIを活用することで、担当者の負担を軽減し、求職者に対する面接練習の質を上げることを目指しました。
上記の画像のようにテキストでのやり取りはもちろん、よりリアリティのある面接練習を実現するため、AIとユーザー間で音声でのやり取りも可能となっています。
また、ハッカソンのテーマに「楽しい」というキーワードが含まれていたので、どうにかワクワク要素を取り入れられないかと検討した結果…
面接官のアバターにギャルアバター面接官とおじいちゃんアバター面接官を取り入れました。
チームメンバーの中ではギャルアバター面接官が人気で、動作検証の際はギャルとばかり喋っていたメンバーもいました。
アーキテクチャ
- ・サーバサイド:Python / FastAPI
- ・フロントエンド:React / TypeScript
肝となるBedrock部分については、精度の高さを重視してClaude3.5 Sonnetを使用しました。
ユーザーが音声で発話した内容は、Amazon Transcribeを使って文字起こししたうえでBedrockに投げています。
また、 Bedrock Converse APIを使用し、面接官のテクニックや企業の情報などのドキュメントを含めてインプットするようにしています。これにより、企業ごとの面接対策が可能となります。
工夫した点・苦労した点
テキストベースのやり取りだけではハッカソンで戦えない!ということで、 Transcribeを活用した音声対話を困難ななかでも実現したことが最大の工夫したポイントです。
現状、Amazon Bedrockではリアルタイムで音声のやり取りできる生成AIモデルは存在しないため、以下の工程を経なければなりません。
ブラウザから音声を送信→音声を文字変換→プロンプト文と共に生成AIに投げる→文字の回答を得る→文字を音声に変換する→ブラウザにて再生
そのため、通常のやり取りだと対話の待ち時間が発生し、現実的なサービスとならないため、以下のような工夫をしました。
- ・WebSocket通信により断続的に音声をサーバーへ送信
- ・Transcribeストリーミング文字起こしを利用し、起こされた文字を断続的にブラウザへ送信、ユーザー発話内容を画面に順次表示できるようにする
上記の対応により多少のストレスは緩和されましたが、今後サービスとしてリリースするには更なる改善が必要だと感じています。
アバターの機能については、リップシンクにも対応しているD-iDという外部サービスを契約して使用しています。2週間という期間で実装するために急遽探した選択肢だったため、実際に「AI面接エージェント」をサービス化するときには、費用面なども考慮して別の実現方法を模索する必要がありそうです。
また、本サービスはToC想定のため、開発サイクル、セキュリティなども重視し、 GitOps、DevSecOpsなどの仕組みも導入できるようにしました。
決勝出場、そして3位に
10月31日の発表会は、ハッカソンに参加した全チームによる予選から始まりました。
テーマが「生成AIを活用したアプリで社員がもっと楽しく、楽に仕事をすることが出来る仕組みを作ろう」だったので、クスッと笑える要素があったり、細部まで作り込まれていたり、プレゼンテーションまで素敵にデザインされていたり、どのチームのアイデア・発表も素晴らしく、とても勉強になりました。
そのような中、決勝に進む3チームの中に名前が入っているのを見たときには、チームメンバー4人で思わずガッツポーズをしてしまうほど嬉しかったです。
決勝は、AWS AI Dayのイベントの中の一企画として行われ、一般のお客様も入った状態でのプレゼンとなりました。大きくてきらびやかな会場で自分たちの作ったものが紹介されるという、なかなか得難い経験ができたと思います。
最終順位は決勝に進んだ3チーム中3位に終わり、悔しさと達成感の入り混じった1日となりました。
振り返ってみると、私たちの作ったプロダクトは、自社の業務にフォーカスした結果「社員がもっと楽しく、楽に仕事をする」という趣旨から遠ざかっていたようにも思います。
プロダクトの質はもちろん、アイデア出しやプレゼンの仕方という面からも学ぶことの多いハッカソンでした。
ハッカソン期間中にサポートしてくださったAWSの皆様、懇親会で交流してくださった参加チームの皆様、本当にありがとうございました。
まとめ
いかがでしたでしょうか。
今回は「AWS Japan 生成AI ハッカソン」に参加した内容をご紹介いたしました。
パソナの社員としてとっても誇らしいですね!
https://x-tech.pasona.co.jp/recruit/