目次
この記事の投稿者について
「生成AI徹底理解リスキリング for Developers」とは
本題
「for Developers」の目的とゴール
チーム for Developers
「for Developers」のカリキュラム
「for Developers」の結果
約1カ月の研修期間でエンジニア社員がLLMを組み込んだ機能を大量に実装出来た理由
この記事の投稿者について
こんにちは。株式会社サイバーエージェントの経営推進本部という組織に所属している片岡です。
2005年に中途入社し、最近は「リスキリングセンター」という全社横断施策で、主にエンジニア社員の育成施策を企画設計運用する仕事に大半の時間を費やしています。
その他「あした会議」や、技術者版あした会議の「CA BASE SUMMIT」を設計運営する仕事などもやっています。
「あした会議」とは、弊社の役員や事業責任者が新規事業や課題解決について提案・決議する場です。
「CA BASE SUMMIT」とは、弊社のエンジニアとクリエーターが社内制度や課題解決について提案・決議する場です。
「リスキリングセンター」は「あした会議」の場で決議された社内施策です。
「生成AI徹底理解リスキリング for Developers」とは
「生成AI徹底理解リスキリング」は技術者版あした会議「CA BASE SUMMIT」の場で、株式会社AI Shiftに所属する友松が提案し、社長の藤田を含む複数の審査員によって決議された、全社的なAI人材育成プロジェクトです。
提案者でかつ実行責任者でもある友松が、先日こちらのCyberagent Developers Blogへ
-
- 「CA BASE SUMMIT」で提案して決議されるまでの経緯
- 第一弾の施策 として全ての社員向けに実施した「生成AI徹底理解リスキリング for Everyone」の内容と結果
- 「生成AI徹底理解リスキリング for ・・・・・」の長いネーミングの由来
などについて投稿しているので、まだご覧になってない方は是非ご一読ください。
全社員・役員が受講!「生成AI徹底理解リスキリング」 – 6300名、99.6%完了の裏側
今回の記事は「生成AI徹底理解リスキリング」の第二弾として、エンジニア社員向けに実施した「生成AI徹底理解リスキリング for Developers」に関する内容です。
ちょっと長いので、以下「for Developers」と表記しますね。
本題
「for Developers」の目的とゴール
サイバーエージェントグループが生成AIで業界を牽引している状態目指す
これが「for Developers」に限らず「生成AI徹底理解リスキリング」の一連の施策を実施する目的です。
弊社では「キモ」と言います。
全社員向けに実施した「for Everyone」の後、エンジニア社員向けの「for Developers」を企画するにあたり、改めて責任者の友松を含む関係者で言語化しました。
「for Developers」では
-
- 受講者が、LLMを組み込んだ機能の開発を行う際に、技術要素の選択と組み合わせが出来るようになる
ということを目標に掲げました。
ちょっと長いので
-
- LLM機能の開発におけるインデックスが貼られている状態
とエンジニア社員向けに言い直していたりします。
そして、エンジニア社員の研修のゴールとしては
eラーニング教材完了 + 1Day開発イベントで実装した課題の「成果報告書」提出
と設定しました。
「設定しました」とは言うものの、このゴール設定については実際は研修を走らせながら微修正した結果です。経緯は後ほど説明しますね。
チーム for Developers
「生成AI徹底理解リスキリング」の施策は
-
- 実行責任者の友松
- リスキリングセンターの小枝
- リスキリングセンターの片岡
の3名を中心に推進しています。
「for Developers」を実施するにあたり、カリキュラム作成と受講者サポートの為、AI技術に強いエンジニア社員
-
- 株式会社サイバーエージェントのAI事業本部という組織に所属している大平
- 株式会社AI Shiftに所属している二宮
の2名にも運営へ参加してもらいました。
設計と実施のフェーズでは、いつもリスキリングセンターの研修運営でお世話になっている協力会社から2名参加してもらいました。
ということで、実行責任者の友松含めて合計7名のチームで「for Developers」の受講者のゴール到達をサポートしました。
「for Developers」のカリキュラム
インプットメインの教材と、アウトプットメインの教材の2段階で設計しました。
インプット ー> eラーニングのハンズオン動画
リスキリングセンターでは2年ほど前からUdemy Businessを研修に利用しています。
LLMをプロダクトに組み込むための、主要な技術の使い方を受講者に習得してもらうために、Udemy Businessから下記の技術を網羅した2つのコースを選定しました。
-
- ChatGPT API
- LangChain
- LlamaIndex
- Function Calling
- DALLE3
- gpt-4 vision
- BabyAGI
アウトプット ー> 1Day開発イベントでLLMを組み込んだ機能の実装
ハッカソンライクな1Day開発イベントを開催し、2023年10月に実施した「生成AI徹底活用コンテスト」の入賞案を受講者に実装してもらう事にしました。
-
- 「生成AI徹底活用コンテスト」の入賞案の中から実装するテーマを7つ提示
- 受講者が事前にテーマを1つ選択し、1Dayの時間内に実装
- 受講者は運営が用意した「成果報告書」の書式に実装内容を記入して提出
- 同じテーマを選択した受講者間で相互に実装した内容を発表
- テーマ毎に発表者を1名決めて全出席者の前で実装した内容をプレゼン
という設計にしてネーミングは「Challenge Camp」としました。
学習時間
-
- ハンズオン動画の長さは2つ合わせて約9時間、実稼働の見積として12時間〜16時間
- Challenge Campは丸一日の8時間
- 受講者1名当たりの稼働は合わせて約20時間〜24時間
つまり約3営業日分の業務時間を、この研修に割いてもらうように見積りました。
実施期間
全ての社員向けの「for Everyone」を2023年12月中旬まで実施していたので、認知度が高く熱量が冷めない内にと考え、年明け早々に受講者を公募し「for Developers」の実施期間は2024年1月29日(月)~3月1日(金)の約1カ月としました。
1月~3月は国内の多くの企業や公官庁の第四半期にあたり、弊社の広告事業の繁忙期にあたるので
-
- eラーニングの学習期間は約3週間
- Challenge Campの実施期間は約1週間の間に人数分けて複数回実施。
というコンパクトな期間設定をしました。
「for Developers」の結果
応募者
2024年の明け早々から2週間弱の期間に公募をした結果、165名もの社員が手を挙げてくれました。
受講者の人数として、リスキリングセンターが実施した研修として過去最大規模のものになりました。
弊社の事業はインターネット産業に軸足を置き、メディア/インターネット広告/ゲームの3本柱のポートフォリオを持っていて、多くのエンジニア社員はこれらの事業に所属しています。
また「JBキャリアプログラム」というエンジニア職向けのキャリア形成支援と評価を行う制度があり、JB01〜JB13までのグレードを設定してます。
「for Developers」には、全ての事業の、ほぼ全てのJBグレードの社員がチャレンジしてくれました。
部門や会社もまんべんなく網羅し、弊社内でよく使われる言葉「チームサイバーエージェント」を体現する研修となりました。
完了者
-
- eラーニングの完了者:156名(95%)
- Challenge Campの完了者:152名(92%)
ということで、約1カ月のコンパクトな研修期間で、152名分の大量のLLMを組み込んだ機能を実装することが出来ました。
上記表の「達成レベル」については後ほど説明しますね。
約1カ月の研修期間でエンジニア社員がLLMを組み込んだ機能を大量に実装出来た理由
チーム for Developers
受講者全員をこの研修専用のslackチャンネルに招待し、研修を運営するチーム for Developersの7名も全員チャンネルに参加して、受講者の学習をフルサポートする体制を取りました。
チーム for Developersは7名全員他の業務も担当しています。特に責任者の友松や、教材作成を担当した大平と二宮は、所属する事業部やグループ会社の担当業務の稼働の優先度が高い中、相互に補完しあいながら受講者の技術的なサポートを漏れなくやり切りました。
eラーニングの補助教材
教材として選定したハンズオン動画ですが、内容を細かくチェックしていくと、既に利用できない古いバージョンのAPIについての解説が残っていたり、どんどん動画が追加されたり入れ替えられたりし続けていました。
進歩の速い技術なので仕方ないのですが、そのまま頭から最後まで愚直にやっているだけだと、あまり本質的ではないことに時間を取られてしまう懸念があります。
受講者の人数を考えるとる時間のロスが膨大になるリスクがあったので、コンパクトな期間に通常業務の合間の時間を有効活用して学習を進めてもらうためにも、ハンズオン動画で実装するコードの参考になるものを、教材作成を担当した大平と二宮がGoogle Colaboratoryで作成し、受講者に共有しました。
eラーニングの促進
eラーニング期間中は皆さんモクモクと個人でハンズオン動画を見ながら学習を進めることになりますが、うっかり取り残されないように、個々の進捗を匿名で、なるべく日次で受講者のslackチャンネルへ共有して、周りがどんな進捗なのか把握してもらいました。
ハンズオン動画が2つあるので100%+100%=200%で完了です
メンタリング
とはいえ中には担当プロダクトのトラブル対応や業務の状況が変わって学習時間の確保が難しくなったり、季節柄体調を崩てしまったりで、極端に進捗が滞る受講者はどうしても出てくるので、所属の事業部の人事担当者と情報を共有しあい、担当業務と体調優先で無理せず離脱してもらうケースもありました。
Challenge Campの成果報告書
Challenge Campの提出物は規定の4ページの書式を埋めるだけのシンプルな形式にしました。
実装課題のテーマのリストアップと「達成レベル」分け
全ての受講者にとって有意義な学習機会にするためのハードルがいくつかありました。
受講者はほぼすべてのJBグレードにわたっていて、担当しているプロダクトも全事業にわたるので、それぞれのスキルレベルに大きな差があり、得意分野も異なります。
新卒1年目から社歴10年以上のベテラン、各事業のCTOと呼ばれているハイレベルエンジニアもいました。
そこで実装課題の選択肢は、なるべく各事業を網羅するようなものを7つリストアップしました。
さらにそれぞれのテーマにLEVEL1からLEVEL3までの「達成レベル」を設定しました。
最低限LEVEL1を実装しきることを必須とし、時間が許す限りLEVEL2→LEVEL3と高いレベルにチャレンジしてもらうという設計にしました。
LLMの学習データ提供
基本的にイベント参加日の1Dayで実装してもらうという建付けではありましたが、やり切るために事前に準備が必要な受講者も想定された為、運営が学習データを用意できるものについては受講者に提供しました。
走らせながらのブラッシュアップ(eラーニング)
前述のとおり、技術の進歩が速く、ハンズオン動画の内容も日々変わっていくのですが更新が追いついておらず内容が古いので飛ばしてしまってよい箇所がいくつか出てきます。ですが愚直にUdemyのデータだけで進捗を見ていると、いつまでたっても完了しない「寸止め状態」の受講者が増えていきます。
受講者のスキルレベルが非常に幅広いので、eラーニングは完了してなくても、Challenge Campで課題が実装できて成果報告書が提出されれば研修は完了とみなす「結果重視」が当初の方針でした。
ところが、eラーニングの進捗が思わしくないと報告を受けた役員が心配している旨のフィードバックがあったため、対策を打ちました。
まずは、この状況を受講者にもフィードバックしたうえで、
受講者の研修のゴール設定を
当初の
-
- 1Day開発イベントで実装した課題の「成果報告書」提出
から、この記事の冒頭に記載した
-
- eラーニング教材完了 + 1Day開発イベントで実装した課題の「成果報告書」提出
に修正し、ゴールの要件へ、最終結果を出すまでの「プロセス」も加えました。
そして受講者にeラーニングをきっちり完了してもらうために、進捗を実名でリスト化して全受講者にフィードバックし、データ上は完了してなくても、もう見終わってる場合は「実質完了」と記入してもらうという、ゴルフの「OK」方式を自己申告でやってもらいうことにしました。
その後は、自然と「実質完了」だけはなく、Udemyの管理画面で見ても完了する受講者が増えました。
走らせながらのブラッシュアップ(Challenge Camp)
受講者数が多いので、1回50名前後で開催日を3回に分け、集合型+リモート参加のハイブリッド形式で実施しました。
-
- なるべく同じ事業に所属する受講者を同日に割り振る
- 渋谷のオフィスに普段出社してる大半の社員は社内の会場で参加
- それ以外の社員(地方、国外など)はZoomで参加
- 実装する課題に同じテーマを選んだ受講者を4名~8名のチームにまとめて相互に相談できるようにする
- Zoomと社内の会場の受講者は混ぜるとコミュニケーションが取りづらいのでチームを分ける
- 社内の会場で参加する受講者には名札を用意
- 当日チーム内で自己紹介してもらってから実装作業開始
- ドリンク、お弁当、おやつ、を会場内に用意して、受講者はトイレとタバコ以外は会場出ずに済むように配慮
としました。
「実装する課題に同じテーマを選んだ受講者を4名~8名のチームにまとめて相互の相談できるようにする」
がポイントだったのですが、実装作業を始めると、あまり受講者間のコミュニケーションが取られず、特にZoom参加者は大半がバラバラの場所にいるので、モクモクと孤独な個人作業だけになりがちで、初日終了後のアンケートでもそういった声が上がってきました。
初回終了後に、チーム for Developersで振り返りを行い、タイムスケジュールを見直し、
-
- 強制的に受講者のチーム内でコミュニケーションを取ってもらう「進捗共有タイム」を設ける
- 技術に詳しいメンバーが受講者のチームを回って積極的に相談を受ける
という軌道修正を行った結果、2日目以降は受講者間のコミュニケーション量が改善し、受講後のアンケートの回答も初日より良好になりました。
Challenge Campの各日程の最後に、当日の参加者のうち数名に全員の前で成果報告書のスライドを使ってプレゼンしてもらいました。
-
- 当日やりたい人に手を挙げてもらう
- 足りない場合はチーム for Developersが共有フォルダにある受講者の成果報告書を見て決める
というルールでプレゼン者を決める予定だったのですが、2日目から都合よく手を挙げてくれる人数がそろわず、成果報告書を見て決めるなんて時間的余裕も、後から考えれば当然なのですが取れなかったので、急遽、受講者のチーム内で1名づつ決めてもらうという方法に軌道修正しました。
決め方は自薦でも他薦でもジャンケンでもなんでもよいし、選ぶ基準は、達成レベルでも単に面白いもでも、なんでもよいと伝えて、全て受講者側にお任せした結果、さらにコミュニケーション量が増え、結果LT会は大いに盛り上がりました。
以上が「約1カ月の研修期間でエンジニア社員がLLMを組み込んだ機能を大量に実装出来た理由」です。
この先の「生成AI徹底理解リスキリング」
「for Developers」の次に実施するのが、さらに専門性の高い分野を扱う「for ML Engineers」です。
LLMのモデル構築やチューニングが出来る
というのが当初の目標設定でした。
「CA BASE SUMIIT」で提案が決議されてから半年以上経過し、その間の技術の進歩と事業状況の変化から、若干「キモ」からズレてきているかも?という疑問(不安?)が出てきました。
「キモ」を実現するために、専門性が高くかつ急速に進歩している分野を狙うには「講師が作った教材を受講者がこなす」モデルの研修だと難しそうなので、「for ML Engineers」の為の新たなチームを編成して、目標と実施内容を絶賛詰め直し中です。
新たに編成した「チーム for ML Engineers」は、この記事を書いている2024年3月時点で
友松、小枝、片岡、協力会社の2名に加え
-
- SGE技術統括本部に所属する石黒
- AI事業本部に所属する稲垣
- AI事業本部に所属する藤田
- AI事業本部に所属する大友
の計9名です。
「for ML Engineers」を一旦終えたら、またこちらで報告できればと思います。
今回の『約1カ月の研修期間でエンジニア社員がLLMを組み込んだ機能を大量に実装出来た理由 ー「生成AI徹底理解リスキリング」の第二弾について』については以上となります。
引き続き「チーム for ML Engineers」で
サイバーエージェントグループが生成AIで業界を牽引している状態
を目指して「生成AI徹底理解リスキリング」を推進して行きます。
最後までご覧頂きありがとうございました m(__)m