はじめに
QualiArts Advent Calendar 2021、7日目の記事です。
私はQualiArtsでサーバサイドエンジニアをやっていまして、去年はgpt-3についての記事を書きました。
弊社では様々な勉強会が行われており、私はその中でも人工知能系の勉強会に参加しています。
私が参加する前から行われていた勉強会ですが、今に至るまでずっと、よりよい勉強会を模索されており、初めは良い方式だと思ったが最終的にはグダグダになってしまったなど、色々知見が得られましたので、皆様の参考になればと思った次第です。
この記事の対象者
- 勉強会を始めようと思っている方
- 勉強会の改善を考えている方
- 人工知能系の勉強のやりかたに悩んでいる方
注意
- 書籍が推奨する(紹介している)方法ではない方法で環境を作ったりしています
勉強会の基本的な運用
- 週に1時間、集まって勉強をする(リモートワーク期間はZoomで参加)
- 他の重要な予定とかぶったり、欠席者が多い場合は、その週の勉強会はスキップ
- 人数はだいたい4人~6人
これまでに勉強会で試した方式
1. 輪読方式
教材
ゼロから作るDeep Learning ❷ ――自然言語処理編
運用方法
区間ごとに担当を決め、その人が勉強会までにその区間をまとめ、チームQiitaに投稿する。
勉強会では、担当者がその記事をもとに話をする。
期間
2018/8 ~ 2019/3
良かった点
- 事前に話す内容が決まっており、ぐだることは少なかった
- 担当者が内容をちゃんと理解していないこともあったが、その勉強会での質問や指摘で内容を理解することもままあった
悪かった点
- 当日までに準備が必要なので、担当者の負担が大きい
- 難しい内容でかつ話を聞くだけの場合、とても眠くなる
- 実装したときどうなるのか(どう実装するのか)というのが今ひとつイメージできなかった
その他
- 理論を勉強するにはとてもよい教材だった
- 今も単語や理論がわからなくなったときに見直したりしている
2. 書籍をもとに実際に手を動かして実装する方式
教材
現場で使える!TensorFlow開発入門 Kerasによる深層学習モデル構築手法
運用方法
事前準備は特になし。
今日やる範囲を決め、全員で同じ課題に取り組む。
Colaboratoryを使用して、教材に載っているコードを実行し、その方法や結果について話し合う。
期間
2019/4 ~ 2019/9
良かった点
- 実際に動いているものが見えるので楽しい
- Pythonの使い方も含め、実際にどう実装すればいいのかが理解できた
- Colaboratoryの使い方が理解できた
- 事前準備が無いので、気軽に参加できる
- 自分の実行結果と他人の実行結果を比較して間違いに気づいたり、発見があったりした
悪かった点
- 議論などよりも黙々とコードを書き写す作業に多くの時間が取られる
- 範囲を決めてはいるものの、長いコードの章の場合、人によって進捗が大きく異なる場面も多かった
- 同じ進捗の人がおらず、進めている内容について話せる人が少ないみたいなことがあった
その他
- Kindleで書籍を購入した
- 基本的には問題ないが、ページを前後したときにコードが書いてある場所が変わったりして混乱することもあった
3. 書籍をもとに実際に手を動かして実装する方式 2
教材
つくりながら学ぶ!深層強化学習 PyTorchによる実践プログラミング
運用方法
事前準備は特になし。
今日やる範囲を決め、全員で同じ課題に取り組む。
Colaboratoryを使用して、教材に載っているコードを実行し、その方法や結果について話し合う。
期間
2019/9 ~ 2020/5
良かった点
- 実際に動いているものが見えるので楽しい
- Pythonの使い方も含め、実際にどう実装すればいいのかが理解できた
- 事前準備が無いので、気軽に参加できる
悪かった点
- 議論などよりも黙々とコードを書き写す作業に多くの時間が取られる
その他
- Colaboratoryを使ったとき、(特に表示周りで)書籍に載っているコードのままではうまく動かない箇所がいくつかあった
4. 各自読み方式
教材
ゼロから作るDeep Learning ❸ ――フレームワーク編
運用方法
事前に決めた章まで各自で読んできて、勉強会ではその章の気になった点などについて話す。
時間が余れば、次回以降分について読みすすめる時間とする。
期間
2020/6 ~ 2020/12
良かった点
- まとめる必要はなかったので事前準備は楽
- 議論の時間が早く終わることも多く、その後の時間は次の範囲を読みながら話していた
- 範囲は決めており、全員が同じ進捗になるので、同じ内容について話すことができた
悪かった点
- 他の方式と比較して深い議論は進まなかった印象
- あまり手を動かしたり、まとめたりしなかったため、わからないことがわからなかったのかもしれない
その他
- pythonでいかに実装するかという話に寄っているので、他言語で実装することを考えたときには応用しにくい話もある
- この期間中はフルリモートになったりならなかったりした
5. ネットの教材を用いて進めていく方式
教材
運用方法
Coursesのはじめから順番に各自進めていく。
(もともとは書籍を元に進めていく予定だったが、KaggleにCoursesがあることがわかったので、それを元に進めることにした)
期間
2021/1 ~ 2021/10
良かった点
- 基礎からしっかり勉強することができた
- 正しく実装することができたかわかりやすかった
悪かった点
- 各々のスピードで進めていたので、人によって全く進捗が違った
- プロジェクトの関係で連続して参加できなかった人が、後で追いつくことが難しい状況になっていた
その他
- 上記期間ですべての内容を終えることはできなかった
- 進捗がバラバラで、もう次の教材に行こうかという雰囲気があった
- この期間中はフルリモートになったりならなかったりした
- Coursesを進めていけばコンペに参加できる程度の技術はつきそうだなという予感はあった
6. ネットの教材を用いて進めていく方式 2
教材
運用方法
会の初めに今日やる区間を決める。
各自課題を進め、会の終わりに、それぞれどのように実装をしたかslackで共有する。
期間
2021/10 ~ (現在進行中)
その他
- やっていみている感じ、現状はグダることもなく、良い感じに進められていると思う
- まだ大きく進捗が違う人がいないのもあるが、slackにコードを載せることで、後から他人の作ったコードを見て話せているのが良い
全体的な所感
- 人ごとにあまりに進捗が異なるような方式の場合、同じ内容について話すことが難しくなるので、勉強会としては良くない印象
- 時間を確保していても、仕事が忙しくて参加できないということが頻発するので、それでも後に進捗を合わせやすいものが良い
- 事前準備が必要な勉強会はやはり重い
- 勉強会に誘っても「事前準備が必要であれば参加は難しい」という声はあった
- 理論系と実装系の書籍(課題)はどちらも利点があるので、理論系をやった後、その内容に関した実装系の課題をやるのが良いかも
- 人数的には6人ぐらいはちょうどいいかも
おわりに
勉強会では、独学では理解が進まなかっただろう、途中で諦めていただろうと感じることが多くありました。
ぜひ皆さんも勉強会に参加して、質の良い勉強を進めていきましょう!