【Azure 环境】Azure 虚拟机上部署 DeepSeek R1 模型教程(1.5B参数)【失败】

简介: 遇见错误一:operator torchvision::nms does not exist 遇见错误二:RuntimeError: Failed to infer device type

前言

学习大模型者,都是想在自己的环境中部署一个模型进行试验。最近DeepSeek让我想实现了这个目标。

准备

本文使用一台Azure云上的虚拟机(16 vCPU, 64GB内存),Python环境,模型选择 DeepSeek-R1-Distill-Qwen-1.5B。

 

实操

第一步:在Azure中创建Linux 虚拟机

使用Ubuntu Server 24.04 LTS- Gen2  镜像, Size 选择为 Standard D16ads v5 ( 16 vcpus, 64GiB memory)

第二步:登录到Linux虚拟机,安全Python环境

sudo apt update
apt list --upgradable
sudo apt install python3

第三步:安装CPU vLLM编译器,下载VLLM(https://github.com/vllm-project/vllm

sudo apt-get update  -y
sudo apt-get install -y gcc-12 g++-12 libnuma-dev
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 10 --slave /usr/bin/g++ g++ /usr/bin/g++-12
 
git clone https://github.com/vllm-project/vllm.git
cd vllm
pip install -r requirements-cpu.txt
pip install -e .

错误信息:

~$ git clone https://github.com/vllm-project/vllm.git

Cloning into 'vllm'...

fatal: unable to access 'https://github.com/vllm-project/vllm.git/': Failed to connect to github.com port 443 after 133171 ms: Couldn't connect to server

通过Git clone VLLM文件并编译安装,但因为访问github不成功,所以需要提前准备好 VLLM ZIP文件,通过上传到Storage Account后,在Linux中使用wget下载并unzip。采用“曲线方针”方式,成功下载VLLM文件。

VLLM 成功下载后,进入VLLM目录。执行 requirements-cpu.txt依赖安装

pip install --upgrade pip
pip install cmake>=3.26 wheel packaging ninja "setuptools-scm>=8" numpy
pip install -v -r requirements-cpu.txt --extra-index-url https://download.pytorch.org/whl/cpu

第四步:安装完成后,通过下面的命令安装 VLLM CPU版本

VLLM_TARGET_DEVICE=cpu python setup.py install

Note此处setup.py文件有个bug,需要安装前修改文件。通过运行以下命令行修改setup.py文件中的get_vllm_version()函数:

def get_vllm_version() -> str:
    try:
        version = get_version(
        write_to="vllm/_version.py",  # TODO: move this to pyproject.toml
    )
    except LookupError:
        version = "0.0.0"

PS:  执行“VLLM_TARGET_DEVICE=cpu python setup.py install“这一步需要较长时间。

第五步:安装完成后,VLLM就完成了cpu版本的安装

考虑是中国区环境下的VM,可以通过以下endpoint访问mirror huggingface. 在Linux VM中添加以下环境变量,访问mirror huggingface镜像。

export HF_ENDPOINT=https://hf-mirror.com

第六步:加载DeepSeek 1.5B的模型

vllm serve "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B"

遇见错误一:operator torchvision::nms does not exist

File "/home/lbadmin/.venv/lib/python3.12/site-packages/transformers/utils/import_utils.py", line 1805, in __getattr__
    module = self._get_module(self._class_to_module[name])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lbadmin/.venv/lib/python3.12/site-packages/transformers/utils/import_utils.py", line 1819, in _get_module
    raise RuntimeError(
RuntimeError: Failed to import transformers.processing_utils because of the following error (look up to see its traceback):
operator torchvision::nms does not exist

通过重新安装 torchvision 后,解决以上问题。

pip install --force-reinstall torchvision --extra-index-url https://download.pytorch.org/whl/torchvision/

 

遇见错误二:RuntimeError: Failed to infer device type

File "/home/lbadmin/.venv/lib/python3.12/site-packages/vllm/engine/arg_utils.py", line 1074, in create_engine_config
    device_config = DeviceConfig(device=self.device)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lbadmin/.venv/lib/python3.12/site-packages/vllm/config.py", line 1626, in __init__
    raise RuntimeError("Failed to infer device type")
RuntimeError: Failed to infer device type

操作失败!通过从网上的资料判断,目前错误原因是所选择的模型不支持当前CPU 运行!

 

!试验失败!

假如第六步加载模型可以成功,就可以通过下面的代码测试模型:


curl -X POST "http://<public ip>:8000/v1/chat/completions" \
    -H "Content-Type: application/json" \
    --data '{
        "model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
        "messages": [
            {
                "role": "user",
                "content": "What is the capital of France?"
            }
        ]
}'


谨以此文做一个笔记,2025年,持续学习大模型!

 





当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
14天前
|
运维 虚拟化 Windows
Hyper-V Win8虚拟机启动错误修复教程
针对Hyper-V Win8虚拟机启动错误,本教程提供详细修复步骤。首先进行硬件兼容性检查,确保CPU支持虚拟化并启用,同时检查内存和存储空间是否充足。接着以管理员身份登录,使用事件查看器排查错误。管理Hyper-V服务,确保相关服务正常运行。检查虚拟机状态,优化资源分配,并修复虚拟硬盘文件。更新系统和重装Hyper-V组件也是有效手段。最后,排查硬件故障、备份数据及处理第三方软件冲突。通过这些步骤,多数启动问题可得到解决。
|
26天前
|
虚拟化
【2025最新】VMware Workstation Pro 虚拟机基础配置教程,方便你的神操作!
VMware Workstation Pro 是一款强大的虚拟化工具,本文简要介绍其基本配置与操作。安装后,用户可以通过“编辑菜单 &gt; 首选项”设置虚拟机保存路径、是否显示托盘图标等全局配置。新建虚拟机时,需选择操作系统类型、配置处理器、内存、网络和硬盘等参数。建议根据主机硬件性能合理分配资源,避免过度占用。创建完成后,用户可加载 ISO 镜像文件安装所需操作系统。通过这些步骤,您可以轻松搭建并管理多个虚拟环境。
107 8
【2025最新】VMware Workstation Pro 虚拟机基础配置教程,方便你的神操作!
|
26天前
|
Web App开发 安全 Linux
【独家揭秘2025】VMware Workstation Pro虚拟机:免费安装教程大放送,一键解锁操作系统模拟神器!
VMware Workstation Pro 是由威睿(VMware)公司开发的一款功能强大的桌面虚拟化软件,允许用户在同一台物理计算机上同时运行多个操作系统,如Windows、..
72 2
【独家揭秘2025】VMware Workstation Pro虚拟机:免费安装教程大放送,一键解锁操作系统模拟神器!
|
19天前
|
虚拟化 网络虚拟化 Windows
导入虚拟机到Hyper-V环境时,理解并配置网络适配器设置是确保网络通信的关键
在Hyper-V环境中,正确配置虚拟机的网络适配器是确保其网络通信的关键。需先启用Hyper-V功能并创建虚拟交换机。接着,在Hyper-V管理器中选择目标虚拟机,添加或配置网络适配器,选择合适的虚拟交换机(外部、内部或私有),并根据需求配置VLAN、MAC地址等选项。最后,启动虚拟机并验证网络连接,确保其能正常访问外部网络、与主机及其他虚拟机通信。常见问题包括无法访问外部网络或获取IP地址,需检查虚拟交换机和适配器设置。
|
5月前
|
数据可视化 大数据 Linux
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
本文介绍了如何在VMware中安装openEuler操作系统,从选择合适的镜像版本下载开始,到创建虚拟机、配置CPU虚拟化、进行系统安装、设置网络连接,直至安装DDE桌面环境实现图形化操作。openEuler是一款由华为开源的操作系统,支持多种处理器架构,广泛应用于数据库、大数据、云计算等领域。文中还分享了安装过程中的注意事项及解决网络问题的方法,适合初次接触openEuler的用户参考学习。
1420 3
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
|
6月前
|
Unix Linux 开发工具
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
本文详细介绍了如何在官网下载CentOS 8以及在VMware Workstation Pro 16虚拟机上安装CentOS 8的步骤,包括可能出现的问题和解决方案,如vcpu-0错误的处理方法。
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
|
5月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
162 2
|
5月前
|
存储 Linux 开发者
虚拟机centos7.9一键部署docker
本文介绍了如何在 CentOS 7.9 虚拟机上安装 Docker 社区版 (Docker-ce-20.10.20)。通过使用阿里云镜像源,利用 `wget` 下载并配置 Docker-ce 的 YUM 仓库文件,然后通过 `yum` 命令完成安装。安装后,通过 `systemctl` 设置 Docker 开机自启并启动 Docker 服务。最后,使用 `docker version` 验证安装成功,并展示了客户端与服务器的版本信息。文中还提供了列出所有可用 Docker-ce 版本的命令。
404 0
虚拟机centos7.9一键部署docker
|
7月前
|
API 网络架构 开发者
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)

热门文章

最新文章