news 2026/9/26 4:14:30

Ollama :大模型本地部署与轻量化优化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ollama :大模型本地部署与轻量化优化

实操:可直接看四、九(文中地址均为作者的本地地址 实际目录地址自行选择)

本文档以《Ollama笔记.md》为内容大纲基准,参考《课程一:基于 Ollama 的大模型本地部署与轻量化优化(2 小时体验课讲义)》补充操作细节。 本机地址约定:Ollama 安装目录C:\Users\20334\AppData\Local\Programs\Ollama;llama.cpp 源码目录D:\develop\llama.cpp-master。

目录

一、Ollama 下载

二、Ollama 介绍

2.1 什么是 Ollama?

2.2 为什么要做大模型本地部署?

2.3 轻量化原理简述

三、Ollama 常用命令

四、部署、调用某一模型的操作全流程

4.1 安装 Ollama

Windows 系统

MacOS 系统

Linux 系统

环境验证(必做)

4.2 一键部署模型

4.3 调用方式一:终端交互式调用

4.4 调用方式二:本地 HTTP API 调用(程序对接必备)

4.5 调用方式三:Python 代码调用(开发实操)

4.6 调用方式四:可视化 Web 界面调用(Open WebUI)

五、启用 1 个或多个模型的介绍

5.1 核心认知

5.2 同一个终端执行多条 ollama run

场景一:串行输入 → 单模型,自动卸载前一个

场景二:同终端后台并行 → 多模型常驻

5.3 多模型并存的资源后果

纯 CPU 环境(多开不管的后果)

有 N 卡 GPU 环境(多开不管的后果)

5.4 只跑 Python 代码的场景

5.5 最简总结

六、模型驻留时间的配置说明、配置优先级说明

6.1 控制资源的核心配置

6.2 配套实操命令

6.3 配置优先级说明

七、Opencode 接本地模型的方法说明

八、精度说明

8.1 模型精度基础

8.2 量化类型对照(GGUF 格式)

8.3 多精度量化版本一键切换

九、下载模型后量化操作说明完整操作步骤

9.1 核心准备工作

9.2 步骤 1:安装 Python 依赖

9.3 步骤 2:下载 llama.cpp 转换工具

9.4 步骤 3:放置下载好的模型

9.5 步骤 4:将模型转为 FP16 GGUF 基础格式

9.6 步骤 5:INT4 量化(CPU 最优,Ollama 推荐)

9.7 步骤 6:编写 Ollama Modelfile 配置文件

9.8 步骤 7:导入模型到 Ollama

9.9 量化部署常见问题(Windows 专用)

9.10 完整流程总结

附录:常见问题排查(讲义补充)

附录:课程核心命令汇总(讲义补充)


一、Ollama 下载

官方下载地址:Ollama

国内镜像地址: Ollama - Ollama 框架

安装完成后,本机 Ollama 程序位于:C:\Users\20334\AppData\Local\Programs\Ollama

Ollama 安装后默认以后台服务形式常驻本地,监听11434端口,模型文件默认存储在C:\Users\20334\.ollama\models。

models 目录下就两个子文件夹,作用如下:

文件夹作用
blobs模型实际数据仓库。所有内容以 sha256-<哈希> 命名(内容寻址),包括模型权重、分词器、模板等 layer 数据。同一份数据可被多个模型共享引用,实现去重
manifests模型清单。按 registry.ollama.ai\library<模型名><标签> 组织,每个 .json 记录该模型由哪些 blob 组成(digest、大小、类型),把"模型名"映射到"blob 集合"
  • blobs:数据文件(GGUF 权重 + tokenizer + 模板等)

  • manifests:模型条目 —— 拉取/导入的模型

简单理解:manifests 是目录索引(记录"xxx模型 = 哪几个文件"),blobs 是实际文件仓库。两者配合,ollama 才能用 ollama run 模型名 快速定位并加载模型。


二、Ollama 介绍

2.1 什么是 Ollama?

