Phi-3 一键部署脚本
win系统脚本跑起本地 Phi-3 大模型
作者:Hinataiko · 脚本版本 v2.0.0
适用平台:Windows 10(4 核 8 GB 内存及以上)
如果你手里有一台配置一般的 Windows 机器,也想搭一个本地大模型服务,不用折腾。这篇文章讲的是一套自动部署脚本,它把 Phi-3-mini(3.8B 参数)从下载、装环境、起服务到开机自启,全部封装成一条命令。
我在一台实际只有 2 核 2.1GHz、8 GB 内存的 Windows 虚拟机上把整套流程跑通过,下面的数据和经验都来自这轮真实部署。
脚本解决什么问题
在 Windows 上部署本地模型,卡人的通常是这么几件事:
- 下载要翻墙。Hugging Face 在国内基本连不上,而国产模型仓库常常不完整或没人维护。
- 环境一团乱。装 Python、装依赖、下二进制、配路径,任何一步断网都要从头再来。
- 服务不听话。命令行里能跑,一关窗口就没了;电脑重启又要手动启。
- 速度难受。3.8B 模型在 CPU 上本来就不快,如果再配错参数,会更糟。
这套脚本把这些痛点一次性的处理掉了。
脚本怎么帮你
核心逻辑分成 8 段,按顺序执行,每一步失败都不中断脚本,而是记录错误、允许你修好网络后重跑续传:
- 校验管理员权限
- 检测 / 安装 Python3 与
modelscope - 从 ModelScope(阿里国内源) 下载
Phi-3-mini-4k-instruct的 Q4_K_M 量化版,全程不走 Hugging Face - 下载并解压
llama.cpp的 Windows 预编译包 - 用
llama-server拉起 OpenAI 兼容的 HTTP 服务 - 注册为 Windows 服务,开机自启 + 崩溃自动重启
- 开放防火墙,让局域网其他设备也能访问
- 打印
curl和Python的调用示例,并生成可直接运行的示例文件
服务监听 8080 端口,自带 API Key,兼容绝大多数 ChatGPT 类前端工具。
快速开始
下载脚本: 点击这里下载 deploy-phi3-2.0.0.ps1(123 云盘)
拿到脚本后,右键 → 用管理员身份打开 PowerShell,然后执行:
powershell -ExecutionPolicy Bypass -File .\deploy-phi3.ps1脚本会自己判断缺少什么、装什么。全程断点续传、可重复执行,中途断网关机都不怕,重新跑一遍会从断的地方继续。
跑完浏览器打开 http://localhost:8080 就能看到内置聊天界面(API Key 在部署日志里有输出)。
下载方面的取舍
这是我踩过最深的坑,值得单独说。
同一个模型在 ModelScope 上可能有多个同名仓库,有的 api 里根本查不到,白等。我最终固定的仓库是 OllmOne/Phi-3-mini-4k-instruct-gguf,其中的 Phi-3-mini-4k-instruct-q4.gguf 正是 Q4_K_M 量化档,体积 2.16 GB,是 4 核 8G 机器上最均衡的选择——模型够小,推理不至于慢到没法用,中文效果也还过得去。
为了稳,下载做了三级兜底:
- 优先用
modelscope snapshot_download(Python 官方 SDK,支持增量续传) - 失败则切换
git lfs clone - 再不行就用
curl -C -直接挑resolve直链断点续传
llama.cpp 的预编译包也设计了版本回扫:官方个别版本会缺失 Windows 资产,脚本自动向后探测最近 10 个版本,找不到再落到固定兜底版本。
关于速度,说实话
这部分我讲实在的,不给虚的期望。
脚本默认开启了这套参数组合,是基于 llama-bench 实测选出来的:
| 参数 | 实测生成速度 |
|---|---|
| 默认(无优化) | 1.78 tokens/s |
--flash-attn on | 2.05 tokens/s(约 +15%) |
加了 --threads 2 | 1.70 tokens/s(反而更慢,不如 4) |
加 KV 量化 q8_0 | 1.47 tokens/s(反而降 28%,弃用) |
结论:打开 Flash Attention、线程用满,是最优解。但这台机器是 2 核 2.1GHz,3.8B 模型的 CPU 物理上限就在 2 tokens/s 左右,参数层面已经榨干了。
所以脚本同时做了另两件事来改善体验:
- 修掉了官方新版默认的
--parallel 4陷阱。新版llama.cpp默认开 4 个槽位,会把 KV cache 撑到 16K,在 8 GB 机器上白白多占约 1.5 GB,接近崩溃边缘。脚本强制--parallel 1,把内存压回健康水平。 - 内置聊天界面走流式输出,配合前端边生成边显示,观感接近正常打字速度,比一次性等完整回复舒服得多。
如果你觉得 2 tokens/s 还是太慢,有两个更优解:换更小的模型(比如 1.5B 档,约 5–8 tokens/s),或者加一张显卡。想用哪个,脚本稍作修改即可。
接入其他 AI 工具
服务就绪后,它就是标准的 OpenAI 兼容接口。填入:
- Base URL:
http://<服务器IP>:8080/v1 - API Key:部署时你在脚本里配的那个(默认
sk-autodeploy-2026) - 模型名:
phi-3-mini-4k-instruct(也可留空,服务端会用默认模型)
随便挑一种语言的示例:
# curl
curl -X POST "http://SERVER-IP:8080/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-autodeploy-2026" \
-d '{"model":"phi-3-mini-4k-instruct","messages":[{"role":"user","content":"你好"}],"max_tokens":100}'# Python requests
import requests
r = requests.post(
"http://SERVER-IP:8080/v1/chat/completions",
headers={"Authorization": "Bearer sk-autodeploy-2026"},
json={"model": "phi-3-mini-4k-instruct",
"messages": [{"role": "user", "content": "你好"}],
"max_tokens": 100},
timeout=300,
)
print(r.json()["choices"][0]["message"]["content"])具体地址、Key、示例文件,脚本跑完都会打印并保存到本地 examples 目录,直接照着用即可。
常见问题
Q:脚本提示需要以管理员身份运行
A:脚本第一步就校验权限,非管理员直接退出。这是为了能注册 Windows 服务和改防火墙,属正常设计。
Q:部署目录只有 C 盘,没有 D 盘
A:脚本本来默认装到 D:\phi-model,检测到 D 盘不存在时,会自动回退到当前用户目录下的 phi3-deploy,不会报错。
Q:启动后进程崩溃,日志里有 ACCESS_VIOLATION
A:多半是系统的 VC++ 运行库版本太老(llama.cpp 新版编译要求 v14.44+)。脚本第三步会自动检测并安装 VC++ Redistributable 2015–2022,装完重启服务即可。
Q:中途断网 / 关机,重新跑会重复下载吗
A:不会。模型文件已存在且体积校验通过就跳过,snapshot_download 和 curl -C - 本身都支持断点续传;服务注册和防火墙规则也是先查再建,全程幂等。
Q:局域网其他电脑访问不了
A:先确认开了防火墙对应端口,再确认对方和服务器在同一网段。若要通过公网访问,需要额外配内网穿透(比如 Cloudflare Tunnel),本脚本不含该功能。
Q:想接入公司/团队的多个成员,怎么管理 Key
A:当前脚本生成一个全局 API Key。若要做多 Key 分发、按人计量用量,可在服务前面加一层网关,把用量写入 SQLite,按 Key 统计、可单独吊销——这是脚本之外的另一套部署,需要的话可单独写。
版本记录
- v2.0.0(当前)修复 Windows PowerShell 中文解析、D 盘回退、VC++ 运行库、llama.cpp 版本回扫、模型三级兜底下载、断点续传、幂等重装、推理参数实测优化。
- 初版:ModelScope 源 +
llama-server+ Windows 服务化。
想用一个命令,在一台闲置的 Windows 机器上拥有自己的本地 AI,直接下载脚本跑一遍即可:
下载 deploy-phi3-2.0.0.ps1 → 123 云盘链接
遇到问题,欢迎在评论区留言(脚本带完整中文注释,也直接改)。脚本仅供个人学习与部署使用,模型版权归原作者 Microsoft 所有。
已有 3 条评论
正好想在自己老电脑上跑个本地模型,这个一键脚本太省心了,收藏了
最佩服的是那个断点续传的思路,国内下模型下载一半断网真的太常见了,这个设计很贴心
那个 8GB 内存的坑点出来真的救命,我自己就是差点被 KV cache 撑爆,早点看到就好了