- AWS›
- 導入事例
EXNOA、Amazon Bedrock によるソースコードレビューの自動化で数日かかるレビューを 1 時間以下に短縮するとともに精度を向上
ゲーム
概要
課題・ソリューション・導入効果
ビジネスの課題
年間 30 件以上のソースコードレビューの時間短縮
DMM.com グループの一員として、3,500 万人のゲームユーザーが集まるプラットフォーム『DMM GAMES』を運営する EXNOA。現在、国内外のオンラインゲーム 250 本以上を配信し、約 13,000 本のパッケージゲームをダウンロード販売しています。
自社タイトルの開発に関する技術面全般を支援する技術統括本部では、技術評価の 1 つとしてソースコードレビューを担当しています。開発タイトルは年間 10~15 本以上におよび、1 つのタイトル開発に対してアルファ版、ベータ版、RC 版と開発の区切りごとに最低 3 回のレビューが発生します。その他、個別での対応を含めるとレビュー件数は年間 30 件以上に達します。サーバーサイド、クライアントサイドそれぞれで 2~3 名のエンジニアが目視で行うソースコードレビューでは 2~3 日間かかるレビュー時間の短縮が課題となっていました。「開発パートナーごとにシステム全体の作りが異なる、独自の技術やフレームワークが使われている、オフショア開発によりコメントが外国語で記載されているなど、レビューで確認する範囲が広いため、1 回のレビューに要する時間が長くなる傾向にありました」と語るのは、技術統括本部情報管理室 室長の小野寺崇氏です。
そこで同社は大規模言語モデル(LLM)の活用を検討。まずは部内のプルリクエスト開発において、ワークフローによる AI レビューに取り組みましたが、思うような結果が出ないことから異なるアプローチを検討しました。技術統括本部 技術推進部 部長の高嶋俊作氏は「コードの差分を見るだけではレビューの内容が極小化されてしまい、参考にならない指摘が出てきました。そこで、新たなアプローチとしてソースコードを丸ごと AI に渡し、人が見るべき箇所を自動的にピックアップしてもらうことで、工数の削減を図ることにしました」と語ります。
ソリューション
入力可能なトークン数の多さを評価して Claude を採用
ソースコードの 1 次レビューに向けて、複数の LLM を検証した同社は Amazon Bedrock の Claude に着目しました。技術統括本部 技術推進部の川瀧嘉和氏は「検討当時の Claude3.5 sonnet が 200K トークンに対応していたことから、長文のソースコードが読み込めると判断しました。Amazon Bedrock は入力データを学習に利用しないと規約で明言している点においても安心感がありました。加えて、自社開発のタイトルの多くが AWS 上で稼働していることから、技術的な親和性も考慮して採用しました」と語ります。
レビュー自動化ツールの開発は 2024 年 4 月に着手し、2024 年 9 月より利用を開始しました。アーキテクチャの設計や構築は内製で実施。Amazon Elastic Container Service (Amazon ECS) や Amazon Elastic File System (Amazon EFS) を活用したシンプルな構成とし、LLM の実行は多段階構成とすることで的確な回答が得られるようにしました。
利用の流れは次のようになります。ソースコードを ZIP ファイルで投入すると、対象ファイルとレビューデータを自動で作成した後、Claude3.5 sonnet でレビューを実行して結果を解析します。次に各提案を Claude3.5 sonnet で再び評価して有効な提案をピックアップし、結果を優先度順にソートしてファイルに出力します。
検証は既存の評価済みのゲームタイトルやプルリクエスト開発のコードを活用し、サーバーサイドを中心に実施しました。当初は思うような提案が出てこなかったり、要求レベルを超えた提案が出てきたりしたものの粘り強く調整を続け、外部の開発パートナーにも配慮しながら進めました。
「開発パートナー独自の技術やセンシティブなパスワード・秘密鍵などレビューの対象となる項目を整理し、開発パートナーの担当者にも AI でレビューすることや、ソースコードが学習されないことを説明して理解を得ました」(小野寺氏)
新たに開発するゲームタイトルに適用するにあたっては、同社の経営層にも説明して理解を得たうえで本番利用を開始しています。執行役員で技術統括本部 本部長の村松厳氏は「役員全員から満場一致で即承認、“積極的に活用しましょう”、“使わない理由はない”、と言った声に強い手応えを感じました。事業部一体となって推進するムードの醸成にもつながりました」と振り返ります。
導入効果
工数短縮、コスト軽減、コードレビューの質向上を実現
プロダクトコードとして『Sphinx Solver(スフィンクス・ソルバー)』と命名された自動レビューツールは、ZIP ファイルをアップロードするだけで結果が出られるように UI を工夫したことで、誰でも簡単に利用することができます。
利用開始から 1 か月で数本のゲームタイトルでソースコードレビューを実施した段階において、時間短縮において目に見えた効果が得られました。
「ファイルサイズ 6.5MB のサーバーサイドのコード解析において、約 45 分で 1 次レビューが完了しました。エンジニアによる 2 次レビューの負荷が格段に軽減されました。特に、判断が難しいソースコードにおいて、検証項目を自動でピックアップできるメリットは大きく、2~3 日はかかると思われる作業が 1 時間から半日程度で完了します」(小野寺氏)
1 次レビューを自動化した現在もレビュー全体にかける時間は、従来と変わらず 5 営業日を確保しています。これにより 2 次レビューでは、時間をかけて幅広い観点から深掘りした指摘ができるようになりました。
「1 回あたりの 1 次レビューが 安価になり、レビューの精度を高めたり、目視では気付けない指摘が得られたりするため、高いコストパフォーマンスを獲得することができました」(小野寺氏)
ゲーム開発の技術面全般を支援する技術統括本部においても、生成 AI の強みと自ら課題を見つけて独自のワークロードを組み上げ、業務の効率化に貢献できたことは大きいと村松氏は評価しています。
「社内や社外のスタッフが多く関わる領域において、技術レビューの決まったワークフローに AI を適用して一定の成果を出せたことはプロジェクトとしても意義があり、EXNOA のゲーム開発事業部全体として技術レベルの底上げになりました」(村松氏)
今後については、ソースコードのレビューに留まることなく幅広い業務に適用し、全社で活用を拡大していくことを検討しています。
「フレームワークとしてある程度の設定変更で利用できるように汎用化を進め、テキストベースのドキュメントや技術文書などのレビューへの適用も検討していきます。さらにはチーム内に限らず EXNOA 全体に拡大し、ゆくゆくは社外に対しても提供を考えてみたいと思います。テキストだけでなく画像や動画、音声などのマルチモーダル対応に向けて、AWS には引き続きのサービス拡張に期待しています」(高嶋氏)
Amazon Bedrock の導入でソースコードの 1 次レビューが 1 時間程度で終了するようになり、業務の品質向上、および効率化を実現することができました
村松 厳 氏
合同会社 EXNOA 執行役員 技術統括本部 本部長アーキテクチャ
合同会社 EXNOA
取組みの成果
-
数分~ 60 分 - 1 次レビューに要する時間
-
30 件以上 - 年間のレビュー実施数
-
技術的に深掘りした指摘の獲得
-
1 回あたりのレビューコストの低減
本事例のご担当者
村松 厳 氏
高嶋 俊作 氏
川瀧 嘉和 氏
小野寺 崇 氏