機械学習工学セミナ@モントリオール

2020年2月末より3月上旬までカナダ・モントリオール大学へ出張し、機械学習(ML)工学セミナーの受講とlaboセミナーでの講演、共同研究の打合せをしてきました。

モントリオール大学は国立で世界のフランス語圏におけるトップ大学です。その中でも、理工系のPolytechnique(工学系附属大学)は世界的に高い評価を得ている名門校です。私の受講したセミナーは、PolytechniqueがIVADOというデータサイエンス、運用研究、人工知能技術の学際的センターと共同して、初めて開催した人工知能(AI)の中でもディープラーニングなど最先端分野である機械学習(ML)工学のセミナーでした。(正式なセミナー名はSoftware Engineering for Machine Learning Apps: From Code to Production)。名称の通り、ユーザブルML、デザイン、テスト、ディープラーニングテストツール、パイプライン構築、リリース管理、コンテナなど幅広く、MLを工学的に扱える試みを講義とハンズオンで教えてくれるとてもいいセミナーでした。IVADOという団体がモントリオールの工科系と経営系と組んで本セミナーを主催しており、参加者の多くはデータサイエンティストの社会人技術者でした。ただし英語力にもMLの扱いにも難がある私には途方にくれるほど高度な内容であり、毎日様々な環境を構築して幅広い演習は隣席受講者の大変親切な支援を受けながらの受講でした。

スケジュールと講師は以下の通りです。

Preparation
Day 1 AM- SE Challenges of ML Apps (Foutse Khomh)
Day 1 AM- Designing Usable ML-based Apps (Jinghui Cheng)
Day 1 PM- Hands-on Session on Apps Design (Jinghui Cheng)
Day 1 PM- Software Design Patterns for ML-based Apps (Foutse Khomh)
Day 2 AM- Intro to Software Testing (Giuliano Antoniol)
Day 2 AM- Testing Self-learning Software Programs (Lei Ma and Foutse Khomh)
Day 2 PM- Hands-on Session on Testing DL Systems (Giuliano, Lei, Foutse, and Houssem)
Day 3 AM- Testing Stateful ML-based Software Systems (Lei Ma)
Day 3 PM- Hands-on session on Testing Stateful ML-based Software Systems (Giuliano, Lei, Foutse, and Houssem)
Day 4 AM- Deploying ML-based Software Systems (Bram Adams)
Day 4 AM- Deploying ML-based Software Systems (Marios-Eleftherios Fokaefs)
Day 4 PM- Hands-on Session on Apps Deployments (Bram Adams and Marios-Eleftherios Fokaefs)
Day 5 AM- Deploying ML Pipelines with Containers (William Benton and Sophie Watson)
Day 5 PM- Hands-on Session on Deploying ML Pipelines with Containers (William Benton and Sophie Watson)

セミナーの中で、ポイントとなる点は以下の通りです。

初日は主催者であるPolytechniquenのFoutse先生がセミナー全体についての講義とMLのデザインパターンを講義されました。MLシステムの技術的負債は通常のコードと機械学習、システムレベルでのすべてで問題を抱え、増加しており、それらの解決の方途として機械学習(ML)アプリのソフトウェア工学の挑戦がこのセミナーの趣旨であることを話されました。そして、その機械学習ソフトウェア工学として、セミナーでは各分野の専門家による、ビジネスロジックとMLモデルの区別、データ・レイク、パイプライン・ジャングルの課題に対して、それぞれ、ユーザブルAI、マイクロサービス・アーキテクチャ、機械学習テストツール、MLパイプラインの管理が紹介されました。初日は、Cheng先生によるユーザブルMLとチャットボットのハンズオンがありました。ユーザビリティの特性はチャットボットの回答内容を隣席者と抽出する演習、2日目は、アントニオ先生のテスト方法の講義とハンズオン。また、マー先生は2、3日目にディープラーニングのテスト基準と品質保証、分析の講義を自らの各種ツールを使って講義されました。4日目は、アダムス先生のAIのリリースエンジニアリング講義とハンズオン。そして、マリオス先生のVM環境でのMLアプリのデータバージョン管理システムハンズオンが実施されました。最終日はRedHatから来た、ソフィーさんとウィリアムさんの名コンビによるコンテナでのMLパイプラインの実装でした。

Polytechnique Laboセミナーと感想

セミナーの翌週はモントリオール大学のPolytechniqueで、私の講演のためのLaboセミナーを開催してくれました。私が子育てと仕事をしつつ、7年かけて学位を取得したことや少しでも両立しやすくするために15年前に社内にテレワーク制度を設立したことを自己紹介の中で話すと、なんと拍手喝采でした。とても温かい雰囲気の中で、産官学の様々な立場で取り組んできたことを何とか英語を伝えることでき、嬉しかったです。そしてこれからの大きな課題であり、機械学習システム工学について、様々な議論ができました。講演の冒頭、「下手な英語なので文法間違えたらごめんなさい。」と最初にお断りをすると、「(モントリオールの主要言語はフランス語であり)自分達も英語は第2外国語だから同じよ。」といわれました。博士課程学生は世界中から集まっており、イラン出身の教授、チュニジア出身の学生など初めてお会いする国の女性が多くいました。現在、日本で機械学習システムに携わる女性エンジニアは男性に比べて非常に少ないのですが、日本でも多くの女性MLエンジニアが活躍するようになってほしいと思います。

実は今回の出張は、新型コロナウイルスによる出入国検疫、初体験の-20度越えの寒さ、英語力の欠如と多難な中での参加でした。さらにそもそも私の専門の安全性分析からは異分野のセミナーの内容についていけるかが心配でした。しかし、ハンズオン中心のセミナーでまずは色々な事例にふれることができました。今後これらの実装技術をいかしつつ、今回のセミナーではあまり触れられなかった安全性の観点でのML研究につなげていこうと思いました。