Azure の資格を全部とった話 #AI-100編

Microsoft Azure について現在以下の認定を取得しています。 今回は個別の認定(AI-100 / Azure AI Engineer Associate )について認定で必要となる試験 “AI-100” の話です。

私が受験したのは2020/1/25 、それから2度の試験の改訂(2020/3/20,2020/5/20)もありますが試験スキルのアウトラインを見る限り大きな変更はありません。 これから受験を予定する方に少しでも参考になればと思い試験の情報や私自身が実施した準備内容をまとめました。

1. AI-100 試験の概要

試験の概要は公式ホームページを見るのが間違いないです。 

https://docs.microsoft.com/ja-jp/learn/certifications/exams/ai-100

“このトピックの一部は機械翻訳で処理されている場合があります。”とあるとおり機械翻訳で英語から日本語に変換しているので日本語がおかしいなと思ったら原文を確認しましょう。 私はいつもURLの”ja-jp” を “en-us” に手で修正しています。 Docsやその他ページで画面上に機械翻訳のON/OFF のスライドボタンを設けているページもありますが、この方法が共通で使える手順で確実かなと。

試験 “AI-100: Designing and Implementing an Azure AI Solution” の概要について以下の記載があります。

認定資格の受験者は、認識サービス、機械学習、知識マイニングを使用して、自然言語処理、音声、コンピュータ ビジョン、会話型 AI を含む Microsoft AI ソリューションを設計および実装する専門知識が必要です。

このAzure AIエンジニアの責任には、AI ソリューションの要件の分析、適切なツールとテクノロジの推奨、スケーラビリティとパフォーマンスの要件を満たす AI ソリューションの設計と実装が含まれます。

受験生は、ソリューション アーキテクトからビジョンAzure AI Engineer翻訳し、データ科学者、データ エンジニア、IoT スペシャリスト、および AI 開発者と協力して、完全なエンドツーエンドのソリューションを構築します。

この試験の受験対象者は、Microsoft Azure Cognitive Services、Azure Bot Service、Azure Cognitive Search、および Azure のデータ ストレージを使用する AI アプリとエージェントの設計と実装に関する知識と経験が必要です。さらに、受験者は、オープン ソース テクノロジを使用するソリューションを推奨し、Azure AI ポートフォリオを構成するコンポーネントと利用可能なデータ ストレージ オプションを理解し、特定の要件を満たすためにカスタム API を開発する必要がある時期を理解できる必要があります。

  

同じホームページ内の”Skills measured”に列挙されている項目とアウトライン資料のほうが受験者への要求が具体的です。 PDF資料は上記のホームページにダウンロードリンクがあります。 こちらは必読な内容になります。

試験スキルのアウトラインをダウンロード

2. 試験のアウトライン

ただ “Exam AI-100: Designing and Implementing an Azure AI
Solution – Skills Measured”
を読んでくださいだと不親切ですのでガイドのPDF資料の内容を簡単にまとめます。 もとのガイドは英語なので日本語でまとめてみました。 訳さない方がよい部分は意図的に英語のままにしています。

2.1. Audience Profile (受験者のプロフィール)

まず以下の知識を前提としてもっていること。

  • Cognitive Services やMachine Learning
  • Microsoft AI ソリューションの設計、実装
    • 自然言語処理
    • 会話
    • 画像認識
    • 対話型AI

Azure AI Engineer の Responsibilities (責任というよりは職務かな)として以下が例示されています。

  • AI ソリューションの要件分析
  • 適切なツールや技術の提案
  • AI の設計と実装 (scalability と性能の要件を満たす)

そして Azure AI Engineer は Solution Architect からのVision を変換し、データサイエンティストやデータエンジニア、IoT スペシャリスト、ソフトウェア開発者と協力します。(完全なEnd to End のソリューションを構築する為に)

受験者はAI apps とagent の設計と実装に関する以下の知識と経験が必要。

  • Microsoft Azure Cognitive Services
  • Azure Bot Service
  • Azure Cognitive Search
  • data storage in Azure
  • 加えて以下の知識
    • open source technologies
    • Azure AI ポートフォリオに関する理解
    • ストレージオプション
    • 特定の要件を満たすためのカスタム API の開発

