赞
踩
开源大模型更新迭代太快,今年刚推出的模型可能过几个月就过时了。关于这个问题,我想更多的不是思考现在能部署哪些大模型,而是要思考三个方面:
一是如何找到最新的大模型,二是如何判断本地硬件资源是否满足大模型的需求,三是如何快速部署大模型。
huggingface可以理解为对于AI开发者的GitHub,提供了模型、数据集(文本|图像|音频|视频)、类库(比如transformers|peft|accelerate)、教程等。
几乎所有最新开源的大模型都会上传到huggingface,涵盖多模态、CV、NLP、Audio、Tabular、Reinforcement Learning等模型。
上图红框处就是meta最新开源的Llama3,参数量为8B(80亿参数)。
huggingface有时存在网络不稳定的问题
这里推荐国内比较好的平台modelscope
由上图可看到,通过modelscope也可以几乎下载所有开源大模型,包括零一万物、百川、通义千问等等。
比如chatglm2-6b,代表它的模型名称为chatglm2,参数量为60亿。
首先要搞清楚,本地可以部署什么大模型,取决于你的硬件配置(尤其关注你GPU的显存)。
一般来说,只要你本地机器GPU的显存能够满足大模型的要求,那基本上都可以本地部署。
那么大模型类别这么多,有7B、13B、70B等等,我的GPU显存如何准备呢?
在没有考虑任何模型量化技术的前提下:
公式:模型显存占用(GB) = 大模型参数(B)X 2
我之前为了探索千亿级大模型到底需要多少计算资源,用云计算资源部署了Qwen1.5-110B-Chat,看看部署它到底需要多少存储资源,并且测试在不量化、8bit量化、4bit量化下的显存消耗。
实验数据如下:
下载Qwen1.5-110B-Chat共占用硬盘空间208G。
本地部署Qwen1.5-110B-Chat没有考虑任何量化技术,占用显存215GB
采用8bit量化部署Qwen1.5-110B-Chat,占用显存113GB。在 Transformers 中使用 LLM.int8() 只需提前安装pip install bitsandbytes
即可,使用 LLM.int8() 方法量化transformer模型具体示例如下:
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
'qwen/Qwen1___5-110B-Chat',
device_map='auto',
load_in_8bit=True,
max_memory={
i: f'{int(torch.cuda.mem_get_info(i)[0]/1024**3)-2}GB'
for i in range(torch.cuda.device_count())
}
)
采用4bit量化部署Qwen1.5-110B,占用显存62GB,预计1块80GB显存显卡即可部署。
from transformers import BitsAndBytesConfig
import torch
nf4_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True,
bnb_4bit_compute_dtype=torch.bfloat16
)
model_nf4 = AutoModelForCausalLM.from_pretrained('qwen/Qwen1___5-110B-Chat', quantization_config=nf4_config)
所以回到主题上,如果追求极致本地部署。
在4bit量化的情况,满足本地机器GPU显存(GB) >= 大模型参数(B)/2,可以尝试本地部署。
举个例子:
如果你有一块T4显卡,显存为16GB。可以支持部署6B、7B参数量级的大模型,如果采用4bit量化,可以尝试32B的大模型(不一定保证部署成功)。
参考论文:
LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale
GPTQ: ACCURATE POST-TRAINING QUANTIZATION FOR GENERATIVE PRE-TRAINED TRANSFORMERS
推荐使用ollama,像启动镜像一样本地下载运行大型语言模型。
Ollama 支持的模型列表见:https://ollama.com/library
ollama pull llama3
如果你装好了ollama,启动模型服务只需执行如下命令:
Model | Parameters | Size | Download |
---|---|---|---|
Llama 3 | 8B | 4.7GB | ollama run llama3 |
Llama 3 | 70B | 40GB | ollama run llama3:70b |
Phi-3 | 3.8B | 2.3GB | ollama run phi3 |
Mistral | 7B | 4.1GB | ollama run mistral |
Neural Chat | 7B | 4.1GB | ollama run neural-chat |
Starling | 7B | 4.1GB | ollama run starling-lm |
Code Llama | 7B | 3.8GB | ollama run codellama |
Llama 2 Uncensored | 7B | 3.8GB | ollama run llama2-uncensored |
LLaVA | 7B | 4.5GB | ollama run llava |
Gemma | 2B | 1.4GB | ollama run gemma:2b |
Gemma | 7B | 4.8GB | ollama run gemma:7b |
Solar | 10.7B | 6.1GB | ollama run solar |
综上所述,通过huggingface或者modelscope快速了解最新的大模型,并通过公式计算硬件要求,最后可通过ollama快速部署大模型。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。