本机4070Ti 12G显存如何选择本地大模型,以及如何设置才能更流畅,任务不中断
一直使用的gemma4:e4b大模型,结果任务总是中断,而且还理解有偏差。原来gemma4模型是英文底座,对中文指令支持不好。
一、先回答核心2个问题
1、UI里的「Context length」会不会真实影响上下文、显存占用?
会,全局生效,等价于全局默认num_ctx
- 这个滑块是Ollama桌面客户端全局默认上下文,所有新开对话、所有API调用(包括OpenClaw),都会默认读取这个数值分配KV缓存;
- 模型原生256K只是理论上限,UI滑块是运行时实际分配的缓存大小;
- 设得越大,显存占用越高,直接决定你4070Ti 12G会不会爆显存、任务中断。
qwen3.5:4b-q4_K_M 模型底层原生支持最大262144(256K)token上下文,这是模型训练时就定死的硬件上限,代表它理论上能一次性读取256K文字。
但原生支持≠必须开满256K运行,Ollama可以手动限制更小窗口(16K/32K/64K),这就是 num_ctx 参数。
2、优先级顺序(谁会覆盖谁)
1. OpenClaw配置里 params.num_ctx (最高,强制覆盖一切)每一个模型 { "id":"xxx", "params": {...} } → 独立模型专属参数,只对当前这一个模型生效
举例子说明
"id": "gemma4",
"contextWindow": 128000,
"maxTokens": 8192,
"params": {
"num_ctx": 16384,
"num_predict": 1024,
"temperature": 0.1,
"num_parallel": 1,
"keep_alive": "-1"#新版的openclaw不能设置为-1要改为具体多久比如:24h
}
参数说明:
- timeoutSeconds:300 :单次推理超时放宽到5分钟
- idleTimeoutSeconds:1800 :30分钟无输出才判定断开,长任务专用
- keep_alive:"-1" :Ollama永久驻留模型,不会自动卸载重加载(避免中途加载卡死)