上の話を整理すると、この認定・資格はAzure AI エンジニア向けということです。 Azure AI エンジニアは他のRole と連携し、お客様にEnd to End のソリューションを提供します。 

Azure AI エンジニアだけで完結するわけではなくSolution Architect が考えた全体像からAI 部分のAzure プロダクトへの実装に責任を負う立場といえます。 予測モデルの検討などはData Scientist 、インプットやアウトプットのデータの管理はData Engineer 、インプットのデータがIoT デバイスの場合はIoT Specialist と連携することもあるでしょう。 そしてお客様向けのユーザーインターフェースを Software Developer が開発する、そんな流れが自分自身でもイメージできました。

ちなみにAzure Machine Learning を対象としたDP-100 と比べると盛りだくさんな印象です。 DP-100 のAudience Profile は以下だけでした。

  • Data science と Machine Learning の実装に関する知識
  • Azure Machine Learning Service 上でワークロードを実行出来る知識
  • ワークロード実行環境の作成、予測モデルのトレーニングなど

2.2. Skills Measured (スキルの測定)

試験で測定されるスキル(試験の範囲)について2点ほど注意書きがあります。

  1. 箇条書きは試験の対象スキルとなるが完全なものではないよ
  2. プレビュー機能など試験の対象外だよ

1つ目の”箇条書き”はアウトライン資料の以下の赤枠のことと考えます。 試験範囲として具体例をリストしている、ただし、これが全てではないよ、これ以外のことも試験には出るよ、ということです。  まあ、これはMCPでも他のどんな試験でも試験のアウトラインはアウトラインでしかないのであまり気にする必要はないでしょう。

ここからは具体的なSkill Measured についてです。

Analyze solution requirements (25-30%)

Recommend Azure Cognitive Services APIs to meet business requirements

  • select the processing architecture for a solution
  • select the appropriate data processing technologies
  • select the appropriate AI models and services
  • identify components and technologies required to connect service endpoints
  • identify automation requirements

ビジネス要件にどのCognitive Services のAPI がふさわしいか見極める力が問われます。

Map security requirements to tools, technologies, and processes

  • identify processes and regulations needed to conform with data privacy, protection, and
  • regulatory requirements
  • identify which users and groups have access to information and interfaces
  • identify appropriate tools for a solution
  • identify auditing requirements

セキュリティ要件、例えばプライバシーなど、を適切にくみとり要件を充足するツールや技術、処理方法を選定する力が問われます。

Select the software, services, and storage required to support a solution

  • identify appropriate services and tools for a solution
  • identify integration points with other Microsoft services
  • identify storage required to store logging, bot state data, and Azure Cognitive Services
  • output

Cognitive Services を利用するにあたり必要となる他プロダクト、Iストレージなど、を選定する力が問われます。

Design AI solutions (40-45%)

Design solutions that include one or more pipelines

  • define an AI application workflow process
  • design a strategy for ingest and egress data
  • design the integration point between multiple workflows and pipelines
  • design pipelines that use AI apps
  • design pipelines that call Azure Machine Learning models
  • select an AI solution that meet cost constraints

ワークフローやパイプラインの設計に関するスキルが問われます。

Design solutions that uses Cognitive Services

  • design solutions that use vision, speech, language, knowledge, search, and anomaly detection APIs

Cognitive Services の設計に関するスキルが問われます。

Design solutions that implement the Microsoft Bot Framework

  • integrate bots and AI solutions
  • design bot services that use Language Understanding (LUIS)
  • design bots that integrate with channels
  • integrate bots with Azure app services and Azure Application Insights

Bot Frameworkの設計に関するスキルが問われます。 Bot単体ではなく AI(LUISなど)との連携がとわれます。

Design the compute infrastructure to support a solution

  • identify whether to create a GPU, FPGA, or CPU-based solution
  • identify whether to use a cloud-based, on-premises, or hybrid compute infrastructure
  • select a compute solution that meets cost constraints

AI ソリューションの実現に必要なVirtual Machine リソースの見極めのスキルが問われます。 特にGPU / FPGA / CPU のみの使い分けや、クラウド / Hybrid / On-Premises の使い分けなど。

