一、背景认知
1. 什么是 Ollama 参数调整
Ollama 的参数调整,本质是通过修改大模型的推理规则 和运行配置,来控制模型的输出效果(严谨 / 创意、长短、是否重复)、运行性能(速度、显存 / 内存占用)、上下文记忆能力的操作。它不是对模型权重的微调(不需要训练数据和显卡算力),只是修改模型的「运行时规则」,哪怕是入门级电脑也能轻松操作。
2. 为什么要调整参数(新手核心痛点解决)
默认参数只能满足基础聊天,调整参数可以精准解决这些问题:
- 输出太死板 / 太放飞:想写文案没创意,想做代码生成又频繁出错
- 记不住长对话 / 长文本:文档超过 2 页就答非所问,对话多轮就失忆
- 电脑卡顿 / 显存不足:模型运行慢、闪退,甚至直接报错
- 输出重复啰嗦:同一句话翻来覆去说,生成内容冗长无重点
- 结果无法复现:同一个问题,每次回答都不一样,无法固定输出
3. 新手必知的 3 种参数生效方式
| 生效方式 | 生效范围 | 操作难度 | 适用场景 |
|---|---|---|---|
| 对话内临时设置 | 仅当前对话有效,退出后失效 | ★☆☆☆☆ | 新手试错、临时调整单次对话效果 |
| 启动命令行传参 | 仅本次启动生效,关闭后失效 | ★★☆☆☆ | 脚本调用、单次特定任务使用 |
| Modelfile 固化参数 | 永久生效,每次启动都沿用 | ★★★☆☆ | 长期固定使用、自定义专属模型 |
4. 前置准备(操作前必须完成)
- 已完成 Ollama 安装(官网:https://ollama.com/ 一键安装,全程下一步)
- 已下载至少 1 个基础模型(推荐新手用
qwen:0.6b轻量模型,配置无压力)下载命令:打开终端 / CMD,输入ollama pull qwen:0.6b回车执行 - 会基础启动命令:
ollama run qwen:0.6b可正常进入模型对话界面
二、核心配置(新手必学,90% 场景够用)
Ollama 参数分为两大类:推理效果参数 (控制输出内容质量)、性能资源参数(控制运行速度和硬件占用),新手先掌握核心参数,再了解进阶参数。
1. 核心推理效果参数(直接决定回答好不好)
| 参数名 | 通俗含义 | 取值范围 | 默认值 | 新手推荐值 | 核心使用场景 |
|---|---|---|---|---|---|
temperature(温度) |
控制模型的「创造性 / 随机性」,数值越高越放飞,越低越严谨 | 0.0-2.0 | 0.8 | 0.3-0.5(严谨任务)0.8-1.2(创意任务) | 代码生成、数据计算用低值;文案写作、故事创作用高值 |
num_predict |
控制模型单次生成的最大 token 数(1 个中文≈1-2 个 token),限制回答长短 | 正整数,-1 = 无限生成 | -1 | 256-1024(日常问答)2048-4096(长文创作) | 避免模型无限输出,控制回答篇幅 |
repeat_penalty |
重复惩罚强度,数值越高,越不会重复说同一句话 | 0.9-2.0 | 1.1 | 1.05-1.2 | 解决模型输出重复、车轱辘话的问题 |
top_k |
限制模型只从概率最高的前 K 个词里选下一个词,数值越低越保守,越高越多样 | 1-100 | 40 | 20-40(严谨任务)50-80(创意任务) | 配合 temperature,降低模型输出胡话的概率 |
top_p |
核采样,累加概率达到该值的词都会被保留,和 top_k 配合使用,数值越低越聚焦 | 0.0-1.0 | 0.9 | 0.5-0.7(严谨任务)0.8-0.95(创意任务) | 平衡输出的多样性和连贯性,新手默认不动即可 |
seed |
随机数种子,固定数值后,同一个问题 + 同一套参数,输出结果完全一致 | 任意整数 | 0(随机) | 42(固定结果用) | 测试参数、需要可复现输出的场景 |
2. 核心性能资源参数(直接决定模型跑不跑得动、快不快)
| 参数名 | 通俗含义 | 取值范围 | 默认值 | 新手推荐值 | 核心使用场景 |
|---|---|---|---|---|---|
num_ctx |
上下文窗口大小,决定模型能记住多少对话 / 文本内容,单位 tokenOllama | 512 - 模型最大支持值 | 2048 | 4096(日常对话)8192(长文档 / 多轮对话) | 解决模型长对话失忆、长文档读不全的问题,⚠️ 数值越大,显存占用越高 |
num_thread |
CPU 线程数,决定 CPU 运行模型的速度,建议设为 CPU 物理核心数 | 正整数 | 自动检测 | 4-8(普通家用电脑) | 无独立显卡、用 CPU 跑模型时,优化运行速度 |
num_gpu |
分配给 GPU 的模型层数,数值越高,GPU 加速越明显,999 = 全量加载 | 0-999 | 自动检测 | 999(有 NVIDIA 显卡)0(纯 CPU 运行) | 有独立显卡时,最大化 GPU 加速,减少卡顿 |
num_batch |
批处理大小,同时处理的 token 数,数值越大,长文本处理速度越快 | 正整数 | 512 | 256(低配置)1024(高配置) | 批量处理文档、长文本总结时,提升处理速度 |
3. 进阶参数(新手了解即可,后续进阶使用)
mirostat:智能采样算法,0 = 禁用,1=Mirostat,2=Mirostat 2.0,能自动平衡输出的连贯性和多样性Ollamapresence_penalty/frequency_penalty:主题惩罚,避免模型跑题,数值越高,越不会偏离用户问题stop:停止词,模型遇到该词就会停止生成,可自定义结束标记repeat_last_n:设置模型回溯多少 token 来检查重复,默认 64,-1 = 和 num_ctx 一致
三、基础实操(步骤零省略,新手跟着做就行)
以下操作全部以 qwen:0.6b 模型为例,其他模型替换名称即可,Windows/macOS/Linux 通用,仅文件创建方式有细微差异。
实操 1:对话内临时调整参数(新手入门首选,零门槛)
特点:仅当前对话生效,退出后自动恢复默认,完美适合新手试错、测试不同参数效果。
步骤 1:启动模型进入对话界面
打开终端 / CMD,输入以下命令,回车执行,进入模型对话界面:
ollama run qwen:0.6b
看到 >>> 提示符,说明进入成功。
步骤 2:用命令修改目标参数
固定格式:/set parameter 参数名 参数值,回车执行,看到「Set parameter 'xxx' to 'xxx'」提示就是设置成功。新手必试示例(可逐行执行测试):
# 1. 把温度设为0.3,让模型回答更严谨,适合问问题、算数据
/set parameter temperature 0.3
# 2. 把上下文窗口设为4096,让模型记住更长的对话
/set parameter num_ctx 4096
# 3. 把重复惩罚设为1.2,避免模型说车轱辘话
/set parameter repeat_penalty 1.2
# 4. 限制单次最多生成500个token,避免无限输出
/set parameter num_predict 500
步骤 3:验证参数是否生效
设置完成后,直接在对话里输入问题,测试输出效果,比如:
请用3句话介绍一下人工智能
对比修改前后的回答差异,就能直观看到参数效果。也可以用命令查看当前所有已设置的参数:
/set parameter
步骤 4:(可选)保存为永久自定义模型
如果觉得当前参数效果很好,想永久保存,直接执行保存命令:
# 格式:/save 你的自定义模型名
/save my_qwen_custom
看到「Created new model 'my_qwen_custom'」提示,就是保存成功,后续用 ollama run my_qwen_custom 启动,就会沿用这套参数。
步骤 5:退出对话界面
执行退出命令即可:
/bye
实操 2:命令行启动时临时传参(单次启动生效)
特点:启动模型时一次性把参数传进去,本次启动全程生效,适合脚本调用、单次特定任务使用。
步骤 1:掌握固定命令格式
ollama run 模型名 --参数名1 参数值1 --参数名2 参数值2
步骤 2:执行带参启动命令(新手直接复制示例)
示例 1:严谨问答模式,适合查资料、代码生成
ollama run qwen:0.6b --temperature 0.3 --num_ctx 4096 --repeat_penalty 1.2 --num_predict 1024
示例 2:创意写作模式,适合写文案、编故事
ollama run qwen:0.6b --temperature 1.1 --top_k 60 --num_ctx 8192 --num_predict 2048
示例 3:固定结果模式,每次同问题输出一致,适合测试
ollama run qwen:0.6b --temperature 0.5 --seed 42 --num_ctx 4096
回车执行,直接进入带参数的对话界面,所有参数全程生效。
步骤 3:验证生效方法
进入对话后,执行 /set parameter 命令,就能看到所有启动时传入的参数已生效。
实操 3:Modelfile 永久固化参数(长期使用推荐)
特点:把参数写入配置文件,构建成专属自定义模型,永久生效,每次启动都沿用,是最常用、最规范的参数调整方式。
步骤 1:查看原始模型的 Modelfile(获取基础模板)
先执行命令,把官方原始模型的配置导出来,避免自己从零编写出错:
# 格式:ollama show --modelfile 模型名 > 导出的文件名
ollama show --modelfile qwen:0.6b > qwen_base.modelfile
执行后,当前文件夹会生成一个 qwen_base.modelfile 文件,里面是官方原始配置。
步骤 2:创建自定义 Modelfile 文件
- 新建一个文本文档,重命名为
my_qwen.modelfile(⚠️ Windows 要关闭「隐藏已知文件扩展名」,确保后缀名是.modelfile,不是.txt) - 用记事本 / VS Code 打开这个文件,开始编写配置。
步骤 3:编写 Modelfile 核心内容(新手直接复制修改)
固定格式如下,PARAMETER 就是我们要调整的参数,一行一个,新手直接复制下面的模板,按需修改数值即可:
# 1. 基础模型:必须放在第一行,指定你基于哪个模型做自定义
FROM qwen:0.6b
# 2. (可选)系统提示词:固定模型的角色、语气、输出规则,优先级最高
SYSTEM 你是一个专业、简洁的AI助手,回答问题精准易懂,不输出冗余内容。
# 3. 核心参数配置:一行一个,格式 PARAMETER 参数名 参数值
# 3.1 推理效果参数
PARAMETER temperature 0.5
PARAMETER top_k 40
PARAMETER top_p 0.9
PARAMETER repeat_penalty 1.15
PARAMETER num_predict 1024
PARAMETER seed 0
# 3.2 性能资源参数
PARAMETER num_ctx 4096
PARAMETER num_gpu 999
PARAMETER num_batch 512
编写完成后,保存文件,关闭编辑器。
步骤 4:构建自定义模型
打开终端 / CMD,进入到 my_qwen.modelfile 所在的文件夹,执行构建命令:
# 格式:ollama create 你的自定义模型名 -f Modelfile文件路径
ollama create my_qwen_v1 -f ./my_qwen.modelfile
回车执行,看到 success 提示,就是模型构建成功。
步骤 5:运行模型,验证参数永久生效
启动自定义模型:
ollama run my_qwen_v1
查看参数是否生效:
/set parameter
测试输出效果,输入问题,验证是否符合你的参数预期。后续无论重启多少次 Ollama,只要启动这个自定义模型,都会沿用你设置的参数,永久生效。
四、高阶用法(新手进阶,解锁更多能力)
1. 分场景参数组合模板(直接复制用,不用自己试错)
| 应用场景 | 核心参数组合 | 配置说明 |
|---|---|---|
| 代码生成 / 数据计算 | temperature 0.3 top_k 20 top_p 0.5 num_ctx 8192 repeat_penalty 1.2 num_predict 4096 |
极低温度,保证逻辑严谨、代码无错,大上下文窗口支持长代码生成 |
| 创意写作 / 文案策划 | temperature 1.1 top_k 80 top_p 0.95 num_ctx 8192 repeat_penalty 1.25 num_predict 2048 |
高温度,提升多样性和创意,高重复惩罚避免句式重复 |
| 长文档 / 论文总结 | temperature 0.4 top_k 30 top_p 0.7 num_ctx 16384 repeat_penalty 1.1 num_predict 2048 |
中等偏低温度,保证总结准确,超大上下文窗口支持长文档读取 |
| 客服 / 问答机器人 | temperature 0.6 top_k 40 top_p 0.8 num_ctx 4096 repeat_penalty 1.15 num_predict 512 |
平衡严谨性和友好度,限制输出长度,回答简洁易懂 |
| 可复现测试 | temperature 0.5 seed 42 top_k 40 top_p 0.9 num_ctx 4096 |
固定随机种子,确保同一输入永远输出同一结果,方便测试参数效果 |
2. API 调用时的参数传递(二次开发必备)
Ollama 提供 API 接口,做开发、接入应用时,可在请求体里通过 options 字段传递参数,和前面的参数名完全一致,无需额外学习。
基础 curl 调用示例(直接复制可用)
curl http://localhost:11434/api/generate -d '{
"model": "my_qwen_v1",
"prompt": "用3句话介绍一下Ollama",
"stream": false,
"options": {
"temperature": 0.4,
"num_ctx": 4096,
"repeat_penalty": 1.2,
"num_predict": 500
}
}'
Python 调用示例
import requests
url = "http://localhost:11434/api/generate"
data = {
"model": "my_qwen_v1",
"prompt": "用3句话介绍一下Ollama",
"stream": False,
"options": {
"temperature": 0.3,
"num_ctx": 8192,
"top_k": 20,
"num_predict": 1024
}
}
response = requests.post(url, json=data)
print(response.json()["response"])
3. 显存 & 性能优化高阶配置
低显存设备优化(4G 及以下显存)
核心思路:降低显存占用,牺牲少量效果换取流畅运行,Modelfile 配置如下:
FROM qwen:0.6b
# 限制上下文窗口,大幅降低显存
PARAMETER num_ctx 2048
# 降低批处理大小
PARAMETER num_batch 256
# 按需分配GPU层数,比如30层,不够再往下调
PARAMETER num_gpu 30
# 禁用Mirostat,减少额外计算
PARAMETER mirostat 0
多 GPU 调度(多显卡设备)
# 指定使用第0号和第1号显卡,2张显卡并行
PARAMETER num_gpu 999
ENV CUDA_VISIBLE_DEVICES=0,1
大上下文窗口配置(32K/64K 长文本)
⚠️ 前提:模型本身支持大上下文,且显存足够,建议 12G 及以上显存再尝试
FROM qwen:7b
# 32K上下文窗口
PARAMETER num_ctx 32768
# 增大批处理大小,提升长文本处理速度
PARAMETER num_batch 2048
# 全量加载到GPU,保证速度
PARAMETER num_gpu 999
# 调整重复检查范围,和上下文一致
PARAMETER repeat_last_n -1
五、拓展建议(新手避坑 + 进阶学习)
1. 新手调参避坑指南(90% 的新手都会踩的坑)
- 不要一次性修改多个参数:调参核心是「控制变量法」,一次只改一个参数,测试效果后再改下一个,否则根本不知道是哪个参数起了作用。
- 不要盲目调大 num_ctx:上下文窗口翻倍,显存占用几乎也会翻倍,8G 显存以下不建议超过 8192,否则会出现卡顿、闪退、OOM 显存不足报错。
- 不要极端设置 temperature:temperature=0 会让模型完全固定输出,极易重复;temperature>1.5 会让模型放飞自我,输出胡话、乱码,新手不要超过 1.2。
- 不要修改不理解的参数:先把核心的 temperature、num_ctx、repeat_penalty 三个参数玩明白,再去碰进阶参数,否则容易出现负优化。
- 不要用低参数量模型强行开大上下文:比如 0.6B、1.8B 的小模型,本身长文本能力弱,哪怕开了 32K 上下文,也会出现记不住内容的问题,长文本建议用 7B 及以上模型。
2. 调参最佳实践
- 先定场景,再选参数:先明确你要做什么(写代码 / 写文案 / 总结文档),再用上面的场景模板,不要无目的乱调参数。
- 固定测试用例:用同一个问题测试不同参数效果,比如测试创意写作,就固定用「写一篇关于春天的朋友圈文案」,不要每次换问题,无法对比效果。
- 小步迭代,逐步优化:先从默认值开始,每次微调 0.1-0.2 的 temperature,不要一次从 0.8 调到 1.5,跨度太大效果不可控。
- 优先用 Modelfile 管理参数:临时测试用对话内设置,确定好用的参数后,一定要写入 Modelfile 固化下来,方便后续复用和分享。
3. 进阶学习资源
- 官方文档 :https://github.com/ollama/ollama/blob/main/docs/modelfile.md (最权威的参数说明,更新最及时)
- 模型库 :https://ollama.com/library ,每个模型的详情页会标注支持的最大上下文窗口、推荐参数配置。
- 社区工具 :
- Open WebUI:可视化界面,可直接在界面上调整参数,无需敲命令,新手友好
- LlamaIndex/LangChain:结合 Ollama 做应用开发,深度自定义参数配置
4. 进阶学习路径
- 第一阶段:熟练掌握 3 个核心参数(temperature、num_ctx、repeat_penalty),能应对日常 90% 的场景
- 第二阶段:掌握 Modelfile 自定义模型,学会分场景配置参数组合
- 第三阶段:结合 API 做二次开发,在应用中动态调整参数,适配不同用户需求
- 第四阶段:学习 LoRA 微调,结合 Ollama 的 adapter 功能,不仅调参数,还能定制模型的知识和能力