You need to enable JavaScript to run this app.
导航

GPU-部署Baichuan大语言模型

最近更新时间2023.12.07 17:10:25

首次发布时间2023.09.12 17:10:09

本文以搭载了一张A10显卡的ecs.gni2.3xlarge实例为例,介绍如何在GPU云服务器上部署Baichuan大语言模型。

背景信息

Baichuan-13B是包含130亿参数的开源可商用的大语言模型,在知识问答、聊天、逻辑推理、总结摘要等场景具有良好的表现,在权威的中文和英文 Benchmark 评测上均取得很好的效果。模型支持FP16、INT8、INT4三种精度,可以在GPU实例上部署并搭建推理应用。该模型对GPU显存的需求如下:

精度显存需求推荐实例规格GPU显卡类型
FP1627 GBecs.g1ve.2xlargeV100 * 1(单卡32 GB显存)
INT817 GBecs.gni2.3xlargeA10 * 1(单卡24 GB显存)
INT410 GBecs.gni2.3xlargeA10 * 1(单卡24 GB显存)

软件要求

注意

部署Baichuan大语言模型时,需保证CUDA版本 ≥ 11.8。

  • NVIDIA驱动:
    • GPU驱动:用来驱动NVIDIA GPU卡的程序。本文以535.86.10为例。
    • CUDA:使GPU能够解决复杂计算问题的计算平台。本文以CUDA 12.2为例。
    • CUDNN:深度神经网络库,用于实现高性能GPU加速。本文以8.5.0.96为例。
  • 运行环境:
    • Transformers:一种神经网络架构,用于语言建模、文本生成和机器翻译等任务。深度学习框架。本文以4.30.2为例。
    • Pytorch:开源的Python机器学习库,实现强大的GPU加速的同时还支持动态神经网络。本文以2.0.1为例。
    • Anaconda:获取包且对包能够进行管理的工具,包含了Conda、Python在内的超过180个科学包及其依赖项,用于创建Python虚拟环境。本文以Anaconda 3和Python 3.10为例。

    Pytorch使用CUDA进行GPU加速时,在CUDA、GPU驱动已经安装的情况下,依然不能使用,很可能是版本不匹配的问题,请严格关注以上软件的版本匹配情况。

使用说明

下载本文所需软件需要访问国外网站,建议您增加网络代理(例如FlexGW)以提高访问速度。您也可以将所需软件下载到本地,参考本地数据上传到GPU实例中。

操作步骤

步骤一:创建GPU计算型实例

  1. 请参考通过向导购买实例创建一台符合以下条件的实例:

    • 基础配置:
      • 计算规格:ecs.gni2.3xlarge
      • 镜像:Ubuntu 20.04,不勾选“后台自动安装GPU驱动”。
      • 存储:云盘容量在100 GiB以上。
        alt
    • 网络配置:勾选“分配弹性公网IP”。
  2. 创建成功后,在实例绑定的安全组中添加入方向规则:放行TCP 8501端口。具体操作请参见修改安全组访问规则

步骤二:安装GPU驱动和CUDA工具包

  1. 登录实例

  2. 执行以下命令,下载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

  3. 执行以下命令,安装GPU驱动和CUDA。
    sh cuda_12.2.1_535.86.10_linux.run

    1. 输入"accept",并按“Enter”键确认信息。
      alt
    2. 按键盘上下键选中【Install】,回车确认,开始安装。
      alt
  4. 安装完成后,执行以下命令进行验证。
    nvidia-smi
    回显如下,说明驱动安装成功。
    alt

步骤三:创建虚拟环境

  1. 执行以下命令,下载Anaconda安装包。
    wget https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh

  2. 执行以下命令,安装Anaconda。
    bash Anaconda3-2023.07-2-Linux-x86_64.sh

    1. 持续按“Enter”键进行安装。
      alt
    2. 输入“yes”,并按“Enter”键确认信息。
      alt
    3. Anaconda的安装路径/root/anaconda3,请按“Enter”确认安装。
      alt
    4. 输入“yes”确定初始化Anaconda。
      alt
  3. 执行以下命令使配置文件生效。
    source ~/.bashrc
    回显如下,表示配置成功,进入base环境。
    alt

  4. 创建一个名为“baichuan”的虚拟环境,并指定该环境中的python版本为3.10。

    1. 执行conda create -n baichuan python=3.10命令。
    2. 回显Proceed ([y]/n)?时输入“y”确认。
    3. 执行以下命令,激活虚拟环境。
      conda activate baichuan
      回显如下,表示激活成功。
      alt

步骤四:部署Baichuan-13B并验证

  1. 依次执行以下命令,配置 packagecloud 存储库并安装Git LFS。

    curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
    apt-get install git-lfs
    
  2. 执行以下命令初始化Git LFS。
    git lfs install
    回显如下,表示初始化完成。
    alt

  3. 执行以下命令,下载Baichuan-13B大模型的权重文件。

    文件大小约26GB,整个过程会持续较长时间,请耐心等待。官方的权重文件保存在huggingface仓库

    git clone https://huggingface.co/baichuan-inc/Baichuan-13B-Chat

  1. 执行以下命令,克隆官方示例代码。
    git clone https://github.com/baichuan-inc/Baichuan-13B.git

  2. 依次执行以下命令,安装相应的依赖包。

    cd Baichuan-13B  # 工作目录切换到示例代码的路径
    pip install -r requirements.txt  	# 安装baichuan依赖  
    
  3. 执行以下命令,启动示例代码中的“web_demo.py”。
    streamlit run web_demo.py
    回显如下,表示启动成功。
    alt

  4. 浏览器访问URL链接(http://<公网IP>:8501/)打开demo页面。
    如下图,打开后即可看到一个聊天机器人,可以完成多轮对话、数理逻辑、总结归纳等任务。
    alt