首页
游戏
影视
直播
广播
听书
音乐
图片
更多
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的云盘
我的搜索
我的记录
我的图片
我的图书
我的笔记
我的音乐
我的影视
我的邮件
我的游戏
Search
1
virtuoso和empyrean alps模拟仿真和混仿教程
359 阅读
2
在IC617中进行xa+vcs数模混仿
300 阅读
3
文档内容搜索哪家强? 15款文件搜索软件横向评测
264 阅读
4
科普:Memory Compiler生成的Register file和SRAM有何区别?
257 阅读
5
通俗易懂的AI知识体系图及其产业链全景图
198 阅读
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
登录
Search
标签搜索
AI
python
Docker
vcs
PyQT
STM32
cadence
linux
systemverilog
EDA
Alist
vscode
uos
package
MCU
C
QT
CXL
sed
sv
bennyhe
累计撰写
387
篇文章
累计收到
33
条评论
首页
栏目
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
页面
游戏
影视
直播
广播
听书
音乐
图片
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的云盘
我的搜索
我的记录
我的图片
我的图书
我的笔记
我的音乐
我的影视
我的邮件
我的游戏
搜索到
23
篇与
的结果
2026-09-16
内核RAS通知机制的实现
一、简介1、RAS简介RAS(Reliabilty,Availability,Serviceability)是对一台服务器可以被可靠使用的要求,即可靠性、可用性、可维护性,其实现需要软硬件结合息息相关。R表示服务器提供正确输出的能力,要保证1+1=2;A表示能提供输出的能力,要计算出1+1的结果;S表示发现这个设备不能提供服务了(A出了问题),能把坏掉的部分换掉或者修好的能力。2、RAS分类2.1 功能分类目前从硬件层面RAS分为:① CPU RAS,主要L1/L2/L3 cache控制器所报告的错误② PCIE RAS,负责PCI设备所报告的错误③ Momery RAS,主要负责内存控制器所报告的错误在内核与之对应的处理框架叫EDAC(Error Detection And Correction)。由一个核心(edac_core.ko)和多个内存控制器驱动模块组成。2.2 错误分类Intel将Hardware Error 分为以下几类:Corrected Error(CE):指硬件自行恢复的故障,通常也会通知软件,软件读取Status寄存器记录故障信息;Fata Error(FE):指严重的硬件错误,比如Processor 电源故障,Memory Control严重故障等;Uncorrected Error(UCE):指硬件无法自行恢复的故障,在Intel MCA架构下,此类错误是MCi_STATUS寄存器PCC bit为1,表示Processor可能已经被故障损坏,同时重启Processor也不可靠,软件会根据此信息主动Panic;Uncorrected Recoverable Error (UCR):指硬件无法自行恢复,但软件可以采取某些行为修复的错误,这需要对各种错误进行精细化处理(不会出现错误污染、扩散);Uncorrected no action required (UCNA):UCNA通过CMCI上报。UCNA Error表示系统中的某些数据已损坏,但数据尚未被消费(即没被read),并且处理器的状态可用,程序可以继续在处理器上执行。Software recoverable action optional (SRAO):SRAO通过MCE或CMCI上报。SRAO Error表示系统中某些数据损坏,但是未被消费。软件恢复措施是可选的,可以根据MCACOD采取恢复策略。Software recoverable action required (SRAR):SRAR通过MCE上报。SRAR Error表示系统中某些数据损坏且正在被消费,软件必须在此CPU任务调度前采取recovery action(通常是kill当前cpu上进程,但不限于此)。如果无法恢复,比如无法获取Addr或Task信息,则应该Panic。当然上述分类并不是绝对的,只能算是最全面的分类。比如Intel将PCIe Device的RAS故障只分为UCE和CE,这是因为Pcie连接外设一般是非核心硬件,比如USB、磁盘、网卡等。这些组件发生UCE后,都会通知到OS尝试修复。二、RAS通知机制实现内核主要是对BIOS/firmware传递的错误类型进行再处理,因此本小结首先讲述BIOS/firmware是如何通知内核的,然后在介绍内核侧通用(不包含intel和amd)通知机制的注册和处理流程。1、硬件通知机制工作在 x86 平台上的硬件使用多样的方式向上层软件报告硬件错误,有的通过 PCI-E 总线传递错误消息,有的需要读写特定的寄存器组来得到错误信息,还有的通过产生特定的中断或者异常来报告错误状态。在这些各式各样方法的背后,是硬件设计人员和软件开发人员耗费大量的时间用来定义接口以及接口实现。1.1 APEI简介APEI(Advanced Platform Error Interfaces)规范统一了软硬件之间的接口,降低了软硬件开发人员的开发复杂度。不但如此,新的 APEI 接口更加灵活,便于扩展。APEI 的结构组成并不复杂,简单而言,就是 4 张ACPI表:(1)BERT(BOOT Error Record Table)BERT 主要用来记录在启动过程中出现的错误。如果在 OS 未接管平台的控制权限之前, firmware(如 BIOS 或者 UEFI)检测到错误,导致系统无法继续启动,可以通过 BIOS/FIRMWARE 将这种类型的错误写入到特定的存储位置。这样一来,在下一次的正常启动过程中,OS 可以通过特定的方法将之前保存的错误读取出来分析并处理,这就是 BERT 的主要用途。不过,也有可能是在系统运行过程中 firmware 检测到了致命错误,以至于 firmware 决定不通知 OS 而是直接启动,在重启前 firmware 可以记录下相关的错误信息以便之后分析出错原因。在目前阶段,BERT 的用途还没有完全定下来,并且只有 BIOS/FIRMWARE 才有能力对 BERT 执行写入操作;对于 OS 而言,BERT 仅仅是一个只读的表。到目前为止,还没有一款 BIOS 提供对 BERT 的正式支持,因此,相关的代码也没有在 Linux 中实现。这也是到目前为止 APEI 体系中唯一还没有在 Linux 中实现的一个模块。(2)ERST(Error Record Serialization Table )ERST 本质上是一个用来永久存储错误的抽象接口。软件可以通过 ERST 将各种错误信息保存到 ERST 中,再由 ERST 写入到可用于永久存储的物理介质中。ERST 并没有一个严格的定义来界定什么是“错误”,换言之,软件可以保存任何信息到 ERST 中,只要软件认为是有意义,有价值的信息就可以。ERST 的主要作用就是用来存储各种硬件或者平台相关的错误,只要是软件可以记录的错误,都可以将其保存到 ERST 当中。加上BERT 表,这样一来,无论系统运行在哪个阶段,当出现硬件或平台相关的错误时,通过 APEI 接口,都有办法将错误保存下来。这样一来就可以在之后通过适当的方法将错误读取出来进行分析,从而加快定位产生错误的原因并加以解决。(pstore已经实现这个接口)(3)EINJ(Error Injection Table)在 APEI 定义的所有表中,EINJ 是最为特别的一个。因为 EINJ 不是一个用来记录或者保存错误的表,相反,EINJ 的主要作用是用来注入错误并触发错误,或者说,EINJ 是一个用来测试的表。EINJ 可以注入各种类型的硬件错误,这些注入的错误不是模拟的,而是通过 EINJ 和底层 firmware 以及硬件配合真实产生的,主要用来开发者验证。(4)HEST(Hardware Error Source Table)在 HEST 中定义了很多硬件相关的错误源和错误类型,如 MCE, NMI, PCI-E,GHES 等等,类似一个协议。定义这些硬件错误源的目的在于标准化软硬件错误接口的实现。有了 HEST,当发生特定类型的硬件错误,如 PCI-E 设备产生了一个 UC 类型的错误时,BIOS/FIRMWARE 有统一的方法更新特定的寄存器和内部状态,软件有统一的方法去处理和解析错误。最为特殊也是最为重要的硬件错误源类型就是 GHES(Generic Hardware Error Source)。从字面上理解,GHES 是一个通用硬件错误源,基本任何类型的硬件错误都可以使用 GHES 来定义,而无需使用之前提到的特定硬件错误源,如 MCE 等。1.2 通用通知模式(1)在理解RAS通知机制之前,首先要了解几种中断:MCE -- Machine Check Exception (vector 18),检测到错误中断;NMI -- NonMaskable Interrupt (vector 2),不可屏蔽中断;SMI -- System Management Interruption,系统管理中断,是由硬件触发,由BIOS处理的中断。硬件有相应的指令可以触发,触发后CPU将进入SMM模式(System Management Mode系统管理模式),此时OS相关执行流程将被挂起,执行BIOS中注册的ISR。SCI:System Control Interruption,系统控制中断,是由BIOS触发,然后由OS处理的中断,通常会在BIOS处理完相关的SMI中断后触发,从而退出SMM模式,退回保护模式,然后由OS内核中注册的ISR进行处理。用于BIOS和OS之间的通信。(2)通知机制的实现主要有两种方式:Firmware First Model 固件优先模式,这种模式也是大部分内核默认的,即先通过SMI中断进入BIOS/firmware,再由BIOS/firmware决定OS中断的类型,并决定是否触发。所有 CE 类型的错误通过 SCI 中断报告给 OS,然后 OS 在 HEST/GHES 中查表,检测并处理可能的硬件错误;所有 Fatal 类型的错误通过 NMI 中断报告给 OS,然后 OS 在 NMI 的 handler 中查表,检测并处理可能的硬件错误。这些规定并不是硬性要求的,平台设计者完全可以根据需要使用不同中断来处理。OS Native Model,OS原生模式,即发生错误时:CPU/memory/chipset的无法恢复的故障通常触发MCE中断;I/O故障可能触发PCIe AER中断,前提是软硬件都支持;其它硬件故障统统触发NMI中断。三、小结发生硬件错误时,目前配置CPU会首先通过SMI中断通知BIOS,bios会根据配置来决定是否通知内核或者直接panic。目前通用的出入方式如下:(1)当发生CE错误时,bios会中sci中断通知内核,内核进行记录,如果发生频繁内核将会进行迁移和隔离(LRU和大页);(2)当发生非致命UC错误时,通知机制和CE一致,内核会记录错误,并将错误进行隔离,最后可能会导致进程被kill;(3)当发生Fatal UC时,内核会panic。本篇文章转载自天翼云官方网站开发者社区,了解更多云计算知识可登录天翼云官方网站开发者社区,点击专栏查看更多技术干货,与技术大咖促膝论道!
2026年09月16日
8 阅读
0 评论
0 点赞
2026-09-10
AI专题二十七:机器学习——监督学习、无监督学习、半监督学习、强化学习
1 引言机器学习是一种人工智能领域的技术,它旨在让计算机通过学习数据和模式,而不是明确地进行编程来完成任务。机器学习分为监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)、半监督学习(Semi-supervised Learning)、强化学习(Reinforcement Learning)四种,下面针对每种学习方式做详细介绍。2 监督学习2.1 什么是监督学习定义:根据已有的数据集,知道输入和输出结果之间的关系。根据这种已知的关系,训练得到一个最优的模型。在监督学习中训练数据既有特征(feature)又有标签(label),通过训练,让机器可以自己找到特征和标签之间的联系,在面对只有特征没有标签的数据时,可以判断出标签。简单理解:可以把监督学习理解为我们教机器如何做事情。2.2 监督学习的类别监督学习任务主要包括分类和回归两种类型,在监督学习中,数据集中的样本被称为“训练样本”,并且每个样本都有一个输入特征和相应的标签(分类任务)或目标值(回归任务)。。分类(Classification): 在分类任务中,目标是将输入数据分到预定义的类别中。每个类别都有一个唯一的标签。算法在训练阶段通过学习数据的特征和标签之间的关系来构建一个模型。然后,在测试阶段,模型用于预测未见过的数据的类别标签。例如,将电子邮件标记为“垃圾邮件”或“非垃圾邮件”,将图像识别为“猫”或“狗”。回归(Regression): 在回归任务中,目标是预测连续数值的输出。与分类不同,输出标签在回归任务中是连续的。算法在训练阶段通过学习输入特征和相应的连续输出之间的关系来构建模型。在测试阶段,模型用于预测未见过的数据的输出值。例如,预测房屋的售价、预测销售量等。2.3 常见的监督学习算法监督学习算法种类众多,有着极其广泛的应用,下面是一些常见的监督学习算法:支持向量机(Support Vector Machine,SVM):SVM是一种用于二分类和多分类任务的强大算法。它通过找到一个最优的超平面来将不同类别的数据分隔开。SVM在高维空间中表现良好,并且可以应用于线性和非线性分类问题。决策树(Decision Trees):决策树是一种基于树结构的分类和回归算法。它通过在特征上进行递归的二分决策来进行分类或预测。决策树易于理解和解释,并且对于数据的处理具有良好的适应性。逻辑回归(Logistic Regression):逻辑回归是一种广泛应用于二分类问题的线性模型。尽管名字中带有"回归",但它主要用于分类任务。逻辑回归输出预测的概率,并使用逻辑函数将连续输出映射到[0, 1]的范围内。K近邻算法(K-Nearest Neighbors,KNN):KNN是一种基于实例的学习方法。它根据距离度量来对新样本进行分类或回归预测。KNN使用最接近的K个训练样本的标签来决定新样本的类别。1.4 监督学习的应用场景监督学习是最常见的机器学习方法之一,在各个领域都有广泛的应用,它的成功在很大程度上得益于其能够从带有标签的数据中学习,并对未见过的数据进行预测和泛化。图像识别:监督学习在图像识别任务中非常常见。例如,将图像分类为不同的物体、场景或动作,或者进行目标检测,找出图像中特定对象的位置。自然语言处理:在自然语言处理任务中,监督学习用于文本分类、情感分析、机器翻译、命名实体识别等。语音识别:监督学习在语音识别领域被广泛应用,例如将语音转换为文本、说话者识别等。医学诊断:在医学领域,监督学习可以用于疾病诊断、影像分析、药物发现等。3 无监督学习3.1 什么是无监督学习定义:我们不知道数据集中数据、特征之间的关系,而是要根据聚类或一定的模型得到数据之间的关系。在无监督学习中数据只有特征(feature)无标签(label),是一种机器学习的训练方式,它本质上是一个统计手段,在没有标签的数据里可以发现潜在的一些结构的一种训练方式。简单理解:比起监督学习,无监督学习更像是自学,让机器学会自己做事情。3.2 无监督学习的类别无监督学习的特点是在训练数据中没有标签或目标值。无监督学习的目标是从数据中发现隐藏的结构和模式,而不是预测特定的标签或目标。无监督学习的主要类别包括以下几种:聚类(Clustering):聚类是将数据样本分成相似的组别或簇的过程。它通过计算样本之间的相似性度量来将相似的样本聚集在一起。聚类是无监督学习中最常见的任务之一,常用于数据分析、市场细分、图像分割等。降维(Dimensionality Reduction):降维是将高维数据转换为低维表示的过程,同时尽可能地保留数据的特征。降维技术可以减少数据的复杂性、去除冗余信息,并可用于可视化数据、特征提取等。常见的降维方法有主成分分析(PCA)和t-SNE等。关联规则挖掘(Association Rule Mining):关联规则挖掘用于发现数据集中项之间的关联和频繁项集。这些规则描述了数据集中不同项之间的关联性,通常在市场篮子分析、购物推荐等方面应用广泛。异常检测(Anomaly Detection):异常检测用于识别与大多数样本不同的罕见或异常数据点。它在检测异常事件、欺诈检测、故障检测等领域有着重要的应用。无监督学习在数据挖掘、模式识别、特征学习等领域中发挥着重要作用。通过发现数据中的结构和模式,无监督学习有助于我们更好地理解数据,从中提取有用的信息,并为其他任务提供有益的预处理步骤。3.3 常见的无监督学习算法无监督学习算法在不同的问题和数据集上都有广泛的应用。它们帮助我们从未标记的数据中发现有用的结构和模式,并在数据处理、可视化、聚类、降维等任务中发挥着重要的作用。以下是一些常见的无监督学习算法:K均值聚类(K-Means Clustering):K均值聚类是一种常用的聚类算法,它将数据样本分成K个簇,使得每个样本与所属簇中心的距离最小化。主成分分析(Principal Component Analysis,PCA):PCA是一种常用的降维算法,它通过线性变换将高维数据投影到低维空间,以保留最重要的特征。关联规则挖掘(Association Rule Mining):关联规则挖掘是一种发现数据集中项之间关联性的方法,它常用于市场篮子分析、购物推荐等领域。异常检测(Anomaly Detection):异常检测算法用于识别与大多数样本不同的罕见或异常数据点。常见的方法包括基于统计的方法、基于聚类的方法和基于生成模型的方法等。3.4 无监督学习的应用场景无监督学习在数据挖掘、模式识别、特征学习等应用场景发挥着重要作用。通过无监督学习,我们可以从未标记的数据中获得有用的信息和洞察力,为其他任务提供有益的预处理步骤,并且有助于更好地理解和利用数据。:聚类与分组:无监督学习中的聚类算法可以帮助将数据样本分成相似的组别或簇,例如在市场细分中将顾客分成不同的群体、在图像分割中将图像区域分割成不同的物体等。特征学习与降维:无监督学习的降维算法如PCA和t-SNE可以用于特征学习和可视化高维数据,例如在图像、音频和自然语言处理中,以及用于数据压缩和可视化。异常检测:无监督学习中的异常检测算法可用于发现与大多数数据样本不同的罕见或异常数据点。这在欺诈检测、故障检测和异常事件监测等场景中具有重要应用。关联规则挖掘:无监督学习的关联规则挖掘算法可用于发现数据集中项之间的关联性,常应用于市场篮子分析、购物推荐等领域。4 半监督学习4.1 什么事半监督学习定义:半监督学习的目标是利用同时包含有标签和无标签的数据来构建一个模型,使得模型能够在测试阶段更好地泛化到新的、未见过的数据。半监督学习介于监督学习和无监督学习之间。在半监督学习中,训练数据同时包含有标签的数据和无标签的数据。与监督学习不同的是,半监督学习的训练数据中只有一小部分样本是带有标签的,而大部分样本是没有标签的。通常情况下,获取带有标签的数据可能会比较昂贵或耗费大量的时间,而采集无标签的数据则相对容易和便宜。在半监督学习中,无标签的数据可以起到两个重要作用:利用未标记数据的信息:未标记数据可能包含对数据分布、结构和隐含特征的有用信息,这些信息可以帮助模型更好地进行泛化。利用标记数据的传播效应:通过利用标记数据与无标签数据之间的数据分布相似性,可以通过传播标签信息到无标签样本,进而增强模型的性能。半监督学习是一个非常有意义且有挑战性的问题,它在现实世界的许多场景中都具有实际应用价值。通过充分利用未标记数据,半监督学习可以在某些情况下显著提高模型的性能,并且有助于在数据有限的情况下构建更加健壮和泛化能力强的机器学习模型。4.2 半监督学习的类别半监督学习是介于监督学习和无监督学习之间的一种学习方式,它利用同时包含有标签和无标签数据的训练集来构建模型。半监督学习的类别主要分为以下几种:半监督分类(Semi-supervised Classification):在半监督分类中,训练数据中同时包含带有标签的样本和无标签的样本。模型的目标是利用这些标签信息和无标签数据的分布信息来提高分类性能。半监督分类算法可以在分类任务中利用未标记数据来扩展有标签数据集,从而提高模型的准确性。半监督回归(Semi-supervised Regression):半监督回归任务与半监督分类类似,但应用于回归问题。模型通过有标签的数据和无标签数据进行训练,以提高对未标记数据的回归预测准确性。半监督聚类(Semi-supervised Clustering):半监督聚类算法将有标签数据和无标签数据同时用于聚类任务。它们可以通过结合数据的相似性信息和标签信息,来更好地识别潜在的簇结构。半监督异常检测(Semi-supervised Anomaly Detection):半监督异常检测任务旨在从同时包含正常样本和异常样本的数据中,利用有限的标签信息来检测异常。这在异常样本较少的情况下特别有用。生成对抗网络(GANs)中的半监督学习:GANs可以被用于实现半监督学习。在这种情况下,生成器和判别器网络可以使用有标签和无标签的样本,以提高生成模型的性能。半监督学习是一种具有挑战性的学习范式,因为它需要充分利用未标记数据,同时还要防止过度拟合未标记数据。在实际应用中,根据问题的性质和可用的数据,选择适当的半监督学习方法和技术,可以帮助提高模型性能和泛化能力。4.3 常见的半监督学习算法半监督学习算法可以在不同的问题和数据集上发挥作用。选择合适的半监督学习算法取决于问题的特性、可用的有标签和无标签数据量,以及算法的性能和复杂度要求。半监督学习在处理数据有限或数据标记成本高昂的场景下具有重要的应用价值。以下是一些常见的半监督学习算法:自训练(Self-Training):自训练是一种简单的半监督学习方法。它通过使用有标签数据训练一个初始模型,然后使用该模型对未标记数据进行预测,并将置信度较高的预测结果作为伪标签,将未标记数据添加到有标签数据中,然后重新训练模型。协作训练(Co-Training):协作训练是一种使用多个视图或特征的半监督学习方法。它通过将数据划分为两个或多个视图,并在每个视图上独立训练模型。然后,模型之间相互交互并使用对方的预测结果来增强训练。半监督支持向量机(Semi-Supervised Support Vector Machines):半监督支持向量机是基于支持向量机的半监督学习方法。它利用有标签数据和未标记数据之间的关系来学习一个更好的分类器。生成式半监督学习(Generative Semi-Supervised Learning):这类方法尝试使用生成模型来建模数据的分布,并利用有标签和无标签数据共同训练生成模型,以提高对未标记数据的预测。半监督深度学习:近年来,许多深度学习方法已经扩展到半监督学习。这些方法通过在深度神经网络中引入半监督性质,如半监督自编码器(Semi-Supervised Autoencoders)等,来利用未标记数据的信息。图半监督学习(Graph-based Semi-Supervised Learning):图半监督学习方法利用数据样本之间的关系来辅助半监督学习。这些方法通常利用图模型或图卷积神经网络(GCN)来利用数据的拓扑结构。4.4 半监督学习的应用场景半监督学习在许多实际应用场景中具有重要的应用价值,尤其在数据有限或数据标记成本高昂的情况下。以下是一些半监督学习的应用场景:自然语言处理:在自然语言处理任务中,很多时候获取大规模的标记数据是非常昂贵和耗时的。半监督学习可以利用少量有标签的文本数据和大量未标签的文本数据来提高文本分类、情感分析、命名实体识别等任务的性能。图像识别和计算机视觉:在图像识别和计算机视觉领域,获取大规模的标记图像数据也可能是困难的。半监督学习可以在少量有标签图像和大量未标签图像上进行训练,以提高图像分类、目标检测等任务的准确性。数据聚类:在聚类任务中,半监督学习可以将有标签和未标签数据结合起来进行聚类,从而提高聚类结果的准确性和稳定性。医学图像和诊断:在医学图像分析和诊断中,获取大量标记的医学图像数据可能是困难的。半监督学习可以在少量有标签医学图像和大量未标签医学图像上进行训练,提高医学图像分割、病变检测等任务的性能。机器人控制:在机器人控制领域,半监督学习可以帮助机器人在未知环境中进行自主决策和学习,从而提高其任务执行能力。图像生成和数据增强:在生成式模型中,半监督学习可以结合有标签和未标签数据来训练模型,以提高生成模型的质量和多样性。这些场景中,半监督学习能够有效地利用未标签数据的信息,帮助提高模型性能和泛化能力。然而,半监督学习也面临着挑战,例如如何有效地利用未标签数据,避免过拟合和不平衡问题。在实际应用中,需要根据具体问题和数据情况选择适合的半监督学习方法。5 强化学习5.1 什么是强化学习定义: 强化学习是让一个智能体(agent )在环境中通过尝试和错误来学习行为策略。智能体通过与环境进行交互,根据奖励信号来调整其行为策略,以达到最大化累积奖励的目标。在强化学习中,智能体不需要明确地告诉如何执行任务,而是通过尝试和错误的方式进行学习。当智能体在环境中采取某个动作时,环境会返回一个奖励信号,表示该动作的好坏程度。智能体的目标是通过与环境交互,学习到一种最优策略,使其在长期累积的奖励最大化。强化学习的过程可以描述为智能体与环境之间的不断交互过程(1)智能体观察当前环境状态(state)。(2)基于当前状态,智能体选择一个动作(action)。(3)环境根据智能体的动作转换到新的状态,并返回一个奖励信号(reward)。(4)智能体根据奖励信号更新其策略,以便在将来的决策中获得更好的奖励。(5)重复以上步骤,直到智能体学习到一个使其获得最大累积奖励的策略。5.2 强化学习的类别强化学习是一种机器学习方法,根据智能体(agent)与环境的交互来学习适当的行为策略以最大化累积奖励。强化学习的类别主要可以分为以下几种:基于值的强化学习(Value-Based Reinforcement Learning):基于值的强化学习方法旨在学习价值函数,即给定状态或状态-动作对的值,代表了智能体在该状态或状态-动作对上能够获得的累积奖励的估计值。这些方法通常通过使用贝尔曼方程或其变种来更新价值函数,并使用它来选择动作。基于策略的强化学习(Policy-Based Reinforcement Learning):基于策略的强化学习方法直接学习策略函数,即将状态映射到动作的映射。策略可以是确定性的(对于每个状态只输出一个动作)或是概率性的(对于每个状态输出动作的概率分布)。这些方法通常通过梯度上升方法来更新策略参数,以最大化累积奖励。基于模型的强化学习(Model-Based Reinforcement Learning):基于模型的强化学习方法学习环境的模型,即从状态和动作预测下一个状态和奖励。然后,它可以使用学到的模型进行规划和决策,而无需真实地与环境进行交互。这样可以提高样本效率和规划效率。深度强化学习(Deep Reinforcement Learning):深度强化学习将深度神经网络与强化学习相结合。它通常使用深度神经网络来近似值函数或策略函数。深度强化学习在处理高维状态空间和动作空间的任务时表现出色。多智能体强化学习(Multi-Agent Reinforcement Learning):多智能体强化学习研究多个智能体在相互作用环境中的学习问题。在这种情况下,每个智能体的策略和动作会影响其他智能体的状态和奖励,因此学习变得更加复杂。这些是强化学习的主要类别,每个类别中都有许多不同的算法和方法。强化学习在自主决策和学习的问题中具有广泛的应用,例如自动驾驶、机器人控制 、游戏玩法等。5.3 常见的强化学习算法强化学习算法在处理不同类型的任务和问题时表现出色,并在自主决策和学习的领域中发挥着重要作用。它们通常用于解决自动驾驶、机器人控制、游戏玩法和其他需要决策和学习的任务。以下是一些常见的强化学习算法:Q-Learning:Q-Learning是一种基于值的强化学习算法。它通过学习一个值函数(Q函数)来表示在给定状态下采取某个动作的累积奖励。Q-Learning使用贝尔曼方程更新Q值,并使用贪心策略来选择动作。SARSA:SARSA是另一种基于值的强化学习算法。它与Q-Learning类似,但不同之处在于它在学习和决策阶段都使用当前策略的动作来更新Q值。DQN(Deep Q Network):DQN是一种深度强化学习算法,结合了深度神经网络和Q-Learning。它使用深度神经网络来近似Q函数,通过经验回放和目标网络来稳定训练。A3C(Asynchronous Advantage Actor-Critic):A3C是一种基于策略的强化学习算法,它结合了Actor-Critic方法和异步训练。A3C使用多个智能体并行地训练,以提高样本效率。PPO(Proximal Policy Optimization):PPO是一种基于策略的强化学习算法,它通过限制更新幅度来稳定训练。PPO在深度强化学习中表现出色,并被广泛应用于各种任务。TRPO(Trust Region Policy Optimization):TRPO是另一种基于策略的强化学习算法,它使用限制步长的方法来保证更新策略时不会使性能变差。5.4 强化学习的应用场景强化学习在许多实际应用场景中具有广泛的应用,尤其是那些需要自主决策和学习的任务。强化学习能够使智能体从与环境的交互中学习,并根据学到的知识做出适当的决策,以达到预定的目标或最大化累积奖励。由于强化学习的自主学习和决策特性,它在许多自主系统和智能系统中都有重要的应用潜力。以下是一些强化学习的应用场景:自动驾驶:强化学习可以应用于自动驾驶领域,使车辆能够根据环境和交通状况做出决策,例如规划路径、避免障碍物和遵守交通规则。机器人控制:强化学习可以帮助机器人在未知环境中进行自主探索和学习,以完成复杂的任务,例如导航、抓取物体和人机交互。游戏:强化学习在游戏玩法中有广泛的应用。例如,使用强化学习训练智能体来玩电子游戏、围棋、扑克等,使其能够与人类玩家媲美甚至超越。医疗治疗:强化学习可以在医疗领域中应用于个性化治疗和药物治疗决策,根据患者的情况和病情做出合适的治疗计划。语音识别和自然语言处理:强化学习可以应用于语音识别和自然语言处理任务,使智能体能够更好地理解和生成自然语言。ps:强化学习 和 监督学习的区别先给出结论:强化学习和监督学习是两种完全不同的机器学习范式,核心区别体现在数据、反馈和学习目标上;强化学习本质不需要人工标注标签,反馈天然具有延迟性。核心差异对比两种学习范式的区别可以从多个核心维度整理如下:❓ 强化学习是否需要标签强化学习本质上不需要人工标注的训练标签,它通过智能体与环境交互试错,基于环境返回的奖励信号自动学习,极大减少了对大规模标注数据的依赖14。仅在部分特殊场景会少量引入标注:例如RLHF中需要人工对模型回答排序来训练奖励模型,或是初始阶段用模仿学习(监督学习)做预训练加速收敛,但这些标注不属于传统监督学习要求的输入输出标签,也不是强化学习的必需环节1014。⏱️ 强化学习反馈是否具有延迟性强化学习的反馈天然具有延迟性。强化学习是序列决策任务,智能体需要执行完一整个动作序列后,才能得到最终的总奖励,无法在每一步都得到即时的对错反馈121。例如AlphaGo下围棋,需要下完一整盘棋才能知道最终胜负(总奖励),单步落子无法立刻得到明确反馈;种西瓜的场景里,只有收获时才能知道之前浇水施肥决策的最终效果,符合强化学习延迟反馈的特点6。目前虽然会通过值函数等方法对单步动作做预估,但无法从本质上消除延迟性。✅ 要点总结强化学习和监督学习是两种基础机器学习范式,核心差异在于反馈形式和学习目标;强化学习不需要人工标注标签就能学习,反馈天然存在延迟性,更适合序列决策类任务5。目前大模型对齐常用的RLHF就是结合监督微调与强化学习优势的典型应用。如果你需要更深入了解RLHF中强化学习的具体工作流程,或者想对比不同强化学习算法的差异,我可以帮你整理更清晰的步骤说明,要不要继续探索呀 📚————————————————版权声明:本文为CSDN博主「源启智能」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/lsb2002/article/details/132005658
2026年09月10日
5 阅读
0 评论
0 点赞
2026-04-20
AI专题十八:AI服务器集群连接
大语言模型的分布式训练依赖高性能计算集群(HPC)完成,其架构设计需综合考虑分布式系统 、大语言模型结构、优化算法。本文详细解析分布式训练的两种核心集群架构 ——参数服务器架构与去中心化架构,并探讨硬件组成、通信瓶颈及优化方案。一、高性能计算集群的硬件组成1.1 典型硬件架构分布式训练集群的硬件以多层树状拓扑为基础,核心组件包括:服务器:单台服务器通常搭载 2-16 个计算加速设备(如 GPU/TPU),负责模型计算。机柜与交换机:架顶交换机(ToR):连接同一机柜内的服务器。骨干交换机(Spine Switch):跨机柜通信,构建多层树状网络拓扑(如图 4.18 所示)。高速网络:采用 InfiniBand(IB)技术,单链路带宽可达 200Gbps/400Gbps,NVIDIA DGX/HGX 服务器通过 NVLink 实现单机内 1.6Tb-3.2Tb 带宽。1.2 通信瓶颈与优化跨机柜通信挑战:以 GPT-3 为例,1024 卡集群单轮训练需传输 89.6TB 梯度数据,传统多层树拓扑易导致网络拥塞。拓扑优化:采用胖树(Fat-Tree)拓扑实现无收敛带宽,结合 InfiniBand 高速网络降低延迟。服务器内通信:PCIe 5.0 总线带宽仅 128GB/s,远低于 GPU 显存带宽(如 H100 HBM 达 3.35TB/s),因此 NVIDIA HGX 服务器通过NVLink+NVSwitch实现 GPU 间直接通信(如图 4.19 所示)。二、参数服务器架构(Parameter Server, PS)2.1 角色与流程双角色分工:参数服务器(PS 节点):存储模型参数,负责梯度聚合与参数更新,需高内存与通信能力。训练服务器(Worker 节点):执行前向 / 反向计算,推送梯度至 PS 节点,需高计算能力。典型流程(以 2 训练服务器 + 2 参数服务器为例):训练服务器处理数据分片,计算梯度并推送至对应 PS 节点。PS 节点等待所有梯度到达后,计算平均梯度并更新参数。PS 节点通知训练服务器拉取新参数,启动下一轮迭代(如图 4.20 所示)。2.2 同步与异步训练模式同步训练:优势:参数更新一致,训练结果稳定。缺点:需等待所有 Worker 完成计算,速度较慢。异步训练:优势:无需等待,训练速度显著提升。缺点:梯度更新存在延迟,可能导致训练波动。选择策略:根据模型收敛要求权衡,大规模训练常采用异步模式提升效率。三、去中心化架构(Decentralized Network)3.1 核心思想与通信原语无中心节点:所有节点平等通信,通过集合通信(Collective Communication)实现梯度同步与参数更新,避免单点瓶颈。关键通信原语介绍Broadcast(广播):主节点向所有节点发送相同数据(如模型初始化参数Scatter(散射):主节点将数据分片发送至不同节点。Reduce(归约):将多节点数据聚合至单节点(如求和、求平均)。All Reduce(全归约):所有节点参与聚合,最终各节点均获得相同结果。Gather/All Gather:收集多节点数据至单节点 / 所有节点。Reduce Scatter/All to All:数据切分后分发至多节点处理。3.2 通信库与框架实现常用通信库:PyTorch 分布式通信示例:# 初始化分布式环境 import torch.distributed as dist def init_process(rank, size, fn): os.environ["MASTER_ADDR"] = "127.0.0.1" os.environ["MASTER_PORT"] = "29500" dist.init_process_group(backend="nccl", rank=rank, world_size=size) # 使用NCCL backend fn(rank, size) # All Reduce通信示例 def do_all_reduce(rank, size): tensor = torch.tensor([rank + 1]) dist.all_reduce(tensor, op=dist.ReduceOp.SUM) # 所有节点求和 print(f"Rank {rank}: Result = {tensor.item()}") # 输出均为10(1+2+3+4) # 启动4个进程 if __name__ == "__main__": size = 4 mp.set_start_method("spawn") processes = [] for rank in range(size): p = mp.Process(target=init_process, args=(rank, size, do_all_reduce)) p.start() processes.append(p) for p in processes: p.join() 四、两种架构对比与选型建议选型建议:中小规模模型或参数更新密集型任务:优先参数服务器架构。大规模分布式训练(如千亿参数模型):采用去中心化架构,结合 NCCL 通信库与胖树拓扑优化通信效率。五:连接接口:InfiniBand (IB):专为高性能计算设计的网络协议和硬件标准。核心技术:RDMA。允许服务器内存直接访问另一台服务器的内存,完全绕过CPU和操作系统,实现极低延迟和高带宽。特点:高性能、低延迟、高吞吐量、内置网络计算能力(如NVIDIA的SHARP)。高性能以太网 (RoCEv2 / iWARP):RoCEv2:在标准以太网上实现RDMA的技术。需要支持无损传输的网络环境(如PFC、ECN等流控技术)。iWARP:另一种在TCP/IP协议上实现RDMA的标准,但不如RoCEv2普及。特点:基于广泛使用的以太网生态,成本通常低于同带宽InfiniBand,但对网络配置要求高,延迟通常略高于InfiniBand。Unified Bus:华为Unified Bus (UB/灵衢) 的核心使命是构建数据中心级计算机,推倒计算机体系结构中总线与网络之间的墙。它旨在创造一种既拥有总线级的编程简易度和极致性能(纳秒/微秒级延迟、高带宽、内存语义),又具备网络级超大规模扩展能力的统一互联范式。137因此,它的应用范围自然覆盖了服务器间的连接,即“Scale-Out”场景。它通过“Jetty”等抽象概念和“UB-Mesh”拓扑结构,专门设计用于构建包含数千乃至上万张算力卡的超大规模集群。Unified Bus与InfiniBand、RoCEv2的技术对比典型应用与选择建议选择华为Unified Bus (灵衢) 的场景:构建全新、超大规模AI算力集群,特别是以华为昇腾NPU为核心的全栈国产化解决方案。追求 “数据中心即计算机” 的愿景,需要将整个集群的算力、内存、存储资源深度池化,实现像单机一样的极简编程和管理。110对技术自主可控和开源开放有强烈要求。选择InfiniBand的场景:对极致且稳定的性能有绝对要求,且预算充足。构建以英伟达GPU为核心的集群,并希望获得其NVLink+IB的最佳软硬件协同性能。应用于对延迟极其敏感的尖端科学计算或金融交易场景。选择RoCEv2的场景:希望平衡性能与成本,充分利用现有或主流的以太网数据中心基础设施。集群规模极大,且网络流量模型相对复杂,需要与通用业务网络融合。技术团队熟悉以太网运维,能够对无损网络进行精细调优。总结华为Unified Bus是一种面向未来的、具有革命性的互联方案,它通过统一总线和网络的范式,直接瞄准了AI算力集群的核心痛点。它不仅能用于服务器间连接,更是为此而生。与深耕高性能网络的InfiniBand和基于开放以太网的RoCEv2相比,UB的差异化优势在于其“统一内存语义”的编程模型和开源开放的生态战略。简而言之:追求极致性能与成熟度,选 InfiniBand。追求成本与通用性平衡,选 RoCEv2。追求架构革新、自主可控与资源深度池化,并采用昇腾生态,选 华为Unified Bus。
2026年04月20日
56 阅读
0 评论
0 点赞
2026-04-09
深度学习:从入门到AI芯片架构师
假设你已经掌握解基本的C/python 编程知识,对芯片开发流程有一定经验,对面向对象编程了解,了解一下基本算法。该怎么系统学习深度学习,从入门到AI 芯片架构师?在这里选择的对象是深度学习,其中以transform为主。人工智能和机器学习这个范围太广了,我们还是以学习目前AI目前发展最好的深度学习为目标。阶段一:深度学习基础速成(3-4周)目标:建立直觉,理解神经网络如何工作主题学习重点资源推荐神经网络基础感知机、激活函数、损失函数、反向传播3Blue1Brown《神经网络》视频(B站/Youtube)CNN架构卷积、池化、ResNet结构动手用PyTorch跑ResNet-50推理(不用训练)PyTorch基础Tensor操作、模型加载、前向传播《PyTorch官方教程》快速过一遍Transformer入门自注意力机制、位置编码、多头注意力必读:论文《Attention Is All You Need》+ 李沐讲解视频关键动作:# 您需要能读懂并运行这类代码 import torch from transformers import AutoModel # 加载预训练模型,观察结构 model = AutoModel.from_pretrained("bert-base-uncased") print(model) # 看懂每一层的计算量和数据流 # 统计参数量、计算FLOPs from thop import profile flops, params = profile(model, inputs=(input_ids,))阶段二:Transformer深度解剖(4-6周)⭐核心目标:彻底理解大模型的计算特征(对芯片设计至关重要)2.1 必须掌握的核心概念组件芯片设计意义学习资源Self-AttentionQ×K^T的矩阵乘法、Softmax的数值稳定性手推公式+代码实现FFN(前馈网络)两个大矩阵乘法(计算密集型)观察维度变化LayerNorm/RMSNorm内存访问模式、归一化计算与BatchNorm对比KV Cache推理时的内存瓶颈核心理解增量解码Positional EncodingRoPE相对位置编码(现代LLM主流)关键优化点2.2 大模型架构演进(按时间线)2017 Transformer(基础) ↓ 2018 BERT(Encoder-only,理解任务) 2019 GPT-2(Decoder-only,生成任务) ↓ 2020 GPT-3(175B参数,涌现能力) 2022 LLaMA(开源,高效架构) ↓ 2023 LLaMA 2、ChatGLM(指令微调) 2024 MoE架构(Mixtral、GPT-4)、Mamba(状态空间) ↓ 2025 DeepSeek-V3/R1(MLA注意力、FP8训练)必读论文(按优先级):《Attention Is All You Need》(基础,必读)《LLaMA: Open and Efficient Foundation Language Models》(开源标杆)《DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model》(MLA注意力,芯片优化关键)《Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM》(分布式训练,理解通信模式)2.3 动手实验(关键!)# 实验1:观察Attention的计算模式 import torch Q = torch.randn(1, 12, 2048, 64) # (batch, heads, seq_len, head_dim) K = torch.randn(1, 12, 2048, 64) # 计算Attention Score scores = torch.matmul(Q, K.transpose(-2, -1)) / sqrt(64) # 分析:这是O(n²)的内存和计算!序列长度的平方 # 实验2:KV Cache机制 # 理解为什么推理时Prefill和Decode阶段算力需求不同 # 实验3:用transformers库分析模型结构 from transformers import LlamaConfig config = LlamaConfig() print(config) # 看hidden_size, num_attention_heads, intermediate_size阶段三:大模型系统与芯片协同设计(持续深入)目标:理解大模型在芯片上的运行瓶颈主题为什么重要学习资源量化(INT8/FP8/INT4)降低带宽、提升吞吐论文《LLM.int8()》、《FP8-LM》稀疏化/MoE专家并行、条件计算DeepSeek-MoE、Mixtral论文内存墙问题KV Cache压缩、PagedAttentionvLLM论文、《Efficient Memory Management》并行策略数据并行、张量并行、流水线并行、专家并行Megatron-LM、DeepSpeed文档算子优化FlashAttention、Kernel FusionCUDA编程基础、Triton教程关键工具链体验:# 部署体验,理解推理全流程 pip install vllm transformers accelerate # 用vLLM部署模型,观察GPU利用率、内存占用、吞吐 vllm serve meta-llama/Llama-2-7b-chat-hf # 用nvidia-smi观察计算/内存模式 watch -n 1 nvidia-smi阶段四:芯片架构专项(结合您的Verilog/SV背景)目标:将算法理解转化为硬件设计方向具体技能应用场景AI加速器架构脉动阵列、数据流架构、近存计算NPU核心设计内存子系统HBM控制器设计、片上SRAM优化解决内存墙低精度计算FP8/INT8/INT4 MAC单元设计提升能效比互联网络NVLink/PCIe/RDMA协议多卡扩展编译器协同TVM/MLIR、算子映射软硬件协同优化推荐学习:书籍:《深度学习推理优化》《AI芯片架构与设计》开源项目:Rocket Chip、BOOM(RISC-V)、OpenROAD工业实践:研究NVIDIA H100/B200、Google TPU、华为昇腾的架构设计阶段五:软件栈全景:从模型到硅片┌─────────────────────────────────────────┐ │ 应用层:ChatGPT/文心一言/自动驾驶等 │ ├─────────────────────────────────────────┤ │ 框架层:PyTorch/TensorFlow/JAX │ │ → 自动微分、计算图构建、动态/静态图 │ ├─────────────────────────────────────────┤ │ 运行时:PyTorch Dispatcher/TF XLA │ │ → 算子选择、设备管理、内存池 │ ├─────────────────────────────────────────┤ │ 编译优化层:TVM/MLIR/XLA/TensorRT │ │ → 计算图优化、算子融合、内存规划、量化 │ ├─────────────────────────────────────────┤ │ 驱动层:CUDA Driver/ROCm/Level Zero │ │ → 上下文管理、内存分配、任务调度 │ ├─────────────────────────────────────────┤ │ 硬件抽象层:CUDA Runtime/OpenCL/Vulkan │ │ → Stream管理、Kernel启动、同步机制 │ ├─────────────────────────────────────────┤ │ Kernel层:PTX/SASS/LLVM IR/自定义ISA │ │ → 线程网格、共享内存、寄存器分配、指令调度 │ ├─────────────────────────────────────────┤ │ 硬件层:您的AI芯片(NPU/TPU/GPU) │ │ → 计算单元、SRAM/DRAM、互联网络、编解码器 │ └─────────────────────────────────────────┘阶段六:编译器和系统您需要系统学习的六大模块模块1:深度学习编译器(核心!)这是算法到硬件的桥梁,也是芯片软件生态的命脉。编译器主导公司/社区关键概念学习资源XLAGoogleHLO IR、算子融合、布局优化TensorFlow官方文档TVMApache/陈天奇团队Relay IR、Schedule、AutoTVMTVM官方教程、《深度学习编译器》书籍MLIRLLVM/GoogleDialect设计、Lowering、Pass管理MLIR官方文档、Toy TutorialTensorRTNVIDIA图优化、INT8校准、Kernel Auto-tuneNVIDIA开发者文档# 理解:PyTorch模型如何变成芯片能执行的指令? import torch import tvm from tvm import relay # 1. 捕获PyTorch计算图 model = torch.jit.trace(resnet, input_data) # 转为静态图 # 2. 转为Relay IR(中间表示) mod, params = relay.frontend.from_pytorch(model, shape_dict) # 3. 编译优化:算子融合、内存优化、量化 with tvm.transform.PassContext(opt_level=3): lib = relay.build(mod, target="llvm -mcpu=your_chip") # 4. 生成目标代码 lib.export_library("deploy.so") # 您的芯片可加载模块2:GPU/AI芯片编程模型(理解Kernel如何写)技术适用平台核心概念学习路径CUDA C/C++NVIDIA GPUThread/Block/Grid、Shared Mem、Warp、Occupancy《CUDA C Programming Guide》→ 实践矩阵乘法优化HIP/ROCmAMD GPU类似CUDA,理解移植层ROCm官方文档OpenCL跨平台Kernel、Work-item、Buffer对象Khronos官方教程TritonOpenAI/跨平台Python写GPU Kernel、Tile优化Triton官方教程(强烈推荐!)自定义DSL自研芯片设计您芯片的编程接口参考TVM/Triton设计// CUDA示例:理解线程层次结构 __global__ void matmul_kernel(float* A, float* B, float* C, int N) { int row = blockIdx.y * blockDim.y + threadIdx.y; // 块索引+线程索引 int col = blockIdx.x * blockDim.x + threadIdx.x; // Shared Memory优化(您的芯片SRAM同理) __shared__ float As[TILE_SIZE][TILE_SIZE]; __shared__ float Bs[TILE_SIZE][TILE_SIZE]; // 计算并写回 if (row < N && col < N) { C[row * N + col] = sum; } } // 启动配置:理解Occupancy dim3 block(16, 16); // 每个Block 256线程 dim3 grid((N+15)/16, (N+15)/16); // Grid大小 matmul_kernel<<<grid, block>>>(d_A, d_B, d_C, N);模块3:内存系统与数据流(芯片设计的核心瓶颈)主题为什么关键学习要点HBM/GDDR架构内存墙是AI芯片第一瓶颈HBM2e/3e规格、Bank Group、Row Buffer片上SRAM管理决定MAC利用率Scratchpad设计、Bank Conflict、Ping-Pong Buffer数据流优化减少数据搬运Weight Stationary/Output Stationary/Row StationaryDMA与数据传输异步流水线双缓冲、Chaining、优先级管理虚拟内存/页表大模型上下文支持TLB设计、大页支持、按需分页必读论文:《DianNao: A Small-Footprint High-Throughput Accelerator for Ubiquitous Machine-Learning》(寒武纪,经典数据流架构)《Eyeriss: A Spatial Architecture for Energy-Efficient Dataflow for Convolutional Neural Networks》(数据流优化经典)《FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness》(算法-硬件协同优化标杆)模块4:分布式系统与通信(大模型训练的核心)技术场景关键概念数据并行(DP)小模型大批量All-Reduce梯度同步、Ring-AllReduce张量并行(TP)单层放不下矩阵切分、All-Gather、Reduce-Scatter流水线并行(PP)模型层数多微批次、Bubble优化、1F1B调度专家并行(EP)MoE模型All-to-All通信、负载均衡序列并行(SP)长上下文Ring Attention、上下文切分ZeRO优化显存优化参数/梯度/优化器状态分片通信原语(您的芯片互联需要支持):Point-to-Point: Send/Recv Collective: - Broadcast(广播) - All-Reduce(梯度聚合)← 最频繁 - All-Gather(参数收集) - Reduce-Scatter - All-to-All(MoE专家通信)学习资源:• NCCL(NVIDIA Collective Communications Library)源码• DeepSpeed/Megatron-LM框架文档• 《Efficient Large-Scale Language Model Training on GPU Clusters》模块5:推理引擎与Serving系统(部署侧)系统特点核心机制vLLM高吞吐LLM推理PagedAttention(KV Cache分页管理)、Continuous BatchingTensorRT-LLMNVIDIA优化算子融合、FP8、MHA优化、Inflight BatchingMLC-LLM跨平台部署TVM编译、多种后端支持llama.cpp端侧CPU推理GGUF量化、NEON/AVX优化您的自研框架针对芯片优化设计推理调度器、内存池、Batch策略关键理解:# PagedAttention核心思想(vLLM) # 传统:为每个请求预分配最大长度内存 → 浪费严重 # PagedAttention:将KV Cache分块,像OS虚拟内存一样动态分配 # 对芯片设计的启示: # 1. 需要支持动态内存分配/释放 # 2. 需要高效的Scatter-Gather DMA # 3. 需要支持变长序列的并行计算模块6:芯片软件生态工具链(您可能需要构建)作为AI芯片开发者,您可能需要设计或理解:组件功能参考实现Runtime设备管理、内存池、Stream调度CUDA Runtime、HIP RuntimeDriver硬件初始化、中断处理、功耗管理NVIDIA GPU Driver、ROCrProfiler性能分析、瓶颈定位Nsight Systems/Compute、rocProfDebuggerKernel调试、内存检查CUDA-GDB、rocGDBSimulator指令级/周期级仿真gem5、NVSim、自研Benchmark标准化评测MLPerf Inference/Training最后总结学习路线:第1个月:建立Transformer直觉周次任务产出W13Blue1Brown神经网络视频 + PyTorch基础能加载并推理ResNetW2手推Self-Attention公式 + 实现简单Transformer理解Q/K/V计算流W3精读Attention Is All You Need + 李沐讲解能画出完整架构图W4用HuggingFace加载BERT/GPT-2,分析每层参数输出模型结构分析报告第2个月:深入大模型系统周次任务产出W5-W6精读LLaMA、DeepSeek-V2论文理解现代高效架构W7学习vLLM/FlashAttention,观察GPU性能特征能分析推理瓶颈W8研究量化技术(GPTQ/AWQ),理解精度-效率权衡能指导量化硬件设计关键资源汇总类型资源链接/说明视频李沐《动手学深度学习》B站,PyTorch版视频李宏毅《机器学习》中文经典,理论扎实论文Papers With Code跟踪最新SOTA代码transformers库源码理解工程实现细节工具Netron可视化模型结构,超有用!社区HuggingFace、arXiv cs.LG/CL跟踪最新动态第3个月:AI 芯片架构书籍:《深度学习推理优化》《AI芯片架构与设计》开源项目:Rocket Chip、BOOM(RISC-V)、OpenROAD工业实践:研究NVIDIA H100/B200、Google TPU、华为昇腾的架构设计第4个月:编译器与IR周任务产出W1学习MLIR Toy Tutorial,理解Dialect概念能定义简单DialectW2学习TVM Relay,将PyTorch模型编译到LLVM跑通端到端编译W3研究XLA HLO,理解算子融合策略能分析XLA生成的HLO图W4阅读《TVM: An Automated End-to-End Optimizing Compiler for Deep Learning》理解编译器架构设计第5个月:Kernel编程与优化周任务产出W5学习CUDA编程,实现优化版矩阵乘法(Shared Memory、Tiling)达到cuBLAS 80%性能W6学习Triton,用Python写FlashAttention核心理解Tile优化W7分析CUTLASS源码(NVIDIA模板库),理解分层抽象能修改模板适配新算子W8研究您目标芯片的指令集,设计简单Kernel在Simulator上跑通第6个月:系统与通信周任务产出W9学习NCCL源码,理解Ring-AllReduce实现能分析通信瓶颈W10研究DeepSpeed ZeRO-3,理解参数分片能计算通信量W11学习vLLM架构,理解Serving系统调度能设计推理调度器W12整合:设计您芯片的端到端软件栈原型文档+代码框架关键资源汇总类型资源说明书籍《深度学习编译器》国内首部系统介绍书籍《Programming Massively Parallel Processors》CUDA编程圣经课程CMU 15-418/618 Parallel Computer Architecture理解并行系统课程Stanford CS217 Hardware Accelerators for Machine Learning芯片架构开源TVM、MLIR、XLA、vLLM、DeepSpeed直接读源码论文MLSys会议论文机器学习系统顶会论文ISCA/MICRO/HPCA计算机体系结构顶会您的终极目标是:让PyTorch模型无缝运行在您设计的芯片上,且性能/能效达到最优这需要打通:算法语义 → 中间表示 → 硬件指令 → 执行单元 的全链路,而编译器(TVM/MLIR)正是这个桥梁的核心。
2026年04月09日
33 阅读
0 评论
0 点赞
2026-04-09
AI专题五: NLP模型 与 LLM(大语言模型)
LLM是NLP模型的一种,是NLP发展到当前阶段的"终极形态"。NLP模型(自然语言处理模型) ├── 传统NLP模型(基于规则/统计) │ ├── 规则系统(正则表达式、专家规则) │ ├── 统计模型(HMM、CRF、n-gram语言模型) │ └── 传统机器学习(SVM、朴素贝叶斯等) │ ├── 深度学习NLP模型(神经网络时代) │ ├── RNN/LSTM/GRU(序列建模) │ ├── CNN(TextCNN等,用于分类) │ ├── Seq2Seq + Attention(机器翻译) │ └── Transformer(BERT、GPT系列) │ └── 大语言模型 LLM(当前阶段) ├── encoder-only(BERT、RoBERTa)← 理解任务 ├── decoder-only(GPT系列、LLaMA、Claude)← 生成任务 └── encoder-decoder(T5、BART)← 翻译/摘要自然语言处理(NLP)是一个涵盖人类语言全场景处理的技术领域,其范畴包括所有用于理解、分析、生成人类语言的模型与技术,小到简单的关键词提取,大到复杂的对话系统构建,均属于NLP的研究与应用范畴。而大型语言模型(LLM)则是NLP领域内的一类特定模型,是近年来NLP技术发展的重要成果之一。从能力边界来看,LLM凭借其独特的设计逻辑,已展现出“通才”属性——能够应对几乎所有经典NLP任务,无论是文本分类、机器翻译,还是情感分析、摘要生成,都能通过其对语言模式的深度理解完成任务。这种适应性源于LLM的预训练机制:通过海量文本数据学习通用语言规律,无需针对单一任务进行专门的模型重构,这与传统NLP中“一事一模型”的模式形成鲜明对比。但需明确的是,LLM并非NLP任务的“万能解”。在某些需要高度专业化、狭义化解决方案的场景中,LLM的表现反而不如专门优化的传统NLP模型 。例如,在工业级的法律条款精准提取任务中,针对法律文本特征定制的规则式NLP模型,准确率和效率会优于通用LLM;在低资源语言的方言识别任务中,小型定制化模型也可能比LLM更具成本优势。从实际应用视角看,LLM的任务覆盖范围与传统NLP技术存在“交集但非完全重合”的关系:LLM的多功能性使其能替代部分传统模型,但传统NLP模型在特定细分场景的“专精性”,仍是LLM短期内难以完全取代的。NLP技术的发展历程中,形成了多元且分层的技术体系,涵盖从基础到复杂的多种方法:• 基础层:基于规则的方法(如正则表达式匹配、语法规则解析),适用于简单的文本过滤、关键词提取等任务;• 中间层:传统机器学习方法(如支持向量机、朴素贝叶斯),需结合人工特征工程,用于文本分类、情感倾向判断等场景;• 高级层:深度学习方法(如循环神经网络RNN、卷积神经网络CNN),通过自动学习文本特征,提升复杂任务的处理能力,常见于命名实体识别、语义角色标注等任务。这些技术各有适用场景,例如在处理结构化文本(如表格型数据中的信息提取)时,基于规则的NLP方法仍能高效发挥作用。LLM的技术路径高度聚焦于深度学习框架下的Transformer架构,其核心创新点在于“自注意力机制”:通过计算句子中每个词语与其他词语的关联权重,动态判断不同词语在语境中的重要性,从而实现对文本上下文的精准理解。例如,在处理“苹果发布了新款手机”与“我吃了一个苹果”时,自注意力机制能区分“苹果”在不同语境中的指代(公司/水果),这是传统NLP模型难以高效实现的。此外,LLM的技术流程呈现“预训练-微调”的特点:先在海量通用文本(如网页、书籍、论文)上完成预训练,构建通用语言认知能力;再根据具体任务(如医疗文本问答)的小样本数据进行微调,快速适配特定场景。这种模式大幅降低了对单一任务数据量的依赖,也是其技术优势的重要来源。
2026年04月09日
30 阅读
0 评论
0 点赞
1
2
...
5