いっしきまさひこBLOG

AI・機械学習関連、Web制作関連、プログラミング関連、旅行記録などなど。一色政彦。

de:code 2020 聴講ノート(AI・機械学習関連のみ)

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)を提供

f:id:misshiki:20200717162802p:plain
自動機械学習が目指すところ

f:id:misshiki:20200717162814p:plain
Azure Machine Learning

  • 問題種別: 分類、回帰、時系列の予測をサポート
  • 開発・運用: 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: モデル解釈(モデル全体のグローバル解釈、予測値ごとのローカル解釈)に対応し、直感的なダッシュボードを提供予定

f:id:misshiki:20200717162828p:plain
新しいダッシュボード

  • Azure Machine Learningのロードマップ

f:id:misshiki:20200717162846p:plain
2020年5月末時点でのロードマップ

デモンストレーション

  • Azure Machine Learningの操作例

f:id:misshiki:20200717162857p:plain
Azure Machine Learningの画面

f:id:misshiki:20200717162908p:plain
自動MLを作成しているところ

f:id:misshiki:20200717162928p:plain
分類、回帰、時系列の予測から選択

f:id:misshiki:20200717162955p:plain
選択された最適なモデルの精度を確認

f:id:misshiki:20200717163008p:plain
データの整合性などを確認できるデータガードレール

f:id:misshiki:20200717163019p:plain
実行されたモデルの一覧

f:id:misshiki:20200717163032p:plain
モデル解釈として影響度の高い特徴量も分かる

f:id:misshiki:20200717163044p:plain
デプロイ機能もある

  • Python SDKの実行例

f:id:misshiki:20200717163111p:plain
AutoMLConfigクラスの実装コード例

参考情報

AI・機械学習で新たに創出されるデータとアノテーションビジネス

AIとデータを取り巻く課題

  • 時代背景:不透明さが増すAI
  • 倫理と責任あるAIが求められる(公平性や透明性など)

AI倫理審査ボード

  • マイクロソフトは「AI倫理審査ボード」を設置

f:id:misshiki:20200619132403p:plain
AI倫理審査ボード

  • 「Ethical AI Dicision Framework」を定めて推進

f:id:misshiki:20200619132423p:plain
Ethical AI Dicision Framework

AIベンダーやAIエンジニアが注意するべき法的事項

  • 「アノテーション」「クレンジング」作業に焦点を当て、どのような権利が発生するかを示す
  • 著作権は発生するのか? 一般的に「アノテーション」「クレンジング」は著作物の創作ではない
  • 著作権法10条1項9号「プログラムの著作物」: アイデアは著作物ではない。アイデアは特許法で保護
  • 著作権法30条の4「著作物に表現された思想又は感情の享受を目的としない利用」: 「アノテーション」「クレンジング」が著作物だったとしても、この条文によりAIの学習に無断で利用できることになっている
  • 不正競争防止法2条7項「限定提供データとしての保護」: 「アノテーション」「クレンジング」データはこれにより保護できると考えられる。よって「限定提供データ」として保管するのが大事
  • これ以外で保護する方法: 「契約による保護」。そのために、信用できる特定プラットフォーム上でデータを流注させるのが重要
  • AIデータ活用コンソーシアムでこのための契約書(テンプレート?)を準備中

ソフトウェアと製造物責任(PL法)

  • 問題があった場合に、製造物であるソフトウェアの責任を負わなければならない
  • 通常は、原因調査により問題のあったプロセス箇所を明らかにし、そのプロセスのエンティティが責任を負う
  • AIの場合は、ブラックボックスであり上記のような責任所在の特定は難しい。よってデータやアノテーションにおいても製造物責任を考慮しておく必要がある
  • 例えばアノテーションを担当した人が悪意を持ってラベリングする可能性などがある。そんため作業者の身元確認と保証も大事になってくる
  • データには偏りが生まれる可能性がある。例えば人種の偏りがあるデータで学習してしまった場合、人種差別を持つAIとなる。また、データは時間とともに変化し、世代により意味が変化したりする。データの偏りは無くす必要がある
  • AIの用途によって、データに求められる保証レベルも変わってくる
  • 「AI利活用ガイドライン」に10の原則も参考にしてほしい

リテール AI の PoC 事例から学ぶスケールアウトへのヒント

リテールAI研究会とは

  • 一般社団法人リテールAI研究会
  • リテールAI研究会の中で、PoCを推進するための「分科会」活動を推進
  • リテールAIでよくある失敗: 「フルカスタマイズしようとしてPoCが終わらない」「ビジネス側とエンジニア側で意見の食い違い」

PoC事例の振り返り

  • 何個か事例の説明があったけど割愛

リテールAI検定

