本文以搭载了一张A10显卡的ecs.gni2.3xlarge实例为例,介绍如何在GPU云服务器上部署Baichuan大语言模型。
Baichuan-13B是包含130亿参数的开源可商用的大语言模型,在知识问答、聊天、逻辑推理、总结摘要等场景具有良好的表现,在权威的中文和英文 Benchmark 评测上均取得很好的效果。模型支持FP16、INT8、INT4三种精度,可以在GPU实例上部署并搭建推理应用。该模型对GPU显存的需求如下:
精度 | 显存需求 | 推荐实例规格 | GPU显卡类型 |
---|---|---|---|
FP16 | 27 GB | ecs.g1ve.2xlarge | V100 * 1(单卡32 GB显存) |
INT8 | 17 GB | ecs.gni2.3xlarge | A10 * 1(单卡24 GB显存) |
INT4 | 10 GB | ecs.gni2.3xlarge | A10 * 1(单卡24 GB显存) |
注意
部署Baichuan大语言模型时,需保证CUDA版本 ≥ 11.8。
Pytorch使用CUDA进行GPU加速时,在CUDA、GPU驱动已经安装的情况下,依然不能使用,很可能是版本不匹配的问题,请严格关注以上软件的版本匹配情况。
下载本文所需软件需要访问国外网站,建议您增加网络代理(例如FlexGW)以提高访问速度。您也可以将所需软件下载到本地,参考本地数据上传到GPU实例中。
请参考通过向导购买实例创建一台符合以下条件的实例:
创建成功后,在实例绑定的安全组中添加入方向规则:放行TCP 8501端口。具体操作请参见修改安全组访问规则。
登录实例。
执行以下命令,下载CUDA Toolkit。
CUDA Toolkit大小约4G,其中已经包含了GPU驱动和CUDA,安装过程相对耗时,请耐心等待。
wget https://developer.download.nvidia.com/compute/cuda/12.2.1/local_installers/cuda_12.2.1_535.86.10_linux.run
执行以下命令,安装GPU驱动和CUDA。sh cuda_12.2.1_535.86.10_linux.run
安装完成后,执行以下命令进行验证。nvidia-smi
回显如下,说明驱动安装成功。
执行以下命令,下载Anaconda安装包。wget https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh
执行以下命令,安装Anaconda。bash Anaconda3-2023.07-2-Linux-x86_64.sh
/root/anaconda3
,请按“Enter”确认安装。执行以下命令使配置文件生效。source ~/.bashrc
回显如下,表示配置成功,进入base环境。
创建一个名为“baichuan”的虚拟环境,并指定该环境中的python版本为3.10。
conda create -n baichuan python=3.10
命令。Proceed ([y]/n)?
时输入“y”确认。conda activate baichuan
依次执行以下命令,配置 packagecloud 存储库并安装Git LFS。
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash apt-get install git-lfs
执行以下命令初始化Git LFS。git lfs install
回显如下,表示初始化完成。
执行以下命令,下载Baichuan-13B大模型的权重文件。
文件大小约26GB,整个过程会持续较长时间,请耐心等待。官方的权重文件保存在huggingface仓库。
git clone https://huggingface.co/baichuan-inc/Baichuan-13B-Chat
执行以下命令,克隆官方示例代码。git clone https://github.com/baichuan-inc/Baichuan-13B.git
依次执行以下命令,安装相应的依赖包。
cd Baichuan-13B # 工作目录切换到示例代码的路径 pip install -r requirements.txt # 安装baichuan依赖
执行以下命令,启动示例代码中的“web_demo.py”。streamlit run web_demo.py
回显如下,表示启动成功。
浏览器访问URL链接(http://<公网IP>:8501/
)打开demo页面。
如下图,打开后即可看到一个聊天机器人,可以完成多轮对话、数理逻辑、总结归纳等任务。