最近在做大模型,自己折腾了小半年,摸索出来了一些经验,写这篇blog的目的是为了让师弟师妹在模型部署的环节少走弯路,也能快速体验到LLM的智能,减少部署环节的痛苦
如果是进行只需要跑通模型当前流行的6b7b参数模型,至少要保证显卡10G显存并且cuda版本最好高于11.x,如果是需要训练可能需要更大的显存,16b参数以上的模型还是推荐上V100。
部署模型有四件事情要做:
1.确定本地硬件是否支持大模型部署。
2.确定模型需要的依赖。
3.下载好模型的权重和配置文件。
4.运行模型
以下就开始详细介绍模型部署的每一个问题和解决方案。
1.确定本地硬件是否支持需要部署的大模型。
如果需要部署大模型,首先要确定系统是Linux还是Windows
建议使用Linux系统,因为很多python包目前不支持Windows,其次要确定GPU显存和Nvidia版本是否支持,可以通过shell命令查看,目前AMD公司的显卡暂时不支持pytorch。
nvidia-smi
以下是输出结果,可以查看到Nvidia版本号,CUDA版本号,以及显卡型号和显存大小。
如果只是需要跑通模型,进行输入输出,至少需要10G和CUDA版本11.x以上的GPU,如果需要训练的话可能需要更大的GPU
如果安装了最新的Nvidia驱动请跳过第一步
1.安装Nvidia驱动:
选择自己的显卡型号,查看支持的nvdia驱动,最好选较高的CUDA-toolkit的版本例如11.7,这样可以免后续出现环境冲突。
方法一:利用wget命令使用官网链接下载:(推荐这一种)
点击搜索,然后跳转到下载页,右键下载并复制链接
输入命令:(需要复制为适合自己显卡型号的Nvidia驱动下载链接)
$ wget https://www.nvidia.cn/content/DriverDownloads/confirmation.php?url=/tesla/515.105.01/NVIDIA-Linux-x86_64-515.105.01.run&lang=cn&type=Tesla
执行安装:
$ chmod +x NVIDIA-Linux-x86_64-515.105.01.run
$ ./NVIDIA-Linux-x86_64-515.105.01.run
方法二:查看符合自己GPU的Nvidia驱动版本之后本地命令直接查询并下载
执行以下命令
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt-get update
$ sudo apt-cache search nvidia-*
$ sudo apt-get install nvidia-版本号
执行 $ sudo apt-cache search nvidia-* 能查看到当前可以使用的所有版本
执行 $ sudo apt-get install nvidia-版本号 ,如: $ sudo apt-get install nvidia-384
执行上述命令即可安装;需要重启
$ sudo reboot
安装Nvidia驱动大概率会出现以下报错:
ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding. Please consult the NVIDIA driver README and your Linux distribution's
documentation for details on how to correctly disable the Nouveau kernel driver.
则需要禁用原有的Nouveau kernel driver:
$ echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf
$ update-initramfs -u
$ echo "options nouveau modeset=0" >> /etc/modprobe.d/nouveau-kms.conf
然后重启:
$ sudo reboot
然后输入Nvidia-smi查看是否存在Nvidia信息。
2.安装CUDA
输入以下命令查看CUDA版本信息,如果已经安装CUDA则会输出版本信息
$ nvcc -V
如果已经安装CUDA11.x版本请跳过此步骤
在Nvidia-smi中的CUDA版本号会限制我们的CUDA版本,所以我们不能超过这个版本号
进入CUDA官网:CUDA官网
选择适合自己的CUDA版本号,并进入链接,以11.7.0版本为例,选择自己的环境信息,如果是Windows系统在OS中选择Windows
输入以下命令进行安装
$ sudo sh cuda_11.7.0_515.43.04_linux.run
一直同意即可完成安装,如果Nvidia驱动没有安装会在此提示搭配的Nvidia驱动版本。
如果出现以下报错:
ubuntu@VM-0-16-ubuntu:~$ nvcc -V
Command 'nvcc' not found, but can be installed with:
sudo apt install nvidia-cuda-toolkit
千万不要使用其推荐的命令,否则会安装不适配的nvidia-cuda-toolkit,需要进行环境变量配置:
sudo vim ~/.bashrc
在文件结尾添加:
export PATH=/usr/local/cuda-11.7/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH
如果不是安装的11.7则需要换成自己的版本号。如果不会用vim,按a键可以编辑,退出的时候按esc键然后按引号冒号:接推出命令,:wq为写入并退出vim,:q为不写入退出,:q!为不写入强制退出。
更新环境变量:
$ source ~/.bashrc
查看CUDA信息:
$ nvcc -V
至此,我们已经把Nvidia驱动和CUDA驱动安装成功,可以开始对我们的模型环境进行配置了。
2.配置模型环境
这里每个模型需要的环境可能不尽相同,以下笔者用THUDM/CodeGeeX2作为例子
需要进入THUDM/CodeGeeX2的GitHub页面尽可能在部署模型之前完整阅读readme。
克隆项目到本地:
$ git clone https://github.com/THUDM/CodeGeeX2.git
进入项目浏览目录:
$ cd CodeGeeX2
打开项目中的requirement.txt文件:requirements.txt
我们可以发现他的环境需要如下包:
为了安装的环境可以干净且不受其他项目环境的影响我们应该安装conda并创建一个虚拟空间:
1.安装Anaconda3
进入anacondo官网Anaconda官网
选择适合自己系统的版本:
这里我以自己的版本为例:Anaconda3-5.3.0-Linux-x86_64.sh
在这个版本的蓝色字体处点击右键复制链接
在shell里面输入命令,以我的版本为例(不对的话应该换成自己下载的版本名)
$ wget https://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh
安装Anaconda3
可能会出现sh命令不能使用:执行以下命令
$ chmod +x Anaconda3-5.3.0-Linux-x86_64.sh
执行以下命令
:
$ sh ./Anaconda3-5.3.0-Linux-x86_64.sh
进入Anaconda安装页面:
一路点击enter,会询问是否添加进入环境变量,这里输入yes,并按enter。
是否加入mircosoft vs code这里根据自己需要选择,感觉不太需要就输入no并按enter。
安装完成,输入:
$ conda info
查看condo信息
如果报错,更新系统环境文件:
$ source .bashrc
继续输入
$ conda info
出现以下界面即为安装成功:
2.创建一个conda虚拟环境
输入以下命令以创建环境:
conda create -n MagicFairyCastle(输入虚拟环境名字) python=3.10(输入自己需要的版本号)
一路选yes:
激活虚拟环境:
$ conda activate MagicFairyCastle
用户名前面出现(虚拟环境名)即安装成功
给Conda配置国内源:(先跳过这一步,有问题再回来)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
如果有问题可以恢复为默认源:
conda config --remove-key channels
同时补充pip源:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip config set install.trusted-host mirrors.aliyun.com
3.安装torch2.0.0,torchvision
torch有CPU版本和GPU版本,如果直接pip install torch可能会自动下载CPU版本导致无法使用GPU加速:
进入torch官网:torch官网,选择torch,进入页面选择适合自己Python版本和CUDA版本的GPU版torch2.0.0,我这里是Python3.10和CUDA11.7而且是Linux的X86_64版本:
选择适合自己的版本,右键复制链接,然后输入以下wget下载命令(要对照自己的版本链接进行改动):
$ wget https://download.pytorch.org/whl/cu117/torch-2.0.0%2Bcu117-cp310-cp310-linux_x86_64.whl
下载地址为当前目录,运行安装包:
$ pip install torch-2.0.0%2Bcu117-cp310-cp310-linux_x86_64.whl
然后同样方法下载torchvision:
$ wget https://download.pytorch.org/whl/cu117/torchvision-0.15.0%2Bcu117-cp310-cp310-linux_x86_64.whl
$ pip install torchvision-0.15.0+cu117-cp310-cp310-linux_x86_64.whl
查看是否安装成功:
$ pip list
检查是否可以运行torch:
$ python
import torch
# 检测torch、cuda、cudnn版本
print(torch.__version__)
print(torch.version.cuda)
print(torch.backends.cudnn.version())
# 是否可用gpu
flag = torch.cuda.is_available()
print(flag)
输出应该是版本信息和CUDA是否可用
2.0.0
11.7
true
4.按照requirements.txt文件安装其他相应依赖:
$ pip install 包名
如果pip 报错无法连接可以使用清华源作为镜像:
$ pip install package(修改为需要下载的包名) -i https://pypi.tuna.tsinghua.edu.cn/simple
嫌麻烦的话也可以进入CodeGeeX2目录批量下载并安装:
$ pip install -r requirements.txt
3.下载模型权重
(如果你的模型不是CodeGeeX2,可以去🤗huggingface搜索,并在模型页面的files and versions下载模型权重文件和配置文件)
再次回到GitHub模型主页,找到模型权重的下载地址:1.模型权重以及配置文件下载
将所有的文件链接复制然后,在模型目录中新建一个文件夹保存这些项目,例如我用来存放权重文件的目录为/home/ubuntu/model
进入该文件夹之后:
$ cd /home/ubuntu/model
下载所有模型配置文件:
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/.gitattributes
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/LICENSE
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/MODEL_LICENSE
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/README.md
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/config.json
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/configuration_chatglm.py
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/generation_config.json
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/modeling_chatglm.py
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/pytorch_model-00001-of-00007.bin
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/pytorch_model-00002-of-00007.bin
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/pytorch_model-00003-of-00007.bin
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/pytorch_model-00004-of-00007.bin
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/pytorch_model-00005-of-00007.bin
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/pytorch_model-00006-of-00007.bin
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/pytorch_model-00007-of-00007.bin
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/pytorch_model.bin.index.json
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/quantization.py
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/save_model.py
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/tokenization_chatglm.py
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/tokenizer.model
$ wget https://huggingface.co/THUDM/codegeex2-6b/resolve/main/tokenizer_config.json
进入到模型项目的/CodeGeeX2/demo/run_demo.py中,将add_code_generation_args(parse):函数中的model_path改成存放模型配置文件以及权重文件的目录:如果不知道在哪可以输入确定当前路径:
$ pwd
2.更改权重路径
4.运行模型
现在让我们开始最后一步:python run_demo.py
至此,大模型的部署可能会遇到的问题就是这些,如果有不正确的地方欢迎讨论并指正,转载希望尊重原创,下一期应该会出大模型的几种微调方式。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享**
一、2025最新大模型学习路线
一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。
我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。
L1级别:AI大模型时代的华丽登场
L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。
L2级别:AI大模型RAG应用开发工程
L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。
L3级别:大模型Agent应用架构进阶实践
L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。
L4级别:大模型微调与私有化部署
L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。
整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
二、大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
三、大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
四、大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
五、大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取