2020年6月17日~30日に開催されちえる「de:code 2020 | 開発者をはじめとする IT に携わるすべてのエンジニアのためのイベント」(AI・機械学習関連のみ)を聴講時に取った個人的なノートをそのまま公開したものです。誤字誤植や勘違いがある可能性があるのでご了承ください。
6月19日現在では、すべてのセッションが公開されているわけではないので一部だけです。→1カ月後の7月17日現在で、de:code 2020は終了しました。全部は見きれなかった。「Microsoft AI が目指す「全ての人のための AI」」「”AI パーツ” であなたは何つくる? Azure Cognitive Services アップデート」というセッションも見て良かったけど、ノートは省いてしまった。履歴を見ると14セッションも視聴していました。
AutoML ではじめる機械学習の民主化
自動機械学習とは?
- 機械学習の民主化=誰でも使えるようにしたい
- 機械学習のプロセス: 特徴量エンジニアリング、アルゴリズム選択、パラメーター選択
- Azure Machine Learningでは自動機械学習(Automated Machine Learning:AutoML)を提供
- 問題種別: 分類、回帰、時系列の予測をサポート
- 開発・運用: Python、R、Azure Machine Learning Studio、Jupyter Notebook、Visual Studio Code、PyCharmをサポート
- ライブラリ: PyTorch、TensorFlow、scikit-learnなど
機能詳細と最新情報
- データに関する機能:
- 大規模データ(100GBまで)への対応
- Azure Open Datasets
- Data Guardrails
- 特徴量エンジニアリングに関する機能:
- BERTによる特徴量抽出
- 特徴量変換のカスタム指定
- 自動での特徴量変換
- 時系列データ前処理の自動化: ラグ、ローリングウィンドウなど
- アルゴリズム選択に関する機能:
- Microsoft LightGBM
- 時系列予測: ARIMA、Prophet、Forecast TCN
- パラメーター選択に関する機能
- 強調フィルタリング+ベイズ最適化: 「特徴量エンジニアリング」と「アルゴリズム選択」を含む全体のプロセス
- 機械学習プロセスの追跡(リネージ)
- モデル解釈: 責任ある機械学習(Understand、Protect、Control)を実現
- InterpretML: モデル解釈(モデル全体のグローバル解釈、予測値ごとのローカル解釈)に対応し、直感的なダッシュボードを提供予定
- Azure Machine Learningのロードマップ
デモンストレーション
- Azure Machine Learningの操作例
- Python SDKの実行例
参考情報
- Microsoftの機械学習テクノロジー集 https://aka.ms/microsoft-ml-tech: konabuta/ML-tech: List of Microsoft Machine Learning & Deep Learning library, tool, recipes, software, sample code, workshop content and training.
- Azure Machine Learning 公式サンプルコード https://aka.ms/ml-notebooks: Azure/MachineLearningNotebooks: Python notebooks with ML and deep learning examples with Azure Machine Learning | Microsoft
- 自然言語モデル BERT のサンプルコード https://aka.ms/azure-bert: microsoft/AzureML-BERT: End-to-End recipes for pre-training and fine-tuning BERT using Azure Machine Learning Service
- LightGBM トップページ https://aka.ms/lightgbm: microsoft/LightGBM: A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.
- ONNX トップページ https://aka.ms/onnx: ONNX | Home
- 分散深層学習サンプルコード https://aka.ms/distdl: microsoft/DistributedDeepLearning: Distributed Deep Learning using AzureML
- コンピュータビジョン(Faster-RCNNなど)https://aka.ms/cv-recipes: microsoft/computervision-recipes: Best Practices, code samples, and documentation for Computer Vision.
- 自然言語処理系(BERTなど) https://aka.ms/bert-recipes: microsoft/nlp-recipes: Natural Language Processing Best Practices & Examples
- レコメンデーション(NCFなど) https://aka.ms/reco-recipes: microsoft/recommenders: Best Practices on Recommendation Systems
- 時系列予測 https://aka.ms/forecast-recipes: microsoft/forecasting: Time Series Forecasting Best Practices & Examples
AI・機械学習で新たに創出されるデータとアノテーションビジネス
AIとデータを取り巻く課題
- 時代背景:不透明さが増すAI
- 倫理と責任あるAIが求められる(公平性や透明性など)
AI倫理審査ボード
- マイクロソフトは「AI倫理審査ボード」を設置
- 「Ethical AI Dicision Framework」を定めて推進
- 「AI Data Consortium:AIデータ活用コンソーシアム」の活動を支援
- AIで直面する課題のうち「知的財産」と「製造物責任」を取り上げる
AIベンダーやAIエンジニアが注意するべき法的事項
- 「アノテーション」「クレンジング」作業に焦点を当て、どのような権利が発生するかを示す
- 著作権は発生するのか? 一般的に「アノテーション」「クレンジング」は著作物の創作ではない
- 著作権法10条1項9号「プログラムの著作物」: アイデアは著作物ではない。アイデアは特許法で保護
- 著作権法30条の4「著作物に表現された思想又は感情の享受を目的としない利用」: 「アノテーション」「クレンジング」が著作物だったとしても、この条文によりAIの学習に無断で利用できることになっている
- 不正競争防止法2条7項「限定提供データとしての保護」: 「アノテーション」「クレンジング」データはこれにより保護できると考えられる。よって「限定提供データ」として保管するのが大事
- これ以外で保護する方法: 「契約による保護」。そのために、信用できる特定プラットフォーム上でデータを流注させるのが重要
- AIデータ活用コンソーシアムでこのための契約書(テンプレート?)を準備中
ソフトウェアと製造物責任(PL法)
- 問題があった場合に、製造物であるソフトウェアの責任を負わなければならない
- 通常は、原因調査により問題のあったプロセス箇所を明らかにし、そのプロセスのエンティティが責任を負う
- AIの場合は、ブラックボックスであり上記のような責任所在の特定は難しい。よってデータやアノテーションにおいても製造物責任を考慮しておく必要がある
- 例えばアノテーションを担当した人が悪意を持ってラベリングする可能性などがある。そんため作業者の身元確認と保証も大事になってくる
- データには偏りが生まれる可能性がある。例えば人種の偏りがあるデータで学習してしまった場合、人種差別を持つAIとなる。また、データは時間とともに変化し、世代により意味が変化したりする。データの偏りは無くす必要がある
- AIの用途によって、データに求められる保証レベルも変わってくる
- 「AI利活用ガイドライン」に10の原則も参考にしてほしい
リテール AI の PoC 事例から学ぶスケールアウトへのヒント
- D03 | リテール AI の PoC 事例から学ぶスケールアウトへのヒント | de:code (decode) 2020
- ゴール:PoCの成功例と失敗例を知る。スケールアウトのヒントを学ぶ
リテールAI研究会とは
- 一般社団法人リテールAI研究会
- リテールAI研究会の中で、PoCを推進するための「分科会」活動を推進
- リテールAIでよくある失敗: 「フルカスタマイズしようとしてPoCが終わらない」「ビジネス側とエンジニア側で意見の食い違い」
PoC事例の振り返り
- 何個か事例の説明があったけど割愛
リテールAI検定
- リテールAI検定
- Azure Databricsを活用したハンズオン
リテールAIを成功させる秘訣
- 「推論した後に何をするか」をあらかじめ議論すべし
- そのためには、最初の段階から、ビジネス部門ユーザーを取り込むべし
- ビジネス部門の初心者でも簡単にできるようなシナリオを用意すべし
- 部門ごとの要求を取り過ぎてしまわないようにすべし(カスタマイズしすぎるとスケールアウトしないので)
アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用
- D05 | アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用 | de:code (decode) 2020
- ゴール:自らMLOpsの予算を見積もったり、構築&運用したりできる
Azure Machine Learning + MLOps
ざっくりとスライドの引用で紹介します。
- MLOps構築をアバナードに業務委託した
アバナードによるMLOps構築
- 要件と3カ月の成果について説明がありました
アーキテクチャの全体構成は図がないと分からないので、スライドを引用します。
- Azure MLのHyperDrive機能(ハイパーパラメーターのチューニング機能)を活用しているのがポイントらしい
- これっぽい: azureml.train.hyperdrive package - Azure Machine Learning Python | Microsoft Docs
MLOps導入の効果
- 工数削減と品質確保
- 実験トレーサビリティの確保
- 属人化/属環境化の防止
MLOps運用での検討事項
- Azureランニングコストの最適化
- MLOpsを十分に理解した技術者が必要
Azure Cognitive Search で作る! 一歩先を行く検索機能 〜 富士フイルム IMAGE WORKS 事例 〜
- D04 | Azure Cognitive Search で作る! 一歩先を行く検索機能 〜 富士フイルム IMAGE WORKS 事例 〜 | de:code (decode) 2020
- ゴール:Azure Cognitive Serchの特長や使い所を知る
- 取りあえず視聴したけど、関心領域の範囲外だったため、メモなし
AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ
- D32 | AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ | de:code (decode) 2020
- ゴール:最新のGPU機能(モデルトレーニングと推論の高速化)について知る
アジェンダ
- 混合精度演算(Mixed Precision Training)
- Tensorコア
- AMP
- NVIDIA A100 TensorコアGPU
- TF32による演算
- 構造化疎性(Structural Sparsity)
- Multi Instance GPU(MIG)
- GPUの利用環境
- AzureのGPUインスタンス
混合精度演算(Mixed Precision Training)
- FP16を使う利点:最近のGPUではFP16の演算スループットがFP32の2倍~8倍高い
- そこでTensorコア。これを使いこなすのが鍵
- 混合精度演算でトレーニングを高速化するには、いくつかの対策が必要。それを自動的に行うのが「AMP:自動混合精度演算」
- AMPは、計算グラフを解析して適切にキャストしたり、勾配のアンダーフロー(小さくなると表現できずに0になる問題)を防ぐためのロススケーリングしたりできる
- AMPは現在TensorFlow/PyTorch/MXNetに対応しており、わずか数行を追加するだけで有効化できる
NVIDIA A100 TensorコアGPU
- 新型GPUが登場。性能は大幅に向上した
- 「TF32 Tensorコア」というF32のレンジとFP16の精度を合わせ持つ新しい数値データ型を導入
- ここまではトレーニングの高速化。ここからは推論の高速化
- 構造的疎性(Sparsity)により推論を高速化する
- FP64(倍精度演算)にも対応
- さらに「Multi Instance GPU(MIG)」という新機能により、GPUインスタンを分割して使用率を最適化できる。推論時のスループットも向上する
GPUの利用環境
- NVIDIAのGPUは次のような歴史がある
- AuzreでGPUを使うときは「NVIDIA NGC Image for Deep Learning and HPC」を使うとすべて準備が整っていて便利
さくっとプチ成功する機械学習プロジェクトのコツ
4つのコツ
- 最初から完璧なゴールを目指さない、周囲の理解を得ながら段階的に進める
- 各スキルをバランスよく補うプロジェクトチームを作る。特にビジネス理解者必須
- Azure PaaSを活用して、速攻&低コストで環境構築し、作業効率化
- 機械学習モデルは誤差解析から思わぬインサイトを得られる可能性がある、可視化は大切