微信扫码
与创始人交个朋友
我要投稿
在一个令人震惊的突发发展中,最强大的开源模型的头衔易主。
阿里云发布了Qwen 2.5模型,尤其是其72B版本,在人工智能领域设立了新的标杆。
该模型在MMLU、MATH和MBPP等大多数评估指标上超越了Llama3 405B,甚至在某些指标上超过了GPT-4。
X.com 上到处都在热议Qwen 2.5,世界各地的用户都在不停地讨论这个新的AI巨头:
今天,我正在接受一个大胆的挑战:在我的4GB显存的显卡上运行这个72B的大模型,而不进行量化或压缩。
挑战:我的4GB显卡能否胜任?
虽然A100和H100是不错的选择,但我的预算限制了我只能使用那块老旧的4GB显卡。
最初直接运行模型的结果如预期那样导致了内存不足的错误:
解决方案:逐层推理
在有限硬件上运行如此大规模模型的关键在于逐层推理。与其将整个80层模型加载到VRAM中,我们每次只加载和处理一层:
将第一层加载到VRAM
通过这一层处理输入
将输出移动到CPU内存
清空GPU内存
加载下一层并重复上述过程
这种方法大大减少了最大VRAM使用量,使得在4GB GPU上运行模型成为可能。
介绍AirLLM
为实现这一解决方案,我开发了一个名为AirLLM的开源项目。它不仅支持Qwen 2.5,还支持Llama3 400B、Mixtral以及其他大型模型。以下是一个简单的代码片段以演示其用法:
from airllm import AutoModel
MAX_LENGTH = 128
model = AutoModel.from_pretrained("Qwen/Qwen2.5-72B-Instruct")
input_text = [
is the capital of United States?',
]
input_tokens = model.tokenizer(input_text,
return_tensors="pt",
return_attention_mask=False,
truncation=True,
max_length=MAX_LENGTH,
padding=False)
generation_output = model.generate(
max_new_tokens=20,
use_cache=True,
return_dict_in_generate=True)
output = model.tokenizer.decode(generation_output.sequences[0])
print(output)
它是完全开源的。AirLLM 还支持运行包括 Mixtral 和 Llama3 405B 在内的其他超大规模语言模型。你可以在 GitHub 仓库中找到 AirLLM (https://github.com/lyogavin/airllm)。
限制与应用场景
需要注意的是,虽然 4GB 的 GPU 可以运行该模型,但速度不会非常快。这种设置不适合实时聊天机器人场景,但非常适合异步数据处理任务。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-06
2024-07-25
2024-08-13
2024-06-12
2024-07-11
2024-06-16
2024-07-20
2024-09-20
2024-06-15
2024-07-25
2024-12-20
2024-12-19
2024-11-22
2024-11-19
2024-11-13
2024-11-13
2024-10-07
2024-09-22