本次实验使用ubuntu 22.04版本从魔搭社区下载Qwen2-0.5B-Instruct-AWQ部署并运行。(此处必须使用ubuntu 22.04版本,因为下面所用CUDA 12.4.0最高支持版本为ubuntu 22.04)
实验中所用机器硬件为:
(1)显卡:英伟达RTX 2080 spuer 8G ;
(2)CPU:i7-10700K;
(3)内存:40G内存;
(4)所用模型:此机器显卡配置较低,所以安装模型为小体量模型Qwen2-0.5B-Instruct-AWQ。模型链接
总过程可分为五个部分:
一、安装显卡驱动及CUDA:英伟达显卡驱动选择550版本,CUDA选择12.4.0版本,此搭配较为稳定,在真实环境中安装;
二、安装anaconda,作用为隔离环境,在真实环境中安装;
三、部署python及模型所需依赖,使用在conda中运行python版本选择3.9或3.10,需严格安装模型及魔搭社区所支持的环境版本,版本兼容性:PyTorch、CUDA、vLLM 版本需严格匹配,否则可能报错(如 xFormers 加载失败),全部操作均在虚拟环境中安装;
四、下载模型并调用,此处使用模型为Qwen2-0.5B-Instruct-AWQ,在虚拟环境中安装。
五、可能遇到的的问题
PS:以上所有操作建议使用科学上网方式进行部署。
一、安装显卡驱动及CUDA(真实环境中安装)
1.英伟达显卡驱动安装
1)如在Ubuntu图形化界面中,可在【设置】->【关于】->【软件更新】->【附加驱动】中找到【nvidia-driver550(专有)】->点击【应用更改】,当安装完成后点击【重新启动】;(此处可使用命令行方式安装,但较为复杂,此方式也可正常安装显卡驱动)
2)安装后可通过nvidia-smi 查看是否安装成功; (PS:下面的CUDA 是支持最高版本而不是已经安装了CUDA,此出需特别注意)
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#nvidia-smi
2.CUDA安装
1)安装g++(必装,不安装后续运行CUDA安装程序将报错),gcc和make(如此下图所示)
yorick@yorick-OMEN-25L-Desktop-GT12-0xxx:~/桌面$ sudo -i
[sudo] yorick 的密码:
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#apt install g++
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#apt install gcc
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#apt install make
2)可使用nvidia-smi查看显卡驱动支持的CUDA,根据此为依据安装,此次实验CUDA 12.4.0链接:CUDA 12.4.0下载链接
安装时需根据所使用系统版本下载runfile,复制下面的两句命令运行(12.4.0版本最高只支持ubuntu22.04,所以系统安装时选择ubuntu22.04)
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.runsudo sh cuda_12.4.0_550.54.14_linux.run
sudo sh cuda_12.4.0_550.54.14_linux.run
运行以下命令:
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.runsudo sh cuda_12.4.0_550.54.14_linux.run
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#sudo sh cuda_12.4.0_550.54.14_linux.run
3)运行后将进入安装程序
点击【continue】
输入【accept】
将Driver(显卡驱动)取消后选择【Install】
4)等待程序安装完成,完成后输入以下命令:
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#echo 'export PATH=/usr/local/cuda/bin:$PATH' | sudo tee /etc/profile.d/cuda.sh
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#source /etc/profile
最后使用nvcc -V查看是否输出CUDA版本信息,如输出如下图所示则证明安装成功
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#nvcc -V
二、安装anaconda(真实环境中安装)
1)获取anaconda
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh
2)运行所下载anaconda文件,所有操作如下图所示:
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#bash Anaconda3-2024.10-1-Linux-x86_64.sh
PS:此处选择yes会少很多麻烦。
3)PS:按照上述安装完anaconda后,当输入sudo -i进入管理员模式,将默认进入虚拟环境(base),可使用conda deactivate 退出。
yorick@yorick-OMEN-25L-Desktop-GT12-0xxx:~/桌面$ sudo -i
[sudo] yorick 的密码:
(base)root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#conda deactivate
4)从base 使用conda deactivate 退出后,创建名为yorick的虚拟环境,此虚拟环境需使用python 3.9或以上版本
yorick@yorick-OMEN-25L-Desktop-GT12-0xxx:~/桌面$ sudo -i
[sudo] yorick 的密码:
(base)root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#conda deactivate
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#conda create -n yorick python=3.9
5)当虚拟环境创建成功后,可使用conda activate 进入虚拟环境,如可正常进入则成功,此时真实环境中的所有设置均已完成。
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#conda activate yorick
(yorick)root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#
三、安装模型所需环境及依赖
1)安装PyTorch和torchvision。PyTorch是一个开源的机器学习框架,可以帮助用户构建和训练深度神经网络。torchvision是PyTorch生态系统的一部分,专门为计算机视觉研究提供支持;
root@yorick-OMEN-25L-Desktop-GT12-0xxx:~# conda activate yorick
(yorick) root@yorick-OMEN-25L-Desktop-GT12-0xxx:~# sudo apt update
(yorick) root@yorick-OMEN-25L-Desktop-GT12-0xxx:~# conda install pytorch torchvision //此步所花时间较长
2)安装numpy、transformers、accelerate、sentencepiece。(此步摸索时间最长,因为各个包版本不同,报错不同。根据模型安装对应版本,各个包之间版本需相互适配,不适配则在运行模型时出现报错)
这些包的组合常见于 NLP 模型训练/推理(如使用 Transformers 库加载预训练模型):
(1)numpy 用于数据预处理和数值计算;
(2)transformers 提供模型架构和预训练权重;
(3)accelerate 加速训练过程;
(4)sentencepiece 处理输入文本的分词。
(yorick) root@yorick-OMEN-25L-Desktop-GT12-0xxx:~# pip install "numpy<2" transformers==4.39.0 accelerate sentencepiece
3)bitsandbytes 是一个专注于 深度学习模型内存优化和计算加速 的 Python 库。它通过 量化技术(Quantization)和 高效矩阵运算,显著降低模型训练和推理时的显存占用,同时提升计算效率,尤其适合资源受限的场景(如单卡 GPU 运行大模型);
(yorick) root@yorick-OMEN-25L-Desktop-GT12-0xxx:~# pip install "bitsandbytes>=0.43.0"
4)安装modelsope,用于在魔搭社区拉取模型;
(yorick) root@yorick-OMEN-25L-Desktop-GT12-0xxx:~# pip install modelscope
5)VLLM(Very Large Language Model Inference)是一个高性能、优化显存管理的大模型推理引擎,旨在最大化推理吞吐量并降低显存消耗,使大语言模型(LLMs)在单卡或多GPU服务器上运行得更高效。
(yorick) root@yorick-OMEN-25L-Desktop-GT12-0xxx:~# pip install vllm
四、模型下载、调用和使用
1)拉取Qwen2-0.5B-Instruct-AWQ模型至指定Qwen0.5文件夹中;
(yorick) root@yorick-OMEN-25L-Desktop-GT12-0xxx:~/models# modelscope download --model Qwen/Qwen2-0.5B-Instruct-AWQ --local_dir '/root/models/Qwen0.5'
2)进入/models文件夹,使用vllm serve 运行;(请勿进入至Qwen0.5文件夹中)
(yorick) root@yorick-OMEN-25L-Desktop-GT12-0xxx:~# cd /root/models
(yorick) root@yorick-OMEN-25L-Desktop-GT12-0xxx:~/models# vllm serve Qwen0.5
3)如模型加载成功后,在虚拟环境中运行nvidia-smi则会出现模型进程
(yorick) root@yorick-OMEN-25L-Desktop-GT12-0xxx:~#nvidia-smi
4)打开open-webui,点击管理员头像;
5)选择【设置】->【外部连接】->点击【+】
6)输入【http://ubuntu ip:端口号/v1】(端口号默认为8000),点击刷新键,如显示【已验证服务器连接】,则为成功,此时点击【保存】
7)在open-webui页面中中可选此模型并谈话。
五、可能会遇到的问题:
1)建议显卡驱动及CUDA选本文指定版本,此搭配是稳定版本,不是越新越好;
2)请按照安装显卡驱动后再安装CUDA的顺序。显卡驱动安装号后使用nvidia-smi中显示的CUDA version 是此显卡驱动支持的CUDA最高支持版本,而不是CUDA已安装版本,装完显卡驱动后需安装CUDA;
3)各个依赖,库和环境需互相兼容,使用稳定的版本,也不是越新越好;(此步是重中之重)
4)根据显存找模型,否则将出现显存溢出发生报错无法加载模型;
5)在此文档中,模型下载至/root/models/Qwen0.5中,此时需在/root/models 文件中运行vllm serve,而不是在/root/models/Qwen0.5中运行;
6)在使用vllm serve 启动模型时可指定端口号等信息,此处不多赘述自行搜索;
7)在open-webui中添加模型时需添加端口号,否则将提示 【OpenAI:Netword Problem】;
8)在魔搭社区选择模型时建议下载框架为【pytorch】 和 【transformers】 的模型,否则可能报错。(此说法待验证)
本文由 yorickbao 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。