OFA模型VMware虚拟机环境配置详解

张开发
2026/5/3 14:02:37 15 分钟阅读

分享文章

OFA模型VMware虚拟机环境配置详解
OFA模型VMware虚拟机环境配置详解最近有不少朋友在问想在自己的电脑上跑跑OFA模型但手头没有专门的服务器只有一台性能还不错的台式机或者笔记本。直接装双系统吧怕搞坏了原来的环境用云服务吧又觉得长期用成本有点高。这时候在本地用虚拟机搭建一个开发测试环境就成了一个挺不错的选择。今天我就来手把手带你走一遍如何在VMware虚拟机里从零开始配置一个能流畅运行OFA模型的Ubuntu环境。这个过程会涉及到安装Ubuntu系统、处理显卡驱动如果你的宿主机有NVIDIA GPU并且想利用起来、安装CUDA一直到最终把OFA模型跑起来。我会把其中一些虚拟机环境下特有的坑和解决办法都讲清楚让你少走弯路。1. 准备工作与环境概览在开始动手之前我们先明确一下目标和需要准备的东西。我们的目标是在VMware Workstation Pro或Player虚拟机软件中创建一个Ubuntu Linux系统并在这个系统里配置好运行OFA模型所需的所有依赖。你需要准备以下几样东西宿主机就是你正在使用的Windows或Linux电脑。它的性能决定了虚拟机的上限建议至少有16GB内存和比较充裕的硬盘空间。VMware Workstation虚拟机软件。你可以去官网下载试用版或者购买。本文基于VMware Workstation 17 Pro进行演示其他版本大同小异。Ubuntu系统镜像推荐使用Ubuntu 20.04 LTS或22.04 LTS版本长期支持版比较稳定。去Ubuntu官网下载ISO文件即可。NVIDIA驱动和CUDA Toolkit如果你宿主机有NVIDIA显卡并且希望虚拟机也能调用GPU来加速模型推理这很重要能快很多那么需要准备这两个。注意虚拟机使用GPU需要特定配置我们后面会详细说。这里有一个关键点需要理解虚拟机默认使用的是虚拟出来的显卡性能很弱只能用于显示桌面完全没法用来跑AI模型。要想让虚拟机里的程序也能用上你宿主机上那块强大的NVIDIA显卡就需要用到“GPU直通”或“vGPU”技术VMware里叫vGPU。但这需要宿主机、VMware版本、显卡型号和驱动都支持才行算是个“进阶”玩法。如果条件不具备或者你只是想先体验一下OFA模型那么用纯CPU模式也是可以运行的只是速度会慢很多。所以咱们的教程会分成两条线来讲一条是利用宿主GPU的“增强性能”路线另一条是仅使用CPU的“基础体验”路线。你可以根据自己的硬件情况来选择。2. 创建并安装Ubuntu虚拟机这一步相对标准我们快速过一下关键设置。首先打开VMware点击“创建新的虚拟机”。选择“自定义”安装以便我们进行详细配置。在硬件兼容性页面选择你VMware版本对应的最高选项。接着选择“稍后安装操作系统”。系统类型选择“Linux”版本选择“Ubuntu 64位”。给你的虚拟机起个名字比如“OFA-Ubuntu-Test”并选择一个位置存放虚拟机文件确保该位置有足够空间建议预留50GB以上。处理器配置很关键。给你的虚拟机分配足够多的核心。如果你的宿主机是8核16线程的CPU可以给虚拟机分配4个核心或更多。内存也尽量多分一些运行深度学习模型比较吃内存建议分配8GB或以上。网络类型选择“NAT”即可这样虚拟机可以上网宿主机和虚拟机之间也能互相访问。I/O控制器和磁盘类型保持默认推荐选项。在创建磁盘时选择“将虚拟磁盘拆分成多个文件”这样迁移起来方便一些。磁盘大小建议40GB以上同样选择“将虚拟磁盘存储为单个文件”。在完成前点击“自定义硬件”。这里有个重要设置在“新CD/DVD”选项里选择“使用ISO映像文件”然后指向你下载好的Ubuntu ISO文件。这样虚拟机启动时就会从ISO文件引导安装系统。其他硬件如USB控制器、打印机等如果暂时用不到可以移除以节省资源。确认无误后关闭硬件设置窗口点击完成。现在启动你的新虚拟机。它会自动从Ubuntu ISO镜像启动进入安装界面。选择“Install Ubuntu”语言选中文或英文看个人习惯。安装类型选择“正常安装”即可如果想节省空间可以取消勾选办公套件和游戏。重要的是在“安装类型”这一步选择“清除整个磁盘并安装Ubuntu”不用担心这只会清除你为虚拟机创建的那个虚拟磁盘不会影响宿主机。设置你的时区、用户名和密码然后等待安装完成。安装结束后重启虚拟机你就拥有了一个全新的Ubuntu系统。进入系统后第一件事是打开终端运行系统更新sudo apt update sudo apt upgrade -y这能确保所有软件包都是最新的。3. 关键步骤显卡驱动与CUDA配置这是整个配置过程中最具挑战性也最能体现虚拟机环境特殊性的部分。我们将分情况讨论。3.1 情况一宿主机无NVIDIA GPU或仅使用CPU如果你的宿主机没有NVIDIA显卡或者你暂时不想折腾GPU直通那么虚拟机内部就只使用CPU进行计算。配置会简单很多。首先你仍然需要安装一些基础的图形驱动用于显示桌面和必要的编译工具sudo apt install -y build-essential mesa-utilsbuild-essential包含了gcc, g, make等编译模型可能需要的工具。mesa-utils包含了一些诊断OpenGL图形接口的工具。然后你可以直接跳到下一节安装Python、PyTorch等环境。OFA模型在纯CPU环境下是可以运行的只是运行图像生成、理解这类任务时会非常慢更适合先用来测试文本相关的功能。3.2 情况二宿主机有NVIDIA GPU并启用vGPU支持推荐如果你想获得可用的推理速度这是推荐的方式。但请注意这需要满足以下前提宿主机是Windows 10/11 或 Linux系统。宿主机拥有一张支持的NVIDIA GPU通常需要较新的计算卡或GeForce/Quadro/Tesla系列。安装了特定版本的VMware Workstation Pro某些版本特性更完整和对应的NVIDIA vGPU驱动。步骤1宿主机准备首先确保你的宿主机已经安装了最新的NVIDIA显卡驱动。可以去NVIDIA官网下载GeForce Game Ready驱动或Studio驱动安装。步骤2配置VMware虚拟机vGPU将虚拟机关机。右键点击虚拟机选择“设置”。在“硬件”选项卡中点击“添加”。选择“PCI设备”点击下一步。在设备列表中你应该能看到你的NVIDIA显卡例如NVIDIA GeForce RTX 4070。勾选它并务必勾选“所有功能”。完成添加。在“显示器”设置中将“加速3D图形”选项取消勾选因为现在将由直通的物理GPU负责图形处理。确定保存设置。步骤3启动虚拟机并安装驱动现在启动虚拟机。如果配置正确虚拟机启动后你在设备管理器或在Linux下用lspci命令里应该能看到NVIDIA显卡。在Ubuntu虚拟机内打开终端。首先禁用系统自带的开源驱动nouveau因为它会和官方驱动冲突sudo bash -c echo blacklist nouveau /etc/modprobe.d/blacklist-nouveau.conf sudo bash -c echo options nouveau modeset0 /etc/modprobe.d/blacklist-nouveau.conf sudo update-initramfs -u然后重启虚拟机。重启后由于没有显卡驱动图形界面可能无法进入。你可以尝试按CtrlAltF2切换到命令行终端登录。接下来安装NVIDIA驱动。最简单的方法是使用Ubuntu的附加驱动库但有时版本较旧。我们使用NVIDIA官方仓库安装# 添加NVIDIA官方仓库 sudo add-apt-repository ppa:graphics-drivers/ppa -y sudo apt update # 查找推荐的驱动版本 ubuntu-drivers devices # 安装推荐版本例如nvidia-driver-550 sudo apt install -y nvidia-driver-550安装完成后再次重启虚拟机。sudo reboot重启后在终端输入nvidia-smi。如果看到显卡信息说明驱动安装成功输出会显示你的GPU型号、驱动版本、CUDA版本等信息。步骤4安装CUDA Toolkitnvidia-smi显示的CUDA版本是驱动支持的最高CUDA版本。我们需要安装一个≤此版本的CUDA Toolkit。以安装CUDA 11.8为例这是一个与许多深度学习框架兼容较好的版本去NVIDIA CUDA Toolkit官网选择Linux - x86_64 - Ubuntu - 22.04或你的版本- runfile(local)。 按照网站给出的指令安装例如wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run sudo sh cuda_11.8.0_520.61.05_linux.run在安装界面中通过回车键取消“Driver”的选中因为我们已经安装了驱动只安装CUDA Toolkit。然后按照提示完成安装。安装完成后需要将CUDA路径加入环境变量。编辑你的~/.bashrc文件echo export PATH/usr/local/cuda-11.8/bin:$PATH ~/.bashrc echo export LD_LIBRARY_PATH/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH ~/.bashrc source ~/.bashrc现在运行nvcc --version应该可以显示CUDA编译器版本了。4. 安装Python环境与PyTorchOFA模型基于PyTorch框架所以我们需要配置Python环境。推荐使用Miniconda来管理Python环境可以避免系统Python环境的混乱。# 下载Miniconda安装脚本以Linux 64位为例 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh # 运行安装脚本 bash Miniconda3-latest-Linux-x86_64.sh安装过程中按照提示操作建议将conda初始化到你的bash中。安装完成后关闭并重新打开终端或者执行source ~/.bashrc。创建一个专用于OFA的conda环境并安装Python 3.8一个比较兼容的版本conda create -n ofa python3.8 -y conda activate ofa接下来安装PyTorch。请务必根据你是否有CUDA来选择合适的命令。如果你成功配置了CUDA情况二去PyTorch官网获取安装命令。例如对于CUDA 11.8pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118如果你只使用CPU情况一安装CPU版本的PyTorchpip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu安装完成后可以验证一下python -c import torch; print(torch.__version__); print(CUDA available:, torch.cuda.is_available())如果配置了GPU这里应该会打印出版本号和CUDA available: True。5. 部署并运行OFA模型环境终于准备好了现在让我们把OFA模型请出来。首先安装OFA模型库和一些必要的依赖pip install ofa pip install transformers pip install sentencepiece # 用于分词 pip install pycocotools # 如果需要用COCO数据集相关功能现在让我们写一个最简单的脚本来测试OFA模型的核心功能——图文对话。创建一个文件叫test_ofa.pyimport torch from ofa import OFATokenizer, OFAModel from PIL import Image import requests from io import BytesIO # 1. 加载模型和分词器 # 使用OFA-Sys/ofa-base作为基础模型它能力比较均衡 model_name OFA-Sys/ofa-base tokenizer OFATokenizer.from_pretrained(model_name) model OFAModel.from_pretrained(model_name, use_cacheFalse) # 将模型设置为评估模式并放到正确的设备上GPU或CPU device torch.device(cuda if torch.cuda.is_available() else cpu) model.to(device) model.eval() # 2. 准备一张示例图片这里用一张猫的图片URL你也可以替换成本地路径 img_url https://images.unsplash.com/photo-1514888286974-6d03bde4ba42?ixlibrb-4.0.3autoformatfitcropw500q80 response requests.get(img_url) image Image.open(BytesIO(response.content)).convert(RGB) # 3. 构建一个图文对话的指令 # OFA的输入格式是指令 图片 文本可选 question 这张图片里有什么 input_text f{question}? # 4. 对输入进行编码 inputs tokenizer(input_text, return_tensorspt).input_ids patch_resolution 16 # 将图片处理成模型需要的格式 patch_img torch.stack([model.patch_resize_transform(image)]) # 将数据送到设备上 inputs inputs.to(device) patch_img patch_img.to(device) # 5. 生成回答 with torch.no_grad(): # 推理时不计算梯度节省内存 # 生成输出序列 outputs model.generate(inputs, patch_imagespatch_img, num_beams5, no_repeat_ngram_size3) # 6. 解码输出 answer tokenizer.batch_decode(outputs, skip_special_tokensTrue) print(f问题{question}) print(f模型的回答{answer[0]})运行这个脚本python test_ofa.py如果一切顺利你会看到终端输出模型对图片内容的描述比如“一只猫”或者更详细的句子。恭喜你OFA模型已经在你的VMware虚拟机里成功跑起来了第一次运行时会下载模型权重文件可能需要一些时间请保持网络通畅。6. 总结与后续建议走完这一整套流程相信你对在虚拟机里配置深度学习环境有了更深的体会。虚拟机环境最大的好处就是隔离性和可复用性你可以在里面大胆尝试各种配置和库而不用担心搞乱宿主机。配置好一个模板虚拟机后随时可以克隆出来用于新的项目。回顾一下整个流程的核心其实就三步搭好虚拟机系统、搞定显卡驱动和CUDA如果想用GPU、安装Python和模型依赖。其中GPU直通那部分可能是最花时间的需要宿主机硬件和VMware配置的支持。如果遇到问题多查查VMware和NVIDIA关于vGPU的官方文档和社区讨论通常都能找到解决方案。对于后续的使用我有几个小建议 一是可以尝试OFA的其他任务比如图片描述生成、视觉问答、图片标题生成等官方仓库里有很多示例代码。 二是注意虚拟机的资源分配跑大模型时内存和CPU占用会很高如果感觉卡顿可以适当在VMware设置里给虚拟机分配更多资源。 三是考虑定期为你的虚拟机创建“快照”尤其是在安装重要软件或配置复杂环境之前。这样一旦操作失误可以瞬间回滚到之前的状态非常方便。总之在本地用虚拟机搭建AI开发环境是一个平衡了灵活性、成本和控制权的折中方案。虽然性能可能比不上纯物理机但对于学习、测试和中小规模的原型开发来说已经完全够用了。希望这篇详细的指南能帮你顺利搭建起自己的“口袋里的AI实验室”。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章