构建者日志:从零开始准备 AWS Machine Learning
Source: Dev.to
请提供您希望翻译的完整文本内容(除代码块和 URL 之外),我将把它翻译成简体中文并保持原有的 Markdown 格式。
介绍
我喜欢分享我在准备认证过程中的经验,尤其是当目标是 构建判断力 而不仅仅是通过考试时。归根结底,价值不在于证书本身,而在于过程中获得的知识以及这些知识如何转化为职业成长。
我目前专注于获取 AWS 的 Machine Learning 和 AI Developer 认证,并且遵循最佳实践,仔细阅读每个考试的官方指南。
在这篇日志中,我记录了我用来落地那些在单独学习时往往显得抽象的概念的路径。多次在认证考试中,我会遇到之前已经练习过的细节,这正是我确认 通过动手学习真的能产生差异 的时刻。
通过这一系列文章,我分享这一过程,以便如果你刚开始在 AWS 上学习机器学习,能够依托真实的经验和实用的方式来走好这条学习之路。
为什么数据格式很重要?
我想先从一个通常看起来次要——甚至乏味——的话题说起,但它对实验室、模型训练以及当然对认证都有直接影响:数据格式。
在考试中常见的问题并不是评估某个算法,而是评估选择如何在 AWS 的机器学习工作流中存储、处理和使用数据的能力。在实际场景中,格式的选择直接影响:
- 过程的性能
- 相关成本
- 解决方案的可扩展性
考试的第一个领域涉及Data Preparation for Machine Learning,其中包括数据摄取和存储等活动。在此背景下会出现已验证的数据格式和未验证的数据格式,正如官方考试指南中所描述的那样。
超越记忆定义,这一领域旨在让你培养判断力,以便:
- 何时在不同格式之间做出选择
- 哪些工作负载类型最适合特定格式
- 在机器学习工作流的哪些使用场景中适用
- 哪些 AWS 服务和工具兼容或不兼容该格式
理解这些要点不仅能帮助你回答考试题目,还能在构建真实的 AWS 机器学习解决方案时做出更好的决策。
关键概念
在深入了解各种数据格式及其优势之前,先澄清一些在 AWS 机器学习考试中经常出现的概念非常重要。
| 概念 | 描述 |
|---|---|
| 已验证格式 | AWS 原生支持的格式,可用于训练、处理或推理,并且其使用方式已在相应服务(例如 Amazon SageMaker)中正式文档化。 |
| 未验证格式 | 虽然可以存储在 Amazon S3 或其他 AWS 服务中,但 需要额外的转换 才能在机器学习工作流中使用的格式。 |
| 内部组织方式 | 格式可以根据是按 行(row‑based) 还是 列(column‑based) 存储信息进行分类。这一差异直接影响在机器学习中的性能和成本。 |
实用类比:宝可梦卡牌
日常示例 – 我的儿子是宝可梦卡牌收藏家。我利用他的爱好来说明 row‑based 与 column‑based 格式之间的区别。
面向行的方式(row‑based)
每张卡牌作为一个完整的单元存储,所有属性都在一起:
| 卡牌 | 类型 | 稀有度 |
|---|---|---|
| A | 电属性 | 普通 |
| B | 龙属性 | 稀有 |
| C | 超能力 | 特殊 |
适用场景:
- 想要查看特定的一张卡牌。
- 需要了解 某张卡牌的所有 特征。
- 逐张添加新卡牌。
这种方式对处理 单条记录 很高效,但在一次性分析大量卡牌时并不理想。
面向列的方式(column‑based)
卡牌的属性分别存储:
| 名称 | 类型 | 稀有度 | 等级 |
|---|---|---|---|
| … | 电属性 | 普通 | … |
| … | 龙属性 | 稀有 | … |
| … | 超能力 | 特殊 | … |
适用场景:
- 想要找出 所有 某种类型的卡牌。
- 想分析收藏中稀有度的分布。
- 在大批卡牌中寻找模式或趋势。
这就像把收藏重新组织以便 分析:不是逐张查看,而是把属性聚合起来,以便快速比较。
数据格式在 AWS 中的对比表
| 格式 | 组织方式 | 是否已验证 | 典型使用场景 | 是否压缩 | 常用 AWS 服务 | 备注 |
|---|---|---|---|---|---|---|
| JSON | 基于行 | 是 | 事件摄取、半结构化数据、API | 默认不压缩(可压缩) | S3, Kinesis, Lambda, SageMaker | 可供人类阅读。支持结构化和半结构化数据。解析延迟更高,体积开销更大。 |
| CSV | 基于行 | 是 | 小型数据集、原型、初始加载 | 默认不压缩(可压缩) | S3, SageMaker, Glue | 不支持模式或复杂结构。易于生成和消费,但在大规模时效率不高。 |
| RecordIO | 二进制 | 是 | 在 SageMaker 中的优化训练 | 是 | SageMaker | 二进制序列化,高效且顺序读取。不可供人类阅读。需要预处理。 |
| Parquet | 列式 | 是 |
注意: Parquet 行在原始材料中不完整;保持原样以保留内容完整性。
结论
掌握不同的数据格式并了解何时使用它们,对通过认证考试以及在 AWS 上设计高效且具成本效益的机器学习解决方案都至关重要。在接下来的文章中,我们将深入探讨每种格式的优势、限制以及在 AWS 生态系统中的最佳实践。请继续与我们一起踏上这段实用学习之旅!
AWS 数据格式概览
以下是 AWS 机器学习和数据分析流水线中常用数据格式的对比表。表格保持原始信息,但使用 Markdown 进行更好的可读性。
| 格式 | 存储类型 | 是否列式 | 典型用途 | 是否支持流式 | 常用服务 | 备注 |
|---|---|---|---|---|---|---|
| CSV | 行式 | 否 | 简单表格,导入/导出 | 否 | S3、SageMaker、Athena、Glue | 非常易于生成,兼容大多数服务,但没有压缩和列式存储。 |
| JSON | 行式 | 否 | 半结构化数据,API | 否 | S3、SageMaker、Athena、Glue | 灵活,但在部分读取和压缩方面效率较低。 |
| Parquet | 列式 | 是 | 大规模分析和机器学习训练 | 否 | S3、Glue、Athena、SageMaker | 列式压缩 → 只读取所需列,降低 I/O 和成本。 |
| Avro | 行式 | 否 | 流式处理,数据交换 | 是 | S3、Kafka(MSK)、Glue | 在 Kafka 流水线中广泛使用;需要预先转换才能在 SageMaker 中直接训练。 |
注意: 并非所有 SageMaker 内置算法都直接支持所有格式;例如,有些算法期望使用 Parquet 或 CSV 格式的数据。
评估标准表(考试)
此表概述了考试评估的最重要标准之一:并非所有格式都适用于所有场景。正确选择意味着要了解数据量、处理类型以及涉及的 AWS 服务。
| 标准 | 为什么重要 |
|---|---|
| 数据量 | 列式格式(Parquet)在仅使用部分列时可减少 I/O。 |
| 处理类型 | 行式(CSV/JSON)更适合轻量级的摄取和转换;列式更适合分析查询和模型训练。 |
| AWS 服务 | Athena 和 Glue 原生读取 Parquet;SageMaker 可以使用 CSV、JSON 和 Parquet,但效率各有差异。 |
| 流式 vs 批处理 | Avro 针对流式(Kafka)进行优化,而 Parquet 则面向批处理。 |
案例实践:机器学习训练格式选择
题目
一家公司正在 AWS 上构建机器学习流水线,以使用存储在 Amazon S3 中的数 TB 数据集训练分类模型。团队需要缩短训练时间并最小化 I/O 成本,因为模型只使用数据集中的部分列。
| 选项 | 描述 |
|---|---|
| A. CSV | 易于生成且兼容大多数 AWS 服务。 |
| B. JSON | 能够灵活处理半结构化数据。 |
| C. Parquet | 以列式方式存储数据,并且只读取所需列。 |
| D. Avro | 在分布式系统中进行数据交换时高效。 |
正确答案
C. Parquet
理由
Parquet 是一种 列式 并且压缩的格式,能够让训练和分析过程仅读取模型所需的列。这显著降低 I/O,提升性能并降低成本,尤其在使用 Amazon S3 大规模数据以及 Amazon SageMaker、Athena 或 AWS Glue 等服务时。
其他可能的场景
- 实时事件 / 摄取 → 在这种情况下,支持流式的 基于行 格式(例如 Avro)比 Parquet 更合适。
- 训练前的轻量转换 → 如果转换很少且兼容性优先,CSV 或 JSON 可能有用。
快速思维导图(用于考试和实际项目)
[Formato] → [Orientación] → [Uso principal] → [Servicios compatibles]
CSV → Row‑based → Tablas simples → S3, SageMaker, Athena, Glue
JSON → Row‑based → Semi‑estructurados → S3, SageMaker, Athena, Glue
Parquet → Column‑based→ Análisis/ML a gran escala → S3, Glue, Athena, SageMaker
Avro → Row‑based → Streaming / intercambio → S3, Kafka (MSK), Glue
结论
理解 何时使用面向行或面向列的格式,区分 已验证和未验证的格式,并识别 每种格式在流水线中的目的,可以培养考试所要评估的判断标准。这一判断标准在设计生产环境中的机器学习解决方案时,会转化为更准确的技术决策。
这只是日志的第一步。从这里开始,重点将放在如何转换、准备和使用这些数据上。