大模型部署
如何找到最新的大模型?
1.huggingface
https://huggingface.co/ (opens new window)可以理解为对于AI开发者的GitHub,提供了模型、数据集(文本|图像|音频|视频)、类库(比如transformers|peft|accelerate)、教程等。
几乎所有最新开源的大模型都会上传到huggingface,涵盖多模态、CV、NLP、Audio、Tabular、Reinforcement Learning等模型。
2.modelscope
huggingface有时存在网络不稳定的问题,国内比较好的平台https://www.modelscope.cn/models (opens new window)
如何判断本地硬件资源是否满足大模型的需求?
首先要搞清楚,本地可以部署什么大模型,取决于你的硬件配置(尤其关注你GPU的显存)。一般来说,只要你本地机器GPU的显存能够满足大模型的要求,那基本上都可以本地部署。
在没有考虑任何模型量化技术的前提下:
公式:模型显存占用(GB) = 大模型参数(B)*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())
}
)
2
3
4
5
6
7
8
9
10
采用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)
2
3
4
5
6
7
8
9
10
所以回到主题上,如果追求极致本地部署。
在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
如何快速部署
推荐使用https://github.com/ollama/ollama (opens new window),像启动镜像一样本地下载运行大型语言模型。
下载模型
Ollama 支持的模型列表见:https://ollama.com/library (opens new window)
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 |