Papers:CacheGen
CacheGen: KV Cache Compression and Streaming for Fast Large Language Model Serving
研究背景
LLM的广泛应用
LLM使用特点
prepend an LLM input with a long context containing thousands of tokens or more.
e.g.在输入中加入领域内知识,便于LLM利用以生成回应(无需LLM自身携带领域知识)。
e.g.用户要求 LLM 利用交互期间积累的对话历史记录来补充输入。
问题:答案生成的延时。
Using long contexts poses a challenge to the response generation latency, as no response can be generated until the whole context is loaded and processed by the LLM.
相关工作
增加处理上下文的吞吐量,即提高了处理长上下文的速度或效率,能够在单位时 ...
Papers:Crux
Crux:GPU-Efficient Communication Scheduling for Deep Learning Training
研究背景
深度学习训练任务计算资源需求高,通常在由云服务商提供的大规模集群上运行,集群中可能有成千上万的 GPU。通常,大量任务在集群中同时执行并共享 GPU 资源,GPU 调度器则负责为这些任务分配 GPU。
然而,多个深度学习任务在同一 GPU 集群上共同执行时,会导致个别任务的训练时间增加和 GPU 利用率下降。由于 GPU 集群的利用率直接影响训练吞吐量和云服务提供商的利润,为了提高利润,需要最大化 GPU 集群的利用率。
研究内容
对深度学习训练(DLT)全生命周期进行分析,发现多个 DLT 任务之间的性能干扰主要源于通信争用。通信包括在同一主机或不同主机上的 GPU 之间同步模型参数、梯度和优化器。当多个 DLT 任务同时执行时,通信争用导致迭代时间显著增加。因此,解决通信争用问题对于提升 GPU 利用率至关重要。
研究亮点
仅进行作业调度只能减轻通信争用的严重程度,但不能消除这一现象。而现有的通信调度策略要么只解决了单一作业场景下的 ...
POST:Fine-tuning - 训练和推理(Training vs Inference)
POST
[Fine-tuning - 训练和推理(Training vs Inference)](一文彻底搞懂Fine-tuning - 训练和推理(Training vs Inference) (qq.com))
机器学习全过程
收集数据
数据准备
选择模型
训练
评估
参数调整
预估
模型训练过程通常包括以下几个步骤:
数据准备:收集并准备训练数据,包括数据清洗、标注、归一化、分割成训练集和验证集(有时还有测试集)等。
模型选择:根据任务需求和数据特性选择合适的模型架构。这可能是一个简单的线性回归模型,也可能是一个复杂的深度神经网络。
参数初始化:为模型的参数(如权重和偏置)赋予初始值。这些初始值通常是随机生成的,但也可以是预先设计的。
前向传播:将训练数据输入到模型中,通过模型的各层进行计算,得到模型的预测输出。
损失计算:计算模型的预测输出与真实输出之间的差异,即损失值。
反向传播:根据损失值,使用梯度下降等优化算法计算模型中每个参数的梯度,并将这些梯度反向传播回模型的每一层。
参数更新:使用梯度来更新模型的参数,以减少损失值。
迭代训练:重复执行前向传播、损失计算、反 ...
POST:交换机工作原理与基本配置
POST:交换机工作原理与基本配置
原文地址
最常见的交换机是以太网交换机,工作在OSI参考模型的第二层。
OSI参考模型(Open System Interconnect)
应用层:为应用程序提供服务
表示层:数据格式转化、数据加密
会话层:建立、管理、维护会话
传输层:建立、管理、维护端到端的连接
网络层:IP选址、路由选择
数据链路层:介质访问、链路管理
物理层
以太网交换机
工作原理
工作层次:数据链路层
重要构成:高带宽的背部总线,内部交换矩阵
工作内容
进行端口对之间的数据传输/转发数据报文
维护MAC地址表(端口地址表)
该表记录了每个端口下所包含的主机的MAC地址,在交换机上电后自动建立,保存在RAM中,自动维护。
RAM即随机访问存储器,相当于电脑的内存条,运行内存,具有易失性,断电后,数据就会清空。
隔离冲突域
需要转发数据帧时,交换机会查看MAC地址表,根据数据帧的目的MAC转发到指定的端口,不会转发到其它端口,这样每一台主机都只会收到跟自己有关的数据,不会相互影响。
因此,交换机之所以能够隔离冲突域,是因为交换机有地址 ...
POST:AI芯片算力基础知识
POST:AI芯片算力基础知识
[原文地址](AI芯片算力基础知识 (qq.com))
AI计算的主要过程
提取/转换/加载数据(ETL)
选择或设计AI模型
AI推理(非训练)
算力及AI算力主要芯片的分类
算力:计算机处理信息的能力(数学运算、数据处理和执行程序)
基础算力
基于CPU芯片的服务器所提供的算力,主要用于基础通用计算。(移动计算、物联网、云计算、边缘计算)
智能算力即AI算力
面向AI应用,提供AI算法模型训练与模型运行服务的计算机系统能力。
算力芯片:GPU(图像处理器)Graphics Processing Unit、ASIC(专用集成电路)Application-Specific Integrated Circuit、FPGA(现场可编程逻辑门阵列)Field Programmable Gate Array等。
超算算力
超级计算机等高性能计算集群所提供的算力(行星模拟、药物分子设计、基因分析)。
算力的常见单位
FLOPS(每秒浮点运算次数)
OPS(每秒运算次数)
TOPS(每秒万亿次操作)
TFLOPS(每秒万亿次浮 ...
计算机网络:网络边缘
网络边缘
网络结构
网络边缘(edge):主机、应用程序
网络核心(core):互连的路由器
接入网、物理媒体(access):有线/无线通信链路
应用进程之间的通讯模式
客户端/服务器模式(C/S)
客户端向服务器发出请求,服务器响应
问题:可扩展性与可靠性的问题
对等模式(peer-to-peer)
很少(或没有)专门的服务器
客户端既是服务的请求方,也可以是服务的提供方
基础设施提供服务的方式
面向连接服务
握手(在数据连接之前做好准备)
TCP-传输控制协议(工作在传输层,Internet上面向连接的服务)
面向连接、流量控制、拥塞控制;
适用应用:要求可靠性的应用,如HTTP(Web)、FTP(文件传送)、Telnet(远程登录)、SMTP(email)
注意:仅是端系统维系通信的状态,而core中的节点不负责。若整条路径上面所有的节点都需要维系通信状态,则为有连接
无连接服务
UDP-用户数据报协议
无连接、无流量控制、无拥塞控制,不可靠
适用应用:要求实时性的或是事务查询,如流媒体、远程会议、DNS、Int ...
计算机网络:什么是Internet
什么是Internet
互联网仅仅是网络中的一种。
计算机网络的构成
节点:包括主机节点(数据的源/目的地)和数据交换节点(转发数据)。
主机及其上运行的应用程序(这里用方形表示)
路由器、交换机等网络交换设备(这里用圆形表示)
通信链路
接入网链路:主机连接到互联网的链路(连接方形和圆形/方形和方形,简言之与方形有关)
主干链路:路由器之间的连接(连接圆形和圆形)
协议:对等层实体在通信过程当中应该遵守的规则的集合,包括语法、语义、时序和动作。
互联网的协议以TCP/IP协议为主,区分计算机网络和互联网。
从具体构成看互联网
大量互联的计算设备
主机/端系统(host/end system,这里用方形表示)
主机/端系统上运行的网络应用程序
通信链路:光纤、同轴电缆、无线电、卫星
重要指标:传输速率/带宽(bits per second,bps)
分组交换设备:转发分组(packets),如路由器、交换机(这里用圆形表示)
协议:定义了在两个或多个通信实体之间交换的报文格式和次序,以及在(1)报文传输和接收(2)其他事件方面所采取的 ...
凸优化:引言
优化/数学规划
定义
从一个可行解的集合中,寻找出最优的元素
需要有一个可行解的集合
什么是最优的元素?即最优的准则是什么
怎么寻找最优的元素?
数学形式
minimize f0(x)subject to fi(x)≤bi , i=1,…,M(M个约束条件)其中 x=[X1,…,Xn]T , Optimization Variable(优化向量)f0:Rn→R , Objection function(目标函数)fi:Rn→R , 不等式约束则最优解 X∗optimal⟺∀z , z∈{fi(z)≤bi}(可行解集) , f0(z)≥f0(X∗)\text{minimize} \; f_0(x)
\\
\text{subject to} \; f_i(x) \leq b_i \;,\; i = 1,\dots,M \text{(M个约束条件)}
\\
其中 \; x = [X_1,\dots,X_n]^T \;, \; \text{Optimization Variable(优化向量)}
\\
f_0 : \mathbb{R}^n \righta ...
PyTorch:其他函数
torch.Tensor.flatten
将指定维度及其之后的所有维度展平成一个单一的维度。
e.g.
input:s4.shape = (N, 16, 5, 5)
N 是批量大小(batch size),表示有多少个样本
16 是通道数(channel)
5, 5 是每个通道的空间维度(通常为高和宽)
1torch.flatten(s4, 1)
作用
保留第0维不变,即 N 维度。
将第1维度及其之后的所有维度展平,变成一个单独的维度。
torch.Tensor.view
重新调整张量的形状。
下面的例子中:
1:新张量的第一个维度大小为 1。
-1:新张量的第二个维度大小自动计算,使得总元素数量保持不变。
1target = target.view(1, -1)
e.g.
1234567891011import torch# 创建一个形状为 [10] 的随机张量tensor = torch.randn(10)print("Original tensor shape:", tensor.shape)print("Original te ...
PyTorch:激活函数
激活函数
线性激活函数的局限性:线性变换具有可合并性,即两个线性变换的复合仍然是一个线性变换,其实整个网络跟单层神经网络是等价的。
非线性激活函数(ReLU、Sigmoid等)的必要性:每一层输出经过非线性变换,打破了线性变换的可合并性,从而使网络能够表示更加复杂的非线性函数关系。
激活函数性质
非线性
可微性:当优化方法是基于梯度的时候,就体现了该性质
单调性: 当激活函数单调时,单层网络能够保证是凸函数
f(x)≈x: 当激活函数满足这个性质的时候,如果参数的初始化是随机的较小值,那么神经网络的训练将会很高效;否则需要谨慎设置初始值
值域
值域受限
梯度也会相对稳定,梯度更新较小,避免了训练过程中出现剧烈的参数变化,从而提升了训练的稳定性。
由于输出值的范围有限,特征表示会受到限制。这意味着每个神经元的输出不会有非常大的差异,权值的变化对输出的影响更加显著。
值域不受限
输出值无限时,梯度可以变得非常大,模型的训练可能更加高效,因为大的梯度更新会导致权值变化更快,从而加速收敛。
但是输出值无限的激活函数在训练过程中容易导致梯度爆炸,尤其是在深层 ...