【GitHub x サイバーエージェント共催】GitHub Copilotで変わる開発文化の現実 https://cyberagent.connpass.com/event/292982/
サイバーエージェントのGitHub Copilot導⼊と開発⽣産性株式会社サイバーエージェント CTO統括室 黒崎 優太 (@kuro_m88)【GitHub x サイバーエージェント共催】GitHub Copilotで変わる開発⽂化の現実
View Slide
ࠇ࡚ ༏ଠגࣜձࣾαΠόʔΤʔδΣϯτ AIࣄۀຊ෦@kurochan@kuro_m88αΠόʔΤʔδΣϯτ CTO౷ׅࣨ
普段の仕事• AI事業本部にて⼩売企業のDXを⽀援をする事業をやっています• スマホアプリ開発• データ分析基盤構築
インターネットゼミ• インターネットの勉強をするゼミ• 社内ゼミ制度• サイバーエージェントの実験⽤ASであるAS63 79 0を運⽤しています
最近書いた記事• サイバーエージェントのGitHub CopilotのAnalyticsデータを公開! 利⽤開始から約3ヶ⽉でエンジニアの⽣産性は向上したのかhttps://developers.cyberagent.co.jp/blog/archives/9
本⽇話すこと• サイバーエージェントとAI• GitHub Copilot全社導⼊まで• GitHub Copilot活⽤状況• 開発⽣産性と向き合う
サイバーエージェントとAI
AI事業本部設⽴@2019年https://www.cyberagent.co.jp/way/list/detail/id=3
AI Lab• AI技術の活⽤に取り組む研究組織。2016年設⽴。• Top1 00Global Companies Leading in AI Researchにて⽇本4位、世界36位。• 権威ある国際学会や論⽂誌において論⽂が多数採択。
AI Lab• 内製⽇本語LLMは130億パラメータまで開発を完了。プロダクト利⽤開始。• 国内のAI技術発展に貢献するため68億パラメータのLLMを⼀般公開。
ChatGPTの事業活⽤• 「ChatGPTオペレーション変⾰室」設⽴(4⽉上旬)
ChatGPTの事業活⽤• マッチングアプリで「プロフィール添削AI」を提供(4⽉上旬)
ChatGPTの事業活⽤• ⾃社LLM技術を利⽤した広告コピー⾃動⽣成(5⽉)
若⼿もAI事業を牽引https://www.cyberagent.co.jp/way/list/detail/id=8
GitHub Copilot全社導⼊まで
GitHub Copilotを使ったことがある社員が現れる• Slackのtimes(雑談チャネル)でCopilotを個⼈で使っている社員を発⾒• 週末など、個⼈で使ってみている社員がじわじわ増えてきていた
⾃分のチームで使ってみてもらう(3⽉下旬)• まだ全社⽅針は定められていないが⼈を絞って複数部署で試験運⽤してみる• 肌感覚を得る & すぐにフィードバックしてCTO統括室で導⼊⽅針の判断• ⾃分のチームであればコントロールが効きやすいという判断
Copilot以外にも⽣成AIツールの需要が(3⽉下旬)• 縛りすぎないが最低限は担保するガイドラインを急いで作る• CTO統括室+有志でガイドラインを策定して役員 & 法務レビュー• 各部署から協⼒者を募ることでおおよその⽅針を共有する
サイバーエージェントのセキュリティの考え⽅• 体を守るために免疫は⼤切だが、免疫が強すぎるのも逆効果https://www.cyberagent.co.jp/way/list/detail/id=8
Copilot導⼊に向けて申請フローを整備する(4⽉上旬)• ⼤規模導⼊しているSaaS等(GitHub含)の請求管理をしているチームに これから起きることを相談 🚨🌊🏄• GitHub Issueで申請してorg単位で有効化→個別のライセンス付与はorg ownerに権限委譲
⽣成AIガイドライン暫定ルールリリース!(4⽉中旬)• 各部署の有志の協⼒者のおかげでスピード感を持ってリリースできました• それぞれの部署の観点からの情報が集まってきたのがとてもよかった
⽣成AIガイドラインについてhttps://developers.cyberagent.co.jp/blog/archives/8
ガイドラインリリースに合わせてCopilot利⽤開始!(4⽉中旬)• 多くの社員の協⼒のおかげでスピード感を持って導⼊ができました🎉
GitHub Copilot活⽤状況
GitHub Copilot活⽤状況• 以前の記事からさらにどう変化したのかもご紹介します!• 数値の注意• Full Accept(Copilotの推薦をそのまま全て採⽤)のみの数字です。• VSCode以外の環境での利⽤状況は含まれていません。• Copilot for Businessには個⼈のGitHubアカウントを紐づける利⽤形態のため、業務外での利⽤のAnalyticsも⼀部含まれています。
GitHub Copilot活⽤状況(5/18-7/16)
GitHub Copilot活⽤促進• 各部署で⾃主的に勉強会を実施 & 録画を全社共有
GitHub Copilot活⽤促進• 各部署で⾃主的に勉強会を実施 & 録画を全社共有• 半⽇で700回再⽣🎉• 他部署も負けじと情報発信🔥
GitHub Copilot活⽤状況(7/17-9/4)
GitHub Copilot活⽤状況• ユーザ数の変化• 500ユーザ以上 → 800ユーザ以上: 60⽇で1.6倍に増加 ⤴• 推薦を受け⼊れたコードの⾏数•3.2K LoC/day →6.0K LoC/day:6 0⽇で1.9倍に増加 ⤴• 計測開始以降受け⼊れたコードの⾏数•49 0.4K LoC /1 10day 💻
⾔語別• サイバーエージェントの 技術スタックが現れているかも
黒崎のCopilotの使い⽅• SlackのAPIを使ったbotを書いていた• ドキュメントに載っていない知識を前提にしたコードを提⽰してくれた
黒崎のCopilotの使い⽅• SlackのAPIを使ったbotを書いていた• たまに誤ったコードも推薦されるので注意は必要
プログラミング初学者のCopilotの使い⽅• ビジネス職でプログラミングを勉強している社員• Copilotでコードを推薦してもらう → Copilot Chatに質問をする のループ• 分かるまで聞き直す、説明に⽭盾があれば指摘する のループでプログラミングを学習する• 先輩(orエンジニア)に今更聞きたくても聞けない質問のハードルを下げる効果もあり
GitHub org別(7/17-9/4)• サイバーエージェントでは組織やプロダクト等の単位でorgを分割している• GitHub org別のメトリクス• orgあたりの平均: 660 〜 910LoC / user
GitHub org別(7/17-9/4)• サイバーエージェントでは組織やプロダクト等の単位でorgを分割している• GitHub org別のメトリクス• orgあたりの平均: 660 〜 910LoC / user• ⾚枠のorgの平均:828 2LoC / user
GitHub org別(7/17-9/4)• サイバーエージェントでは組織やプロダクト等の単位でorgを分割している• GitHub org別のメトリクス• orgあたりの平均: 660 〜 910LoC / user• ⾚枠のorgの平均:828 2LoC / user• 明らかに突出しているorgがある• 2⼈しか居ないのでユーザを特定して話を聞かせてもらってみた
話を聞いてみた
オンライン診療プラットフォーム「TOIRO美肌院」
オンライン診療プラットフォーム「TOIRO美肌院」• 制作したもの• 広告⽤ランディングページ• LINEチャット• 予約管理システム• Amazon Chimeを⽤いた通話機能• 医師向けの専⽤ページ• 開発チーム• 2名• 開発期間• 4ヶ⽉
Copilotを活⽤したコーディングのポイント• 実装を始める前にコメントで実装内容を記述• 50-70点くらいの品質のコードが⽣成されることが多い• ⽣成されるまで待つ!• 100点のコードを期待しない• ⽣成されたコードをベースに実装を拡張していく• できる限り⾃分で書かない• ⽣成されたコードがベースなので追加の推薦も期待しやすい(はず)
Copilotを活⽤したコーディングのポイント
Copilotを活⽤したコーディングのポイント• 実装を始める前に参考にしたいコードをコメントとして貼っておく• 参考にしたいコードの下にそれっぽい変数名を定義する• ⽂脈が⾮常に⼤切なので必要な情報を明確に渡す
Chat GPTも活⽤する• よく使うプロンプトはクリップボードに
プロンプトの例
プロンプトのテンプレートをメンバに共有する• プロジェクトのドキュメントに記載して、メンバが活⽤することで チーム内のコードに統⼀感が⽣まれるとのこと• ⾶び道具的な使い⽅をしているのかと思ったが、とにかくCopilotやChatGPTにコードを書かせているだけだった• とはいえここまで数字に現れるとは思っていなかったので知⾒だった
開発⽣産性と向き合う
https://www.cyberagent.co.jp/way/list/detail/id=5開発⽣産性と開発体験の部署
⽣産性が上がると得られること• 作業量のXX%はAIツールの利⽤によって削減ができます🙋• リリースサイクルが⾼速化されて1⽇あたりのリリース回数がYY回増えます🙋• これまでの半分のチームサイズでサービス開発ができます🙋• リリース後に発覚するバグの数がZ%減少しました☺
開発⽣産性と向き合う• 「⽣産性」だけを突き詰めていくとどうなるんだろう…?
「ムダ」から⽣まれるものhttps://youtu.be/uN6
技術は「いたずら」のような物から⽣まれるhttps://dnobori.cyber.ipa.go.jp/ppt/download/0%9
「作る経験はコピーできない。」
開発⽣産性と向き合う• ⽣成AIの活⽤でエンジニアの平均的な開発⽣産性はどんどん上がるはず。• 短期的には⽣成AIの活⽤による⽣産性向上が武器になるはず。• 中⻑期的にはそれが当たり前になるはず。• ⼀⽅でソフトウェア開発は決まったものを⽣産する活動ではないはず。• ⽣産性が向上した分をどこに投資するのか?• ソフトウェアエンジニアは何を⽣み出していくのか?
まとめ• サイバーエージェントがGitHub Copilotを導⼊するまでの流れ• スピード感とみんなの協⼒が⼤事!• GitHub Copilotを導⼊してどんな変化があったか• メキメキ開発速度を上げている⼈も出はじめた!• 開発⽣産性との向き合い⽅• ソフトウェアエンジニアとしてこの先⽣きのこるには…• つづきはパネルディスカッションで!