AI-900备考指南:Azure AI工作负载与负责任AI题库解析
2026/9/17 20:46:58 网站建设 项目流程

简介:围绕微软 AI-900 认证考试的备考资料,以单份 PDF 文档形式呈现,主要面向计划参加 Azure AI Fundamentals 考试的自学者、转行人员及需要快速梳理 AI 基础概念的在校生。内容按 Topic 组织,收录多道 ExamTopics 风格真题,涵盖聊天机器人业务收益、训练集与评估集划分、混淆矩阵中真阳性与假阴性判断、自动化机器学习中的可解释性设置等高频考点,并附正确答案、社区投票分布与微软官方文档参考链接,便于对照理解命题思路。压缩包内共 1 个 PDF 文件,大小约 17.65MB,页面排版清晰,适合在平板或电脑上逐题练习与标注。目前已有 363 人学习下载,可作为考前自测与查漏补缺的题库材料,帮助读者熟悉题型分布、验证知识盲区,并配合解析回看机器学习基础概念。

1. AI-900 是一张把业务场景翻译成 Azure 服务名的入场券

有人在群里抛出一道题:公司做了个网页聊天机器人自动回答常见问题,应该期待什么业务收益?四个选项分别是销售额提升、客服工作量下降、产品可靠性改善。很多人第一反应是"提升销售额",正确答案是客服工作量下降。这类题在 AI-900 里占比很大,它不考数学推导,考的是你能不能把一句业务描述翻译成 Azure 里某个具体能力和某个具体收益。

AI-900 认证考试全称是 Microsoft Azure AI Fundamentals,定位是基础级,面向的是没有建模经验但要和 AI 项目打交道的角色:后端、运维、数据工程、产品经理。ExamTopics 这类题库资料常见的 PDF 形态很固定——题号、题干、选项、Correct Answer、Community vote distribution 投票分布、外加一条 docs 参考链接,题型上单选、拖拽(DRAG DROP)、热点(HOTSPOT)混排。把这份资料当作"题型样本 + 知识地图"来读,比当作标准答案来背要划算得多。

2. AI-900 考纲到 Azure 服务的映射:工作负载判定与题库读法

这一章解决的是"看到题干第一句话,就知道出题人想问哪个域"的问题。AI-900 的题目几乎都能归到两类:一类问 AI 工作负载(workload),一类问负责任 AI 原则。工作负载题的解法是抓信号词,原则题的解法是抓关键词,两者都不需要你写出模型。

2.1 四类 AI 工作负载的判定特征

工作负载题的题干通常给一个业务动作,选项给四个工作负载名。判定靠的是"输入是什么、输出是什么",而不是行业。电话录音转文字再判断情绪,输入是语音、输出是情绪标签,落在 NLP 上,不是语音相关的计算机视觉。

工作负载题干信号词常见 Azure 能力
机器学习(回归 / 分类 / 聚类 / 异常检测)预测数值、分类客户、离群交易、欺诈识别、设备故障Azure Machine Learning、Anomaly Detector
计算机视觉图像分类、目标检测、人脸、OCR、识别照片里有没有某物Computer Vision、Face、Custom Vision
自然语言处理情感分析、关键词提取、语言检测、文本分类、翻译Language 服务、Translator
对话式 AI机器人、多轮问答、FAQ 自动应答、坐席辅助Bot Service、Language 中的问答能力

提示:题库里出现过"识别推文照片里是否有人戴墨镜",答案是 Face 服务的 Detect 操作,而不是 Computer Vision 的 Describe Image。区别在于 Describe 输出一段自然语言描述,Detect 输出人脸与属性结构化字段,题目要的是可编程判断而不是文字描述。

2.2 机器学习和异常检测的边界

异常检测在考纲里属于机器学习工作负载的一个分支,但它和分类的标注前提完全不同。分类要求你手里有历史标注的"欺诈/正常"标签;异常检测允许你只有一堆流水,靠统计离群来发现可疑项。题库里说"异常检测涵盖识别潜在欺诈交易、学习网络入侵模式、发现异常患者聚集"——这几句话的共同点是:异常样本稀少、定义模糊、事先拿不到标注。