Ollama 是一款开源、轻量、跨平台的大模型本地部署工具,主打极简操作:

  • 无需复杂配置环境,一条命令即可完成模型的下载、部署、运行、调用;

  • 完美适配新手入门;

  • 支持主流开源轻量化模型(Qwen、Llama、Hermes 等);

  • 支持本地私有微调模型自定义导入部署;

  • 内置 OpenAI 兼容 API 端点(http://localhost:11434/v1),方便程序与各类客户端对接。

2.2 为什么要做大模型本地部署?

云端部署痛点本地部署优势
依赖网络,断网即不可用离线可用,部署完成后无需联网
输入内容需上传云端,有隐私风险隐私安全,对话数据仅在本地运行
有调用次数限制与 API 费用低成本无限制,无调用费用、无次数限制
难以自由调试可定制优化,支持轻量化、参数调优、私有模型落地

2.3 轻量化原理简述

原生大模型参数规模庞大(数十亿、上百亿参数),文件体积可达几十 GB 甚至上百 GB,普通个人电脑无法直接运行。轻量化优化指在基本不损失模型效果的前提下,压缩模型体积、降低内存与算力占用。

三大模型压缩技术:

  • 量化(核心):降低参数数值精度(FP32/FP16 → INT8/INT4),大幅缩小体积、提升推理速度;

  • 剪枝:剔除网络中贡献小的冗余权重、神经元或通道,精简网络结构;

  • 知识蒸馏:用高精度大模型(教师)的输出知识训练轻量化小模型(学生)。


三、Ollama 常用命令

# 查看版本号(验证安装是否成功) ollama --version ​ # 拉取(下载)模型 ollama pull 模型名 ​ # 运行模型(未下载则自动下载,下载后自动加载并进入 >>> 交互对话) ⭐⭐⭐⭐⭐ ollama run 模型名 ​ # 查看已安装的模型列表 ollama list ​ # 查看当前正在运行的模型 ollama ps ​ # 停止指定模型的运行(释放内存/显存资源) ollama stop 模型名 ​ # 删除模型(释放磁盘空间) ollama rm 模型名 ​ # 用 Modelfile 创建自定义模型(用于参数调优、导入 GGUF 模型) ollama create 自定义模型名 -f Modelfile ​ # 手动启动后台服务(默认常驻,一般无需执行) ollama serve

四、部署、调用某一模型的操作全流程

以模型Qwen1.5-0.5B-Chat(Ollama 库 tag:qwen:0.5b)为例,走通"安装 → 部署 → 四种方式调用"全流程。

4.1 安装 Ollama

Windows 系统
  1. 打开官网 Ollama ,点击Download for Windows下载安装包;

  2. 双击 exe 安装包,默认路径安装即可(本机默认安装目录:C:\Users\20334\AppData\Local\Programs\Ollama);

  3. 安装完成后,系统自动启动 Ollama 后台服务。

MacOS 系统
  1. 官网下载Download for macOS的 dmg 安装包;

  2. 将 Ollama 拖入"应用程序",打开即可自动配置环境。

Linux 系统

终端输入一键安装命令:

curl -fsSL https://ollama.com/install.sh | sh
环境验证是否安装成功(必做):终端输入
ollama --version

输出版本号即安装成功;若提示"不是内部命令",重启终端或重新安装(Windows 需确认安装时已添加环境变量)。

4.2 一键部署模型

# 第一步:先拉取模型(约 500MB,体积极小、下载极快) ollama pull qwen:0.5b ​ # 第二步:运行模型(自动加载并进入交互对话) ollama run qwen:0.5b

部署过程说明:

  1. 首次运行会自动下载模型文件(约 500MB);

  2. 下载完成后自动加载模型,终端出现>>>交互提示符即部署成功;

  3. 全程无需手动配置环境、无需显卡,CPU 自动调度运行。

拉取机制说明:

拉取的是Ollama 官方模型库(Library)中存在的模型,你可以在 ollama.com/search 搜索到有哪些模型

  1. ollama pull 实际下载地址不是网页本身,而是 Ollama 的模型注册中心(registry),默认从 registry.ollama.ai 拉取镜像文件(GGUF 格式)。网页只是模型目录/文档页,命令走的是 registry 下载通道。

  2. 国内网络可换镜像源:如果你直接 pull 速度慢或失败,可以配置国内镜像 https://ollama.ac.cn(讲义中也提到过该地址),例如:

:: 设置镜像源后重新拉取 set OLLAMA_HOST=https://ollama.ac.cn ollama pull qwen:0.5b

或者通过修改注册表/环境变量指向镜像地址,之后再 ollama pull 就能加速下载。

所以流程是:网页负责"选模型、看说明",ollama pull 负责"从 registry 下载",两者对应同一个模型库。

4.3 调用方式一:终端交互式调用

模型启动后出现>>>提示符,直接输入问题即可对话:

>>> 你好,请介绍一下本地大模型部署 >>> 写一段AI课程学习心得 >>> 解释模型量化的作用

退出对话命令:/bye

4.4 调用方式二:本地 HTTP API 调用(程序对接必备)

Ollama 安装后默认常驻本地服务http://localhost:11434,支持离线 API 调用。

# 生成接口测试(Windows 下 curl 需转义双引号) curl http://localhost:11434/api/generate -d "{\"model\":\"qwen:0.5b\",\"prompt\":\"写一句AI课程欢迎语\",\"stream\":false}" ​ # 查看本地所有已安装模型的 API 列表 curl http://localhost:11434/api/tags

4.5 调用方式三:Python 代码调用(开发实操)

先安装依赖:

pip install requests

完整可运行代码:

import requests ​ # 本地Ollama接口地址 url = "http://localhost:11434/api/generate" ​ # 请求参数配置j data = { "model": "qwen:0.5b", "prompt": "请简单介绍Ollama本地部署的优势", "stream": False } ​ # 发送请求并获取结果 response = requests.post(url, json=data) result = response.json() ​ # 打印AI回复 print("AI回复:", result["response"])

4.6 调用方式四:可视化 Web 界面调用(Open WebUI)

通过 Open WebUI 搭建类 ChatGPT 网页界面,操作更直观。

操作顺序:启动 Docker Desktop →ollama run qwen:0.5b→ WebUI 起服务。

# 官方镜像一键部署 docker run -d -p 3000:3000 --name open-webui ghcr.io/open-webui/open-webui:main ​ # 南大镜像(国内网络更稳定) docker run -d -p 3000:3000 --name open-webui ghcr.nju.edu.cn/open-webui/open-webui:main

浏览器访问http://localhost:3000,自动关联本地 Ollama 所有模型。


五、启用 1 个或多个模型的介绍

5.1 核心认知

Ollama 是单服务进程(11434 端口全局共用)。不管开几个终端,底层都是共用同一套 Ollama 后台调度,只分两种用法:

  • ollama run 模型名(交互式对话);

  • Python/代码调用 API(自动按需加载模型)。

5.2 同一个终端执行多条ollama run

场景一:串行输入 → 单模型,自动卸载前一个
ollama run qwen:0.5b :: 退出对话(/bye)之后,再输入 ollama run llama3:1b
  • 原理:交互式 run 独占终端会话,前一个模型退出才释放,再加载新模型;

  • 资源后果:同一时间内存/显存永远只存 1 个模型,无爆内存风险。

场景二:同终端后台并行 → 多模型常驻
:: Windows:cmd 用 start /b 后台启动 start /b ollama run qwen:0.5b start /b ollama run llama3:1b ​ :: Linux/macOS:用 & 后台运行 ollama run qwen:0.5b & ollama run llama3:1b &

此时两个模型同时加载进内存/显存,效果与开两个独立终端完全一致,ollama ps能查到两个运行中的模型。

5.3 多模型并存的资源后果

纯 CPU 环境(多开不管的后果)
  1. 所有模型占用物理内存 RAM,多个模型内存占用累加,无内存共享;

  2. 8G 内存机器开 3 个小模型 → 内存占满、系统疯狂读写虚拟内存、整机卡顿;

  3. 后续再调用新模型,Ollama 按LRU(最近最少使用)淘汰闲置最久的模型,导致频繁重载、首句推理几十秒;

  4. 代码 API 请求会排队、超时、内存报错。

有 N 卡 GPU 环境(多开不管的后果)
  1. 显存余量充足:全部载入显存,推理速度正常,显存持续被占用;

  2. 显存不够:新模型自动溢出到系统内存,一半 GPU 一半 CPU 混合推理,速度暴跌 5~20 倍;

  3. 显存彻底打满:OOM 报错,自动踢出闲置模型,下次调用重新加载;

  4. 若代码设置keep_alive: -1永久驻留,显存永久占用不自动释放,必须手动ollama stop。

5.4 只跑 Python 代码的场景

全程只在一个终端运行 Python 脚本时,不需要开ollama run,API 自动按需加载模型,这是最常用场景。

# 同一份代码反复换 model 名称、多脚本并发调用,全部共用 11434 服务 data = {"model": "qwen:0.5b", "keep_alive": "1m"} requests.post("http://localhost:11434/api/generate", json=data) ​ # 再改 model="llama3:1b" 再次请求,多个模型可同时驻留

默认规则(OLLAMA_MAX_LOADED_MODELS默认 = 3):后台自动缓存已调用模型,多次调用不同模型会同时驻留多个在内存/显存,不受终端数量限制,只受硬件 + 环境变量限制。

不做管控的后果:

  • CPU 端:反复切换多种模型全部常驻内存,RAM 逐步占满、系统变卡、swap 狂读;闲置超时(默认 5 分钟)才自动卸载,期间资源一直占用;

  • GPU 端:多模型全进显存,显存慢慢耗尽,后续新模型落 CPU 运行;若配置keep_alive: -1,模型永久挂在显存、永不自动释放,不手动 stop 永远占卡。

5.5 最简总结

  1. 同终端串行ollama run:永远单模型,无资源爆炸风险;

  2. 同终端后台并行 run / Python 频繁切换多 model:和多终端效果一致,多模型同占内存/显存;

  3. CPU 怕多开爆内存、GPU 怕多开爆显存,不管keep_alive=-1会永久锁资源;

  4. 稳妥方案:代码配keep_alive="1m"+ 启动脚本前设置OLLAMA_MAX_LOADED_MODELS=1。


六、模型驻留时间的配置说明、配置优先级说明

6.1 控制资源的核心配置

配置 1:keep_alive(代码内设置,优先级最高)

取值含义适用
0用完即清(立即释放)低配机推荐
1m闲置 1 分钟释放测试推荐
-1永久常驻(必须手动 stop)不推荐滥用

在 API 请求 JSON 中传入"keep_alive": "1m",可覆盖环境变量。

配置 2:OLLAMA_MAX_LOADED_MODELS(环境变量,全局管控并行加载数)

:: 全局最多同时加载 2 个模型,超出自动淘汰旧模型 set OLLAMA_MAX_LOADED_MODELS=2 python demo.py
  • 设=1:任何场景同一时间只保留 1 个模型,调用新模型自动卸载旧的,杜绝多开爆资源,低配电脑必加。

6.2 配套实操命令

:: 设置 1 分钟自动释放 set OLLAMA_KEEP_ALIVE=1m ​ :: 设置 5 分钟(恢复默认) set OLLAMA_KEEP_ALIVE=5m ​ :: 设置永久驻留(必须手动 stop) set OLLAMA_KEEP_ALIVE=-1 ​ :: 查看当前环境变量值 echo %OLLAMA_KEEP_ALIVE%

CPU 环境(无显卡)专用配置:

:: 最多同时加载1个模型 set OLLAMA_MAX_LOADED_MODELS=1 ​ :: 使用4个CPU线程 set OLLAMA_NUM_THREADS=4 ​ :: 强制禁用GPU set CUDA_VISIBLE_DEVICES=

GPU 环境(有 N 卡)专用配置:

:: 自动使用GPU(默认就是这个) set CUDA_VISIBLE_DEVICES=0 ​ :: 模型加载到显存,不占内存 set OLLAMA_GPU_LAYERS=99 ​ :: 最多同时加载2个模型 set OLLAMA_MAX_LOADED_MODELS=2

运行状态查看与资源释放:

# 查看当前常驻所有模型(不分终端来源) ollama ps ​ # 一键释放指定模型 ollama stop qwen:0.5b

6.3 配置优先级说明

代码内keep_alive> 环境变量OLLAMA_KEEP_ALIVE> 系统默认值(5 分钟)

配置层级生效范围优先级
API 请求中的keep_alive单次请求最高
OLLAMA_KEEP_ALIVE环境变量全局中
Ollama 内置默认(闲置 5 分钟自动卸载)兜底低
OLLAMA_MAX_LOADED_MODELS全局并行模型数量上限与驻留时间配置相互配合

七、Opencode 接本地模型的方法说明

Opencode 是 AI 编程终端工具,通过自定义 Provider 对接 Ollama 的 OpenAI 兼容端点(http://localhost:11434/v1)。

前置条件:

# 1. 确认 Ollama 服务运行中(默认端口 11434) # 2. 拉取一个代码模型(如 qwen2.5-coder) ollama pull qwen2.5-coder:14b ​ # 3. 验证 OpenAI 兼容端点可用 curl http://localhost:11434/v1/models # 期望返回 {"object":"list","data":[{"id":"qwen2.5-coder:14b",...}]}

配置文件位置:

  • 全局:%USERPROFILE%\.config\opencode\opencode.json(本机即C:\Users\20334\.config\opencode\opencode.json);

  • 项目级:当前项目根目录下的opencode.json(优先级更高);

  • 不确定时运行opencode debug paths查看。

核心 Provider 配置(在 opencode.json 中写入):

{ "$schema": "https://opencode.ai/config.json", "model": "ollama/qwen2.5-coder:14b", "provider": { "ollama": { "npm": "@ai-sdk/openai-compatible", "name": "Ollama (local)", "options": { "baseURL": "http://localhost:11434/v1" }, "models": { "qwen2.5-coder:14b": { "name": "Qwen2.5 Coder 14B (local)" } } } } }

关键字段说明:

字段说明
ollamaProvider ID,需与model字段的ollama/前缀一致
npm适配器包,固定为@ai-sdk/openai-compatible
options.baseURL本地端点,必须以/v1结尾(漏掉会 404)
models模型 ID 映射,key 必须与ollama pull的模型名完全一致

验证生效:

  1. 保存配置后完全退出并重启Opencode;

  2. 在 Opencode 内执行/models;

  3. 看到Ollama (local)分类下的本地模型即可选中对话。

常见排错:

  • /connect中没有本地选项属正常:本地 Ollama 不走 API key,必须在opencode.json中声明 provider;

  • 404/连不上:确认baseURL以/v1结尾、Ollama 正在运行;

  • 工具调用不稳定:本地模型上下文过小,可用 Modelfile 将num_ctx提高到 16k~32k 后重建模型。


八、精度说明

8.1 模型精度基础

量化原理是降低模型参数的数值精度:原生模型多为 FP16/FP32 高精度浮点存储,量化后转为 INT8/INT4 低精度存储,大幅缩小模型体积、提升推理速度。

精度体积速度精度表现适用场景
FP32(全精度)最大最慢最高服务器/显卡充足环境
FP16(半精度)大较慢很高原生模型常见格式
INT8 量化体积减半提升轻微损耗(日常无感知)通用均衡选择
INT4 量化体积压缩 75%大幅提升小幅损耗最适配普通 CPU 设备

8.2 量化类型对照(GGUF 格式)

量化类型体积速度精度用途
Q2_K极小最快较差极限压缩、仅演示
Q3_K_M极小最快一般超小模型、演示
Q4_K_M小快很好生产/教学首选
Q4_0小快较好最古老 4bit 量化,通用
Q5_K_M中较快优秀对话质量要求高
Q8_0大较慢极高近乎原生

量化等级/格式只是算法不同、精度不同、速度不同,同一模型可产出多个量化版本,按需选用。

8.3 多精度量化版本一键切换

Ollama 支持一键切换不同量化版本,根据电脑内存选择适配模型:

量化版本模型体积硬件要求特点
qwen1.5:0.5b-chat(原生版)500MB 左右4G 内存即可运行体积极小、秒级响应,满足基础 AI 对话需求
qwen1.5:0.5b-chat-q4_0(4 位量化)300MB 左右2G 及以上内存极致压缩、超低资源占用,老旧低配电脑专属优化
qwen1.5:0.5b-chat-q8_0(8 位量化)400MB 左右4G 及以上内存精度最优、几乎无效果损耗,流畅度与效果均衡

低配设备卡顿优化:

# 切换为极致轻量化 4 位量化版本 ollama run qwen1.5:0.5b-chat-q4_0

自定义轻量化参数调优(Modelfile):

新建无后缀文件modelfile,写入:

FROM qwen:0.5b # 限制最大上下文长度,降低内存占用 PARAMETER num_ctx 2048 # 匹配CPU核心数,优化推理速度 PARAMETER num_thread 4 # 调整生成随机性,数值越低回答越精准 PARAMETER temperature 0.7

构建并运行:

# 根据 modelfile 创建自定义模型 ollama create light-qwen -f modelfile ​ # 运行自定义模型 ollama run light-qwen

参数解析:num_ctx越小、num_thread越少,设备占用越低、运行越流畅;temperature越低回答越精准。

运行优化小技巧:

  1. 运行模型时关闭多余后台软件,释放内存;

  2. 低配设备优先选择 Q4_0 量化版本,优先保证流畅度;

  3. 长期不用模型,执行ollama stop 模型名释放设备资源。


九、下载模型后量化操作说明完整操作步骤

更常用的是直接从huggingface上下载量化好的模型(如:qwen2.5-coder-14b-gguf),然后写Modelfile,然后导入

详情可见我的另外一篇文章:基于 Ollama 部署 qwen2.5-coder-14b(GGUF 直下版)-CSDN博客

注意:谨慎pip install -U huggingface_hub这是把该包升级到最新版本,但可能会造成与其它库包的版本冲突。可先查看是否已有该包(通过9.2 步骤 1:安装 Python 依赖 就已经直接下载huggingface_hub 版本1.x.x)

可以使用pip check检查某环境中是否存在库包的版本冲突

目标:将下载的模型转为GGUF → INT4 量化 → Modelfile 导入 Ollama 部署调用。说明:模型自行从网页上下载(HuggingFace 等);llama.cpp 为官方模型转 GGUF 与量化工具。本机路径:llama.cpp 源码位于D:\develop\llama.cpp-master。

9.1 核心准备工作

  1. 模型文件夹:完整包含config.json、model.safetensors/pytorch_model.bin、tokenizer等全部文件(自行从网页下载);

  2. 系统要求:Windows 10/11,已安装 Python 3.10+;

  3. Ollama:已安装并正常运行(本机目录C:\Users\20334\AppData\Local\Programs\Ollama)。

9.2 步骤 1:安装 Python 依赖

打开 CMD 或 PowerShell(可在虚拟环境中执行):

pip install torch transformers sentencepiece protobuf gguf

gguf包是convert_hf_to_gguf.py脚本的必需依赖,缺失会报ModuleNotFoundError: No module named 'gguf'。

9.3 步骤 2:下载 llama.cpp 转换工具

llama.cpp 是官方模型转 GGUF 工具,分两步准备(先 Git 克隆源码,再下载编译好的 Windows 版本解压进去,两步配合使用

第 1 步:Git 克隆源码(源码自带convert_hf_to_gguf.py转换脚本,这是转 GGUF 必需的工具;本机已放置于D:\develop\llama.cpp-master):

git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp :: 本机路径:D:\develop\llama.cpp-master

第 2 步:下载编译好的 Windows 版本并解压到上述 Git 目录(Windows 直接用编译好的版本,不用自己编译;里面自带llama-quantize.exe量化工具):

  1. 打开下载地址:https://github.com/ggerganov/llama.cpp/releases

  2. 下载哪一个版本根据自己电脑的实际配置选择;

  3. 解压到第 1 步 Git 克隆的目录下(本机:D:\develop\llama.cpp-master),让解压出的 exe 与源码文件在同一目录,便于后续统一执行命令。

这样配置后,convert_hf_to_gguf.py(源码自带,用于转 GGUF)与llama-quantize.exe(zip 提供,用于量化)就齐了;解压到同一目录便于后续在当前目录直接执行命令。

这样两步,缺一不可,原因在于两个工具所在位置不同:

  1. git clone 源码:convert_hf_to_gguf.py(把 HuggingFace 模型转成 GGUF 格式的转换脚本)只存在于源码仓库里,Releases 的 zip 包里没有,所以必须先拉源码才能拿到转换脚本。

  2. 下载 llama-bin-win-x64.zip 解压进去:量化工具 llama-quantize.exe 是编译好的二进制,不在源码里(源码里只有需要自己编译的 .cpp 源文件),直接从 Releases 下载现成的 exe 解压到源码目录,就省去了自己编译的麻烦。

解压到同一个目录的原因也很直接:后续执行

python convert_hf_to_gguf.py ./qwen3-4b-finetune --outtype f16 --outfile qwen3-4b-finetune-f16.gguf .\llama-quantize.exe qwen3-4b-finetune-f16.gguf qwen3-4b-finetune-int4.gguf Q4_K_M

时,两个命令在当前目录就能直接找到对应工具,不用写一堆绝对路径。

9.4 步骤 3:放置下载好的模型

  1. 在D:\develop\llama.cpp-master\下新建子文件夹(如qwen3-4b-finetune);

  2. 将下载的完整模型全部复制进去;

最终路径:

D:\develop\llama.cpp-master\qwen3-4b-finetune\

文件夹内必须有:config.json、tokenizer_config.json、模型权重文件(model.safetensors或pytorch_model.bin)。

9.5 步骤 4:将模型转为 FP16 GGUF 基础格式

在D:\develop\llama.cpp-master\目录下打开 CMD/PowerShell,执行:

# 命令格式 python convert_hf_to_gguf.py [被转换文件的相对路径] --outtype [输出精度] --outfile [转换后的文件名] ​ # 示例 python convert_hf_to_gguf.py ./qwen3-4b-finetune --outtype f16 --outfile qwen3-4b-finetune-f16.gguf

执行成功后生成:

D:\develop\llama.cpp-master\qwen3-4b-finetune-f16.gguf

--outtype 是输出精度参数,f16 是最常用的取值。

--outtype 支持的取值(convert_hf_to_gguf.py):

f16半精度浮点,最常用中间格式(模型权重本身多为 FP16)
f32全精度,文件更大(约 32GB),一般不必要
bf16bfloat16,部分模型支持
q8_08-bit 量化,可直接输出量化格式
tq1_0 / tq2_0三值量化(实验性)
auto自动按模型原始权重精度选择

使用建议:

  • 做量化链路时,中间产物用 f16(或 auto),保证后续 llama-quantize 从高精度量化质量最好

9.6 步骤 5:INT4 量化(CPU 最优,Ollama 推荐)

继续在当前目录执行量化命令:

# 命令格式:llama-quantize.exe 输入.f16.gguf 输出.gguf 【量化类型】 llama-quantize.exe qwen3-4b-finetune-f16.gguf qwen3-4b-finetune-q4_K_M.gguf Q4_K_M

量化类型示例:

# q4_0:最古老的 4bit 量化 llama-quantize.exe qwen1.5-0.5b-finetune-f16.gguf qwen1.5-0.5b-ft.int4.gguf q4_0 ​ # Q3_K_M:超小体积量化 llama-quantize.exe qwen1.5-0.5b-finetune-f16.gguf qwen1.5-0.5b-finetune-q3_K_M.gguf Q3_K_M ​ # Q4_K_M:生产/教学首选(本机 8B 模型示例) llama-quantize.exe qwen3-8B-finetune-f16.gguf qwen3-8B-finetune-q4_K_M.gguf Q4_K_M

✅ 最终得到可用的INT4 量化模型:

D:\develop\llama.cpp-master\qwen3-4b-finetune-q4_K_M.gguf

9.7 步骤 6:编写 Ollama Modelfile 配置文件

  1. 在D:\develop\llama.cpp-master\目录下新建文本文档,重命名为Modelfile(无后缀名,必须去掉 .txt);

  2. 打开 Modelfile,写入以下内容(FROM指向量化后的 gguf 文件):

# 加载本地 INT4 量化模型(相对路径基于 Modelfile 所在目录) FROM ./qwen3-4b-finetune-q4_K_M.gguf ​ # 运行参数 PARAMETER temperature 0.7 PARAMETER top_p 0.9 PARAMETER num_ctx 4096 ​ # 对话模板(Qwen 系 ChatML 格式) TEMPLATE """{{if .System}}<|im_start|>system {{.System}}<|im_end|>{{end}}<|im_start|>user {{.Prompt}}<|im_end|> <|im_start|>assistant """ PARAMETER stop "<|im_end|>" ​ # 自定义系统提示(可修改) SYSTEM "你是基于微调后的Qwen3-4B大模型,回答专业、简洁、准确。"

ollama create 通过 -f 参数指定 Modelfile 路径,文件名不限,.txt 后缀也行(只是建议去掉后缀保持规范)。

两种用法:

默认名 Modelfileollama create 模型名(自动找当前目录的 Modelfile,可省略 -f)
自定义名(如 Modelfile-ft-q4)ollama create 模型名 -f Modelfile-ft-q4

9.8 步骤 7:导入模型到 Ollama

# 命令格式:ollama create [导入到Ollama中的模型名] -f [Modelfile文件] ollama create finetune-int4 -f Modelfile

导入多个量化版本示例:

ollama create finetune-int4 -f Modelfile-ft-q4 ollama create finetune-int3 -f Modelfile-q3km

验证导入结果:

ollama list

看到finetune-int4即部署完成!随后即可用常规方式调用:

ollama run finetune-int4

注意:将模型导入到Ollama后,两个中间产物(转FP16 GGUF、量化的产物)可以删除,但建议保留量化后的产物,因为如果后续修改配置文件,然后重新导入该模型,会使用到量化后的产物FROM ./qwen3-4b-finetune-q4_K_M.gguf。

为什么可以删

ollama create 时会把 GGUF复制一份进 .ollama\models\blobs(内容寻址存储)。模型运行时读的是 blobs 里的副本,不依赖原路径文件

9.9 量化部署常见问题(Windows 专用)

问题解决方案
报错"不是内部命令"确保在 llama.cpp 解压目录(本机D:\develop\llama.cpp-master)下执行命令
转换失败模型路径必须纯英文、无空格、无中文
量化失败使用官方发布的llama-quantize.exe,不要自己编译
Ollama 导入失败检查 Modelfile 无后缀名、FROM模型路径写对

9.10 完整流程总结

  1. 核心流程:模型下载 → 转 FP16 GGUF → INT4 量化 → Modelfile 配置 → Ollama 导入;

  2. Windows 先 Git 克隆 llama.cpp 源码,再把编译好的llama-bin-win-x64.zip解压进同一目录最省心;

  3. 最终得到小体积、CPU 流畅运行的私有模型,支持离线调用。


附录:常见问题排查(讲义补充)

报错现象解决方案
ollama 不是内部/外部命令安装后未重启终端,重启终端即可;Windows 需确认安装时添加了环境变量
模型下载失败/中断网络波动导致,重新执行ollama run即可,Ollama 支持断点续传
设备卡顿、响应极慢更换更低精度量化模型(Q2_K/Q4_0),调低num_ctx参数,关闭后台进程
内存不足加载失败4G 及以下内存设备优先使用 Q4_0 量化轻量化版本
微调模型导入失败检查路径是否含中文、确认模型已成功转为 GGUF 格式、Modelfile 配置无误

附录:课程核心命令汇总(讲义补充)

# 环境验证 ollama --version ​ # 部署运行原生 Qwen 0.5B 对话模型 ollama run qwen:0.5b ​ # 部署运行极致轻量化 4 位量化版本(低配设备专用) ollama run qwen1.5:0.5b-chat-q4_0 ​ # 查看已安装模型 ollama list ​ # 停止模型运行 ollama stop 模型名 ​ # 删除模型释放空间 ollama rm 模型名 ​ # 自定义轻量化模型构建 ollama create 自定义模型名 -f modelfile ​ # 微调模型部署核心命令 # 模型量化(在 D:\develop\llama.cpp-master 目录下执行) llama-quantize.exe 输入.f16.gguf 输出.gguf 【量化类型】 # 导入微调模型 ollama create 微调模型名 -f Modelfile
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 4:13:47

调光玻璃方阻怎么测?四探针法与透明导电膜检测方法

调光玻璃方阻测不准&#xff0c;夹层里那层透明导电膜的导电均匀性就无从谈起。调光玻璃四探针是最直接的入口&#xff0c;Xfilm埃利四探针方阻仪接上多点扫描&#xff0c;整片方阻分布图当场出来。调光玻璃&#xff08;电致变色玻璃、PDLC调光玻璃、SPD调光玻璃&#xff09;要…

作者头像 李华
网站建设 2026/9/26 4:13:38

hPSO-TLBO混合优化算法:从原理到工程实现的完整解析

前阵子有个做车间调度的老朋友来找我诉苦&#xff0c;说手里的排产模型复杂&#xff0c;非线性约束多&#xff0c;跑粒子群优化&#xff08;PSO&#xff09;经常早熟&#xff0c;还没到最优解就缩成一团了。我给他指了个方向&#xff1a;把PSO和教学优化&#xff08;TLBO&#…

作者头像 李华
网站建设 2026/9/26 4:12:37

3个亲测有效的降AIGC软件,让你的论文彻底告别AI痕迹[必看]

最近不少同学私信我&#xff0c;说论文明明是自己一个字一个字敲的&#xff0c;只是用AI帮忙理了理思路&#xff0c;结果学校AIGC检测系统一查&#xff0c;相似度直接飙到30%以上&#xff0c;整个人都懵了。这事儿真不是个例&#xff0c;现在各大查重平台都加码AI检测&#xff…

作者头像 李华
网站建设 2026/9/26 4:11:30

用Intel oneAPI预测淡水质量:从数据到部署的完整实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/26 4:06:55

NLTK与Spacy实战指南:从入门到选型避坑

想快速上手自然语言处理&#xff08;NLP&#xff09;&#xff0c;最经典的第一步就是接触 NLTK 和 Spacy。这两个库几乎是所有 NLP 入门教程里的常客&#xff0c;但很多人把它们摆在一起学的时候&#xff0c;反而容易卡在“到底该用哪个”“数据下载不下来”“代码跑完不知道结…

作者头像 李华