Design for data governance, compliance, integrity, and security

  • define how users and applications will authenticate to AI services
  • design a content moderation strategy for data usage within an AI solution
  • ensure that data adheres to compliance requirements defined by your organization
  • ensure appropriate governance of data
  • design strategies to ensure that the solution meets data privacy regulations and industry standards

データガバナンス、コンプライアンス、整合性、セキュリティの設計についてのスキルが問われます。 認証やコンプライアンスへの準拠など。

Implement and monitor AI solutions (25-30%)

Implement an AI workflow

  • develop AI pipelines
  • manage the flow of data through the solution components
  • implement data logging processes
  • define and construct interfaces for custom AI services
  • create solution endpoints
  • develop streaming solutions

AI ワークフローの実装に関するスキルが問われます。

Integrate AI services and solution components

  • configure prerequisite components and input datasets to allow the consumption of Azure Cognitive Services APIs
  • configure integration with Azure Cognitive Services
  • configure prerequisite components to allow connectivity to the Microsoft Bot Framework
  • implement Azure Cognitive Search in a solution

AI サービスとソリューションの統合に関するスキルが問われます。 他ソリューションとCognitive Services APIやBot、Cognitive Search を連携する話。

Monitor and evaluate the AI environment

  • identify the differences between KPIs, reported metrics, and root causes of the
  • differences
  • identify the differences between expected and actual workflow throughput
  • maintain an AI solution for continuous improvement
  • monitor AI components for availability
  • recommend changes to an AI solution based on performance data

AI環境の監視や評価に関するスキルが問われます。

2.3. 試験の改訂について

アウトライン資料 “Exam AI-100: Designing and Implementing an Azure AI
Solution – Skills Measured”
には2回の改訂、2020/3/20 と2020/5/20 ついて履歴の記載があります。 結論から言うと試験のアウトラインに大きな変更はないようです。 プロダクトのサービス名称の変更に関する改訂だけでした。

3. 試験の対策

どんな問題が出たかは規約上書けません。 自分の受験時のスキルレベル、どんな対策を行ってそれがどう効果的だったか、効果があまりなかったか、などを書いていきます。

3.1. 当方のスキル、経験

試験を受けた時点での当方のスキル、経験は以下の通りです。 試験の対策と言った時に受験者のレベルや状況毎にそれは異なってくるはずなので参考として自分の経験を紹介することにしました。

Azure AIエンジニアに関する業務経験、スキル

  • 実業務としては無し
  • 大学等での研究、専攻なども無し 
  • 書籍は多少読んでいた (後ほど紹介)
  • 他のパブリッククラウド(Alibaba Cloud やGCP)での検証、研修受講、プリセールス経験が多少あり

Microsoft Azure に関する知識

  • セールス、デリバリー経験は2年弱
  • 色々なAzure 認定は持っているが正直素人
  • Azure Cognitive Services / Bot Services / Cognitive Search に関する実業務での経験は無し

その他業務経験、スキル

  • 17年は現場のアカウントSE
  • パブリッククラウドに特化して約3年
  • パブリッククラウドはAlibaba Cloud 、Microsoft Azure 、GCPなど。
  • レガシーシステムは全領域OK
  • 開発はスクリプト、シェルまで

簡単に言えばAzure AI エンジニアとしての経験はなし、他パブリッククラウドで同様のサービス(Cognitive Services など画像認識系、自然言語処理系)を扱った経験が多少ある感じです。 

Azure は資格は持っていますが内実は素人。触っている絶対量が少ない。 

ただ、レガシーシステムは全領域やっていたので今のパブリッククラウドのIaaS / PaaS / SaaS の機能のほとんどは自分自身で提案や設計、構築していたことがあります。 お客様と一緒に何でも自由に実現できたオンプレに対して、型が決まったパブリッククラウドはある意味覚えなきゃいけないことは少ないなぁ(何が出来ないかだけ注目)と普段感じていたり。  なのでAzure が素人なのは確かなのですが、その中身はわかっているという感じです。  とは言えAI 領域の設計・実装の経験はほとんど無いに等しいです。 

3.2. 試験の対策

