AirLLM 项目介绍
项目概述
AirLLM 是一个旨在优化大型语言模型推理内存使用的开源项目。它的主要目标是让用户能够在有限的硬件资源上运行大规模语言模型,而无需进行量化、蒸馏或剪枝等复杂操作。通过 AirLLM,用户可以在单张 4GB 显卡上运行 70B 参数的大型语言模型,甚至可以在 8GB 显存的设备上运行 405B 参数的 Llama3.1 模型。
主要特性
-
内存优化: AirLLM 通过创新的内存管理技术,大幅降低了大型语言模型的内存需求。
-
广泛的模型支持: 支持多种主流大型语言模型,包括 Llama2、ChatGLM、QWen、Baichuan、Mistral、InternLM 等。
-
模型压缩: 提供基于分块量化的模型压缩功能,可以将推理速度提升至 3 倍,同时几乎不影响模型精度。
-
多平台支持: 除了支持 Linux 系统,AirLLM 还支持在 MacOS 上运行大型语言模型。
-
灵活配置: 用户可以根据需求调整各种参数,如压缩方式、性能分析模式、模型分片保存路径等。
-
自动模型检测: 通过 AutoModel 功能,AirLLM 可以自动检测模型类型,简化了模型初始化过程。
使用方法
使用 AirLLM 非常简单,主要分为以下几个步骤:
-
安装 AirLLM 包:通过 pip 安装
airllm
。 -
初始化模型:使用
AutoModel.from_pretrained()
方法,指定 Hugging Face 模型 ID 或本地模型路径。 -
准备输入:使用模型的 tokenizer 对输入文本进行编码。
-
生成输出:调用模型的
generate()
方法进行推理。 -
解码输出:使用 tokenizer 将生成的 token 序列解码为文本。
性能提升
AirLLM 2.0 版本引入了基于分块量化的模型压缩功能,可以将推理速度提升至原来的 3 倍。用户只需在初始化模型时指定 compression
参数为 '4bit' 或 '8bit' 即可启用此功能。
配置选项
AirLLM 提供了多种配置选项,使用户能够根据自己的需求进行调整:
compression
: 选择 4 位或 8 位分块量化压缩profiling_mode
: 启用性能分析模式layer_shards_saving_path
: 指定模型分片保存路径hf_token
: 提供 Hugging Face 令牌以下载受限模型prefetching
: 启用预取功能以overlap模型加载和计算delete_original
: 选择是否删除原始下载的模型以节省磁盘空间
未来发展
AirLLM 项目正在持续发展中,不断添加新的功能和支持更多的模型。开发团队欢迎社区贡献想法和讨论,共同推动项目的进步。
通过 AirLLM,研究人员和开发者可以在普通的消费级计算机上运行和实验大型语言模型,这大大降低了进入门槛,为人工智能的民主化和普及做出了重要贡献。
</SOURCE_TEXT>