简介:本资源为微软 AI-900 Microsoft Azure AI Fundamentals 认证的 91 道考题整理包,面向准备参加该认证考试的技术人员、云与人工智能入门学习者。内容覆盖人工智能工作负载与考量、Azure 机器学习基础、计算机视觉、自然语言处理等考核方向,题型包含单选、热点题与拖拽题,并附有正确答案与解析说明。资源包共 1 个 PDF 文件,大小约 2.86MB,便于在电脑或移动设备上直接翻阅、打印标注,适合考前集中刷题与知识点速查。已有 448 人学习下载。读者可借由逐题解析理解 Webchat Bot 减轻客服工作量的商业价值判断、训练集与评估集的随机划分方法,以及混淆矩阵中真阳性、假阴性等指标的计算与应用,同时熟悉微软负责任的 AI 原则在自动机器学习中的落地方式,从而系统查漏补缺、提升应试信心。
1. AI-900 考的不是算法,是 Azure 上 AI 服务的边界
很多人备考 AI-900 的第一反应是去补数学:梯度下降、反向传播、正则化,一本《机器学习》啃到第三章,回头做 91 题题库,还是栽在「给一张发票照片自动提取字段该用哪个服务」上。微软考试认证体系里的 AI-900(Azure AI Fundamentals)是基础级云 AI 认证,提问方式高度固定:给业务场景,让你在几个 Azure AI 服务之间做选择;或者给一份训练结果,让你判断该看哪个指标。它不要求写模型代码,也不考公式推导,考的是服务边界和概念口径。适合谁:做过后端、运维、数据分析、产品,想用一张权威证书把「我懂云上 AI 怎么落地」这句话说圆的人;也适合需要跟算法团队对齐术语的技术管理者。下面按考纲拆解、题库处理、命令复现、指标计算、考前复盘的顺序展开,每一步都能直接抄。
2. AI-900 考纲拆解与 91 题题库的刷题路线
2.1 五个考纲域的权重与题型特征
AI-900 的考纲域数量不多,但每个域下面挂的服务名很密,靠背服务名背不完,得按「场景 → 能力 → 服务」三层去记。微软官方的 skills outline 会随版本调整,你手上的 91 题 PDF 如果不是同一版,权重会有出入,所以下面给的是常见区间,不是精确分值,最终以你下载到的官方 skills outline 为准。
| 考纲域 | 常见权重区间 | 题型特征 | 优先级 |
|---|---|---|---|
| AI 工作负载与 Azure AI 服务考量 | 15%~20% | 场景选服务、服务选能力 | 高 |
| Azure 上的机器学习基础 | 20%~25% | 概念判断 + 指标计算 | 最高 |
| 计算机视觉工作负载 | 15%~20% | 服务与视觉功能匹配 | 中 |
| 自然语言处理工作负载 | 15%~20% | 服务与语言功能匹配 | 中 |
| 生成式 AI 工作负载 | 10%~15% | Azure OpenAI、Copilot 概念 | 中高 |
题型分布上,选择题占大头,还夹着拖拽匹配题(把服务拖到对应场景)和少量填空。真正让人翻车的是「两个选项都能实现、但只有一个是最合适服务」的那种题,判断依据通常是:任务是否需要自定义模型、输入是不是结构化数据、延迟和成本有没有隐含约束。
2.2 91 题三轮刷题法:从归类到限时模拟
第一轮不掐时间,把 91 题按上表五个域分成五摞,每错一题,在旁边手写一句「正确选项为什么对、我选的为什么错」。这一步的目的不是记住答案,而是暴露你脑子里的错误映射,最常见的三类是:把 OCR 和文档智能混为一谈、把异常检测当成分类问题、把回归指标用到分类题上。
第二轮只做错题和被标记的题,单题控制在 60 秒内。同一道题第二次还错,说明不是记性问题而是概念没建立,回到 Microsoft Learn 对应学习路径读原文,别在题库内部找证据。
第三轮连续做两套限时模拟,单题 45 秒左右,正确率稳定在 85% 以上再约考。AI-900 的通过线常见说法是 700/1000,考试时长通常在 45 分钟上下,题量 40 到 50 题。
| 轮次 | 目标 | 单题时间 | 通过标准 |
|---|---|---|---|
| 第一轮 | 建立场景到服务的映射 | 不限 | 每道错题能一句话说清错因 |
| 第二轮 | 消灭错题 | 60 秒 | 错题集正确率 100% |
| 第三轮 | 模拟考场节奏 | 45 秒 | 连续两套 ≥ 85% |
提示:题库 PDF 的参考答案本身可能有错。遇到两个选项都像对的题,去官方学习路径上找原文,不要用「另一道题的答案」来反推。
2.3 用 Python 把题库 PDF 拆成可检索的 CSV
91 题的 PDF 直接翻效率很低,无法按关键词检索,也没法统计自己哪块薄弱。用 pdfplumber 抽文本再按题号切块,是最省事的做法。
import re import csv import pdfplumber PDF_PATH = "AI-900-91Q.pdf" # 题库 PDF,放脚本同目录 OUT_CSV = "ai900_questions.csv" # 题号格式可能是 "1." "12、" "Q3." "Question 4",按你手上的 PDF 实际格式调整 Q_PATTERN = re.compile(r"(?m)^\s*(?:Q(?:uestion)?\s*)?(\d{1,3})[\.\、\)]\s+") # 选项格式 "A." "B)" "C、",多选、拖拽题的选项可能不带字母,需要单独处理 OPT_PATTERN = re.compile(r"(?m)^\s*([A-F])[\.\、\)]\s+(.*)$") def main(): rows = [] with pdfplumber.open(PDF_PATH) as pdf: for page_no, page in enumerate(pdf.pages, start=1): # x_tolerance 调小可避免双栏 PDF 把左右两栏串成一行 text = page.extract_text(x_tolerance=2, y_tolerance=2) or "" marks = list(Q_PATTERN.finditer(text)) for i, m in enumerate(marks): start = m.start() end = marks[i + 1].start() if i + 1 < len(marks) else len(text) block = text[start:end].strip() options = OPT_PATTERN.findall(block) stem = OPT_PATTERN.sub("", block).strip() # 去掉选项行,剩下题干 rows.append({ "qid": m.group(1), "page": page_no, "stem": " ".join(stem.split()), "options": " | ".join(f"{k}.{v.strip()}" for k, v in options), }) with open(OUT_CSV, "w", newline="", encoding="utf-8-sig") as f: writer = csv.DictWriter(f, fieldnames=["qid", "page", "stem", "options"]) writer.writeheader() writer.writerows(rows) print(f"extracted {len(rows)} questions -> {OUT_CSV}") if __name__ == "__main__": main()逻辑上分三步:逐页抽文本、按题号正则切成块、用选项正则把题干和选项分离。参数上有几个坑值得说明:x_tolerance和y_tolerance是控制字符合并距离的,双栏排版时调小到 1 能减少左右栏混行,单栏排版调大反而更干净;encoding="utf-8-sig"是为了 Excel 双击打开不乱码;Q_PATTERN必须按你手上 PDF 的真实编号格式改,照抄大概率切不出 91 条,跑完先看打印的条数对不对。
2.4 用词频统计定位薄弱考纲域
把 CSV 生成后,用一条 grep 就能看出哪类关键词在你的错题里高频出现,再对应到考纲域。
# 统计题库中各类能力关键词出现次数,按频次倒序 grep -o -i -E "computer vision|ocr|read api|sentiment|key phrase|entity|speech|translator|anomaly|regression|classification|clustering|azure openai|responsible ai|confusion matrix" \ ai900_questions.csv | sort | uniq -c | sort -rn这条命令做的是「关键词 → 出现次数」的聚合,-o让 grep 只输出匹配片段而不是整行,-i忽略大小写,最后的sort -rn按次数倒序。如果你发现自己丢分集中在confusion matrix、regression这类词上,优先补第 4 章那套指标算法;如果集中在speech、translator,就补语言服务的功能边界。
3. 把 AI-900 考点落成 Azure 资源:CLI 与 SDK 最小复现
3.1 用 Azure CLI 建多服务认知服务资源
考试里出现频率最高的一个映射是「一个 key 打通多个 AI 能力」,对应的是多服务资源。用 CLI 建一遍,比看十遍文档记得牢。
# 登录,会拉起浏览器走微软账户授权;CI 环境用 --use-device-code az login # 建资源组,region 选离你近的,也影响后面服务是否可用 az group create --name rg-ai900-lab --location eastasia # 查看当前订阅支持哪些 kind,别照抄老教程里的名字 az cognitiveservices account list-kinds -o table # 建多服务资源:kind 选 CognitiveServices(新版可能叫 AIServices) az cognitiveservices account create \ --name ai900-cog-demo-001 \ --resource-group rg-ai900-lab \ --kind CognitiveServices \ --sku F0 \ --location eastasia \ --custom-domain ai900-cog-demo-001 \ --yes # 取 key 和 endpoint,两个值后面写进环境变量 az cognitiveservices account keys list \ --name ai900-cog-demo-001 --resource-group rg-ai900-lab -o table az cognitiveservices account show \ --name ai900-cog-demo-001 --resource-group rg-ai900-lab \ --query properties.endpoint -o tsv参数含义逐个说清:--kind决定这个资源能调哪些 API,CognitiveServices是多服务,ComputerVision、TextAnalytics、FormRecognizer是单服务,考试里「一个资源支持多种 AI 能力」问的就是多服务资源;--sku F0是免费层,每个订阅每类服务通常只能建一个,练手优先用它,S0 是标准层按量计费;--custom-domain会生成带子域名的 endpoint,部分服务必须要有;--yes跳过确认提示,脚本里不加会卡住。
3.2 用 Python SDK 跑通文本情感分析与图像识别
文本侧先装包:pip install azure-ai-textanalytics azure-ai-vision-imageanalysis,然后把上面取到的 endpoint 和 key 写进环境变量。
import os from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics import TextAnalyticsClient ENDPOINT = os.environ["AI900_ENDPOINT"] # https://xxx.cognitiveservices.azure.com/ KEY = os.environ["AI900_KEY"] client = TextAnalyticsClient(endpoint=ENDPOINT, credential=AzureKeyCredential(KEY)) docs = [ "The new GPU instance cut our training time in half.", "The invoice upload failed three times this morning.", ] # show_opinion_mining 开启观点挖掘,能定位到评价对应的具体对象 result = client.analyze_sentiment(documents=docs, language="en", show_opinion_mining=True) for doc in result: if doc.is_error: # 单条失败不影响整批,务必判断 print(doc.id, doc.error.code, doc.error.message) continue print(doc.id, doc.sentiment, doc.confidence_scores) for s in doc.sentences: print(" ", s.text, s.sentiment)视觉侧用同一个 endpoint 和 key 即可,这就是多服务资源的价值:
from azure.core.credentials import AzureKeyCredential from azure.ai.vision.imageanalysis import ImageAnalysisClient from azure.ai.vision.imageanalysis.models import VisualFeatures vision = ImageAnalysisClient(endpoint=ENDPOINT, credential=AzureKeyCredential(KEY)) res = vision.analyze( image_url="https://example.com/invoice-sample.jpg", # 换成可公网访问的图片 visual_features=[VisualFeatures.CAPTION, VisualFeatures.READ, VisualFeatures.TAGS], ) print(res.caption.text, round(res.caption.confidence, 3)) for block in res.read.blocks: # READ 对应 OCR,按块返回文本行 for line in block.lines: print(line.text)关键点在于visual_features这个参数:CAPTION生成整图描述、READ做 OCR、TAGS打标签、OBJECTS做目标检测。考试里问「哪项功能能从图片里读出文字」,答案就是 READ / OCR 这条线;问「生成图片的一句话描述」,是 caption。image_url必须是服务端可访问的公网地址,本地文件要先上传到 Blob 存储再传 URL,这是新手最常踩的落地坑。
3.3 key、endpoint、region 三类错配的排错表
打印doc.error.code是定位问题的关键动作,常见的错误码和真实原因对应如下。
| 报错 / 现象 | 真实原因 | 修法 |
|---|---|---|
| 401 Access denied due to invalid subscription key | key 用成了另一个资源的 | 重新执行az cognitiveservices account keys list并核对资源名 |
| 404 Resource not found | endpoint 粘贴时带了多余路径或少了协议头 | 用--query properties.endpoint原样输出再复制 |
| 403 该区域不支持此功能 | region 选到了服务未覆盖的区域 | 换成 eastasia、eastus 等常见区域重建资源 |
| 429 Too many requests | F0 免费层有 QPS 上限 | 加指数退避重试,或换成 S0 标准层 |
| 400 InvalidRequest: language not supported | 文档语言不在支持列表里 | 显式传language,或改用自动检测 |
重试策略可以直接交给 SDK 的传输层参数,不用自己写循环:
from azure.ai.textanalytics import TextAnalyticsClient from azure.core.pipeline.policies import RetryPolicy client = TextAnalyticsClient( endpoint=ENDPOINT, credential=AzureKeyCredential(KEY), retry_policy=RetryPolicy(total_retries=5, backoff_factor=0.5), # 5 次重试,间隔指数增长 )total_retries是重试总次数,backoff_factor是退避基数,SDK 默认只对 408、429、500 这类可重试状态码生效。写业务代码时把它调大一点比在业务层包一层 for 循环更省心,考试不考这段,但真实项目里必踩。
4. Azure 机器学习与负责任 AI:丢分最多的两块
4.1 workspace、compute instance 与 compute cluster 的分工
Azure 机器学习这块的高频考法是「哪个组件负责什么」,用命令行建一遍比背概念有效。先装扩展:az extension add -n ml。
# 建 workspace,它是 AML 的顶层组织单元 az ml workspace create --name aml-ai900 --resource-group rg-ai900-lab --location eastasia # compute instance:单机开发环境,给数据科学家写 notebook 用 az ml compute create --name dev-instance --type ComputeInstance \ --size STANDARD_DS3_V2 --workspace-name aml-ai900 --resource-group rg-ai900-lab # compute cluster:训练用集群,可自动伸缩,用完缩到 0 省钱 az ml compute create --name cpu-cluster --type AmlCompute \ --size STANDARD_DS3_V2 --min-instances 0 --max-instances 2 \ --workspace-name aml-ai900 --resource-group rg-ai900-lab--type是这道题的答案本体:ComputeInstance是单节点的开发机,AmlCompute是可自动伸缩的训练集群,推理集群通常建在 AKS 上用于部署。--min-instances 0表示集群闲置时缩容到零节点,只在有任务时计费,是控制成本最直接的手段。workspace 下面还挂着数据存储(datastore)、数据集(dataset)、模型注册表(model registry)、管道(pipeline)和环境(environment),考题会问「保存训练好的模型该放哪」,答案是 model registry。
4.2 负责任 AI 六原则的识别技巧
六个原则的题目几乎每套必出,难点是场景描述一绕就分不清。记住每个原则的「一句话识别点」比背定义管用。
| 原则 | 识别点 | 典型场景 |
|---|---|---|
| 公平性 | 不同群体结果不能有系统性偏差 | 招聘筛选模型对某群体的通过率明显偏低 |
| 可靠性与安全性 | 异常输入下不能产生危险结果 | 识别失败时要能安全降级而不是乱输出 |
| 隐私与安全 | 数据合规、加密、脱敏 | 训练数据里含身份证号或病历 |
| 包容性 | 覆盖残障、语言、口音差异 | 语音识别要支持多种口音 |
| 透明性 | 决策过程可解释 | 拒贷必须给出可理解的理由 |
| 问责制 | 有人对系统结果负责 | 设立 AI 治理委员会与责任人 |
判断时的抓手是:如果题干提到「某类人群受到不公平对待」,选公平性;提到「数据泄露、加密、授权」,选隐私与安全;提到「解释、可理解、为什么拒绝」,选透明性;提到「谁负责、治理机制」,选问责制。可靠性与安全性常和公平性混,区别在于前者看的是系统在异常情况下是否安全,与人群无关。
4.3 混淆矩阵与 F1、AUC 的手算与代码校验
计算类题目数量不多但基本必出,给一个 2×2 表让你算 precision、recall、F1。定义上,precision 的分母是「预测为正的样本数」,recall 的分母是「实际为正的样本数」,这两个分母记反就是最常见的失分点。
tp, fp, fn, tn = 80, 20, 10, 90 # 行=实际,列=预测,按题干表格对应填写 accuracy = (tp + tn) / (tp + tn + fp + fn) precision = tp / (tp + fp) # 关注「预测为正」里有多少是真的 recall = tp / (tp + fn) # 关注「实际为正」里有多少被抓到 f1 = 2 * precision * recall / (precision + recall) print(f"accuracy={accuracy:.3f} precision={precision:.3f} recall={recall:.3f} f1={f1:.3f}")这段代码的意义在于:考试时你可以先把四个数按题干填进去,心算一遍再对。accuracy在类别极不平衡时会骗人,比如 95% 样本是负类,全预测为负也有 95% 准确率,所以考题常问「该用哪个指标衡量」,答案是 precision、recall 或 F1 而不是 accuracy。回归任务对应的指标是 MAE、MSE、RMSE 和 R²,MAE 与目标同量纲、可解释性最好,RMSE 对大误差更敏感。AUC 衡量的是模型把正样本排在负样本前面的能力,取值 0.5 相当于随机猜测,1.0 是完美排序;聚类任务没有标签,因此不适用这些指标,考核点是「无监督」。
5. 考前 72 小时的复盘清单与考场排除法
5.1 错题归因表怎么填
考前三天不适合再刷整套新题,应该把 91 题里的错题压缩成一张归因表,按「错因类型」而不是「题目编号」聚合。我在实际操作里常用四列:题干关键词、正确服务 / 概念、我选错的选项、错因归类。错因归类只允许填四类之一——服务边界混淆、指标定义记反、概念术语不熟、题目本身有争议。前三类回官方学习路径对应模块补,第四类直接划掉不再看,避免在无效题上反复消耗时间。
5.2 题干关键词到 Azure 服务的速查映射
把高频关键词整理成一张速查表,考前过两遍,比重新读一遍考纲快得多。
| 题干关键词 | 对应方向 |
|---|---|
| 从照片中读取文字、发票字段提取 | 计算机视觉 OCR / 文档智能 |
| 判断评论是正面还是负面 | 文本分析情感分析 |
| 从文本中提取人名、地名、公司名 | 命名实体识别 |
| 识别语音、语音转文字、实时字幕 | 语音服务 |
| 跨语言翻译文本或语音 | 翻译服务 |
| 预测房价、销量等连续值 | 回归 |
| 判断邮件是垃圾还是正常 | 二分类 |
| 把客户按行为自动分组 | 聚类 |
| 从历史数据预测未来趋势 | 时序预测 |
| 生成摘要、对话、代码 | Azure OpenAI / 生成式 AI |
5.3 时间分配与标记策略
考试界面上有标记(review)功能,用法值得提前想清楚:读题超过 30 秒仍无把握的,先按第一直觉选一个再标记,不要空着,因为多数平台不扣错题分。45 分钟的考试,建议前 25 分钟做完单选,留 12 分钟给拖拽匹配题和计算题,最后 8 分钟只回看被标记的题。回看时如果第二遍仍然犹豫,就维持原答案——第一遍的判断往往建立在对服务边界的整体印象上,反复改反而容易把对的改错。拖拽题注意选项数量与空位数是否相等,有的题会多给一个干扰项,多出来的那个通常就是最像正确答案的那个服务。
本文还有配套的精品资源,点击获取