はじめに
三菱総研DCS デジタルイノベーション部の人見です。
当社では、AI/機械学習を活用できる開発人材を育成するため、研修を実施しています。 今回は、AI開発ハンズオン研修の環境構築にあたって活用したChrombookやデジタルツールについて紹介したいと思います。
AI開発ハンズオン研修について
AI開発ハンズオン研修ではAIアルゴリズム、機械学習ライブラリ、クラウドAIサービスを活用してAI開発を実践できる人材育成の研修を作成し、定期的に実施しています。
- AI概論
- AI/機械学習の概要、AI分野別トピックを説明した動画と座学用資料
- AI開発道場(ライブラリ編)
- AI/機械学習のライブラリを活用したプログラム実装のハンズオン
- AI開発道場(クラウド編)
- AWS/Google CloudのAIサービスを活用したプログラム実装のハンズオン
研修ではハンズオン以外に理解度確認のテストも実施します。
他にもAzure AI、MLOpsなど技術要素がありますが、最初の研修としては以下としました。
- ライブラリ編
- Scikit-learnを使った分類・回帰
- OpenCV/scikit-learnを使った手書き文字認識
- Tensorflow/Kerasを使った画像分類
- YOLO/SSDによる物体画像認識
- gensim/word2vecによる自然言語処理
- Prophetによる時系列解析
- Pycaretを使ったAutoML
- クラウド編(AWS)
- Amazon Sagemaker/Amazon Personalizeによる分類・予測・レコメンド
- Amazon Rekognition を使った顔認識
- Amazon Comprehendによる自然言語処理
- クラウド編(Google Cloud)
- AutoML Tables/BigQueryMLを使った分類・回帰
- Cloud Vision API/AutoML Vision による画像・動画認識
- Cloud Natural Languageによる自然言語処理
- Diagloflowによるチャットボット
- Cloud Speech-to-Textを使った音声認識
一からハンズオン資料を作成するのも大変なため、多くは各ライブラリやクラウドサービスの公式チュートリアルやBlog等をベースにして作成しています。
研修環境について
研修環境は社内環境で使用する端末やネットワーク環境への影響をなくすため完全に独立した構成としました。
研修端末:Chromebook
研修端末にはChromebookを採用しました。以下では選択理由と端末選定基準を紹介します。
Chromebook選択理由
ライブラリ編のハンズオン講座ではJupyterノートブックでブラウザベースで実行するのものが多く、研修で使うツールもブラウザだけで動作するものがほとんどでありChromebookで十分と判断しました。以下特徴や実施した際の課題や対応を紹介します。
- Linux環境が使える(別途設定より追加)
- Linux環境領域はディスク領域のサイズ設定が少ないとサイズが大きいファイルを扱った場合にエラーになるため事前にディスクサイズを増やす
- 設定アプリから「ディベロッパー > Linux開発環境(ベータ版) > ディスクサイズ」からサイズを変更できる
- ファイルアプリから「Linuxとの共有」でLinux側から/mnt/chromeos以下のディレクトリにアクセス可能
- ChromebookでマウントされているGoogleドライブもLinux環境からアクセス可能
- 現時点ではカメラサポートがない
- Linux環境領域はディスク領域のサイズ設定が少ないとサイズが大きいファイルを扱った場合にエラーになるため事前にディスクサイズを増やす
- 起動が高速
- 研修・学習に集中できストレスがない
- 端末リモート管理
- Google Workspace のライセンスが必要
- 高いセキュリティ
- OS自動更新、セキュリティ対応の手間が少ない
- 低コスト
- Windows端末と比較して
- 保守
- 研修終了後の端末リセットはPowerwashするだけで簡単
- ChromeOSのサポートが必要な場合は別途ライセンス購入(Chrome Enterprise Upgrade)
当初ChromeOSのサポートはつけず研修を実施していたのですが、研修中にChromebookのLinux開発環境で原因不明なエラーが発生することがありました。対応としてPowerwash で初期状態にする対応をすることもありましたが、初期状態にしてもデータはGoogleドライブ上にありChromebook上の設定もある程度は復活してくれるので気軽に初期状態にすることができました。ただLinux開発環境は消えてしまうので、再インストール設定する必要があり、その部分の手間はありました。そういったこともあり2回目以降の研修ではサポートをつけるようにしました。サポート を受ける場合、ChromebookをGoogle Workspaceドメイン管理になるようデバイス登録する必要があります。そのときに一度端末を初期状態にした状態でデバイス登録する必要があるため注意が必要でした。
Chromebook端末選定
Chromebookの端末は様々なメーカーから販売されています。端末選定にあたっては以下を考慮し選択しました。
- メモリ:8G+
- ローカル上で機械学習処理をするケースもあるため多め
- ディスク:64G+
- ローカルにLinux環境や比較的大きい学習済みモデルを使うことを考慮
- キーボード
- 日本語キーボード。社内標準端末と合わせて
- Webカメラ:あり
- 画像・動画認識の講座や研修説明、解答解説のWeb会議で利用
Google Cloud Speech-to-Textを使った講座で音声の録音、再生処理をするハンズオンがありました。Chromebook上のLinux環境はデフォルトではマイク機能が有効になっておらず、Linux環境の設定をここ の情報を参考に設定する必要がありました。ただ現在の最新のChromeOSのバージョンではヘルプに記載がありますがChromebookの設定の画面上で簡単にオン・オフできるようになっています。ChromebookのLinux開発環境は現時点でベータ版であるためLinuxのターミナル画面もいつの間にか機能改善や機能追加がされていたりすることもよくありました。使いやすく便利になることがほとんどで良い面が多いですが、定期的に検証を実施し研修資料のアップデートの必要がありました。
受講管理:Google Classroom
各講座の課題管理、提出物の管理、進捗管理を一元的に行えるGoogle Classroomを利用しました。Google Workspaceのアカウントと紐付けることでシームレスに受講管理ができました。以下よかった点や考慮点を紹介します。
- Classroom自体は無料で利用できる
- 受講者の提出物の進捗管理や期限管理の設定が可能
- Google Workspaceとの自動連携
- 課題に添付したGoogleドライブ上のファイルは受講者/講師に自動で共有設定される
- クラス全体のGoogleカレンダーが作成され、受講者のカレンダーに予定が自動登録
- 添付ファイルを「各生徒にコピーを作成」と指定すると受講者のGoogleドライブにコピーされ講師に編集権限が付与される
- 受講者が実施中のファイルを講師が確認でき、サポートやレビューがしやすい
- 受講者は添付ファイルを開いて編集するだけでよく、提出時にファイル添付不要
- 課題開始後、添付ファイルを更新した場合、課題を再作成するか受講者側で修正が必要
- 一連のClassroomで作成したクラスの講座一式をまるごとコピーが可能
- 定期開催の研修で再実施する時に準備の手間が少ない
- 受講者・講師の再登録や課題の期限再設定や課題ファイル添付再設定(コピー配布)が必要
- 確認テストをGoogleフォームで作成
- テスト付き課題でテスト用Googleフォームを添付すると点数が自動インポートされる
- 確認テストは選択式で機能や実装方法の確認を行い、実装はノートブックの実行結果ファイルで評価
モバイルアプリあり
- 通知がモバイルアプリで受け取れ、クラスでのコメントや課題提出をチェックがしやすい
- 通知設定は個人ごとに細かく設定が可能
Classroomは学校の授業での利用を想定したものであるため「教師」と「生徒」といった表現になっていたりしますが企業での研修で使う場合でも十分な機能が揃っているなと感じました。またGoogleアカウントがあることが前提となるため企業内で利用し、会社でGoogle Workspaceを使っていない場合、別途Google Workspaceのライセンスを受講者分だけ購入するといったことが必要です。
プログラミングツール:Google Colaboratory
ライブラリ編の講座ではGoogle ColaboratoryのJupyterノートブック環境を使いました。 以下特徴や考慮点など紹介します。
- 無料で使えるブラウザベースのPythonのプログラミング実行環境
- GPUも使える
- Googleドライブのマウントができる
- Googleドライブの共用ドライブに格納している課題のデータや学習済みモデルのファイルを利用する場合に使用
from google.colab import drive
drive.mount('/content/drive')
- ローカル上のJupyterサーバに接続してColaboratoryのUIが使える
- ローカルランタイム接続によりChromebookのLinux環境にセットアップしたPython環境を使える
- 必要なライブラリのセットアップなど必要だが、実行時間制限、ライブラリバージョン差異を考慮する必要がある場合などで使える
- 変更管理ができる
- ファイルをGoogleドライブに保存していれば バージョン管理され差分比較や復元などもできる
- コメント機能でレビューができる
- ファイル共有すればコメント機能を使ってコードレビューが可能。講座資料を作成・レビューする時に利用
- ハンズオン手順などMarkdownで記載ができる
- ハンズオン手順を作成するときに別途Wikiが使えるサービス利用も検討したがColaboratoryで作成すればレビューや変更管理もできるので以外と便利。
- GitHubに登録すればそのまま内容が表示される
- scikit-learnやTensorflowなど主要な機械学習ライブラリ導入済
- 導入済ライブラリのバージョンが不定期に更新される
- PyCaretやTensorflowを使った講座のノートブックではライブラリや依存ライブラリのバージョン差異によりエラーになる場合がありそれを考慮した手順追加や研修開始前に動作確認が必要
- アイドル状態が長時間続くとタイムアウトし仮想マシンから切断される
- 課題途中で切断されて途中のセルから再実行してエラーといったことが発生するため、ノートブックの最初から再実行するといった対応が必要
- サポートや長時間実行など制限が一部緩和された有償版もあり
研修での利用を考えたときクラウドサービスとの連携がなければColaboratoryを活用してPythonプログラミング環境として十分でした。 クラウドサービスとの連携がある場合はAmazon SageMaker StudioやGoogle Vertex AI WorkbenchといったフルマネージドなJupyterLabベースのノートブック環境を使うのがよいと感じました。アイドル状態であればインスタンスを自動シャットダウンする機能もあり、コストもある程度抑えられます。
Slack(今後はGoogle Chatか)
受講者とのQA対応についてはSlackを使いました。Classroomでも連絡事項を投稿したり受講者個別に限定コメントのやり取りは可能でしたが、受講者ごとのやりとりを集約して管理が難しかったためSlackに受講者ごとの限定チャンネルを作成することで対応しました。ただ現在Google Workspaceに含まれているGoogle Chatのスペースを使うことでSlackのようなことができそうなため、今後使ってみたいと思っています。
まとめ
今回AI開発ハンズオン研修を実施するにあたってChromebookやClassroom、Colaboratoryなどのツールをどのように使っているか紹介しました。ハンズオン研修を実施する際の参考になれば幸いです。
- Chromebookは研修用、開発用としても十分実用的。速い安い安全管理楽
- Google Classroomでオンライン研修講座を簡単に実施できる
- Google Colaboratoryを使って誰でも簡単にAI/機械学習の学習を始められる