下面这段代码用同一份数据把两条路线跑一遍,能直观看出输入差异:

# 对比:有标签走分类,无标签走异常检测 import numpy as np from sklearn.linear_model import LogisticRegression from sklearn.ensemble import IsolationForest rng = np.random.default_rng(42) # 路线一:历史数据已人工标注过,走监督分类 X_labeled = rng.normal(size=(500, 4)) y_labeled = (X_labeled[:, 0] + X_labeled[:, 1] > 1.2).astype(int) # 已知标签 clf = LogisticRegression(max_iter=1000).fit(X_labeled, y_labeled) print("分类预测:", clf.predict(X_labeled[:3])) # 路线二:只有流水没有标签,只能找离群点 X_unlabeled = rng.normal(size=(500, 4)) iso = IsolationForest(contamination=0.05, random_state=42).fit(X_unlabeled) print("异常检测预测(-1 为离群):", iso.predict(X_unlabeled[:10]))

逻辑说明:第一段必须传入y_labeled,因为监督学习要拟合特征到标签的映射;第二段完全没有 y 参数,模型只能学习"多数样本长什么样"。参数上,contamination=0.05表示你预期大约 5% 的样本是异常,这个值设大了会把正常交易误判为欺诈,设小了会漏掉真正的离群点,实际项目里一般先用历史欺诈率估一个初值再调。random_state固定后每次运行结果一致,方便复现。考试层面只需要记住这个区别:题目强调"事先不知道哪些是异常"就选异常检测,强调"根据历史标注预测类别"就选分类。

2.3 题库 PDF 的结构决定了怎么读

一份典型的 ExamTopics 风格资料,单题包含四块信息:题干与选项、Correct Answer、投票分布(如B (100%))、Reference 链接。这四块的可靠性是递减的。题干和选项最可靠,它就是考纲的语言;Correct Answer 大体可靠但存在版本漂移;投票分布只是社区共识的统计,100% 一致反而说明这题被反复刷过,不是难度高;Reference 链接指向的文档可能已经改名。

注意:题库中大量参考链接指向docs.microsoft.com/en-us/azure/machine-learning/studio/...,这是已经退役的 Machine Learning Studio(经典版)文档。经典版里的 Split Data 模块默认按 50-50 切分数据,而现在的 Azure Machine Learning 设计器里默认比例不同。背正确答案没问题,但别把文档里的默认值当成当前默认值。

读法是:先按域给题目打标(工作负载 / 机器学习基础 / 计算机视觉 / NLP / 负责任 AI),再按域统计错题率。按题号顺序刷,你只会记住第 3 题选 B;按域刷,你才知道自己是不认识 Face 服务还是分不清透明性和问责。

2.4 备考材料的取舍顺序

常见做法是三步走。第一步用题库摸题型,两天内把所有题过一遍,只标记"完全没思路"的题,不纠结正确率。第二步回到官方学习路径补概念,重点是负责任 AI 六原则和 Azure AI 服务清单这两块,它们占分稳定且最容易被当成常识忽略。第三步回头做错题,每个错题写一句"我当时是怎么想的",因为 AI-900 的错因九成不是不会,而是被某个干扰词带偏。零基础的人大概两到三周能跑完这个循环,有云平台经验的压缩到一周也正常。

3. 训练集划分与混淆矩阵:把题库里的两道题写成可运行代码

机器学习基础部分在题库里反复出现两种问法:数据怎么切、混淆矩阵怎么读。这两类题用代码跑一遍,比看十遍解析都牢。

3.1 为什么必须按行随机切分

