[レポート] テクノロジーで成長する!!「DevelopersIO BASECAMP(デベキャン)の今までとこれからについて」というタイトルで登壇 #devio_day1 #sub1

2023.04.12

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは(U・ω・U)
AWS事業部の深澤です。

先日行われた「DevelopersIO Day One」というイベントにて、「DevelopersIO BASECAMP(デベキャン)の今までとこれからについて」というタイトルで登壇しましたので、レポートブログを書かせていただきます。

資料

話したこと

プロパゲート株式会社について

今回お話しするDevelopersIO BASECAMP(略してデベキャンです)を運用している会社はプロパゲート株式会社という会社になります。クラスメソッドの子会社で比較的まだまだ若い会社となっています。
ビジョンのところに書かれている「成長の支援と実践の機会」こそがデベキャンが始まった経緯にもなりますので、ぜひ覚えて頂ければなと思います。

プロパゲートのホームページはこちらです。

プロパゲート株式会社の事業としては、大きく分けて「教育事業」と「人材事業」です。デベキャンは「教育事業」で推進しているプロジェクトになります。「人材事業」では、フリーランスの方と一緒にお仕事をさせていただいたりしておりますので、ぜひご興味があればお気軽にご相談いただければと思います。

デベキャンの1期でやってきたこと

デベキャンが始まった背景をお話しします。これまでクラスメソッドでは様々なお客様に技術支援をしたり、サービス提供を通して得た知見はブログで発信したり、一般エンジニアによる知見の共有や交流のためにZennを運用したりしてきました。

その一方で、最新技術を活用した業務を遂行したい(就業したい)となった時に、いわゆる実務経験が必要で、その実務経験は就業しない限り、なかなか得ることができないという課題がありました。つまりDeveloperIO、Zennないしもしくは他のところで学んできた技術を業務で活かしたいと考えても、実務経験を得ない限りはそれをなかなか現場で発揮できないという課題を解決したかったのです。
そこでデベキャンでは、今まで座学での学習は行ってきたものの活用に自信がないという方に対してロールプレイを通した実務経験に近い業務の疑似体験を提供し、活躍を支援しようという取り組みをおこなってきました。ここで思い出していただきたいのがプロパゲートのビジョンである、「ITに携わろうとする人たちに成長の支援と実践の機会を提供することで、人材の不足や偏在を解消し、デジタル活用によりワクワクする社会の実現に貢献する」です。AWSをはじめとする、IT技術の活用に自信がない方々に成長の支援と実践の機会を提供したいと考えました。

さて、ここからは実際に取り組んできたことの紹介です。デベキャンでは受講者に対し運営から2つのロールのメンバーをつけて学習をサポートしてきました。まずは取り組む課題となる案件の発注を行う「発注者役」と、その課題に取り組み中で出てきた課題や相談を行う「メンター役」です。また、メンター役とは課題が完了するごとに振り返りを行い、次にもっと良いアクションをするためにはどうしたらいいかをディスカッションする機会を設けたりもしました。

オンライントレーニングとして多くの受講者と関わっていく上で、全てのコミュニケーションはオンラインで完結するようにしたというのも今期意識したポイントでした。

学習において前提となるのはやはりインプットなのですが、デベキャンではそれに加えて、能動的なアクションを受講者に促すようにしました。クラスメソッドでは、自発的に学習を進め、技術を習得し、成長していく様子を表現する言葉として「学習エンジン」という用語があります。能動的なアクションとは、学んだことを実際に手を動かして検証したり、学んだことを誰かに教えたりブログに書いたりしてアウトプットするようなアクションです。このインプットで学んだことを実際に手を動かして検証、その結果学んだことをアウトプットするというサイクルのことを学習エンジンと表現しています。この学習エンジンに興味を持っていただけたら、ぜひ弊社大滝のブログも併せてご参照ください。非常に参考になります。

ちなみに本を読んだりする受動的な学習よりも、実際に手を動かしたり人に教えたりといった能動的な学習の方が定着しやすいというのはアメリカ国立訓練研究所からも発表されていて、ラーニングピラミッドと呼ばれたりしています。詳しくは弊社豊崎のブログでもこのラーニングピラミッドを意識した学習について述べられており大変参考になります。

デベキャンでやってきたカリキュラムの内容紹介です。学習エンジンを意識して、インプット、実作業、アウトプットの流れになるように全体をデザインしました。それに加えて実際の業務の流れとは逆向きになっているところが今回意識したポイントです。最近のAWS案件ではシンプルな構築案件のみというものは減ってきて、より高度なAWS活用が求められるようになってきました。抽象的な要件を整理したり、サービスの使い方をレクチャーしたり要件に合わせてパラメータをヒアリングしたりと、AWSのスキルだけではない部分も大切になってきます。この難しい部分をどう体系的にコンテンツとして提供していくかを考え、デベキャンでは実際の案件でよくある流れとは逆の流れでコンテンツを提供していくことを意識しました。

