Artificial Intelligence¶
AI Compiler
百度
秋招面试时遇到高铁柱前辈。问了相关的问题(对AI专业的人可能是基础知识)
- nvcc编译器不好用吗?为什么要开发tvm之类的编译器?
- 答:首先,nvcc是类似与gcc, msvc(Microsoft Visual C++) 之类的传统的编译器,支持的是CUDA C/C++ 代码。
- 但是tvm编译器是张量编译器,支持的是python之类的代码,将其中的网络设计,编译拆解成各种算子,然后使用cudnn或者特定硬件的高效机器码来执行。
蔚来
数字信号处理器 (Digital signal processor)
HLO 简单理解为编译器 IR。
TVM介绍
- TVM解决的问题:
- 2017年,deploy Deep learning(TF,Pytorch) everywhere(hardware).
- Before TVM,
- 手动调优:loop tiling for locality.
- operator fusion 算子融合。虽然性能高,但是部署不高效
- 编译优化思路引入深度学习
- 定义了算子描述到部署空间的映射。核心是感知调度空间,并且实现compute/schedule 分离
- TVM当前的发展
- 上层计算图表示:NNVM Relay Relax
- 底层优化方式:manual -> AutoTVM(schedule最优参数的搜索,基于AI的cost model) -> Ansor(也不再需要手动写AutoTVM模版,使用模版规则生成代码)
- TVM的额外工作
- HeteroCL: TVM + FPGA
- output Fusion
- 减少Global Memory Copy
把中间算子库替换成编译器?
暂时不好支持张量
AI自动调整变化来调优
自动调参。缺点:
- 需要人工写模版
- 人工导致解空间变小
随机各级循环应用优化策略(并行,循环展开,向量化
介绍了Ansor效果很好
需要进一步的研究学习
暂无
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
参考文献
无
AI Image
AI tag
https://www.bilibili.com/video/BV1L84y1z7bH/?spm_id_from=333.999.0.0&vd_source=5bbdecb1838c6f684e0b823d0d4f6db3
https://aitag.top/
novelAI
官网要钱,有泄漏的50G的模型,B站有up抽取了其中的一个做了整合包
不知道,会不会有版权问题下架了。
常见问题(环境RTX3070 8G)
- 6G、8G显存生成太慢的问题已经修复
- 百度盘里已经上传了修复包,请下载并且替换hydra_node里所有文件
- 然后6G显存请使用6g的bat文件 等于8G或者以上的直接使用start.bat
- 网址是 127.0.0.1:6969
- CTRL+C 好像才能启动?
- RTX3070 大概20s一张
可以把start.bat改成sh脚本在实验室A100上跑
参考文献
作者:秋葉aaaki https://www.bilibili.com/read/cv19038600?spm_id_from=333.788.b_636f6d6d656e74.7 出处:bilibili
HPCAI
HPC - AI 在第一性原理分子动力学中的应用(中科院计算所)10^10规模
一块铁 10^22个原子
高性能计算每年翻一倍 = 超算规模 + Chip摩尔定律
但是由于分子动力学的方法是O^3, 问题规模增大,每一步迭代反而变慢了(2011年GB是3天一步)。
一百万内规模6次方内的专用机器 anton? ,比一般超算快100倍。 1. 通讯精度压缩, 2. 专用网络和通讯协议设计。
compute is cheap,memory and bandwidth are expansive, latency is physics.
18GB: AI图片处理大气模拟问题
AI : 高纬度函数的逼近(解空间相对于输入维度)
- 通过物理信息如何设计网络,来避免local minimal
- 其余技巧
- 10步AI,一步DFT
- 大哈密顿量矩阵的切片法,融合在纯粹的数据AI里。
- 预测误差
- 低精度相乘法,高精度相加
- 单精度相对于双精度
- 速度提升可能没有2倍
- 但是内存需求变成一半了,规模可以两倍
将epoch从几百变几个
字节量子计算机上的量子化学模拟 Dingshun Li
基于薛定谔方程和经典电子结构
digist + analog
量子计算的a killer app
当前问题: 1. 量子规模 50~100 2. 量子计算机运行时间有限 3. 纠错机制还需要相位纠错 4. 由于叠加态连续性,导致的误差
量子计算缺乏复杂度分析?
UCC Ansatz
需要进一步的研究学习
暂无
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
参考文献
无
GNN
图神经网络(Graph Neural Networks,GNN)以及特点
- GNN可以分析对象之间的关系,来实现精准的推荐
- 问题
- 因为图是不规则的,每个图都有一个大小可变的无序节点,图中的每个节点都有不同数量的相邻节点,导致卷积等操作不适合图。
- 现有深度学习算法的一个核心假设是数据样本之间彼此独立。对于图来说,每个数据样本(节点)都会有边与图中其他实数据样本(节点)相关,这些信息可用于捕获实例之间的相互依赖关系。
图嵌入 & 网络嵌入
图神经网络的研究与图嵌入(对图嵌入不了解的读者可以参考我的这篇文章《图嵌入综述》)或网络嵌入密切相关。
真实的图(网络)往往是高维、难以处理的,图嵌入的目标是发现高维图的低维向量表示。
图分析任务
- 节点分类,
- 链接预测,
- 聚类,
- 可视化
图神经网络分类
- 图卷积网络(Graph Convolution Networks,GCN)
- 图注意力网络(Graph Attention Networks)
- 图注意力网络(GAT)是一种基于空间的图卷积网络,它的注意机制是在聚合特征信息时,将注意机制用于确定节点邻域的权重。
- 图自编码器( Graph Autoencoders)
- 图生成网络( Graph Generative Networks)
- 图时空网络(Graph Spatial-temporal Networks)。
图卷积网络(Graph Convolution Networks,GCN)
GCN可谓是图神经网络的“开山之作”,它首次将图像处理中的卷积操作简单的用到图结构数据处理中来,并且给出了具体的推导,这里面涉及到复杂的谱图理论。推导过程还是比较复杂的,然而最后的结果却非常简单。
聚合邻居节点的特征然后做一个线性变换吗?没错,确实是这样,同时为了使得GCN能够捕捉到K-hop的邻居节点的信息,作者还堆叠多层GCN layers,如堆叠K层有:
经典的简单几类
Semi-supervised learning for node-level classification:
给定一个网络,其中部分节点被标记,其他节点未标记,ConvGNNs可以学习一个鲁棒模型,有效地识别未标记节点的类标签。为此,可以通过叠加一对图卷积层,然后是用于多类分类的softmax层来构建端到端框架。见图(a)
Supervised learning for graph-level classification:
图级分类的目的是预测整个图的类标签。该任务的端到端学习可以结合图卷积层、图池层和/或readout层来实现。图卷积层负责精确的高级节点表示,图池层则扮演下采样的角色,每次都将每个图粗化成一个子结构。readout层将每个图的节点表示折叠成一个图表示。通过在图表示中应用一个多层感知器和一个softmax层,我们可以建立一个端到端图分类框架。见图(b)
Unsupervised learning for graph embedding:
当图中没有可用的类标签时,我们可以学习在端到端框架中以完全无监督的方式嵌入图。这些算法以两种方式利用边缘级信息。一种简单的方法是采用自编码器框架,编码器使用图卷积层将图嵌入到潜在表示中,在潜在表示上使用解码器重构图结构。另一种常用的方法是利用负采样方法(negative sampling),即对图中有链接的部分节点对进行负采样,而对图中有链接的节点对进行正采样。然后应用逻辑回归层对的正负配对进行区分。见图(c)
图自动编码器(Graph autoencoders, GAEs)是一种无监督学习框架,它将node或者graph编码成一个潜在的向量空间,并从编码的信息重构图数据。该算法用于学习network embedding和图生成分布。对于network embedding,GAEs通过重构图的邻接矩阵等图结构信息来学习潜在节点表示。对于图的生成,有的方法是一步一步生成图的节点和边,有的方法是一次性输出整个图。
时空图神经网络(Spatial-temporal graph neural network, STGNNs)
旨在从时空图中学习隐藏的模式,在交通速度预测、驾驶员操纵预测和人类行为识别等多种应用中发挥着越来越重要的作用。STGNNs的核心思想是同时考虑空间依赖和时间依赖。目前的许多方法都是通过图卷积来捕获与RNNs或CNNs的空间依赖关系,从而对时间依赖关系进行建模。下图是STGNNs流程图模型。
需要进一步的研究学习
暂无
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
参考文献
https://zhuanlan.zhihu.com/p/136521625
https://zhuanlan.zhihu.com/p/75307407
https://mp.weixin.qq.com/s/PSrgm7frsXIobSrlcoCWxw
https://zhuanlan.zhihu.com/p/142948273
https://developer.huaweicloud.com/hero/forum.php?mod=viewthread&tid=109580
MLOptimizer
- 优化算法(Optimizer)目标是优化(最小化或最大化)一个损失函数,以调整模型参数,使模型在训练数据上表现得更好。
- 在深度学习中,优化算法是训练神经网络时至关重要的组成部分,它们决定了模型参数如何更新以最小化损失。
- 所以梯度下降、动量法、随机梯度下降、RMSprop、Adam、AdamW、LAMB等算法都是优化算法。
Latent Dirichlet Allocation (2003)
简介
该篇论文于2003年发表在“Journal of Machine Learning Research”期刊上,迄今引用次数已超过15000次,可见该论文对后来相关研究工作的影响之大。
首次正式将主题以隐变量的形式引入,形成一个三层贝叶斯模型,并且相比于之前和它最接近的pLSI文本模型,LDA的主题选取不再受训练集文本内容的束缚,是一个完全非监督且依据多个主题进行聚类的机器学习、数据挖掘领域的算法。
现实意义
在推荐系统的研究中,利用评论文本信息来提升推荐性能是近3-4年的一个热门研究领域,LDA及其改良的文本模型则是用来挖掘评论文本的主要方式。
早期文本模型
- TF-IDF文本模型(矩阵表示)
- LSI文本模型
- 第一个子矩阵代表了词与主题的关系,第二个子矩阵代表了主题本身,第三个子矩阵代表了主题与文档之间的关系。
LDA的建模介绍
- 用来训练文档的是基本块
- 每条指令说word
- 柏松分布
用变分推理求解LDA模型的参数
最重要的是LDA模型的两个参数,确定了后能在未知的文本里提取主题
Gensim简介、LDA编程实现、LDA主题提取效果图展示
- 统计词语出现的频率
- 为什么例子里的没有迭代次数呢?
- 调研为什么要pytorch tenceflow
需要进一步的研究学习
暂无
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
参考文献
https://zhuanlan.zhihu.com/p/28777266
https://blog.csdn.net/fish0058/article/details/25075591
https://blog.csdn.net/anqiu4023/article/details/102275607
https://pypi.python.org/pypi/lda
http://scikit-learn.org/dev/modules/generated/sklearn.decomposition.LatentDirichletAllocation.html#sklearn.decomposition.LatentDirichletAllocation