ollama show 命令全解析
ollama show 是 Ollama 中用于查看模型元数据、配置信息、模板规则的核心命令,能直观获取模型的架构、能力、推理参数、Prompt 模板等关键信息,是调试模型、适配开发的必备命令,以下从命令使用方法和输出内容逐段详解两部分讲透,结合实际示例,零基础也能看懂。
一、ollama show 核心使用方法
1. 基础语法
ollama show [模型名] [可选参数]
- 模型名:本地已拉取的模型(如
qwen2.5-coder:7b、deepseek-r1:8b、llama3.1:8b-instruct); - 可选参数:按需筛选输出内容,避免信息冗余,开发/调试常用。
2. 常用参数(高频实用)
| 参数 | 作用 | 示例 | 适用场景 |
|---|---|---|---|
| 无参数 | 查看模型完整元数据(默认) | ollama show qwen2.5-coder:7b |
全面了解模型配置 |
--modelfile |
查看模型的Modelfile 构建配置 | ollama show deepseek-r1:8b --modelfile |
自定义/修改模型配置时参考 |
--parameters |
仅查看模型推理参数(stop/temp 等) | ollama show llama3.1:8b-instruct --parameters |
调试推理参数、覆盖默认值 |
--template |
仅查看模型的Prompt 模板 | ollama show qwen2.5-coder:7b --template |
开发时适配模型的Prompt格式 |
--system |
仅查看模型的默认系统提示词 | ollama show qwen2.5-coder:7b --system |
自定义系统提示、修改模型人设 |
--license |
仅查看模型的开源协议 | ollama show deepseek-r1:8b --license |
确认商用/非商用权限 |
-f/--format |
指定输出格式(json/yaml) |
ollama show qwen2.5-coder:7b -f json |
程序/脚本解析模型信息 |
3. 实操示例
# 查看qwen2.5-coder:7b的完整信息(最常用)
ollama show qwen2.5-coder:7b
# 仅查看deepseek-r1:8b的Prompt模板(开发对接必备)
ollama show deepseek-r1:8b --template
# 以JSON格式输出llama3.1的参数,方便脚本解析
ollama show llama3.1:8b-instruct --parameters -f json
4. 前置条件
执行前需本地已拉取对应模型,若未拉取,先执行 ollama pull 模型名(如 ollama pull qwen2.5-coder:7b),否则会提示「model not found」。
二、ollama show 输出内容逐段详细讲解
以你之前的实际输出(deepseek-r1:8b 和 qwen2.5-coder:7b)为基础,结合通用模型的输出结构,按模块拆解,每个字段的含义、作用、实操价值都讲清,所有 Ollama 模型的输出都遵循此结构。
模块1:Model - 模型底层硬件/架构核心信息
这是模型的基础属性,决定模型的运行要求、核心能力上限,是部署/选型的关键依据,示例:
Model
architecture qwen3
parameters 8.2B
context length 131072
embedding length 4096
quantization Q4_K_M
| 字段 | 含义 | 实操价值 |
|---|---|---|
architecture |
模型底层训练架构(如 qwen2/qwen3/llama3/mistral) | 决定模型的Prompt模板、推理逻辑、生态兼容,不同架构的Prompt格式不通用,开发时需匹配; |
parameters |
模型参数量(如 7.6B/8.2B/70B) | 参数量≈模型理解/推理能力,越大能力越强,但对硬件(内存/显卡)要求越高;8B级适合本地部署,70B级需高端显卡/服务器; |
context length |
上下文窗口(单位:Token) | 模型能记住/处理的最大文本长度,1Token≈0.75个中文字;131072(128k)可处理整份文档,32768(32k)适合日常对话/代码,是超长文本处理的核心指标; |
embedding length |
文本嵌入向量长度 | 仅影响文本嵌入/检索场景(如把文字转向量做相似度匹配),日常对话/工具调用无需关注; |
quantization |
模型量化级别(如 Q4_K_M/Q5_K_M/Q8_0) | 平衡模型性能和硬件占用的关键:<br>✅ Q4_K_M(最常用):本地部署首选,占用内存小(8B级约4-5G内存),推理速度快,精度损失小;<br>✅ Q5_K_M:精度更高,占用略大;<br>✅ Q8_0:接近原生精度,适合服务器,本地不推荐; |
模块2:Capabilities - 模型原生支持的核心功能(最关键)
Ollama 对模型的功能硬限制,没有标注的能力,强制调用会直接报错(如你之前遇到的 deepseek-r1:8b 无 tools 导致工具调用失败),示例:
# deepseek-r1:8b
Capabilities
completion
thinking
# qwen2.5-coder:7b
Capabilities
completion
tools
insert
| 能力值 | 含义 | 适用场景 |
|---|---|---|
completion |
基础文本补全能力 | 所有大模型都支持,实现对话、写文案、补代码、生成文本等基础功能,是核心基础能力; |
tools |
工具/函数调用能力 | 模型能识别需求,按指定格式生成工具调用指令(如调用API、查数据库、执行代码),是对接 Agent、LangChain、New API 的必备能力;无此字段则绝对无法调用工具; |
thinking |
分步推理/思考能力 | 模型能拆解复杂问题、分步计算/分析(如数学题、逻辑推理、复杂任务拆解),适合推理型场景; |
insert |
文本/代码插入能力 | 模型能在已有文本/代码的中间位置生成内容(而非仅在末尾补全),是代码开发的核心能力(如在代码中间补逻辑、在文案中间加段落); |
embeddings |
文本嵌入能力 | 模型能将文字转换为向量,用于文本检索、相似度匹配、知识库问答等场景; |
模块3:Parameters - 模型默认推理配置
模型生成内容时的默认行为参数,可在调用时(ollama run/API)通过参数覆盖,若模型未配置自定义参数,此字段会自动省略(如 qwen2.5-coder:7b),示例:
Parameters
stop "<|begin▁of▁sentence|>"
stop "<|end▁of▁sentence|>"
stop "<|User|>"
stop "<|Assistant|>"
temperature 0.6
top_p 0.95
| 字段 | 含义 | 可调范围 | 实操价值 |
|---|---|---|---|
stop |
停止符(可配置多个) | 自定义字符串 | 模型生成内容时,遇到该字符立即停止,核心作用:<br>1. 避免生成冗余内容;<br>2. 适配模型的Prompt模板,保证输出格式规范;<br>3. 防止模型篡改角色(如助手冒充用户); |
temperature |
生成随机性 | 0 ~ 2 | 0=输出完全固定(确定性高),1=随机性适中,2=高随机(内容多样但可能偏离主题);<br>推理/代码场景设0.1-0.6,创意生成设0.8-1.2; |
top_p |
核采样阈值 | 0 ~ 1 | 和 temperature 配合控制随机性,通常设0.9-0.95,无需单独修改,随temperature调整即可; |
max_tokens |
单次最大生成Token数 | 1 ~ 上下文窗口值 | 限制模型单次回答的最大长度,避免生成过长内容; |
repeat_penalty |
重复生成惩罚 | 1.0 ~ 2.0 | 防止模型重复生成相同内容(如反复说一句话),值越大惩罚越重,通常设1.1-1.2; |
模块4:System - 模型默认系统提示词
模型的原生人设/基础指令,约束模型的回答风格、角色定位,若未配置,此字段会省略,示例:
System
You are Qwen, created by Alibaba Cloud. You are a helpful assistant.
- 作用:默认约束模型的行为(如“做一个有用的助手”“专业的代码工程师”);
- 实操:调用模型时可通过
--system参数自定义覆盖(如ollama run qwen2.5-coder:7b --system "你是一名资深Java工程师,回答简洁专业")。
模块5:Template - 模型Prompt 模板(开发对接核心)
模型的原生输入格式规则,Ollama 会自动将用户的对话转换为该模板格式传给模型,不同架构/模型的模板不通用,若手动写Prompt,必须遵循此格式,否则模型会回答异常,示例(qwen2 架构模板):
Template
{%- if messages[0].role == 'system' -%}
{%- set system_message = messages[0].content -%}
{%- set messages = messages[1:] -%}
{%- else -%}
{%- set system_message = '' -%}
{%- endif -%}
{%- for message in messages %}
{%- if message.role == 'user' -%}
{{- '<|im_start|>user\n' + message.content + '<|im_end|>\n' -}}
{%- elif message.role == 'assistant' -%}
{{- '<|im_start|>assistant\n' + message.content + '<|im_end|>\n' -}}
{%- elif message.role == 'tool' -%}
{{- '<|im_start|>tool\n' + message.content + '<|im_end|>\n' -}}
{%- endif -%}
{%- endfor -%}
{{- '<|im_start|>assistant\n' -}}
- 核心标识:如 qwen2 的
<|im_start|>user/<|im_start|>assistant,deepseek-r1:8b 的<|User|>/<|Assistant|>; - 实操价值:通过
ollama show 模型名 --template查看模板,是代码对接Ollama API、自定义Prompt的必备步骤,确保模型能正确识别用户/助手/工具的角色。
模块6:License - 模型开源协议
模型的使用权限说明,决定个人/企业能否免费使用、商用、二次开发,示例:
License
MIT License
Copyright (c) 2023 DeepSeek
...
- 常见友好协议:MIT、Apache 2.0(个人/企业可免费使用、商用,无授权限制);
- 受限协议:非商业用途(仅个人使用,禁止商用)、需申请授权等;
- 实操价值:商用前必须查看,避免侵权。
三、关键补充:不同模型输出差异的原因
部分模型会省略某些模块(如 qwen2.5-coder:7b 省略 Parameters),并非模型没有该属性,而是Ollama的兜底机制:
当模型的Modelfile中未配置自定义参数/系统提示时,Ollama会使用全局默认值,此时
ollama show会省略对应模块,不影响模型使用,且所有默认值都能在调用时手动覆盖。
例如:
- qwen2.5-coder:7b 未配置自定义
Parameters→ 省略该模块,使用Ollama全局默认值(temperature=0.7、top_p=0.9、stop=</s>); - deepseek-r1:8b 配置了自定义
stop符 → 显示Parameters模块,使用自定义值。
四、ollama show 核心使用场景总结
- 模型选型:通过
Model模块看参数量、上下文窗口,Capabilities看是否支持工具/推理,选择适配场景的模型; - 开发对接:通过
--template查看Prompt模板,--capabilities确认工具调用能力,保证代码和模型兼容; - 调试优化:通过
--parameters查看默认推理参数,调用时覆盖(如调低temperature提升推理准确性); - 权限确认:通过
--license查看开源协议,确认商用/二次开发权限; - 自定义模型:通过
--modelfile查看模型的构建配置,基于此修改并创建自定义模型(如添加stop符、修改系统提示)。
五、高频实操组合命令
# 1. 快速查看模型是否支持工具调用(开发必备)
ollama show 模型名 | grep -A 5 Capabilities
# 2. 查看模型的Prompt模板并保存到本地,方便开发参考
ollama show 模型名 --template > 模型名-template.txt
# 3. 以JSON格式输出所有推理参数,供脚本/程序解析
ollama show 模型名 --parameters -f json > 模型名-params.json
# 4. 一次性查看模型的模板+系统提示+能力,适配Agent开发
ollama show 模型名 --template --system --capabilities