試験の範囲を確認する

他の試験同様にアウトラインで試験範囲を確認しました。 確認して最初に感じたのは準備無しでは合格できないな、と。

試験範囲を抜粋すると以下3区分です。 

  1. Analyze solution requirements (25-30%)
  2. Design AI solutions (40-45%)
  3. Implement and monitor AI solutions (25-30%)

1の“Analyze solution requirements” をお客様のビジネス要件を解決する Azure Cognitive Services を適切に選定できるスキルが問われます。 Cognitive Services で何が出来るのかを知識としてもっておく必要があります。 私はこの知識の習得が必要な状況でした。

2の“Design AI Solutions”はAzureでどう実現していくかの設計に関するスキルです。 Cognitive Services やMachine Learning 含めた Workflow と Pipelines の設計です。 あとは実行環境となるVirtual Machine でのGPU / FPGA などの選定やBotとセキュリティも問われます。 ハードウェアは好きな領域で経験も十分にあるのでGPU / FPGA あたりは少しの学習で大丈夫でしょう。セキュリティもしかり。 AIの設計部分は知識の習得が必要な状況でした。

3の“Implement and monitor AI solutions”は1と2で設計したpipelinesの展開です。あとは監視にかんするスキルです。 こちらも知識の習得が必要でした。

私は資格試験を受けるときは基本準備無しで受けることがほとんどです。 受けてみることで弱点やどんな問題が出るかわかるため。 とはいいつつ今回の試験は準備無しでは何がわからないのか、それすらわからなかったとなることが目に見えていました。  準備することにしました。

Microsoft Docs を確認する

まずは Microsft Docs でマニュアルを読みます。 

結構な分量がありますが暗記するわけではないので流し読みです。 Cognitive Services でどんなことが出来るのか把握できればOKという感じです。 わからないところは飛ばしつつ1時間位と時間を決めてでひととおり眺めました。 その時、用語、概念などで不明なものは手元の紙に書きだしておきます。 それは別途、書籍や本で確認しておきました。

マニュアルを読むことで Cognitive Services で出来ること、出来ないこと、登場人物(実際は人ではなくVirtual Machineなど他に関連してくるサービスなど)を把握できます。 また、どんな情報がマニュアルにあったかざっくりと頭に残しておくことで後で調べ物をするときに役立ちます。

最低限見ておくべきところを紹介していきます。流し読みでもよいから以下に紹介する部分以外もマニュアルは全部目を通すことはお勧めします。ただ、流し方のメリハリとしてピックアップしてみました。

Azure Cognitive Services とは

このページでは Cognitive Services で出来ることがAPI 名としてリストされています。 最低限この内容は頭にいれておかないといけません。 私は他のパブリッククラウドでこの手のAPI に関する経験が少しあったので一から覚えるというよりはAzure でも●●●のAPIが利用できる、Azureでは他クラウドに無い□□□がある、と差分だけの確認でした。  私のこの手のAPIの知識範囲はAlibaba Cloud とGCPとAzure の3つですが大体似たり寄ったりです。  

話は若干それますが顔認識 など米国では大分規制というか自主規制が始まっています。一方、中国ではPositive な意味で最大限に活用し人々の生活に役立てていたり。

Cognitive Services と機械学習

こちらはCognitive Services で提供されているサービスをリストしています。 こちらもどんなサービスがあって何が出来るかは把握しておきましょう。 まあ、上のAPIはサービスに紐づくものなのでサービスとAPI は結果として一緒に頭にいれることになります。

このページではCognitive Services と Azure Machine Learning は何が同じで何が違うのか説明があります。  Cognitive Services は機械学習の経験がなくても利用できること(APIにデータいれると学習済AIが答えを返してくれる)、一方、Azure Machine Learning はData Scientist 向け(モデルを構築したり実行する環境の提供)と説明があります。

https://docs.microsoft.com/ja-jp/azure/cognitive-services/cognitive-services-and-machine-learning#how-are-cognitive-services-and-azure-machine-learning-aml-similar

Cognitive Services での学習済AIに関する説明もあります。

https://docs.microsoft.com/ja-jp/azure/cognitive-services/cognitive-services-and-machine-learning#how-is-a-cognitive-service-different-from-machine-learning

