本地部署大模型的详细指南
引言
在人工智能领域,大模型(Large Language Models,LLMs)因其强大的语言理解和生成能力而受到广泛关注。本文将详细介绍如何在本地环境中部署两个流行的开源大模型:ChatGLM-6B和Qwen2.5,包括硬件要求、下载、安装和运行等步骤。
选择合适的开源大模型
开源大模型对比
在选择合适的开源大模型时,我们需要考虑模型的性能、适用场景、资源消耗等因素。以下是两个流行的开源大模型的对比:
- ChatGLM-6B:由清华大学和智谱AI联合发布的对话预训练模型,具有62亿参数,支持中英双语对话,部署门槛低。
- Qwen2.5:阿里云开发的大语言模型系列,以其高效的推理能力和较低的资源消耗而受到欢迎。
硬件要求
硬件配置分析
为了在本地有效部署和使用开源大模型,选择合适的硬件配置至关重要。以下是一些基本要求:
- GPU:推荐使用NVIDIA显卡,至少需要6GB的显存,以满足大部分模型的运行需求。
- CPU:至少需要一个现代的多核心处理器。
- 内存:至少需要8GB的RAM,对于更大的模型,可能需要更多的内存。
- 存储:需要足够的存储空间来保存模型文件,通常这些文件大小可以达到几个GB甚至更多。
下载大模型
ChatGLM-6B模型下载
从GitHub下载ChatGLM-6B的代码和模型文件:
git clone https://github.com/THUDM/ChatGLM3
模型文件可以从ModelScope下载:
git lfs install
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git
文件大小约为11.64G,下载时间取决于个人网速。
Qwen2.5模型下载
Qwen2.5模型可以从Hugging Face或ModelScope下载。以下是从Hugging Face克隆模型仓库的命令:
git lfs install
git clone https://huggingface.co/Qwen/Qwen2.5-Coder-7B
安装与配置
ChatGLM-6B模型安装
安装ChatGLM-6B之前,需要创建一个conda环境并安装必要的依赖:
conda create -n 环境名 python=3.10
conda activate 环境名
pip install -r requirements.txt
Qwen2.5模型安装
为Qwen2.5创建虚拟环境并安装PyTorch和其他必要的Python库:
python3 -m venv qwen_env
source qwen_env/bin/activate
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
pip install transformers modelscope flask requests numpy scipy
如何运行大模型
ChatGLM-6B模型运行
运行ChatGLM-6B模型之前,需要修改代码以支持CPU运行,并启动模型:
python web_demo.py
程序会运行一个Web Server,并输出地址。在浏览器中打开输出的地址即可使用。
Qwen2.5模型运行
在Python中加载Qwen2.5模型,并运行:
from transformers import AutoTokenizer, AutoModelForCausalLM
model_path = "./Qwen2.5-Coder-7B"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path).to("cuda")
运行效果
ChatGLM-6B模型效果
ChatGLM-6B提供了一个基于Gradio的网页版Demo和命令行Demo。用户可以通过这些界面与模型进行交互,生成回复。
Qwen2.5模型效果
Qwen2.5模型可以用于代码生成、对话等任务。以下是使用Qwen2.5生成文本的示例代码:
prompt = "<|im_start|>user\n什么是人工智能?<|im_end|>\n<|im_start|>assistant\n"
input_tokens = tokenizer(prompt, return_tensors="pt")
answer = model.generate(**input_tokens, max_new_tokens=1024)
tokenizer.batch_decode(answer, skip_special_tokens=True)[0]
不同模型参数的含义
ChatGLM-6B模型参数
- 基础模型(Base Model):ChatGLM3-6B-Base采用了更多样的训练数据、更充分的训练步数和更合理的训练策略,具有在10B以下的基础模型中最强的性能。
- 功能支持:ChatGLM3-6B采用了全新设计的Prompt格式,除正常的多轮对话外,同时原生支持工具调用(Function Call)、代码执行(Code Interpreter)和Agent任务等复杂场景。
- 开源序列:除了对话模型ChatGLM3-6B外,还开源了基础模型ChatGLM3-6B-Base、长文本对话模型ChatGLM3-6B-32K和进一步强化了对于长文本理解能力的ChatGLM3-6B-128K。
Qwen2.5模型参数
- 参数数量:Qwen2.5-Coder-7B模型拥有7.61B个参数,其中非嵌入参数为6.53B。
- 层数:模型拥有28层。
- 注意力头数:Q和KV的注意力头数分别为28和4。
- 上下文长度:模型支持的最大上下文长度为131,072个token。
结论
本地部署大模型是一个复杂但值得的过程,它不仅可以提高数据处理的安全性和隐私性,还可以降低长期成本并提供更高的控制性和可靠性。通过上述步骤,你可以成功地在本地环境中部署和运行大模型,从而为你的应用程序或研究项目提供强大的AI支持。