推理服务部署(DeepSeek-R1-Distill-Qwen-7B)

  1. LLM模型下载。

    访问HuggingFace网站获取所需模型:

    https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B/tree/main

    https://huggingface.co/deepseek-ai/DeepSeek-R1/tree/main

    https://huggingface.co/deepseek-ai/DeepSeek-V3/tree/main

    以deepseek-ai/DeepSeek-R1-Distill-Qwen-7B为例,下载“Files and versions”下所有文件。

    config.json文件需要修改torch_dtype类型为float16,否则可能导致模型服务化失败。

  2. 驱动下载安装。

    1. 根据实际需求获取对应版本的软件包:

      https://support.huawei.com/enterprise/zh/ascend-computing/ascend-hdk-pid-252764743/software

      Ascend HDK 24.1.0.3为例:

      选定软件类型并选择对应驱动软件包。

    2. 驱动安装前,需检查相关依赖是否安装。
      1. 执行make -v命令,若能查询到make工具的版本,则表示make已安装。
      2. 根据下表检查dkms、gcc、linux-header等相关依赖是否存在,若不存在则通过yum安装。

        操作系统

        安装依赖

        检查命令

        备注

        openEuler

        dkms

        rpm -qa | grep dkms

        gcc

        rpm -qa | grep gcc

        kernel-headers

        rpm -qa | grep kernel-headers-$(uname -r)

        kernel-devel

        rpm -qa | grep kernel-devel-$(uname -r)

    3. 安装驱动(以root用户执行)。
      1. 进入软件包所在路径(如“/root”)。
        cd /root
      2. 增加软件包可执行权限,x.x.x表示软件包版本,请根据实际情况进行替换。
        chmod +x root/Ascend-hdk-310p-npu-driver_x.x.x_linux-{arch}.run
      3. 校验run安装包的一致性和完整性。
        ./Ascend-hdk-310p-npu-driver_x.x.x_linux-{arch}.run --check
      4. 安装驱动,默认安装路径为“/usr/local/Ascend”
        ./Ascend-hdk-310p-npu-driver_x.x.x_linux-{arch}.run --full

        安装过程可能会出现如下报错:

        • 报错一:出现“Error: HwHiAiUser not exists! Please add HwHiAiUser”报错

          请执行以下命令解决:

          sudo groupadd HwHiAiUser
          sudo useradd -g HwHiAiUser HwHiAiUser
        • 报错二:出现“The list of missing tools: ifconfig”报错

          请执行以下命令解决:

          yum install net-tools
      5. 检验驱动是否安装成功。
        npu-smi info

        出现以下回显信息则加载成功。

        +----------------------------------------------------------------------------------------------------+
        | npu-smi 24.1.0                            Version: 24.1.0                                      |
        +-------------------+-----------------+--------------------------------------------------------------+
        | NPU     Name      | Health          | Power(W)          Temp(C)              Hugepages-Usage(page) |
        | Chip    Device    | Bus-Id          | AICore(%)         Memory-Usage(MB)                           |
        +===================+=================+==============================================================+
        | 4       310P3     | OK              | NA                43             0          / 970            |
        | 0       0         | 0000:81:00.0    | 0                 861  / 21534                               |
        +===================+=================+==============================================================+
        | No running processes found in NPU 4                                                                |
        +===================+=================+==============================================================+
      6. 详细步骤可参考链接:https://support.huawei.com/enterprise/zh/doc/EDOC1100441350/36e8d875#ZH-CN_TOPIC_0000002062998774

  3. 固件下载安装(以root用户执行)。

    1. 下载固件软件包

      驱动安装包相同目录下,获取所需固件软件包:

      首次安装按照“驱动->固件”的顺序,覆盖安装或升级则按照“固件->驱动”的顺序。

    2. 进入软件包所在路径(如“root”)。
      cd /root
    3. 增加软件包可执行权限,x.x.x.x.X表示软件包版本,请根据实际情况进行替换。
      chmod +x Ascend-hdk-310p-npu-firmware_x.x.x.x.X.run
    4. 校验run安装包的一致性和完整性。
      ./Ascend-hdk-310p-npu-firmware_x.x.x.x.X.run --check
    5. 安装固件。
      ./Ascend-hdk-310p-npu-firmware_x.x.x.x.X.run --full
    6. 检验安装。
      /usr/local/Ascend/driver/tools/upgrade-tool --device_index -1 --component -1 -version 

      若与固件软件包版本号一致,则表示安装成功。

    7. 更多驱动和固件安装信息可访问链接:https://www.hiascend.com/document/detail/zh/mindie/100/envdeployment/instg/mindie_instg_0006.html

  4. 镜像下载。需申请权限。

    访问链接并下载下列软件:https://www.hiascend.com/developer/ascendhub/detail/af85b724a7e5469ebd7ea13c3439d48f

  5. 启动容器

    docker run -it -d --net=host --shm-size=1000g \
        --privileged \
        --name=qwen-deepseek \
        --device=/dev/davinci_manager \
        --device=/dev/hisi_hdc \
        --device=/dev/devmm_svm \
        -v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
        -v /usr/local/sbin:/usr/local/sbin:ro \
        -v /root/DeepSeek-R1-Distill-Qwen-7B:/root/DeepSeek-R1-Distill-Qwen-7B\
    llm_models_infer:24.0.0.T0.B092-300I-Duo(即镜像id) bash

    其中,“--name=qwen-deepseek”、“/root/DeepSeek-R1-Distill-Qwen-7B:/root/DeepSeek-R1-Distill-Qwen-7B”和 “llm_models_infer:24.0.0.T0.B092-300I-Duo”可根据实际情况进行配置。

  6. 进入容器并修改相关配置。

    1. 进入容器,qwen-deepseek为容器名称,请根据实际情况替换。
      docker exec -it qwen-deepseek bash

      若不存在以下config.json文件,则进入“/opt/package”目录,执行命令:source install_and_enable_cann.sh(若存在部分库未成功安装,则重新执行该命令,否则将无法启动服务:Failed to init endpoint!)。

    2. 修改配置文件(修改以下红框内容)。
      vim /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json

  7. 拉起服务化。

    1. 配置环境变量。
      cd /usr/local/Ascend/mindie/latest/mindie-service
      Source set_env.sh
    2. 运行模型。
      cd bin
      ./mindieservice_daemon

  8. 新建窗口接口测试,IP地址和端口请根据实际情况进行替换。

    curl -H "Accept: application/json" -H "Content-type: application/json"  -X POST -d '{"model": "qwen","messages": [{"role": "user", "content": "介绍一下杭州"}],"max_tokens": 128}' http://ip:port/v1/chat/completions