题库原题问"如何为训练和评估划分数据",四个选项里有两个陷阱:用特征训练、用标签评估;按列切分。正确做法是随机按行切分。原因很直接——一行代表一个样本,特征和标签是同一个样本的两个侧面,把它们分开就等于把一个人的身份证号和姓名分到两个集合里,模型在评估时看到的是从未见过的组合。

按列切分更荒谬:那是把某些特征整体留给评估集,训练时模型压根没学过这些列,评估结果没有意义。选项 A 和 C 属于同一个错误的变体,只是把"列"换成了"特征/标签"的说法。

3.2 复现一次标准切分与指标计算

from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import confusion_matrix, precision_score, recall_score X, y = load_breast_cancer(return_X_y=True) # 关键:按行切分,并用 stratify 保持正负样本比例 X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, # 评估集占 20% random_state=42, # 固定种子,结果可复现 stratify=y # 分层抽样,防止小类别被切空 ) model = LogisticRegression(max_iter=5000).fit(X_train, y_train) y_pred = model.predict(X_test) # 注意 ravel() 的解包顺序是 tn, fp, fn, tp,顺序写反是最常见的低级错误 tn, fp, fn, tp = confusion_matrix(y_test, y_pred).ravel() print(f"TP={tp} FP={fp} FN={fn} TN={tn}") print(f"precision={precision_score(y_test, y_pred):.3f}") print(f"recall={recall_score(y_test, y_pred):.3f}")

逻辑说明:train_test_split的四个返回值顺序固定,写反了训练集和测试集会互换但代码不报错。test_size=0.2是当前常见默认习惯,题库里提到的 50-50 是经典版 Split Data 模块的旧默认值。stratify=y在类别不平衡时才体现价值——比如欺诈样本只占 1%,不分层的话评估集里可能一个正样本都没有,recall 无从计算。

参数说明:random_state决定切分结果,换一个值指标会小幅波动,写论文或对比模型时务必固定;max_iter是逻辑回归的迭代上限,样本量上去以后默认 100 会频繁触发收敛警告,调大即可。

3.3 混淆矩阵到指标的推导链

题库里有一道热点题给了混淆矩阵,要求填 TP 和 FN。记住四个格子的定义,剩下全是算术:

指标定义关注什么
TP 真阳性实际为正、预测为正抓对了多少
TN 真阴性实际为负、预测为负放过多少
FP 假阳性实际为负、预测为正误报,骚扰成本
FN 假阴性实际为正、预测为负漏报,风险成本

由此得到两个高频指标:precision = TP / (TP + FP),衡量"报出来的有多少是真的";recall = TP / (TP + FN),衡量"真的有多少被报出来了"。风控场景通常优先保 recall,因为漏掉一笔欺诈的代价远高于误拦一笔正常交易;而推荐、广告这类场景更在意 precision,误报会直接损害体验。

提示:题目给矩阵时,先确认行列哪个是"实际"哪个是"预测"。不同教材的排布顺序不一样,ExamTopics 的解析里默认解析文字会写明,题干图不清楚时以解析里的 TP/FN 数值反推排布。

3.4 题目没提但你该知道的三个坑

第一个是数据泄漏:如果切分前用全量数据做了标准化或缺失值填充,评估集的信息已经渗进训练过程,指标会虚高。正确顺序是先切分,再在训练集上 fit 变换器,然后 transform 评估集。第二个是类别不平衡下的 accuracy 陷阱:99% 的样本是正常交易时,全预测"正常"就能拿到 99% 准确率,所以不平衡场景要看 precision/recall 或 AUC,不要只看 accuracy。第三个是时间序列不能随机切分,金融、运维日志这类数据必须按时间前后切,否则等于用未来的数据预测过去。考试不考这三点,但面试会问,而且它们解释了你刷题时"明明做对了指标却很难看"的原因。

4. 负责任 AI 六原则:题干关键词到原则的判定规则与 Azure ML 落地开关

负责任 AI 是 AI-900 里最容易被低估的板块。它没有计算,但六个原则的中文翻译彼此高度相似,光靠背名词会在干扰项上翻车。破局点是把每个原则绑定到一个可观察的动作。