调用gemma4时,下发Ollama的参数 = 这里写的全套 num_ctx=16384 等
附加:OpenClaw配套配置(对应稳定16K模型)的配置文件设置,(不知道能否生效):
"id": "qwen3.5:agent-stable",
"contextWindow": 16384,
"maxTokens": 1024,
"timeoutSeconds": 300,
"idleTimeoutSeconds": 1800,
"compactContext": true
参数说明:
idleTimeoutSeconds=1800 :30分钟无输出才判定断开,解决本地模型推理慢触发超时;
compactContext=true :自动压缩历史上下文,避免对话堆积撑满窗口强制终止任务;
timeoutSeconds=300 :单次推理超时放宽至5分钟,适配多步骤工具长任务。
① contextWindow": 262144
这是OpenClaw前端展示、逻辑校验用的元数据,不会下发给Ollama,完全不控制显存、实际上下文长度。
含义:标记这个模型原生最大支持256K token(模型出厂上限),仅用于界面提示、计费统计、上下文长度预警,不参与推理。
② "maxTokens": 8192
同样是OpenClaw内部限制,代表OpenClaw最多允许单次输出8192token;
但真实传给Ollama单次输出上限,由你 params 里补充的 num_predict 控制,不写就用8192兜底。
③ "params": { "num_ctx": 65536 }
这是真正下发到Ollama服务的运行参数,会强制限制模型实际运行上下文窗口,直接控制KV缓存显存占用。
contextWindow = 模型原生最大上下文(对应模型256K原生上限)
- maxTokens = 单次输出最大token(对应Ollama num_predict )
这两个是OpenClaw自身校验用,不会下发给Ollama,只做界面/逻辑限制。
params 里能写哪些Ollama参数?
所有Ollama支持的推理参数都能放: num_ctx、num_predict、temperature、top_p、num_parallel 等,会原样转发给Ollama服务端。
context length到底决定什么?
模型一次性能记住多少文字
包含系统提示词、全部聊天历史、工具函数、提问、预留回答空间;超过数值,Ollama自动删掉最早内容,模型失忆。
直接决定显存消耗(对你12G显卡最关键)
模型权重固定不变,KV缓存显存随context length线性暴涨:
- 16384(16K):总显存7.5~8.5G,富余3G缓冲,多开浏览器/Docker不崩
- 65536(64K):显存10~11G,只能临时读文档,不能连续多轮工具调用
- 262144(256K开满):显存峰值11.8G,随便开个软件直接OOM崩溃,OpenClaw任务直接断掉
2、上下文窗口(num_ctx)决定了什么?
1. 决定模型一次能记住多少内容
窗口内包含:系统提示词 + 全部对话历史 + 工具函数描述 + 本次提问 + 预留回答空间;
超过num_ctx,Ollama会自动删掉最早的聊天记录,模型直接“失忆”前面内容。
2. 直接决定显存占用(最关键对你12G显卡)
显存分两部分:
- 模型权重:固定3.3GB(q4_K_M),不会随上下文变化;
- KV缓存:专门存上下文历史,长度越长,显存线性暴涨。
举个直观对比(4B q4_K_M,开启q4_0缓存量化):
- num_ctx=16384(16K):总显存峰值≈7.5~8.5G
- num_ctx=65536(64K):总显存峰值≈10~11G
- num_ctx=262144(256K开满):峰值直接11.8G,你12G卡只要开浏览器、Docker立刻爆显存OOM,Ollama直接崩溃、OpenClaw任务中断。
2. Modelfile打包的 PARAMETER num_ctx (次高)无params时才生效
没有params时才生效,一旦OpenClaw带params,Modelfile参数失效。
哪怕OpenClaw没写params,Ollama启动模型时也会强制用Modelfile里的 num_ctx/num_predict :
3. Ollama桌面UI全局Context length(兜底默认)
举你当前配置例子:
你 params 写了 num_ctx:65536 ,那么:
- Ollama客户端UI滑块无论拉16K还是256K,全部无效;
- 该模型Modelfile里写的num_ctx也会被覆盖;
- 运行时真实上下文窗口固定64K。
4. Ollama原生默认4096(最低)
所有自定义设置都不写才会启用。
举例子:
你UI滑块拉到256K,但OpenClaw写了 num_ctx:16384 ,最终运行只会用16K,UI设置失效。
二、context length到底决定什么?
1. 模型一次性能记住多少文字
包含系统提示词、全部聊天历史、工具函数、提问、预留回答空间;超过数值,Ollama自动删掉最早内容,模型失忆。
2. 直接决定显存消耗(对你12G显卡最关键)
模型权重固定不变,KV缓存显存随context length线性暴涨:
- 16384(16K):总显存7.5~8.5G,富余3G缓冲,多开浏览器/Docker不崩
- 65536(64K):显存10~11G,只能临时读文档,不能连续多轮工具调用
- 262144(256K开满):显存峰值11.8G,随便开个软件直接OOM崩溃,OpenClaw任务直接断掉
三、单卡RTX4070Ti 12G,UI滑块设多少最合适?
日常主力(OpenClaw全天跑Linux/Obsidian/多工具循环,推荐)
滑块固定 16384(16K)
- 足够十几轮链式工具调用、十几份笔记同时读取;
- 显存压力最低,推理流畅,不会触发空闲超时断任务。
临时一次性读取超大文档(仅偶尔用)
临时改成65536(64K),文档读完立刻切回16K,绝对不要长期256K。
绝对不要拉满256K的原因
12G显存物理上限卡死,256K缓存几乎占满整张卡,后台任意程序占用一点显存,Ollama直接闪退;且超长上下文推理速度暴跌,模型思考几十秒直接触发OpenClaw超时中断。
四、配套统一设置方案(三层对齐,避免冲突)
1、Ollama桌面UI设置
设置 → Context length 滑块拉到 16384,保存。
2、Modelfile打包固定(双重保险)
Modelfile
FROM qwen3.5:4b-q4_K_M
PARAMETER num_ctx 16384
PARAMETER num_predict 1024
PARAMETER temperature 0.1
PARAMETER num_parallel 1
PARAMETER num_thread 16
PARAMETER stop "[TOOL_END]"
生成自定义模型:
cmd
ollama create qwen3.5:agent-16k -f Modelfile
参数说明:
num_ctx=8192 :完整上下文,128G内存兜底不怕缓存溢出;
- temperature=0.1 :降低随机输出,JSON格式更稳定,减少解析报错;
- num_thread 匹配CPU核心,利用大内存加速预处理。
3、OpenClaw配置文件写入params(最高优先级)
json
"models": [
{
"id": "qwen3.5:agent-16k",
"name": "千问3.5 4B 16K稳定版",
"contextWindow": 262144,
"maxTokens": 1024,
"params": {
"num_ctx": 16384,
"num_predict": 1024,
"temperature": 0.1
}}
]
-修改params为16384,同时充 num_predict 限制单次输出。
-num_predict:1024 :限制单次输出长度,reasoning模型大量思考文本不会快速占满上下文;
- 显存峰值仅7.5~8.5G,12G显卡余量充足,多工具循环不崩溃。
-num_predict(max_tokens,单次最大输出token)固定值
统一设置 num_predict = 1024
为什么不设2048?
1. 你的是reasoning推理模型,每次回复先输出一大段思考过程,本身消耗大量token;
2. 设2048会单次输出占用极多上下文,16K窗口快速耗尽,频繁触发上下文压缩,容易逻辑断裂、JSON残缺;
3. 1024 token足够输出完整Linux脚本、Docker操作步骤、完整文件修改方案,满足运维全部需求;
4. 限制输出长度,减少长时间推理卡顿,降低OpenClaw超时概率。
五、补充避坑
1. 模型原生256K只是硬件上限,不代表运行时必须开满,消费级12G显卡不具备长期跑256K的条件;
2. 如果你只调UI滑块,但OpenClaw里写了更小num_ctx,以OpenClaw参数为准;
3. Windows务必开启全局缓存优化,进一步降低显存压力:
系统环境变量添加4条,改完彻底退出Ollama全部进程重启:
plaintext
OLLAMA_KV_CACHE_TYPE=q4_0
OLLAMA_FLASH_ATTENTION=1
OLLAMA_NUM_PARALLEL=1
OLLAMA_KEEP_ALIVE=-1
参数解释:
- OLLAMA_NUM_GPU=99 :尽可能把模型权重放显存,KV缓存自动溢出到128G系统内存,完美利用你大内存;
- OLLAMA_KV_CACHE_TYPE=q4_0 :缓存4位量化,显存占用直接减半;
- OLLAMA_NUM_PARALLEL=1 :禁止并发推理,防止显存瞬间峰值溢出;
- OLLAMA_KEEP_ALIVE=-1 :模型永久驻留,长任务中途不会重新加载模型超时断开。
6、关键总结
1. contextWindow=262144 只是标记模型理论上限,不控制实际运行显存;
2. params.num_ctx 是实权参数,会覆盖Ollama所有其他地方的上下文设置;
3. 65536适合临时一次性长文本解析,不适合全天跑OpenClaw智能体;16384是12G显卡长期稳定最优值。
注意!改完必须执行的操作
校验JSON语法,防止写错崩溃
openclaw config validate
本机大模型的选用-
一、区分两套模型(适配你单卡4070Ti 12G)
A、阿里官方原版 qwen3.5:4b(256K上下文,无强化推理)
可用拉取命令(唯一稳定、官方维护)
默认q4_K_M,3.4G,12G显卡最宽松
ollama pull qwen3.5:4b-q4_K_M
高精度q8_0,5.3G,显存余量变少,偶尔爆显存不推荐长期
ollama pull qwen3.5:4b-q8_0
优点:稳定、无bug、256K原生超长上下文;
缺点:没有专门强化思维链,多层工具调用偶尔JSON残缺。
B、第三方 Qwopus3.5(带reasoning深度推理,专门适配OpenClaw智能体)
仓库名: fredrezones55/qwopus3.5 ,自带reasoning,4B只有q4_K_M量化,没有q5_K_M
正确拉取命令(必须带作者前缀,否则找不到)
ollama pull fredrezones55/qwopus3.5:4b
- 大小3.4GB,256K上下文、内置思维推理,完美解决工具调用乱码、断任务;
- 专门优化运维、Linux命令、文件检索逻辑,是你OpenClaw最优选择。
二、给你的最终方案(单卡RTX4070Ti 12G)
日常主力推荐:第三方推理版(qwopus3.5:4b,自带reasoning)
1、拉取命令(直接复制)
ollama pull fredrezones55/qwopus3.5:4b
2、创建专属Modelfile,限制上下文防止爆显存
新建文本改名为 Modelfile ,内容:
FROM fredrezones55/qwopus3.5:4b
长期稳定16K上下文,12G显卡无压力
PARAMETER num_ctx 16384
reasoning模型限制单次输出,减少token占用
PARAMETER num_predict 1024
PARAMETER temperature 0.1
PARAMETER keep_alive -1
PARAMETER num_parallel 1
3、生成本地简化模型名(方便OpenClaw调用)
ollama create qwen-reason:4b -f Modelfile
备选方案(不想用第三方,只用阿里官方原版
ollama pull qwen3.5:4b-q4_K_M
Modelfile同样锁定 num_ctx=16384 、 num_predict=1024 ,缺点是复杂多层工具调用稳定性弱于qwopus推理版。
一、为什么不推荐长期用 262K版本
1. 显存压力巨大
4B权重固定3.8G,开满262K上下文KV缓存峰值直接冲到11.5G+,系统、Ollama后台还要占1G,极易OOM杀死进程,OpenClaw任务直接中断。
哪怕你128G大内存,只是把KV缓存丢内存交换,推理速度暴跌70%,模型思考几十秒触发空闲超时断任务。
2. reasoning模型自带大量思考文本
多轮Linux/grep/Docker连续指令,token消耗翻倍,262K窗口很快堆满,频繁压缩上下文,JSON工具调用更容易残缺报错。
3. 日常完全用不上262K
你日常运维、单份笔记、十几轮工具指令,16K上下文完全覆盖,多余超长上下文只会拖慢速度、增加崩溃概率。