あとはCognitive Services を利用する際にトレーニングデータの有無がわかるリストもあります。 こちらも暗記はいらないと思いますが各サービスごとにどうしているのか、いらないのか、想像してみるとよいと思います。

https://docs.microsoft.com/ja-jp/azure/cognitive-services/cognitive-services-and-machine-learning#service-requirements-for-the-data-model

と、この調子で紹介していくと切りがなく、時間がいくらあっても足りないのでこの辺で。

チュートリアルを実行する

私は以下は実施することなく合格出来たのですがこの記事を書くにあたって色々調べていると学習に使えそうなコンテンツが見つかったので紹介します。

AI-100 の試験の説明のサイトで紹介されているe-learning コンテンツ

説明のページに”Online – Free” として紹介されているコンテンツです。

例えば Azure Cognitive Language Services を使用してテキストを評価する にアクセスすると、3つの学習用のモジュールがあることがわかります。 また、ラーニングパス内のモジュールとして別のモジュールも紹介されてきます。 学習時間も明示されているので本来はこういうのをコツコツ進めるのがよいのだと思います。

実際にAzure Cognitive Language Services を使用してテキストを評価する を進めてみると

”はじめに”ではモジュールの一般的なガイダンスが説明されます。ここは”続行”します。

2ページ目は検討している AI に関する前提条件の説明です。 実際の試験でも現在の状況が提示され、それに対してどのようなアプローチをとるべきか問われます。 このような学習モジュールをすすめることでマニュアルで得たCognitive Services をただの知識から生きた知識にすることができると思います。

インプットとなるデータについてなども。

3ページ目ではチュートリアル形式で実際にAzure Portal から操作していきます。 その通り進めるだけですが実際に操作することで具体的なイメージを頭にインプット出来ると思います。

4ページ目は演習です。 実際にどうモデレートされるか確認します。

5ページ目はセルフチェックです。

”回答を確認”から答え合わせが出来ます。

6ページ目が最後のページとなりますがまとめとなります。 ここで学習モジュールの目的をおさらいし、また、環境のクリーンアップについても簡単な手順が案内されます。これは良いですね。

試験のアウトラインについてこの学習モジュールをこなしていくのが一番良いのかなと思います。 試験に受かるだけであればマニュアルを読むだけでもなんとかなるとは思いますが現場に生かせるスキルという意味ではこのような学習モジュールを通して、実際の場面や課題を想定し、どの技術(Cognitive Services のAPI)をどう使うか考え、Azure 上で環境を構築した方がよいかなと。

本を読む

Cognitive Services入門 マイクロソフト人工知能APIの使い方

何かでもらった本。 まさに今回のAI-100 にぴったりの本です。 私が上の学習モジュールを実施せずに済んだのもこの本で利用イメージを掴めたのも大きかったと思います。 この本の中ではCognitive Services の概要の説明から以下のAPIについて概要と実際に動かす部分のスクリーンショット付の解説があります。 

  • Vision API
  • Speech API
  • Languages API
  • Knowledge API
  • Search API
  • Bot Framework

マニュアルだけよりはこういう書籍の方がイメージが掴みやすいのは確かです。

ここからは私が使っている電子書籍サービス “Honto” で買って読んだものを紹介します。 ただ、今回の試験のために買ったわけではないので過去に読んでいたものという感じです。

さわってわかる機械学習Azure Machine Learning実践ガイド

2016年の本で古いのですが、Azure Machine Learning を知るにはちょうど良いです。 当たり前の話ですが書籍は読みやすいものです。 知りたいことが明確な場合はマニュアルも良いのですが0から全体を抑えようと思うとマニュアルはその構造的に向かないことが多く。

実践ガイドとなっていますが前半は機械学習の一般論から始まります。 次にデータの集め方、その上でAzure Machine Learning を使った実践に入ります。 実践では学習モデルを作り、回帰分析による予測やクラスタリングなどをチュートリアルの形で実践することが出来ます。

AI-100 ではそこまでAzure Machine Learning は問われないのでDP-100向けではあります。

60分でわかる!機械学習&ディープラーニング超入門