4.1 六原则与判定关键词对照表

原则一句话判定题干信号词
公平性 Fairness决策不对特定群体产生系统性偏差贷款审批、招聘筛选、性别/种族/年龄、bias
可靠性与安全 Reliability and safety按设计运行、能应对意外、抗恶意操纵边缘场景、性能退化、持续监控、A/B 测试、champion/challenger
隐私与安全 Privacy and security数据受保护,采集使用存储需透明个人数据、授权、访问控制、合规要求
包容性 Inclusiveness覆盖不同人群与不同能力听障、视障、残障人士、无障碍设计
透明性 Transparency能解释模型怎么来的,可复现可解释、文档、调试、复现训练过程
问责 Accountability人对系统负责,人类保留最终控制权最终决策权、行业标准、人类监督

这张表的用法是反向的:先看题干里出现了哪个信号词,再选原则。题干出现"贷款审批的因素应当可解释",信号词是"可解释",直接指向透明性;出现"包括有听力、视觉障碍的人",指向包容性;出现"系统在意外条件下安全响应",指向可靠性与安全。

4.2 三道典型题的推理链

第一道:问哪个任务满足透明性原则。选项里有"为所有视觉元素提供可供屏幕阅读器读取的替代文本",这是包容性的做法,不是透明性;"启用自动缩放"属于运维,与原则无关;"确保训练数据集能代表总体人群"是公平性的做法;正确答案是"提供文档帮助开发者调试代码"。推理链是:透明性的核心诉求是让人能理解并复现模型的行为,文档和调试能力直接服务于这一点。

第二道:AI 系统评估贷款审批,决策因素需要可解释,问属于哪个原则。题干直接给了"explainable",选透明性。这里的干扰项是公平性——贷款审批容易让人联想到歧视,但题干没有提任何群体,只提解释性。

第三道:为所有人赋能,包括听障视障人群,问属于哪个原则。选包容性。这题如果换成"为视障用户提供语音播报的同时,保证语音识别对各地口音都准确",就变成了公平性与包容性的交叉,得看题干强调的是"能力覆盖"还是"群体间无偏差"。

4.3 在 Azure 自动机器学习里对应的开关

题库里有一道题问:用自动机器学习 UI 建好模型后,要确保满足透明性原则该怎么做,答案是启用解释最佳模型(Explain best model)。这个开关在 SDK 里也能设:

from azure.ai.ml import automl # 自动机器学习分类任务:打开模型可解释性,对应 UI 上的 Explain best model job = automl.classification( compute="cpu-cluster", experiment_name="ai900-explain", training_data=my_training_data, target_column_name="label", primary_metric="accuracy", # 主指标,决定选哪个模型 enable_model_explainability=True, # 关键开关:输出特征重要性 )

逻辑说明:primary_metric决定自动机器学习在众多候选模型和超参组合里挑哪个作为最佳模型,常用的还有AUC_weightedprecision_score_weightedenable_model_explainability=True让流程在训练完成后额外计算每个特征对预测的影响方向和幅度,也就是特征重要性,这是把黑盒打开、满足透明性要求的具体手段。

参数说明:开启解释会带来额外计算开销和运行时间,在特征维度很高时尤其明显,所以它不是默认打开,而是需要你主动声明。题目里另外几个选项——把验证类型设为 Auto、把主指标设为 accuracy、把最大并发迭代设为 0——分别影响数据切分、模型选择和资源调度,与透明性没有关系。最后那个"最大并发迭代设为 0"是个纯干扰项,设成 0 在新版本里甚至可以理解为不启用自动超参搜索。

4.4 干扰项的生成规律

负责任 AI 题的四个选项,通常由一个正确答案和三类干扰组成:同一原则的另一种做法(如透明性题里放包容性的无障碍方案)、其他原则的表述(如公平性、隐私与安全)、以及完全不相关的工程手段(自动缩放、并发数、验证类型)。识别方法很简单——先判断选项描述的是不是"模型本身的行为",自动缩放、并发数这类属于基础设施,一定不是答案。剩下两个同域选项,就回到信号词上做判决。