さてここから学習エンジンをさらに加速させたイベントの紹介です。

  • LT大会
  • ブログ執筆キャンペーン

LT大会の会場はアマゾン ウェブ サービス ジャパン合同会社(AWSJ)さんの本社会議室をお借りし、1人10分程度の短い時間でAWSに関することを発表していただきました。バックグラウンドが多様な受講者の皆さんのご経験をもとに、学んだことやこれからやりたいことを発表いただき、素敵な時間を過ごすことができました。会場をお貸しいただいたAWSJさんには改めて感謝申し上げます。この大会は、オンラインでカリキュラムを進めていたので、オフラインでの交流は貴重な時間となりました。このLT大会は受講者の皆さんの刺激になったようで、「アウトプットをもっと頑張ろうと思った」とモチベーションにつながったようで、それがブログ執筆キャンペーンに繋がっていきました。
今後も継続したアウトプットをやっていただきたい、そのきっかけを掴んでほしいという思いから、デベキャンではブログの執筆を受講者の皆さんにはお願いしました。情報共有コミュニティのZennではPublicationというチームテックブログ向けの機能があり、複数人が同じ場所にブログの投稿が可能となっています。 ブログ執筆現在13本の投稿がされており、LT大会後、ブログの本数が増えたのでアウトプットのきっかけを受講者の皆さんに提供できたのではと思っています。

こうしてデベキャンの第1期は2023年3月末をもって終了となりました。一緒に運営いただいたスタッフはもちろん、走り抜けてくれた受講者の皆さんにもこの場を借りて改めて御礼申し上げます。有難うございました。

デベキャンのこれからについて

まず皆さんにお伝えしたいことはデベキャンはこれで終わりではないということです。2期、3期とどんどん開催していって多くの受講者の方と関わり良いコミュニティを作っていきたいと考えています。

そして、より多くの受講者の皆さんにデベキャンを提供していくため、運営の効率化が大切と僕たちは考えています。そこでこのデベキャンにもChatGPTが活用できないかと検討を進めています。しかしChatGPTに相談はできるものの、カリキュラムのお題といったデベキャンの背景となるようなデータは入っていません。自分達のデータを事前に学習させる必要があるのですが、そこで活用できそうと僕達が考えているのがLlamaIndexというライブラリです。

ChatGPTは多くのメディアで取り上げられていてご存知の方も多くいらっしゃることかと思います。LlamaIndexについては聞き馴染みのない方もいらっしゃるかもしれません。主な機能を以下のスライドにまとめました。

そしてそのLlamaIndexで検索が行えるようになるまでの主な流れを以下のスライドにまとめました。

もしかしたらコードの方がイメージしやすいという方がいらっしゃるかもしれないですね。以下のように非常にシンプルな記述で質問(クエリ)を投げることができます。

app.py

import os
from llama_index import GPTSimpleVectorIndex, SimpleDirectoryReader

os.environ["OPENAI_API_KEY"] = 'YOUR_OPENAI_API_KEY'

documents = SimpleDirectoryReader('data').load_data()
index = GPTSimpleVectorIndex.from_documents(documents)
index.query("契約形態を教えて")

ざっくり処理の流れをご説明します。

  • 2行目: 必要なライブラリをインポートします。
  • 4行目: OpenAI APIにリクエストを行うのでキーを読み込みます。キーは環境変数に保存します。
  • 6行目: データをロードしてドキュメントにしています。SimpleDirectoryReaderを使うことによってディレクトリをまるっとロードできます。
  • 7行目: ドキュメントをインデックスという質問(クエリ)可能なオブジェクトに変換します。
  • 8行目: そのインデックスに対して質問(クエリ)することで解答をもらうことができます。

なおこのコードと解説はLlamaIndexの公式GithubにあるREADMEにあるものとほぼ一緒です。

実際にデータを読み込んでいくつか質問をしてみました。読み込んだデータについてなのですが、デベキャンではそれぞれのお題に注文書(PDF)がついているので、このうちの一つを読み込みました。質問した結果がこちらになります。

注文書(PDF)に書いてある内容は正しく答えてもらえました。ただ一方で以下のような課題もありました。

  • 学習していない内容には答えられない
  • あまり複雑な質問には答えられない
    • 元データに書いてあることをストレートに質問すれば回答してもらえるが、情報が足りてないと答えられない
    • 例)注文書では左上に発注先、その隣に発注元が書かれているが、それぞれ明確に発注先や元という風には書いておらず、「発注者は誰ですか?」という質問には答えられなかった
  • 質問に沿った文章を見つけるが、その前後の情報は抜き取れない

もう少し改良が必要そうです。

最後に

最後までお読みいただき有難うございました。デベキャンではこれからもテクノロジーを活用し、多くの受講者と関わり、良いコミュニティを築き上げていきますので、どうぞ引き続きよろしくお願いします!!
以上、深澤(@shun_quartet)でした!