Made In Heaven,LLM要加速了

作者尝试在Windows和Linux系统上使用Huggingface的FlashAttention2和vLLM的PageAttention进行模型加速,发现vLLM在Windows上表现较好,但在Linux上因GPU使用增加速度下降。文章探讨了未来AI模型训练和推理可能的趋势,暗示了更多算力选项的出现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

借鉴了荒木老师笔下的普奇神父的台词

玩LLM的多数用的是Huggingface框架,而它本身提供的是accelerate库来提升模型的训练推理速度。这些都离不开Nvidia 的 Cuda 计算,而目前适配这一驱动的只有Windows和Linux。于是我就尝试在这两个系统上进行加速实验,尝试Huggingface Doc中推荐的 Flash Attention 2以及 vLLM的 Page Attention。

原理参考

LM(十七):从 FlashAttention 到 PagedAttention, 如何进一步优化 Attention 性能

Windows

显卡:RTX 2070
模型:Phi2

我首先尝试通过pip安装 flashattn, 结果发现需要git submodule,只好VPN和Proxy怼上去,一直卡在build状态。放弃后尝试git clone 源码,走 python setup.py install, 过程很坑,让我回想起被Gentoo支配的日子。一直没成功说rule有问题,难道是我的CUDA上12.4导致的,可是在Arch这里成功了。
既然WSL 2不行,我就尝试从TensorRT LLM的经验安装容器,一顿Ops,说WSL的cuda路径识别不了。(吐槽:当初忽悠我WSL有多好,方便Windows和Linux无差别生态,结果Blog几乎在2023年停止了,shit,我还要尝试很多底层,比如ebpf、wifi、蓝牙。。。)

最后用原生的 msvc 来build,和wsl一样。2070难道不是安倍架构吗?吐槽:微软为什么要集成在Visual Studio里,不能单独领出来。

换vllm走pip安装,顺利,速度明显,快了一倍。

建议windows尝试vllm加速。

Arch

显卡:RTX 4090
模型:zephyr-7b-beta

我首先尝试通过pip安装 flashattn, 结果发现需要git submodule,只好VPN和Proxy怼上去,一直卡在build状态。也放弃后尝试git clone 源码,走 python setup.py install, 直接顺利make,但是编译很慢。

用time库随便测试一下,快了一倍。

接着 按照windows安装vllm(pip就可以了),也很顺利,就是 运行报了

ValueError: The model's max seq len (32768) is larger than the maximum number of tokens that can be stored in KV cache (28912). Try increasing `gpu_memory_utilization` or decreasing `max_model_len` when initializing the engine.

搜 Bing,都是在Issue里提问,还是没有准确的答案。没办法,这种小问题,我只好看看源码,发现可以 gpu_memory_utilization(default)是0.9,我就试了1.0.运行就通过了。估计90%不够,用95%(0.95)也可以。

但是vllm在Linux上不算理想。这个模型速度变慢了,估计是GPU使用增加了导致的。但是在Phi 2上又加快,但貌似只有4%左右。

总之还是推荐用 Flash Attention 2。

最后

之前,我就说过目前是大算力时代,对于算力开发是一场前所未有的较量。未来对于AI模型地训练和推理可不止英伟达的GPU一家,比如Groq TPU,Google TPU,Intel APU等等都可能成为替代。但同时,现主流算力维持在互联网上,但是迟早会向物联网倾斜。安波里欧们,紧跟加速吧!

### 大型语言模型推理加速框架 #### 设备-边缘协作的DNN协同推理框架 Edgent 为了提升大型语言模型(LLM)推理的速度并降低延迟,在特定硬件环境下部署高效能的推理框架至关重要。一项研究介绍了一个名为Edgent的设备-边缘协作的按需DNN协同推理框架[^3]。该框架旨在通过两种关键技术优化DNN推理延迟:一是使设备与边缘服务器之间的DNN划分得以实现;二是引入提早退出机制以达成合理的DNN规划。 对于低延迟边缘智能的支持,Edgent提供了静态和动态带宽环境下的协作策略配置器。这些配置器能够帮助决定哪些部分的任务应该由本地设备处理,而哪些则更适合交给更强大的云端或边缘节点完成。这样的安排不仅提高了效率还减少了整体响应时间。 实验结果显示,在Raspberry Pi上的测试验证了此方法的有效性及其可行性。未来的研究方向可能涉及结合现有模型压缩技术进一步加快DNN推理速度,并探索有效的资源分配算法以便更好地适应多设备场景应用需求。 ```python class EdgeInferenceFramework: def __init__(self, device_type="raspberry_pi"): self.device_type = device_type def configure_static_bandwidth(self): pass def configure_dynamic_bandwidth(self): pass def apply_early_exit_mechanism(self): pass def split_model_for_edge_device_collaboration(self): pass ``` 此外,《Efficient Large Language Models: A Survey》也探讨了一些提高LLM性能的方法和技术,包括但不限于参数量化、剪枝等手段来减少计算量从而达到加速目的[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值