5. 刷题效率与临考判断:错题归因表与题型作答节奏

题库刷到第二遍,很多人会陷入"这题我见过但说不清为什么"的状态,正确率上去了,实际掌握没上去。解决办法是把记忆单位从题目改成知识点。

5.1 四类题型的作答开销不一样

ExamTopics 风格的资料里题型混杂,作答策略要分开定。

题型特征建议节奏
单选一句业务描述加四个选项30 秒内定论,超时就标记跳过
拖拽匹配 DRAG DROP若干原则/工作负载与场景配对先做最有把握的一对,用排除法收敛
热点 HOTSPOT下拉框填空或句子里选词注意每个空独立计分,不要因为一个空卡住
是/否判断三个陈述分别判真假逐句独立判断,避免被前一句的语义带走

拖拽题的技巧是"先锚定唯一项"。比如把工作负载匹配到场景,先找那个绝对不可能混淆的场景——"从客户反馈里提取关键词"只能是 NLP,剩下三个再排。热点题的空格是独立计分的,遇到一个拿不准的先选一个再看下一个,别在一个空上耗三分钟。

5.2 用脚本统计错题分布

按域统计错题率,是决定考前最后两天补哪块的最快方式。下面这段脚本把归因记录聚合成一张按错题数排序的表:

import csv import collections # 每条记录:知识点关键词、所属域、是否答错(1/0) records = [ ("webchat bot 业务收益", "workload", 1), ("训练/评估集划分", "ml-basics", 1), ("混淆矩阵 TP/FN", "ml-basics", 0), ("Explain best model", "responsible-ai", 1), ("inclusiveness 无障碍", "responsible-ai", 0), ("异常检测场景匹配", "workload", 0), ] stat = collections.defaultdict(lambda: [0, 0]) # [总题数, 错题数] for _, domain, wrong in records: stat[domain][0] += 1 stat[domain][1] += wrong with open("review.csv", "w", newline="", encoding="utf-8") as f: writer = csv.writer(f) writer.writerow(["domain", "total", "wrong", "error_rate"]) # 按错题数从多到少排,优先补最弱的一块 for domain, (total, wrong) in sorted(stat.items(), key=lambda kv: -kv[1][1]): writer.writerow([domain, total, wrong, f"{wrong / total:.0%}"])

逻辑说明:defaultdict省掉了初始化判断,第二列累加错题数比只记正确率更有用——正确率会掩盖样本量差异,10 题错 3 题和 3 题错 1 题的正确率接近,但前者明显更需要补。排序键用-kv[1][1],负数让错题数多的域排前面,直接对应复习优先级。

参数说明:encoding="utf-8"必须写,否则中文知识点在 Windows 上打开是乱码;newline=""防止 CSV 在 Windows 下多出空行。这份表可以直接在 Excel 里按 error_rate 排序,再给每一行补一列"我当时选了什么、为什么错",这个动作比再刷一百道新题有效。

5.3 临考两天的动作清单

最后一轮不要从头到尾重刷。先跑一遍上面那张表,给错题率最高的域补一次概念,工作负载题去对 Azure 服务清单,原则题去对关键词表,机器学习基础题把切分顺序和混淆矩阵四个格子默写一遍。然后专挑拖拽和热点题做,因为这两类最耗时间,一旦在考场上卡住,后面单选的时间会被挤掉。判断题保持一句话独立判断的习惯,把"该原则要求系统具备某能力"和"该原则禁止系统做某事"分开看,题干里出现否定表述时慢半拍再落笔。

考前最后两小时只看三样东西:六原则的信号词对照表、四类工作负载的输入输出特征、混淆矩阵的四个格子和两个公式。其他的,刷题时形成的语感已经够了。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询