Artificial Intelligence¶
AI Hardware & Accelerators
导言
- 牧本定律由1987年牧村次夫提出,半导体产品的发展历程总是在“标准化”和“定制化”之间交替摆动,大概每十年摆动一次,揭示了半导体产品性能功耗和开发效率之间的平衡,这对于处理器来说,就是专用结构和通用结构之间的平衡—专用结构性能功耗优先,通用结构开发效率优先。
- 贝尔定律是由戈登贝尔在1972年提出的一个观察,即每隔10年,会出现新一代计算机(新编程平台、新网络连接、新用户接口、新使用方式),形成新的产业,贝尔定律指明了未来一个新的发展趋势,这将会是一个处理器需求再度爆发的时代,不同的领域、不同行业对芯片需求会有所不同,比如集成不同的传感器、不同的加速器等等。
生产特殊的硬件:
- 带来的加速比和能耗收益,达到10倍百倍都是很正常的。
- 但是开发成本也是巨大的,包括芯片设计,流片成本,软件栈的开发,商业化的推广。
- 开发周期也相当长。需要对当前的技术的未来具有前瞻性。不要生产出来就过时了。
常见的例子,用于并行计算的GPU, H265视频编解码单元, Google TPU芯片、车载芯片、手机AI芯片。
AI领域的至今不变的特点:
- 基于反向传播和梯度/参数更新的整体逻辑
- 需要保存大量的参数来表征问题,以高维矩阵的形式存储,所以矩阵运算十分常见
- 训练由于要计算并更新梯度,一般是计算密集。但是推理一般是访存密集。
现在大火的transformer,除非它就是AGI的最理想模型,不然为一个模型专门定制硬件,很容易钱就打水漂了。为自己的算法模型定制一块AI芯片,如特斯拉。但应用面越窄,出货量就越低,摊在每颗芯片上的成本就越高,这反过来推高芯片价格,高价格进一步缩窄了市场,因此独立的AI芯片必须考虑尽可能适配多种算法模型。1
当然,也可以从workload的应用出发,分析有什么重复的热点,值得做成专用的电路单元。
AI Model Design Effectiveness
导言
作为非AI从业者,而是(即将成为)HPC赋能AI的工作者。我一直在思考,我对AI模型的了解应该止步于什么程度?
从AI模型设计的有效性角度切入,应该是我的学习的Sweet Spot / tradeoff。
意义:明白哪些层和哪些参数是有效的,对于模型压缩(模型裁剪,权重剪枝)来说是必要。远比算子融合等带来的提升大。
有待了解的内容:
- 相对于领域的复杂的信息量,一个十层的模型竟然能将其表达,Miracle!
- 有研究表明模型的参数大部分都是无用的,如何判断,如何剔除。
困惑:如何证明网络是学习或存储了真实世界的内在关联,而不只是通过增大了训练数据量和参数而存储了问题的答案。(使用测试集的准确度来量化)
AI的现状/困境: 1. AI研究人员,由具体问题场景出发,利用已有的工具或者特殊设计网络来拟合/建模问题,尝试提取不知名的隐含的特征到网络中,来解决这一类问题。 2. 明显的缺陷:就是不可重复性,缺乏一个模型来统一描述世界的问题,每个问题都要单独设计。
对象:transformer, gpt, stable diffusion(先看效果,在看是否成熟到值得学习,之前生成的多指图简直是精神污染), YOLO。
Deploy Stable Diffusion to A100
导言
- 图片推理多采用各种GUI(ComfyUI, Stable Diffusion WebUI) 2
- 训练基于 kohya-trainer 和 GUI, 带标签的二次元图片数据可以从 danbooru 爬取。
- 模型和方法实现,如LyCORIS框架? 从civitai免费下载
Classical AI Models
导言
机器学习和人工智能模型算法,从一开始模仿神经元设计,到现在根据任务定制或者基于naive的思想构建(例如对抗思想、感受野、注意力机制)。模型的设计可以说是日新月异,截然不同。但是从高性能计算的角度来看,还是离不开求导操作、矩阵操作、激活函数计算这几点。剩下值得考虑的就是寻找现有或者未来模型构成计算操作的最大公约数,来对其进行特殊软硬件设计加速。或者只是对现有模型的适配加速工作。