标准流程:CRISP-DM
上述所有步骤都契合一个行业标准流程——跨行业数据挖掘标准流程(CRISP-DM)。它强调项目的循环迭代特性,包含六个阶段:业务理解、数据理解、数据准备、建模、评估和部署。始终在这一框架下思考,能确保研究方法的严谨性和结果的有效性。
合作与跨学科应用
最后需要强调的是,大数据与人工智能领域的进步极大地依赖于合作。计算机科学的方法正在深刻改变物理学、生物学、医学等众多学科的研究范式。保持开放协作,分享知识与见解,是推动创新和解决复杂问题的关键。
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/a7021e74a266a49df9058e5565a3bc31_5.png
本节课中我们一起学习了关联规则挖掘的核心算法(Apriori和FP-Growth)及其云上实现,并深入探讨了深度学习在医疗数据分析中的应用流程,包括迁移学习和数据增强等关键技术。记住,理解你的数据、清晰定义问题,并在CRISP-DM等标准流程的指导下进行迭代开发,是成功实施任何数据挖掘项目的基石。
018:超参数优化与AutoML 🚀
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/0249c2f5e2f8f0796effa10ab33ea05d_0.png
在本节课中,我们将学习机器学习中两个至关重要的概念:超参数优化和自动化机器学习。我们将探讨什么是超参数,介绍几种寻找最优超参数的算法,并了解在何种情况下应使用哪种算法。最后,我们将介绍两个实用的工具:Ray Tune和AutoGluon,帮助你实际运行超参数优化任务。
什么是超参数?🤔
超参数是影响机器学习模型性能的参数。这些参数通常在训练开始前由用户设定。它们可以包括:
架构参数:例如模型类型、层数和种类、激活函数类型。
优化过程参数:例如优化器类型、学习率、动量值。
机器学习流水线参数:例如在计算机视觉任务中,图像的旋转、裁剪、归一化等预处理步骤的参数。
为了更清晰地理解,我们可以将参数调优分为三个预定义的领域:
神经架构搜索:专门处理架构参数。
经典超参数优化。
自动化机器学习:在超参数优化基础上,增加了对整个机器学习流水线的优化。
找到好的超参数对模型成功至关重要。为了直观展示,下图是一个在CIFAR-10数据集上训练的简单残差网络的学习曲线。可以看到,仅通过选择正确的学习率,模型性能就能产生天壤之别——从准确率超过80%到完全失败(仅10%的验证准确率,相当于随机猜测)。
这些图表也揭示了超参数选择为何如此困难:通常无法做出通用预测。你无法简单地说“大学习率好”或“小学习率好”,必须找到或接近正确的值才能获得良好性能。
核心概念与挑战 🎯
在深入之前,我们先明确一些术语:
搜索空间:指超参数及其采样区间的集合。
配置:从搜索空间中采样得到的一组超参数值。
试验:使用一组采样的超参数配置运行一次训练过程。
超参数优化之所以困难,主要原因有两点:
搜索空间复杂:通常包含不同类型(离散如层数、连续如学习率)的参数,无法像梯度下降那样计算梯度来寻找最优解。
计算成本高昂:只有完全训练模型后,才能确定其配置的性能。这意味着必须完整训练大量模型才能找出最佳参数。
由于缺乏通用的指导方法,目前很多工作仍依赖于人工试错。但我们的目标是采用更系统化的方法。
超参数优化算法 🔍
基础方法:随机搜索与网格搜索
最简单的方法是随机搜索或网格搜索。
随机搜索:从超参数搜索空间中随机采样。
网格搜索:评估所有可能的超参数组合。
有趣的是,随机搜索是一个非常好的起点。当你对问题一无所知时,至少应该进行一些随机搜索。这两种方法本质上都是“令人尴尬的并行”任务,不同试验之间几乎不需要通信。
然而,这两种方法会浪费大量计算资源在那些可能早期就表现不佳的试验上。因此,我们需要更高效的方法。
加速优化:自适应方法
有两种主要途径来加速随机或网格搜索过程:
自适应选择配置:使用贝叶斯优化或进化算法等选择更好的配置进行评估。主要挑战在于高维搜索空间可能使这些方法失效。
自适应调度试验:提前终止表现不佳的试验,并将其计算资源重新分配给更有希望的试验。这是我们本节课的重点。
自适应调度的核心问题是:在缺乏先验信息的情况下,如何判断一个试验的好坏?
观察一些计算机视觉模型的学习曲线可以发现,通常在训练早期(例如前50个周期),通过比较不同试验的曲线,就能初步判断其优劣。当有多个试验并行运行时,这种比较成为可能,由此引入了连续减半算法。
连续减半与超带算法
连续减半的基本思想很简单:早期终止不良试验,将资源重新分配给更有希望的试验。实践中,流程如下:
从一定数量的初始配置开始。
训练几个周期后,根据验证损失或准确率对所有试验进行相对排名。
终止排名靠后(例如后50%)的试验,仅继续训练排名靠前(如前50%)的试验。
重复此过程,最终希望得到损失最低的单个试验。
随之而来的关键问题是:如何平衡计算资源?是应该在初期运行更多试验以进行探索,还是应该让最佳试验运行更长时间以进行利用?
超带算法通过执行具有不同“激进程度”的连续减半来扩展经典方法。例如,第一轮可能每20个周期削减一次,下一轮则每40个周期削减一次。希望通过不同激进程度的配置,也能捕捉到那些起步较慢但后期强劲的试验。
异步超带算法
在拥有大量并行资源(如高性能计算系统或云环境)的场景下,经典超带算法可能遇到性能问题。原因在于每个决策点都存在隐式的时间屏障:为了判断试验好坏,必须等待所有其他训练运行达到相同的周期数。
异步超带算法解决了这个问题。其核心思想是:在每个决策点,算法查看所有已有性能信息的试验的当前状态。如果一个试验属于当前最佳部分,则允许其继续;如果属于较差部分,则将其停止;如果算法不确定,则继续训练以确保不会过早终止一个有潜力的快速试验。
自适应选择方法:贝叶斯优化
除了自适应调度,另一种主流方法是自适应选择配置,其中最突出的是贝叶斯优化。
其思想是构建一个计算成本低廉的代理模型,来模拟原始大型机器学习模型的性能。存在许多使用不同贝叶斯方法的算法和库,例如SMAC、Dragonfly、Optuna或DEHB。
这些库面临的主要挑战是如何处理大量并行结果,因为贝叶斯优化通常是顺序过程。此外,贝叶斯优化有时在高维搜索空间中也会遇到问题。不过,像SMAC、Dragonfly、Optuna,尤其是DEHB,都非常注重工作负载的并行化。
当然,也可以将贝叶斯优化与我们之前看到的超带方法结合起来,这种算法被称为BOHB。
如何选择算法?📊
了解了多种方法后,自然要问:何时使用哪种算法?以下是一个基于经验总结的决策流程:
查看搜索空间维度:
- 如果超参数很少(≤2个),网格搜索或随机搜索仍然可行。网格搜索更有条理但计算量更大。两者都是很好的起点,并且在并行设置中运行良好。
搜索空间较大时(通常>3个参数),查看每次试验所需的计算时间:
如果计算资源充足且每次试验时间很短(<5分钟),即使对于较大搜索空间,仍可进行随机搜索。
但深度学习模型通常训练数小时,因此需要依赖自适应调度方法以提高计算效率。
判断你的问题是否是“后发学习者”:
“后发学习者”指模型性能的最大提升发生在训练中后期。虽然超带和异步超带算法试图避免过早终止好试验,但仍可能错过最优组合。
不过,大多数机器学习问题的学习曲线在训练初期提升最大,因此通常可以安全使用超带或异步超带算法。
考虑你想要运行的试验数量:
如果试验数量相对较少(例如<200次),依赖贝叶斯优化方法(或与超带结合的BOHB)非常高效。
如果搜索空间非常大且需要运行大量试验,那么你可能需要回到随机搜索或异步超带算法,因为计算需求迫使你依赖这些自适应调度方法。
其他优化方法与实用技巧 💡
除了上述方法,还有一些完全不同的优化思路:
强化学习:使用强化学习智能体选择超参数组合,并将试验性能作为奖励。
梯度下降:对架构搜索空间进行特殊表示,从而可以计算梯度并使用梯度下降进行优化,这通常是非常高效的方法。
零成本代理:研究诸如神经网络参数总数等“零成本代理”指标与最终模型性能的关系,并以此进行预测,这种方法效果出奇地好。
大模型超参数优化:在只能负担一次大型训练的大模型时代,通常的做法是在小模型上寻找最优超参数,然后通过某种方式将这些参数迁移到大模型上。
以下是一些实用的超参数优化技巧:
联合优化:如果计算资源允许,尝试同时优化神经架构和经典超参数,因为它们通常相互影响。
调整减半激进程度:在实践中,通常只需保留排名前30%甚至25%的试验,终止其余部分,可以节省大量计算资源。
谨慎对待批量大小:不要将批量大小视为超参数。通常,较小的批量大小能带来更好的泛化性能,但需要更多计算。建议将批量大小增加到单个GPU能处理的最大值,然后专注于优化学习率,因为两者存在关联。
精心选择搜索空间区间:例如,权重衰减这个超参数非常敏感。如果该参数过小或过大,即使其他参数(如学习率)已处于最优位置,所有试验也可能表现不佳。
使用独立的数据集:进行超参数优化时,你需要三个独立的数据集:
训练集:用于训练模型。
验证集:用于验证性能,并据此选择最佳超参数组合。
测试集:用于最终评估在验证集上找到的最佳超参数模型,并报告其性能。
实践工具介绍 🛠️
上一节我们介绍了超参数优化的核心算法,本节中我们来看看两个可以用于实际运行超参数优化的工具:Ray Tune和AutoGluon。
工具一:Ray Tune
Ray是一个通用的Python分布式计算框架,它提供了简单的原语来运行分布式应用。其卖点在于,只需对代码进行极少修改,就能将其从单机运行扩展到在大型机器上并行运行。Ray本身是开源的,由科技公司Anyscale维护。
在Ray生态中,Ray Tune专注于分布式超参数调优。它支持多种机器学习框架(如PyTorch、TensorFlow,以及scikit-learn等),可以与Weights & Biases集成以获得美观的日志图表,并且内置了多种超参数优化算法(如异步超带、BOHB等)的兼容性。
工作原理:
首先启动一个“头节点”。
然后启动多个连接到头节点的“工作节点”。
头节点负责在每个工作节点(例如,每个GPU对应一个工作节点)上调度和启动试验。
工作节点定期将指标(如当前训练/验证准确率)报告回头节点。
头节点基于这些信息运行优化步骤,决定终止哪些试验、继续哪些试验。
集成示例:
importrayfromrayimporttune# 初始化Rayray.init()# 设置超参数搜索空间config={"lr":tune.loguniform(1e-4,1e-1),"batch_size":tune.choice([32,64,128]),"num_layers":tune.randint(1,5)}# 选择调度器(如异步超带)和优化指标scheduler=tune.schedulers.AsyncHyperBandScheduler(time_attr="training_iteration",metric="accuracy",mode="max")# 定义每个试验的资源(例如在HPC系统上)resources_per_trial={"cpu":30,"gpu":1}# 运行调优analysis=tune.run(your_training_function,config=config,scheduler=scheduler,num_samples=100,# 尝试100组配置resources_per_trial=resources_per_trial)# 关闭Rayray.shutdown()运行结束后,可以将结果导入Weights & Biases查看可视化图表,或简单保存到CSV文件。
Ray的一个优点是,你不仅可以并行运行不同的试验,还可以使用像PyTorch DDP这样的框架,将单个试验本身分布到多个GPU上进行训练,从而实现两级并行,获得显著的加速。
工具二:AutoGluon
AutoGluon由亚马逊开发,其特别关注点是表格数据和时间序列预测。如果你处理的是这类数据,这个工具可能非常适合你。
AutoGluon的核心思想是,在底层自动组合不同的先进模型(如各种回归模型、提升算法、神经网络),最终形成一个加权集成模型进行预测。这种方法的优势在于,通过结合多种方法,通常能获得非常好的性能。缺点则是可能损失一些可解释性。
近期,AutoGluon还将Chronos集成到了其优化流水线中。Chronos是一个基于Transformer架构的基础模型,在大量真实和合成的时间序列数据上进行了预训练,因此对于你提供的任何时间序列数据都有很强的预测能力。
AutoGluon的另一个优点是,它不仅提供点预测,还包含概率预测,给出分位数以帮助你评估预测的准确性,从而了解模型对其预测的置信度。
总结 📝
本节课中,我们一起学习了超参数优化与自动化机器学习。
我们了解到,在构建机器学习模型时,应使用系统化的超参数优化方法,而非依赖人工试错。根据你所处的领域,这可以显著提升模型性能。
同时,我们也鼓励你利用并行计算资源来进行超参数优化,以便能够同时运行多个试验。通过本节课介绍的Ray Tune和AutoGluon等工具,无论是在云平台还是高性能计算系统上,都可以轻松实现这一点。
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/0249c2f5e2f8f0796effa10ab33ea05d_2.png
希望本教程能帮助你更高效地进行机器学习模型开发。
019:OpenStack云操作系统 🖥️
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_1.png
在本节课中,我们将学习OpenStack云操作系统。OpenStack使我们能够创建自己的私有云,而不是依赖AWS、微软Azure或谷歌云等超大规模公有云。这对于需要在组织内部处理敏感数据(如医疗或汽车行业)的场景尤为重要。我们将了解OpenStack的核心组件、它如何帮助应对构建云基础设施的挑战,以及它如何与我们已经学过的概念(如虚拟化、容器化和大数据分析)相结合。
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_3.png
上一节我们回顾了超参数优化和自动化机器学习的概念。本节中,我们来看看如何从云使用者的视角,切换到云构建者的视角。
OpenStack概述
OpenStack是一个开源的云操作系统,它提供了构建和管理私有云或混合云所需的一系列组件。作为一个由开放基础设施基金会支持的项目,它具有稳定性和可持续性。使用OpenStack,组织可以避免从零开始构建云,而是利用其丰富的模块化服务。
构建私有云的挑战与需求
当决定在组织内部构建私有云时,需要应对多项挑战。OpenStack通过其组件集帮助解决这些挑战。
以下是构建云基础设施时需要满足的一些关键可扩展性指标:
规模可扩展性:指物理硬件(如处理器、存储)的增减能力。
软件可扩展性:确保各种库、编程环境、机器学习框架(如PyTorch、CUDA)与底层硬件(如GPU)兼容并能跨集群部署。
应用可扩展性:指应用程序本身根据负载动态扩展的能力,例如MapReduce中根据数据量增减工作节点。
技术可扩展性:指基础设施能够融合不同代际的技术(例如,混合使用A100、Grace Hopper和Blackwell等不同代际的GPU)。
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_5.png
OpenStack核心组件
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_7.png
OpenStack包含众多服务,其核心围绕计算、网络和存储这三大资源池展开。
以下是OpenStack的一些核心服务及其功能:
计算服务:
Nova:管理虚拟机实例的生命周期,是主要的计算服务。
Zun:提供容器管理服务,支持Docker等容器技术。
存储服务:
Swift:提供对象存储服务,类似于亚马逊S3。
Cinder:提供块存储服务,类似于亚马逊弹性块存储。
Manila:提供共享文件系统服务。
网络服务:
- Neutron:管理网络连接,提供软件定义网络功能。
镜像服务:
- Glance:存储和管理用于创建虚拟机或容器的镜像模板。
身份认证服务:
- Keystone:提供身份验证和授权服务,管理用户和权限。
仪表板服务:
- Horizon:提供基于Web的用户界面,方便用户管理云资源。
编排服务:
- Heat:提供编排服务,用于自动化部署和管理复合云应用。
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_9.png
OpenStack实践示例
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_11.png
通过组合不同的OpenStack服务,可以构建出类似公有云功能的基础设施。
示例1:模拟亚马逊EC2(基础设施即服务)
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_13.png
要提供类似亚马逊EC2的虚拟机服务,需要多个OpenStack服务协同工作。
以下是实现此功能所需的关键服务交互:
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_15.png
用户通过Horizon仪表板或API发起请求。
Keystone对用户进行身份验证。
用户从Glance中选择一个预定义的镜像(例如,包含深度学习框架的镜像)。
Nova计算服务接收请求,并调度到合适的物理主机上启动虚拟机实例。
Neutron为虚拟机配置网络连接。
Cinder或Swift可为虚拟机提供额外的块存储或对象存储。
(可选)Heat服务可以编排整个虚拟机的创建流程。
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_17.png
示例2:支持容器化应用
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_19.png
对于容器化应用,OpenStack提供了相应的服务。
Zun服务专门用于管理容器。它可以直接在物理主机或虚拟机上启动和管理容器,与Keystone、Neutron和Glance等服务集成,为容器提供网络、身份验证和镜像支持。这可以与Kubernetes结合使用,构建更强大的容器平台。
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_21.png
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_23.png
示例3:构建大数据分析平台(如Hadoop/Spark)
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_25.png
OpenStack可以轻松部署大数据框架。例如,部署Hadoop集群时,可以利用OpenStack的服务映射其架构。
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_27.png
以下是Hadoop核心组件与OpenStack服务的对应关系示例:
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_29.png
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_30.png
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_32.png
NameNode和ResourceManager:这些主节点可以运行在由Nova管理的虚拟机上,并使用Cinder块存储来保存元数据。
DataNode和NodeManager:这些工作节点同样由Nova管理,并使用Swift对象存储或Cinder块存储来保存实际数据块。Neutron确保所有节点间的网络连通性。
这种架构使得企业可以在自己的私有云中运行大数据工作负载,处理敏感数据,同时享受云的可扩展性和灵活性。
市场与社区
OpenStack拥有一个活跃的社区和丰富的生态系统。OpenStack Marketplace提供了大量预配置的解决方案和“样本配置”,例如一键部署Hadoop或Spark集群。这极大地简化了部署流程,用户无需从头开始配置每一个组件。
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_34.png
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_36.png
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/9aba52db4320aeb2a5110cb408a67c11_37.png
本节课中我们一起学习了OpenStack作为云操作系统的核心概念。我们了解到OpenStack如何通过模块化服务(计算Nova、存储Cinder/Swift、网络Neutron等)帮助组织构建私有云,应对可扩展性挑战。我们还探讨了它如何模拟公有云服务(如EC2)、支持容器化以及部署大数据分析平台。掌握OpenStack的基本原理,为你在未来可能需要设计或管理企业私有云时奠定了重要的基础。
020:课程总结与展望 🎓
在本节课中,我们将回顾整个课程的核心内容,并从长远视角和就业市场的角度,探讨所学知识如何转化为实际技能。我们将总结关键的理论、技术与范式,并展望未来的学习方向。
课程内容回顾
上一节我们探讨了构建私有云和混合云的动机与方案。本节中,我们来看看如何将整个课程的知识体系串联起来,并理解其在现实世界中的应用价值。
我们学习了,当面临在组织内部构建私有云的需求时(例如出于数据敏感性、法规遵从性或成本考量),可以使用如OpenStack这样的开源平台。OpenStack提供了计算、网络和存储等核心服务组件,使我们能够构建类似公有云(如AWS、Azure)的基础设施即服务(IaaS)环境。
核心概念示例:混合云架构
公有云服务 (如AWS S3, EC2) <--> [API/容器] <--> 私有云 (基于OpenStack)这种架构允许在公有云进行测试和开发,然后将应用容器(如Docker)无缝迁移到私有云中处理敏感数据。
然而,构建私有云也意味着需要承担底层硬件采购、维护升级(如GPU从V100到Blackwell架构的迭代)以及专业团队管理的成本。因此,需要在公有云的便利性与私有云的控制性之间做出权衡。
学习成果与技能映射
从课程中,我们获得了多方面的能力,这些能力直接对应着就业市场的需求。
以下是课程涵盖的核心技能领域:
思维模式:理解了云计算的各个组件和不同层面,包括基础设施、平台和软件即服务(IaaS/PaaS/SaaS)的范式。
技能组合:掌握了具体云系统服务(如AWS EC2、Azure HDInsight、Google Colab)的实践操作知识,能够直接应用于工业界或学术界的项目。
工具集:接触并探索了多个主流云平台(AWS, Azure, GCP)及其工具,同时也认识到这些工具在快速演进,需要持续学习。
需要明确的是,本课程侧重于在云平台上规模化运用机器学习和数据处理工具。要深入理解机器学习算法本身(如应对过拟合、偏差、模型选择等),建议进一步学习专门的机器学习课程。
持久的理论与技术
大学课程的价值之一在于传授那些能够经受时间考验的范式、理论和技巧。
核心理论
并行与分布式算法:例如分布式深度学习中的梯度交换,用于加速训练过程。其加速效果受限于串行部分,遵循一定的定律(如阿姆达尔定律)。
可扩展性设计:这是云的核心特性,意味着服务需要能够优雅地应对用户、数据和计算资源量的增长。
容错性:硬件故障是必然的。我们学习了通过数据复制(如HDFS中默认的3副本机制)等策略来保证系统的高可用性。
数据挖掘算法:例如FP-Growth,用于从大规模数据(如购物清单)中高效发现频繁模式。
统计学习理论:理解假设空间(如SVM、神经网络、Transformer)、模型容量与数据量的匹配关系,这是避免过拟合等问题的理论基础。
深度学习算法:涵盖了卷积神经网络(CNN)、Transformer等,并展望了如物理信息神经网络(PINN)等前沿交叉领域。
关键技术
规模经济:大型数据中心通过集中采购、运维,能显著降低单位计算成本。
内存优化:利用内存(如Spark RDD、GPU HBM)进行计算能获得最佳性能,但也需权衡其较高的成本。
计算找数据 vs 数据找计算:这是两种核心范式。MapReduce代表“计算找数据”,适合高吞吐量批处理;而传统高性能计算(HPC)常是“数据找计算”,将数据移至超级计算机进行处理。
云部署模型:公有云、私有云、混合云的概念及实现(如通过OpenStack)。
分布式文件系统与复制方案:用于数据持久性、高可用和灾备。
基础设施虚拟化:通过虚拟机或容器(如Docker)实现资源的共享、隔离和灵活调度,提高利用率。
核心范式
以下范式在可预见的未来仍将保持其重要性:
高吞吐计算 vs 高性能计算:高吞吐计算关注在大量独立任务上实现最大数据处理速率;高性能计算则关注通过紧密协作加速单个复杂计算任务。
MapReduce:一种经典的“分而治之”编程模型,包含Map、Shuffle、Reduce阶段,适用于大规模数据集批处理。
服务模型:基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)的分层模型,服务于不同角色的用户(管理员、开发者、终端用户)。
就业市场与未来学习
课程中涵盖的技能在当前的招聘市场上需求旺盛。
以下是来自LinkedIn等平台的职位要求示例,它们直接对应了我们的课程内容:
机器学习工程师:要求具备“云平台(AWS、GCP、Azure)经验”以及“部署机器学习模型到生产环境”的能力。
云/基础设施工程师:要求熟悉“Kubernetes、OpenStack”以及“大规模多云平台的挑战”,并了解主要公有云厂商。
我们的行业项目和实践作业(如黑客松)为你提供了宝贵的实践经验,值得写入简历。
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/97c6bc2f223b758f0b22d0fdb7824f5d_1.png
如果你对深入研究感兴趣,在机器学习、深度学习与云计算的交叉领域,仍有大量的硕士、博士课题可供探索,例如大语言模型(LLM)的规模化训练与优化。
为了保持竞争力,请务必持续关注云平台的新服务(如各厂商推出的大模型服务)和硬件发展(如新一代GPU)。可以通过课程网站、YouTube频道、LinkedIn上的冰岛高性能计算社区(EHPC)等渠道保持联系并获取最新信息。
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/97c6bc2f223b758f0b22d0fdb7824f5d_3.png
总结与致谢
本节课中,我们一起回顾了“云计算与大数据”课程的全貌。我们从具体的云服务操作,深入到支撑这些服务的理论与技术,最后上升到通用的计算范式。我们也将所学知识与就业市场的实际需求联系起来,为你未来的职业或学术发展提供了清晰的路径图。
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/97c6bc2f223b758f0b22d0fdb7824f5d_5.png
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/97c6bc2f223b758f0b22d0fdb7824f5d_7.png
感谢你选修这门课程。教学相长,你们在行业项目中的反馈也帮助我们不断优化课程。祝愿各位在未来的求职市场或学术道路上一切顺利。如果你需要推荐信或有进一步的问题,欢迎联系。我们可能在未来的学术会议或社区活动中再见!
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/97c6bc2f223b758f0b22d0fdb7824f5d_9.png
也衷心感谢广大YouTube社区观众的支持,你们的关注使得这门课程的内容产生了更广泛的影响。
https://github.com/OpenDocCN/dsai-notes-pt3-zh/raw/master/docs/icld-cldcomp-bgdt/img/97c6bc2f223b758f0b22d0fdb7824f5d_11.png
再见,祝你好运!