点击上方
蓝色
“
顶层架构领域
”,关注精彩与你分享
AirLLM是一个开源项目,旨在优化大型语言模型(LLM)的推理内存使用,使得70B参数的大型语言模型能够在单个4GB GPU上运行推理,这一技术突破为普通用户提供了接触尖端AI技术的可能。
一、核心技术优势
分层推理(Layer-wise Inference)
:
AirLLM将模型分解为多个层,每层完成计算后,其内存就会被释放,只保留输出结果。这种方法大大减少了同时需要的GPU内存。例如,70B模型的每个Transformer层的参数大小约为1.6GB,通过分层推理,每层所需的GPU内存仅为一个Transformer层的参数大小,即整个模型的1/80。
Flash Attention
:
Flash Attention是一种优化的注意力机制算法,提高了内存访问效率和计算速度。它受论文《Self-attention Does Not Need O(n²) Memory》启发,通过按顺序计算中间结果并丢弃其他结果,将内存复杂性降低到O(logn)。
层分片(Layer Sharding)
:
将模型文件按层划分,简化了加载过程并减少内存占用。这种方法使得模型的加载更加高效,减少了内存的使用。
元设备特性(Meta Device Feature)
:
利用HuggingFace Accelerate的meta device功能,在不实际读取数据的情况下加载模型,实现零内存使用。这一特性进一步优化了模型的加载过程,减少了内存的占用。
可选的量化(Optional Quantization)
:
虽然不强制使用,但AirLLM也提供了4位或8位块级量化选项,可进一步提升推理速度。量化技术可以在不损失模型性能的情况下,进一步减少模型的内存占用。
支持多种主流模型
:
除了支持Llama系列模型外,AirLLM还支持ChatGLM、QWen、Baichuan、Mistral、InternLM等多种流行的开源大型语言模型。
开源免费
:
作为一个开源项目,AirLLM允许社区贡献和改进,推动技术的快速发展。
二、技术劣势
推理速度慢:
AirLLM的分层推理方法虽然能够在4GB显存的GPU上运行70B参数的大型语言模型,但这种方法会增加推理过程的延迟。由于模型是逐层加载和计算的,从磁盘I/O等较慢的存储中顺序加载数据会显著降低推理速度。例如,如果SSD的读取速度为4GB/s,而模型具有80Gb,那么生成一个令牌可能需要等待20秒,并且对于每个令牌,都需要完整的通行证。
不适合实时交互场景:
由于推理速度的限制,AirLLM不太适合实时交互场景,如聊天机器人。在这些场景中,用户期望快速响应,而AirLLM的分层推理方法可能无法满足这一需求。相反,AirLLM更适合一些离线数据分析,如RAG、PDF分析等。
硬件要求仍然较高:
尽管AirLLM能够在4GB显存的GPU上运行大型语言模型,但这仍然是一个相对较高的硬件要求。对于许多普通用户来说,可能无法满足这一硬件条件,从而限制了AirLLM的广泛应用。
模型支持有限: