Amazon MLS-C01: 自然语言处理与语音 — 学习指南
属于 AWS Machine Learning Specialty MLS-C01 — 学习指南. 使用经过验证的答案练习: Amazon 考试中心, 或参加限时模拟考试: ExamRoll.io.
文本预处理、词元化与清洗
稳健的文本预处理是构建可靠 NLP 流水线的基础。首先进行 Unicode 规范化、剥离 HTML 标签和移除控制字符;使用 AWS Glue 或 SageMaker Processing 作业 (ml.m5.xlarge) 来运行可扩展的 Python 或 PySpark 清洗步骤。分词方法的选择是一个关键决策点:基于词的分词器简单,但会受困于词汇表外 (OOV) 的词元;而诸如 Byte-Pair Encoding 或 WordPiece (BERT 所使用) 的子词分词器能降低 OOV 风险,更适用于多语言或包含大量产品名称的语料库。通过移除个人身份信息 (PII)、规范化日期和数字,以及在表情符号/话题标签传达情感时将其映射到规范形式,来净化用户生成内容。警惕常见陷阱:过度移除停用词可能损害主题模型和序列模型,而将所有字母转为小写会丢失对于命名实体识别有用的大小写信号。对于生产环境,应在 SageMaker Processing 或 Lambda 层中实现确定性的预处理,并在 SageMaker Model Registry 中记录预处理代码和构件的版本,以便 Model Monitor 能基于相同的流水线计算数据漂移。当处理数百万条短评论时,可将分词后的输出压缩为 parquet 格式存储在 S3 上,并使用 SageMaker Batch Transform 进行下游的特征提取,以避免逐请求分词带来的延迟。
嵌入与语义表示
根据任务复杂度和计算预算选择嵌入模型。若需快速、可扩展的嵌入,可通过 SageMaker 中的 BlazingText 训练或使用预训练的 Word2Vec (在 ml.c5.4xlarge 上使用 supervised 或 skip-gram 模式) 来获取词的密集向量;然后通过 IDF 加权平均将词向量聚合为句子向量,用于主题计数等任务。对于语义检索和上下文相关任务,应使用 Hugging Face 框架在带 GPU 实例 (根据规模选择 ml.p3.2xlarge 或 ml.p4d.24xlarge) 的 SageMaker Training 上微调 transformer 模型 (如 BERT、DistilBERT 或 Sentence-BERT),并为延迟敏感的终端节点在 ml.g4dn 或 ml.p3 上进行优化推理。生成并存储嵌入到 S3 或 SageMaker Feature Store 中;对于近似最近邻搜索,可在专用的推理集群上使用 Faiss,或使用 Amazon Kendra 进行企业级搜索。注意陷阱:对多义词使用静态嵌入会丢失上下文信息;维度过高会增加存储成本并减慢最近邻查找速度——可应用 PCA/UMAP 或量化来降维。当心下游模型对嵌入漂移敏感的情况,应实施 Model Monitor 来追踪嵌入分布的变化,并使用一致的分词器和模型检查点定期重新生成嵌入。
序列模型、意图/槽位处理与实体提取
序列建模涵盖了从经典的 LSTMs/GRUs 到用于 seq2seq 任务的 transformer 编码器-解码器架构。对于对话系统中的意图检测和槽位填充,可利用 Amazon Lex 来管理意图、槽位类型和履行逻辑钩子;并集成 Lambda 以实现复杂的槽位验证或上下文丰富。对于定制模型,可以在 BERT 之上使用条件随机场 (CRF) 训练词元级别的 NER,或在 SageMaker 上使用 Hugging Face 的 token-classification 微调功能 (在 ml.p3.2xlarge 上进行 GPU 训练)。诸如摘要或翻译等序列到序列 (seq2seq) 的用例,倾向于使用编码器-解码器结构的 transformer 模型 (如 T5、BART),且需要更大的 GPU 实例进行训练;可使用混合精度 (AMP) 和梯度累积来处理长序列。实体提取可以使用 Amazon Comprehend 来识别开箱即用的命名实体,但对于领域特定实体 (如产品 SKU、化学名称),应选择 Comprehend Custom Entities 或微调自己的 NER 模型。一个常见的陷阱是混淆意图分类和槽位验证——高意图准确率不保证槽位值的正确性;应添加模式验证、置信度阈值和后备意图。对于生产环境,通过 SageMaker 终端节点来暴露模型,可使用多模型终端节点以提高成本效益,并针对高吞吐量的离线任务使用异步推理或 Batch Transform。
语音:转录、合成和端到端语音解决方案
语音管道需要同时考虑声学模型和语言模型。对于转录,Amazon Transcribe 通过自定义词汇表和词汇表筛选等功能来处理常见用例,以提高对品牌或产品名称的识别率;在 Transcribe 作业设置中启用自定义词汇表和词汇表筛选,并在存在语音邮件或多说话者日志时使用通道识别或说话人分离。对于有严格延迟要求的超短音频,首选使用低延迟 WebSocket 连接的实时 Transcribe Streaming,并考虑使用 Transcribe 的自定义语言模型来处理专业术语。对于文本转语音,Amazon Polly 提供神经语音和 SSML 支持;使用词典和 SSML 标签来控制发音、韵律和停顿,以获得自然的客户体验。将 Lex 与 Transcribe 和 Polly 集成以构建语音机器人,并连接到 Amazon Connect 以实现电话功能。一个常见的陷阱是完全依赖默认语言模型来处理特定领域的名称——务必添加自定义词汇表或微调模型。对于离线或本地部署需求,使用 SageMaker Neo 打包轻量级模型或将较小的声学模型部署到边缘设备,同时将繁重的语言模型更新集中在云端,并在 SageMaker Model Registry 中进行版本控制。
实践问题:用例场景
场景: GlobalNews Analytics 在 AWS 上运行,其数据管道位于 S3 中,预处理在 SageMaker Processing 中进行。他们每天接收数百万条英文用户评论,并维护一个 SageMaker 端点用于主题分析。
挑战: 从嘈杂且通常很短的评论中识别出讨论最多的话题,同时处理俚语、表情符号和数千个专有名词(产品/地名)。
推荐方法:
- 使用一个 SageMaker Processing 作业 (ml.m5.4xlarge) 运行确定性的清理操作:剥离 HTML、Unicode 规范化、将表情符号映射为令牌、在适当情况下转为小写,并将清理后的文本以 parquet 格式存储在 S3 上。
- 通过在 SageMaker Training 上使用 ml.p3.2xlarge 实例,并借助 Hugging Face 微调 Sentence-BERT 模型来生成上下文句子嵌入;将嵌入持久化到 S3,并可选择性地存入 Feature Store。
- 使用 Faiss(CPU 集群或 GPU 支持的节点)对嵌入进行聚类以发现主题组,并运行一个 SageMaker Processing 作业来计算每个集群的 top n-gram 和代表性句子;可选择使用 UMAP 进行降维来优化集群。
- 通过暴露一个轻量级推理端点 (ml.g4dn.xlarge) 来为新评论生成嵌入,从而实现生产化;使用批量转换 (Batch Transform) 进行夜间重新聚类,并启用 SageMaker Model Monitor 来检测嵌入漂移,在分布偏移超过阈值时触发重新训练。
基本原理: 此方法平衡了可扩展的预处理、针对简短/嘈杂文本的上下文嵌入以及高效的基于相似性的主题发现,同时利用 SageMaker 进行训练、推理和监控,以确保可复现性和运维就绪性。
← 深度学习与计算机视觉 · 所有领域 · 时间序列与预测 →
练习这些题目 → · 在 ExamRoll.io 上限时练习 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通过考试 →