超入門とありますがお勧めです。 最低限知っておくべき用語や概念などが良い意味でシンプルに説明されており頭にいれやすかったです。 また、世の中の適用事例、適用シーンが多く(20個ほど)紹介されておりそれもよかったです。 2017年発売なので似たようなコンセプトの新しい本でもよいかもしれません。

いちばんやさしい人口知能ビジネスの教本

上の本と近いコンセプトを持つ本ですが、ビジネスへの適用という切り口でまとめられています。 試験という意味では上のものかこちらかどちらかで概念を把握するのはよいと思います。

ITエンジニアのための機械学習理論入門

機械学習のアルゴリズムを知る上でお勧めです。

2015年とちょっと古いです。購入も大分前です。 上の超入門に対してこちらも入門とありますがアルゴリズムや理論に関する入門で私にはとても入門とは言えない中身の濃さ。 アルゴリズムや理論を数式とともに丁寧に解説されています。 導入部分にも書いてあるのですが機械学習の理論を知らずとも使えてしまう現状への危惧、出来合いのAIサービスにデータを投入するとそれらしい結果が出てくること、へしっかりとアルゴリズムを理解しないとそのようなデータには意味がないという著者の思いが伝わります。 具体的には以下のアルゴリズムについて知ることができます。  

  • 最小二乗法
  • 最尤推定法
  • パーセプトロン
  • ロジスティック回帰とROC 曲線
  • k 平均法
  • EM アルゴリズム
  • ベイズ推定

フリーライブラリで学ぶ 機械学習入門

2017年発売。 こちらも入門です。 中身はPythonで実際にモデルを作ったり、クラスタリング分類したり、画像認識したり、ディープラーニングしたり、初学者向けのチュートリアル的な流れで機械学習を理解しつつ手を動かせます。とは言いつつ私はざっと読んだだけですが。

他にも3-4冊程度。

4. まとめ

試験の概要と私の準備内容を紹介しました。  試験自体はAssociate クラスなので難しい内容はありません。 Associate のレベルについてMicrosoft からの具体的な説明は見つからなかったのですが、例えばAWS の認定では以下の説明がホームページにありました。 1年程度の実務経験ということなので豊富なスキル、経験というよりは対象の分野を扱い始めた入門者向けということです。ほかでもAssociate というと入門や基礎という扱いが多いようです。

https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/

他のAzure のAssociate も取得している中、AI-100に関わらずAssociate のレベル感は入門者向けだなと実感はあります。 私もほぼ実業務の経験が無い中マニュアルや書籍ベースの勉強だけで試験は合格出来ています。 基本的な知識の有するべきラインをマイクロソフトがRoleとして定義し、この認定が登竜門の役目なのかなと私はとらえています。 2~3年程度実業務に携わっていれば特に対策なく合格できる、そうでない場合は勉強すれば合格できる、ちょうど良い感じのレベル設定だなと思っています。 新領域に挑戦する場合は、まずMCP取得を最初のステップに使えるなと。

試験のアウトラインにも説明はありましたが現場では各Role がチームを組んでAIのEnd to End のソリューションを提供する必要があります。 その際に各Roleが基本的に有するべき知識・スキルをもつことでプロジェクトも円滑に進めることが出来ます。 私はAzure のMCPでは9認定を取得していますが、自分がProject Managerでチーム作りを考える場合、MCPの認定の有無という情報があればメンバー選定は効率化できるだろうとも思います。 資格だけでは判断は出来ませんが資格をもっていることで最低限の基本知識を持ち、それらを共通言語として使えることがわかるためです。

画像に alt 属性が指定されていません。ファイル名: image-30.png

最後に、この認定を受けてのメリットはCognitive Servies で出来ることが把握できたことです。 いわゆる学習済AI としてどういうラインナップを持っているかを知ることでお客様の課題に対して最初フェーズでの提案の取捨選択が可能です。 次にお客様の要件が学習済AIで対応できるかどうかある程度判断もできるようにもなりました。どこら辺まで対応できそうかも説明できそうです。 まあ、学習済AIは不適で新たに学習モデルを構築する場合はまだまだ力不足な現状ではありますが。

以上