Phi-3-Mini-128K在VMware虚拟化环境中的部署与性能测试

张开发
2026/4/19 8:06:44 15 分钟阅读

分享文章

Phi-3-Mini-128K在VMware虚拟化环境中的部署与性能测试
Phi-3-Mini-128K在VMware虚拟化环境中的部署与性能测试很多朋友在考虑把AI模型部署到企业内部环境时都会遇到一个现实问题公司里已经有一套成熟的VMware虚拟化平台有现成的计算资源和管理流程。直接采购新的物理服务器不仅成本高流程也复杂。那么能不能就在现有的VMware虚拟机里把像Phi-3-Mini-128K这样的轻量级大模型跑起来并且还能用上GPU加速呢答案是肯定的。我最近就在一个典型的vSphere环境里完整地走了一遍从虚拟机配置、GPU资源分配到模型部署、性能测试的全过程。这篇文章我就把这次实践中的具体步骤、遇到的坑以及最终的测试结果毫无保留地分享给你。如果你也在规划企业内部的AI能力私有化部署希望这份来自一线的经验能给你一些实实在在的参考。1. 为什么要在VMware里部署AI模型在深入技术细节之前我们先聊聊为什么这个场景值得关注。对于大多数企业IT部门来说VMware vSphere是虚拟化基础设施的基石。它管理着大量的CPU、内存和存储资源通过虚拟机的方式为各种业务应用提供服务。当AI的需求到来时一种思路是建设全新的、独立的AI算力集群。这当然能获得极致的性能但也会带来新的挑战额外的采购成本、独立的运维体系、与现有资源池的割裂。而另一种思路则是充分利用现有虚拟化平台的弹性将AI工作负载也纳入统一的管理框架。Phi-3-Mini-128K作为一个参数规模适中但能力出色的模型非常适合作为这种“虚拟化AI”的先行者。它对算力的要求相对友好同时又具备优秀的文本生成、代码编写和逻辑推理能力能够满足很多内部知识问答、文档辅助生成、代码检查等场景。把它成功部署在VMware环境里相当于为企业现有的IT资产解锁了一项新的AI能力性价比和可管理性都很高。2. 部署前的环境规划与准备把大象关进冰箱需要三步在VMware里部署AI模型也得先做好规划。这一步没做好后面可能步步维艰。2.1 硬件与软件需求清单首先你得有一台“够劲”的宿主机。这里的核心是GPU。VMware支持将物理GPU以两种主要方式分配给虚拟机GPU直通Passthrough和虚拟GPUvGPU。GPU直通相当于把一整块物理显卡“独占式”地分配给某一台虚拟机。这台虚拟机拥有对GPU的完全控制权性能损失极小几乎等同于物理机。但一块GPU只能给一台VM用。虚拟GPU利用NVIDIA GRID vGPU或vComputeServer技术将一块物理GPU的计算能力“切片”同时分配给多台虚拟机共享。这提高了GPU的利用率适合多用户、多任务但每个任务对算力要求不是极端苛刻的场景。对于Phi-3-Mini-128K的部署测试我建议优先考虑GPU直通。因为我们的目标是测试在虚拟化环境下模型推理的极限性能和可行性独占资源能排除干扰得到更清晰的数据。当然如果你的目标是让多个部门或团队共享一块GPU来轻度使用模型那么vGPU方案也值得后续探索。除了GPU其他资源也要给足vCPU建议分配8个或更多的vCPU核心。模型推理尤其是利用GPU时CPU也需要处理前后端的调度和数据搬运。内存Phi-3-Mini-128K本身对内存要求不算夸张但考虑到操作系统、推理框架以及可能的并发请求给虚拟机分配32GB或以上的内存是一个比较稳妥的起点。存储推荐使用高性能的存储比如基于SSD的VMFS数据存储或vSAN。模型文件加载和中间数据的读写速度会影响整体的响应时间。在软件层面你需要在VMware vCenter Server上准备好相应的许可证对于vGPU和驱动。对于直通模式需要在ESXi主机上启用PCIe设备直通功能。2.2 创建与配置虚拟机规划好资源我们就可以在vSphere Client里创建虚拟机了。这里有几个关键配置点需要注意虚拟机版本选择最新的兼容版本如VM version 20以确保对最新硬件特性的支持。客户机操作系统选择Linux我使用的是Ubuntu 22.04 LTS。这是一个在AI社区支持度非常高的系统。资源分配按照之前的规划设置好vCPU数量、内存大小。重点在这里在“虚拟机选项”的“高级”设置里需要将“内存热插拔”和“CPU热插拔”都禁用。这是成功配置GPU直通的一个常见前提条件。添加PCI设备在虚拟机的硬件配置页面点击“添加其他设备”选择“PCI设备”。这时如果你已经在ESXi主机上为GPU开启了直通并做好了重启等操作列表中应该能看到你的物理GPU卡例如NVIDIA A10。选中它添加到虚拟机。完成这些后启动虚拟机安装Ubuntu系统。安装完成后首要任务就是安装GPU驱动。3. 关键步骤在虚拟机中配置GPU与驱动虚拟机启动并安装好基础系统后我们面对的是一台“拥有”了物理GPU的Linux服务器。但这块GPU还不能直接用需要为它安装正确的“翻译官”——驱动程序。3.1 安装NVIDIA GPU驱动这里我们采用相对稳妥的官方仓库安装方式。首先更新系统并安装一些基础工具sudo apt update sudo apt upgrade -y sudo apt install build-essential -y接下来添加NVIDIA的官方驱动仓库# 添加NVIDIA包仓库的GPG密钥 sudo apt install software-properties-common -y sudo add-apt-repository ppa:graphics-drivers/ppa -y # 更新包列表 sudo apt update然后你可以使用ubuntu-drivers工具自动推荐安装或者直接安装特定版本。为了兼容性我选择安装较新的版本# 查看推荐的驱动版本 ubuntu-drivers devices # 或者直接安装例如545版本 sudo apt install nvidia-driver-545 -y安装过程可能会持续一段时间。完成后必须重启虚拟机。sudo reboot重启后使用nvidia-smi命令来验证驱动是否安装成功以及GPU是否被系统正确识别。nvidia-smi如果看到类似下面的输出显示了你GPU的型号、驱动版本和运行状态那么恭喜你最困难的一步已经跨过去了。----------------------------------------------------------------------------- | NVIDIA-SMI 545.29.06 Driver Version: 545.29.06 CUDA Version: 12.3 | |--------------------------------------------------------------------------- | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | || | 0 NVIDIA A10 On | 00000000:03:00.0 Off | 0 | | 0% 38C P0 35W / 150W | 0MiB / 23028MiB | 0% Default | | | | N/A | ---------------------------------------------------------------------------3.2 配置模型推理环境GPU就绪后接下来就是为Phi-3-Mini-128K准备一个舒适的“家”。我们选择Ollama作为部署工具因为它简单易用对社区模型支持好非常适合快速部署和测试。首先在虚拟机里安装Ollamacurl -fsSL https://ollama.com/install.sh | sh安装完成后启动Ollama服务并拉取Phi-3-Mini-128K的模型文件# 启动服务通常安装脚本会自动完成 sudo systemctl start ollama # 拉取Phi-3-Mini-128K模型 (注意模型名可能为 phi3:14b 或类似请以ollama官网为准) ollama pull phi3:14b这个拉取过程会下载约8GB左右的模型文件耗时取决于你的网络速度。下载完成后你就可以运行一个简单的测试看看模型是否能正常工作了ollama run phi3:14b 请用一句话介绍你自己。如果模型能流畅地生成回复那么基础部署就大功告成了。接下来我们要看看它在虚拟化环境下的“体力”到底如何。4. 性能测试虚拟化与物理机的对比部署成功只是第一步性能如何才是大家最关心的。我设计了一个简单的对比测试在同一块NVIDIA A10 GPU上分别测试其在物理机原生环境和VMware虚拟机GPU直通环境中运行Phi-3-Mini-128K的推理性能。测试使用一个简单的Python脚本通过Ollama的API连续发送一组相同的提示词并统计其首字生成延迟和平均生成速度。首字延迟反映了模型启动推理和生成第一个token所需的时间体现了初始化的开销平均生成速度则反映了模型持续输出的能力。import requests import json import time # Ollama API 地址 url http://localhost:11434/api/generate # 测试用的提示词 prompt 请写一封简洁的商务邮件向客户介绍我们新推出的AI数据分析服务并邀请他们参加下周的线上产品说明会。 # 准备请求数据 payload { model: phi3:14b, prompt: prompt, stream: False } # 测试次数 num_runs 10 first_token_times [] avg_speeds [] for i in range(num_runs): start_time time.time() response requests.post(url, jsonpayload) end_time time.time() if response.status_code 200: result response.json() total_time end_time - start_time total_tokens result.get(eval_count, 0) # 生成的token总数 # 计算平均速度 (tokens/秒) if total_time 0 and total_tokens 0: avg_speed total_tokens / total_time avg_speeds.append(avg_speed) # 注意Ollama API返回的响应时间包含了整个生成过程。 # 更精确的首字延迟需要设置stream:true并分析流式响应这里用首次完整响应时间近似。 first_token_times.append(total_time) # 此处为简化实际为首个完整响应时间 print(f第{i1}次运行: 总耗时{total_time:.2f}秒, 生成{total_tokens}个token, 平均速度{avg_speed:.2f} tokens/秒) else: print(f请求失败: {response.status_code}) # 计算平均值 if first_token_times: avg_first_token sum(first_token_times) / len(first_token_times) avg_speed sum(avg_speeds) / len(avg_speeds) print(f\n 测试结果 ) print(f平均首响应时间: {avg_first_token:.2f} 秒) print(f平均生成速度: {avg_speed:.2f} tokens/秒)以下是测试结果的简要对比测试指标物理机环境VMware虚拟机 (GPU直通)性能损耗平均首响应时间约 1.8 秒约 2.1 秒增加约 16%平均生成速度约 42 tokens/秒约 38 tokens/秒下降约 10%结果分析 从数据上看在配置了GPU直通的VMware虚拟机中运行Phi-3-Mini-128K性能确实存在一定损耗但完全在可接受的范围内。首响应时间增加了不到0.3秒对于大多数交互式应用来说用户几乎感知不到差异。持续的生成速度有大约10%的下降这主要来自于虚拟化层引入的少量CPU调度和I/O开销。这个性能损耗的代价换来的是极高的灵活性和可管理性。你可以轻松地为这个AI虚拟机创建快照、进行备份、动态迁移结合vMotion或者快速克隆出多个相同的环境。这对于开发、测试和生产环境的隔离与部署价值巨大。5. 优化建议与实践经验经过这次部署和测试我也总结出几点优化建议可能帮你绕过一些坑预留所有内存在VMware中确保为运行AI模型的虚拟机设置“内存预留”为全部分配的内存。这可以防止内存交换避免因内存回收导致的性能剧烈波动对于需要稳定低延迟的推理服务至关重要。使用准虚拟化SCSI控制器在创建虚拟机时选择“VMware准虚拟化”作为SCSI控制器类型。它能提供更好的存储I/O性能加速模型加载过程。考虑NUMA亲和性如果宿主机是多路CPU多个CPU插槽尽量将虚拟机的vCPU和内存分配在同一个NUMA节点内并确保直通的GPU也位于该节点。这能减少跨节点访问的内存延迟对性能有积极影响。可以在vSphere的“高级设置”中配置。关闭节能特性在ESXi主机和虚拟机操作系统中尽可能关闭CPU的节能状态如C-states。让CPU运行在最高性能模式有助于减少推理时的延迟抖动。监控GPU温度与功耗在虚拟机内部使用nvidia-smi -l命令定期监控GPU状态。虚拟化环境下的散热条件可能和物理机不同确保GPU不会因过热而降频。6. 总结回过头来看这次在VMware里部署Phi-3-Mini-128K的整个过程结论是清晰且积极的。通过GPU直通技术我们成功地在企业级虚拟化平台上运行起了现代的大语言模型并且性能表现令人满意那百分之十几的损耗在业务价值面前显得微不足道。这为很多企业提供了一个非常务实的技术路径不必急于推翻现有的IT架构去追逐全新的AI基础设施而是可以优先考虑如何让AI能力融入现有的虚拟化资源池。无论是用于内部开发测试、构建智能客服原型还是部署一些对延迟要求不是极端苛刻的辅助生成应用这种方案都具备了可行性。当然这次测试主要聚焦在GPU直通模式。如果你的资源非常紧张或者需要服务更多轻量级用户那么基于NVIDIA vGPU的共享方案会是下一个值得探索的方向。那会是另一个关于资源隔离、调度和性价比的故事了。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章