リテールAIを成功させる秘訣

  1. 「推論した後に何をするか」をあらかじめ議論すべし
  2. そのためには、最初の段階から、ビジネス部門ユーザーを取り込むべし
  3. ビジネス部門の初心者でも簡単にできるようなシナリオを用意すべし
  4. 部門ごとの要求を取り過ぎてしまわないようにすべし(カスタマイズしすぎるとスケールアウトしないので)

アマダの Azure への取り組みと DevOPS・MLOPS 環境の構築と運用

Azure Machine Learning + MLOps

ざっくりとスライドの引用で紹介します。

f:id:misshiki:20200619161642p:plain
MLOpsのイメージ

f:id:misshiki:20200619161701p:plain
なぜAzure ML+MLOpsなのか

  • MLOps構築をアバナードに業務委託した

アバナードによるMLOps構築

  • 要件と3カ月の成果について説明がありました

アーキテクチャの全体構成は図がないと分からないので、スライドを引用します。

f:id:misshiki:20200619161729p:plain
アーキテクチャの全体構成

f:id:misshiki:20200619161750p:plain
機械学習実行アーキテクチャ

MLOps導入の効果

  1. 工数削減と品質確保
  2. 実験トレーサビリティの確保
  3. 属人化/属環境化の防止

MLOps運用での検討事項

  1. Azureランニングコストの最適化
  2. MLOpsを十分に理解した技術者が必要

Azure Cognitive Search で作る! 一歩先を行く検索機能 〜 富士フイルム IMAGE WORKS 事例 〜

AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ

アジェンダ

  • 混合精度演算(Mixed Precision Training)
    • Tensorコア
    • AMP
  • NVIDIA A100 TensorコアGPU
    • TF32による演算
    • 構造化疎性(Structural Sparsity)
    • Multi Instance GPU(MIG)
  • GPUの利用環境
    • AzureのGPUインスタンス

混合精度演算(Mixed Precision Training)

f:id:misshiki:20200619173843p:plain
FP32とFP16の違い

  • FP16を使う利点:最近のGPUではFP16の演算スループットがFP32の2倍~8倍高い
  • そこでTensorコア。これを使いこなすのが鍵

f:id:misshiki:20200619173859p:plain
Tensorコア

  • 混合精度演算でトレーニングを高速化するには、いくつかの対策が必要。それを自動的に行うのが「AMP:自動混合精度演算」
  • AMPは、計算グラフを解析して適切にキャストしたり、勾配のアンダーフロー(小さくなると表現できずに0になる問題)を防ぐためのロススケーリングしたりできる
  • AMPは現在TensorFlow/PyTorch/MXNetに対応しており、わずか数行を追加するだけで有効化できる

NVIDIA A100 TensorコアGPU

  • 新型GPUが登場。性能は大幅に向上した

f:id:misshiki:20200619173918p:plain
NVIDIA A100 Tensorコア GPU

  • 「TF32 Tensorコア」というF32のレンジとFP16の精度を合わせ持つ新しい数値データ型を導入

f:id:misshiki:20200619173935p:plain
TF32 Tensorコア

  • ここまではトレーニングの高速化。ここからは推論の高速化
  • 構造的疎性(Sparsity)により推論を高速化する

f:id:misshiki:20200619173951p:plain
推論の高速化

  • FP64(倍精度演算)にも対応
  • さらに「Multi Instance GPU(MIG)」という新機能により、GPUインスタンを分割して使用率を最適化できる。推論時のスループットも向上する

GPUの利用環境

  • NVIDIAのGPUは次のような歴史がある

f:id:misshiki:20200619174014p:plain
NVIDIA GPUの歴史

  • AuzreでGPUを使うときは「NVIDIA NGC Image for Deep Learning and HPC」を使うとすべて準備が整っていて便利

f:id:misshiki:20200619174033p:plain
NVIDIAが提供するVM

さくっとプチ成功する機械学習プロジェクトのコツ

4つのコツ

  • 最初から完璧なゴールを目指さない、周囲の理解を得ながら段階的に進める

f:id:misshiki:20200717153926p:plain
機械学習プロジェクトの成功とは?

  • 各スキルをバランスよく補うプロジェクトチームを作る。特にビジネス理解者必須

f:id:misshiki:20200717153945p:plain
理想的なプロジェクトチーム体制

  • Azure PaaSを活用して、速攻&低コストで環境構築し、作業効率化

f:id:misshiki:20200717153958p:plain
機械学習プロジェクトに必要な環境

  • 機械学習モデルは誤差解析から思わぬインサイトを得られる可能性がある、可視化は大切

f:id:misshiki:20200717154013p:plain
Power BIによる可視化イメージ