Made In Heaven,LLM要加速了

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

玩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就可以了),也很顺利,就是 运行报了

vbnet 复制代码
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等等都可能成为替代。但同时,现主流算力维持在互联网上,但是迟早会向物联网倾斜。安波里欧们,紧跟加速吧!

相关推荐
鼓掌MVP1 分钟前
边缘计算应用实践心得
人工智能·边缘计算
QYR_113 分钟前
宠物车载安全座椅市场报告:解读行业趋势与投资前景
大数据·人工智能
wswlqsss7 分钟前
第四十五天打卡
人工智能·深度学习
Likeadust11 分钟前
视频汇聚平台EasyCVR“明厨亮灶”方案筑牢旅游景区餐饮安全品质防线
网络·人工智能·音视频
天翼云开发者社区24 分钟前
总决赛定档!“天翼云息壤杯”高校AI大赛巅峰之战即将打响!
人工智能·ai大赛
亚马逊云开发者34 分钟前
Amazon Bedrock 助力 SolveX.AI 构建智能解题 Agent,打造头部教育科技应用
人工智能
AI大模型1 小时前
大模型系列炼丹术(四):从零开始动手搭建GPT2架构
程序员·llm
新德通科技1 小时前
新德通科技:以创新驱动光通信一体化发展,赋能全球智能互联
人工智能
__星辰大海__1 小时前
NeRF PyTorch 源码解读 - NDC空间
人工智能
Java学术趴1 小时前
RNN指南:从梯度消失到LSTM魔改,一文说透RNN/LSTM/GRU的隐藏优势!
人工智能