生成AI前夜のAzure AI-102試験に駆け込み合格しました

# 経緯
Microsoftの [AI-102](https://learn.microsoft.com/ja-jp/credentials/certifications/exams/ai-102/) 試験を 2023/12/25 に受けてきました。先人のアドバイスに従い [MS公式の演習問題](https://learn.microsoft.com/ja-jp/credentials/certifications/exams/ai-102/practice/assessment?assessmentId=61&assessment-type=practice) と [Udemyの問題集](https://www.udemy.com/course/microsoft-certified-azure-ai-engineer-associate-ai-102/) で勉強し、812/1000 点という結果でした。勉強時間はおそらく50時間程度で、わりかし苦労したので、体験記として残しておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3361516/bf2dcda4-2901-8539-0c32-5ab030818d32.png)


# 試験範囲について
AI-102はAIシリーズの中級試験という位置付けで、合格するとMicrosoft認定資格「[Microsoft Certified: Azure AI Engineer Associate](https://learn.microsoft.com/ja-jp/credentials/certifications/azure-ai-engineer/)」が取得できます。AIソリューションの構築や既存のソリューションに対するAI機能の統合が行えるエンジニア、ということのようで、Associate という名前から受ける印象にくらべると若干上級職寄りの内容に思えます。ソースコードや dockerコマンドの読解が出題されるので、多少のプログラミング経験があると有利です。

2023/10/31 時点での試験範囲は下記で、生成AIも含まれています。

* Azure AI ソリューションを計画して管理する (15 から 20%)
* 意思決定支援ソリューションを実装する (10 から 15%)
* コンピューター ビジョン ソリューションを実装する (15 から 20%)
* 自然言語処理のソリューションを実装する (30 から 35%)
* ナレッジ マイニングとドキュメント インテリジェンス ソリューションを実装する (10 から 15%)
* __生成 AI ソリューションを実装する (10 から 15%)__

2023/10/31 から生成AIが試験範囲に追加された格好なのですが、これは英語版試験の話で、ローカライズ版の変更は通常、英語版の約 8 週間後になるとのことです。私が受験したとき (12/25) は生成AIの出題は無かったので、おそらく 10/31 の英語版更新がローカライズされてくる直前のタイミングで受験した格好と思います。なお、次回の変更として下記が予告されています。

> 2024 年 2 月 7 日にこの試験は更新され、次の変更が加えられます。Azure Cognitive Search の名称は Azure AI Search に変更され、Azure AI Personalizer コンテンツは削除されます。

試験範囲から外れる Azure AI Personalizer は 2026 年のサービス廃止がアナウンスされており、現在すでにサービスリソースの新規作成が行えなくなっているため、 MS Learn でラボ演習を行うことができません。

# 試験の流れ
テストセンターで受験しました。試験は毎日開催されており、テストセンターの数も多いので、受験者の都合にあわせて柔軟に予定を組めるのが嬉しいですね。

出題順序は [こちらのレポート](https://qiita.com/flutter_daisuki/items/1a2e63db9b1220381195) とは逆で、まず最初にケーススタディの大問、それから基本問題と二択問題、という順番でした。試験開始時にプログラミング言語として Python と C# のどちらかを選択し、設問中のソースコードはここで選択した言語で表示されます。このプログラミング言語選択を試験開始後に再変更することはできないようでした。

試験中は[MS Learnの閲覧が可能です](https://techcommunity.microsoft.com/t5/microsoft-learn-blog/introducing-a-new-resource-for-all-role-based-microsoft/ba-p/3500870)。テストセンターのシステムの安定性は素晴らしく、問題を進んだり戻ったり／問題を英語表示に切り替えたり戻したり／MSLearnを開いたり閉じたりといった操作を繰り返してもハングしたり答えが消えたりするようなことはありませんでした。画面の表示領域はなぜか４：３で、左右に黒帯が出ていたものの、画面が狭くて困る局面はありませんでした。

試験時間は長めで、MS Learnの検索にけっこう時間を使えます。たとえば「[Azure AI Vision APIの主要な色検出はTealを返すか？](https://learn.microsoft.com/en-us/azure/ai-services/computer-vision/concept-detecting-color-schemes#:~:text=The%20set%20of%20possible%20returned%20colors%20is%3A%20black%2C%20blue%2C%20brown%2C%20gray%2C%20green%2C%20orange%2C%20pink%2C%20purple%2C%20red%2C%20teal%2C%20white%2C%20and%20yellow) [^teal]」「[Document IntelligenceのトレーニングにGIF画像は使えるか？](https://learn.microsoft.com/ja-jp/azure/ai-services/document-intelligence/concept-custom?view=doc-intel-4.0.0#input-requirements:~:text=%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82-,%E5%85%A5%E5%8A%9B%E3%81%AE%E8%A6%81%E4%BB%B6,-%E6%9C%80%E9%81%A9%E3%81%AA%E7%B5%90%E6%9E%9C) [^gif]」といった枝葉末節を暗記せずとも試験中に確認できてしまうのは心強いです。

ケーススタディの大問は画面左に前提資料の一覧が表示され、そこに記載された現行システム構成／ビジネス要件／セキュリティ要件といった情報をもとに数問の選択問題を回答することになります。このケーススタディのシナリオは具体的なわりに特殊なドメイン知識は要求されない、理解しやすくリアリティのあるシナリオで、読み物として面白いのですが、それが問題としての面白さにつながっていない（選択問題の問題文だけで充足してしまう設問がある）点は若干残念に感じました。記述式ではなく選択式での出題としている以上、仕方ないのかもしれませんが・・・。


# 試験対策
受験料が高額で試験範囲も広いため試験対策が必要です[^kechi]。私は先人のおすすめに従い [Udemyの問題集](https://www.udemy.com/course/microsoft-certified-azure-ai-engineer-associate-ai-102/) を購入しました。解答だけでなく解説も付いていて、英語ですがブラウザの翻訳機能でなんとかなります。選択問題なので2周もすれば過学習が起きてしまうので、正答できた問題もふくめ解説をじっくり読んでおくとよいと思います。試験本番では配点に勾配があり、部分点もあるので[^ten]、Udemy問題集の正解率と実際の得点は一致しません。理想的にはこの問題集に加えて、解答根拠をMS Learn上で検索する練習もしておけると万全だと思いますが、私はそこまでの準備はできませんでした。

先人も書いているとおり、 [MS公式の演習問題](https://learn.microsoft.com/ja-jp/credentials/certifications/exams/ai-102/practice/assessment?assessmentId=61&assessment-type=practice) だけでは不足なので、こちらは解けて当然くらいにしておく必要があります。この公式演習は回答をその場で確認できるのは良いのですが、翻訳が怪しいにもかかわらず英語表示に切り替えられないのは辛いところです。下記の例だと「茶」が不正解と言ってるのに解説文には正答として「茶」が出てきているのですが、これはどうやら選択肢の茶は __<font color=maroon>Maroon</font>__ で解説の茶は __<font color=broiwn>Brown</font>__ 、ということのようです。本番試験の日本語品質は高いので、この点についてあまり神経質になる必要はありません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3361516/fb47af53-a4d5-9d32-bebd-e341e6a1dc9d.png)


# 生成AIパート
前述のとおり私が受験したタイミングでは生成AIの出題がなかったのですが、試験範囲として提示されている下記のラーニングパスは面白かったです。変化の激しい生成AI分野で、初学者向けに現時点でのベストプラクティスを簡潔に提示するという困難な目標を達成できており、AI-102を受験しない人にもお薦めできる内容です。

https://learn.microsoft.com/ja-jp/training/paths/develop-ai-solutions-azure-openai/


# その他、個人的メモ
学習のポイントについては先人のレポート、 [flutter_daisukiさん版](https://qiita.com/flutter_daisuki/items/1a2e63db9b1220381195) [^ss] と [elle-diaさん版](https://qiita.com/elle-dia/items/66fc054f54655754fc40) [^ll] を見ていただくのがよいと思いますが、個人的には下記のタームが難しく感じました。


|ターム|説明|link|
|---|---|---|
|filterable|Azure AI Searchの検索インデックス種別で完全一致検索専用のもの。列挙値的なカテゴリで検索する場合はこれ。フルテキスト検索したい場合はこれではなく、searchableを使う。|[Azure AI Search のインデックス](https://learn.microsoft.com/ja-jp/azure/search/search-what-is-an-index)|
|facetable|ファセッタブル[^tt]。Azure AI Searchの検索インデックス種別でカテゴリ別の件数が欲しいときはこれ。|[Azure AI Search のインデックス](https://learn.microsoft.com/ja-jp/azure/search/search-what-is-an-index)|
|タグとカテゴリ|Azure AI Visionに画像のカテゴリ分類とタグ付けという似た機能がある。タグが数千種類あるのに対し、カテゴリは86個しかなくて階層構造。|[画像の分類](https://learn.microsoft.com/ja-jp/azure/ai-services/computer-vision/concept-categorizing-images)|
|適合率（プレシジョン）と再現率（リコール）|頻出。機械翻訳がうまく訳せないので、この単語だけは日本語と英語の両方を覚えておく。Precisionが「精度」と翻訳されることがあるが、ふつう精度といえばAccuracyという別の指標を指す。|[会話言語理解モデルの評価メトリック](https://learn.microsoft.com/ja-jp/azure/ai-services/language-service/conversational-language-understanding/concepts/evaluation-metrics)<br>[Evaluation metrics for conversational language understanding models](https://learn.microsoft.com/en-us/azure/ai-services/language-service/conversational-language-understanding/concepts/evaluation-metrics)|



#  まとめ
「この資格を同僚にも薦めたいと思いますか？」と聞かれたら ⭐3(out of 5) と答えます。AI-102に限った話ではなく資格試験全般、リスキリング全般の一般論になりますが、「俯瞰的体系的に知識を習得する手段としては有益であるものの、試験範囲には業務上で活用できる見込みが当面ない分野も含まれるので、目先の業務遂行の手段として最適解ではない。リスキリングと通常業務の両立は難しく、本人の努力にくわえて周囲の理解も必要になる。したがって本人の強い希望と意思が前提になるので、無責任に推奨できるものではない」という感想を持ちました。 AI-102 に占める生成AIの割合はまだ低いので、 Azure OpenAI の習得が目当てであればまず [こちらのラーニングパス](https://learn.microsoft.com/ja-jp/training/paths/develop-ai-solutions-azure-openai/) 単体の受講をお薦めします。

Microsoft の認定資格は Fundamentals - Associate - Expert の3段階あるものが多いのですが、AIシリーズは現状、Expert が存在しないので、 AI-102 の合格で終わりです。順当に行けば次はAZシリーズを取得していくのがよいのでしょうが、正直しばらく試験勉強はお腹いっぱいという感じですので、次は気分を変えて Microsoft Applied Skills を取ってみようと思います。これは最近はじまった実技試験で、まだ英語のみですが、今なら無料で受けられるようです。

https://learn.microsoft.com/ja-jp/credentials/applied-skills/create-intelligent-document-solution-azure-ai/

https://learn.microsoft.com/ja-jp/credentials/applied-skills/build-natural-language-solution-azure-ai/

https://learn.microsoft.com/ja-jp/credentials/applied-skills/build-azure-ai-vision-solution/

[^ten]:[試験のスコア付けとスコア レポート | Microsoft Learn](https://learn.microsoft.com/ja-jp/credentials/certifications/exam-scoring-reports#how-exams-are-scored)
[^kechi]:ヘイシャの資格支援制度は「合格者に対し事後精算」のため、一発合格する必要があります。
[^ss]:試験の流れ等が簡潔にまとまっていて良い
[^ll]:試験対策メモは一見たんなる羅列に見えるのだが、問題集を解いてから読むと真価がわかる
[^tt]:どうしてもフェイステーブルと読んでしまう。なぜface<b>tt</b>ableと綴らないのだろうか？？
[^teal]:Tealは返します
[^gif]:GIFは使えません