Press "Enter" to skip to content

以10行代码使任何LLM适用于任何GPU

运行比GPU的VRAM更大的模型的巧妙方法。可能会很慢,但它真的有效!

谁有足够的钱去购买超过24GB VRAM的GPU?特别是当我们只是想测试一下,在本地进行测试并玩弄它!我们是搞机的人!而在本地运行更大的模型没有实际可行的方法!

适配GPU的模型

窍门

谁说你必须一次加载和处理全部96个GPT3层,就像处理大型语言模型一样?AirLLM提出了一种天才的方法,逐层分别处理并在层之间进行计算-这意味着对于一个70B参数的模型,内存的瓶颈在于最大的一层,有4096个参数或者16384个。这是一个相当容易在少量内存中计算的数字,然后存储一层的输出并用它来计算下一层!在前向和后向传播中一遍又一遍地进行。

好了,快速介绍一下代码

pip install airllm# 替代安装方法 # pip install -i https://pypi.org/simple/ airllm

使用airllm设置推理引擎

# 对于运行LLaMA-2 from airllm import AirLLMLlama2 # 对于运行Qwen from airllm import AirLLMQWen# 对于运行ChatGLM from airllm import AirLLMChatGLM

加载模型

# 如果您使用Huggingface进行门控模型,则会收到错误 401# 运行以下代码使用您的Huggingface令牌model = AirLLMLlama2("meta-llama/Llama-2-7b-hf", hf_token='YOUR HUGGINGFFACE TOKEN GOES HERE')

运行推理

# 最大令牌生成长度 MAX_LENGTH = 128# 输入文本列表 input_text = [        '赞比亚的首都是什么?',        #'埃隆·马斯克是自恋吗?',    ]input_tokens = model.tokenizer(input_text,    return_tensors="pt",     return_attention_mask=False,     truncation=True,     max_length=MAX_LENGTH,     padding=True)           generation_output = model.generate(    input_tokens['input_ids'].cuda(),     max_new_tokens=20,    use_cache=True,    return_dict_in_generate=True)#…
Leave a Reply

Your email address will not be published. Required fields are marked *