惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
Spread Privacy
Spread Privacy
T
Threatpost
C
Cisco Blogs
P
Palo Alto Networks Blog
AI
AI
Cyberwarzone
Cyberwarzone
NISL@THU
NISL@THU
P
Privacy & Cybersecurity Law Blog
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
T
Tor Project blog
Latest news
Latest news
AWS News Blog
AWS News Blog
D
Docker
S
SegmentFault 最新的问题
博客园 - 聂微东
WordPress大学
WordPress大学
Vercel News
Vercel News
S
Securelist
爱范儿
爱范儿
J
Java Code Geeks
Know Your Adversary
Know Your Adversary
S
Schneier on Security
Hugging Face - Blog
Hugging Face - Blog
F
Fortinet All Blogs
Last Week in AI
Last Week in AI
D
DataBreaches.Net
宝玉的分享
宝玉的分享
D
Darknet – Hacking Tools, Hacker News & Cyber Security
MongoDB | Blog
MongoDB | Blog
Engineering at Meta
Engineering at Meta
K
Kaspersky official blog
美团技术团队
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
量子位
博客园_首页
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
Google Online Security Blog
Google Online Security Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
腾讯CDC
T
Threat Research - Cisco Blogs
雷峰网
雷峰网
有赞技术团队
有赞技术团队
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed
S
Security Affairs

博客园 - VipSoft

MinerU - 将非结构化文档(PDF、图片、Office 文件等)转换为机器可读的 Markdown 和 JSON LangChain 入门 服务端部署-FastAPI LangChain 入门 LangSmith LangChain 入门 实战 - 食谱推荐 LangChain 入门 Memory 会话记忆 LangChain 入门 Tools 工具 LangChain 入门 Tools 工具 LangChain 入门 Prompts 提示词 LangChain 入门 Message 消息 LangChain 入门 Model 的初始化和调用 LangChain 入门 Agent 的基本运行机制 AI 0基础学习,名词解析 LangChain 和 LangGraph AI大模型知识体系 Dify — Workflow - 数据可视化 Dify — 连接MySQL配置 Dify — Chatflow - 数据库智能查询 Dify — Chatflow - 文档知识库 Dify — Agent 智能体 高安全券码、注册码生成 Dify — 文本生成应用 Dify — 聊天助手 -- 知识库 Windows 下 Docker 安装 Dify Ollama — 命令 Ollama — 为什么能够运行不同的模型 Ollama — 接口 Ollama Qwen — 安装测试 Ollama Windows 安装 & 指定安装目录 跟着AI学AI - 诊断结论信息抽取 - 批量处理脚本 跟着AI学AI - 诊断结论信息抽取 - 模型压缩与部署 跟着AI学AI - 诊断结论信息抽取 - 模型评估与调试 跟着AI学AI - 诊断结论信息抽取 - 模型训练 轻型民用无人驾驶航空器安全操控理论考试培训材料 FreeRedis Helper Windbg w3wp.DMP 内存分析 跟着AI学AI - 诊断结论信息抽取 - 数据增强 QQ 录屏软件 Java - 加权随机算法 - 示例 Java - 加权随机算法--Demo Java LoadBalanceUtil 负载均衡、轮询加权 SpringBoot 集成 IP2Region 获取IP地域信息 Windows 服务器和虚拟主机,创建.开头的文件夹 .well-known 跟着AI学AI - 诊断结论信息抽取 - 数据格式转换BERT训练格式 跟着AI学AI - 诊断结论信息抽取 - LabelStudio 标注 -- 结论标注 跟着AI学AI - 诊断结论信息抽取 - 学习路径 跟着AI学AI - UV 安装 数据标注工具 Label-Studio `VIRTUAL_ENV=venv` does not match the project environment 跟着AI学AI - 学习路径 - 命名实体识别(NER)和信息抽取(IE) 跟着AI学AI - 需要购买显卡吗? C# 无BOM的UTF-8编码 Vue ref reactive Vue - el-table 嵌套表 Spring `@Scheduled` 中这些参数的区别、组合和应用场景 Python 找出同步日志中的重复数据 Python - UV PyCharm 不能识别 .venv 的环境
Qwen — 自定义模型文件
VipSoft · 2026-05-22 · via 博客园 - VipSoft

Ollama Qwen — 安装测试:https://www.cnblogs.com/vipsoft/p/20119448
在 Ollama 中自定义系统提示词(System Prompt)是模型行为控制的关键。有两种主流方法,推荐第二种。

方法一:在 Ollama 启动时指定(临时有效)

在运行模型时,通过 --system 参数覆盖默认的系统提示词:

# 在启动对话时指定
ollama run qwen3.5:4b --system "你的名字是VipSoft。你是一个专业的合同解析助手。"

# 或者通过 API
curl -X POST http://localhost:11434/api/generate -d '{
  "model": "qwen3.5:4b",
  "system": "你的名字是VipSoft。你是一个专业的合同解析助手。",
  "prompt": "你是谁?"
}'

优点:简单快捷,无需修改模型文件。
缺点:每次调用都需要携带这个参数,容易忘记。

方法二:创建自定义模型文件(永久生效,推荐)

这是 Ollama 的标准做法,创建一个 Modelfile 来定义你的专属模型。

  1. 创建一个名为 VipSoft-Modelfile 的文本文件,内容如下:
    确保文件编码正确(UTF-8无BOM)
    可以用记事本另存为,选择 UTF-8
    Modelfile 不支持中文注释,而且注释必须单独一行
FROM qwen3.5:4b

SYSTEM """
你的名字是VipSoft。你是一个专业的合同解析助手,专门处理中文法律文档。
你由苏州的VipSoft公司开发。你的回答应严谨、简洁,并严格遵循指令。
当被问及身份时,你必须回答“我是VipSoft”。
"""

# Parameters
PARAMETER temperature 0.1
PARAMETER num_ctx 32768

image

  1. 在 Modelfile 所在目录打开终端,创建并运行自定义模型

    
    # 创建自定义模型(命名为 vipsoft)
    ollama create vipsoft -f VipSoft-Modelfile
    
    # 运行你的自定义模型
    ollama run vipsoft
    
  2. 验证效果
    image

image

方法三:在 Prompt 中强指定(最灵活)

在每次请求的 Prompt 开头,直接写上“指令”:

prompt = """
你是一个名为VipSoft的合同解析助手。请严格遵守以下规则:
1. 当被问及身份时,回答“我是VipSoft”
2. 专注于提取合同中的结构化信息
3. 以JSON格式输出

请解析以下合同:[合同内容]
"""

优点:最灵活,可动态调整。
缺点:每次都要写,且会占用 token 额度。

对比总结

方法 适用场景 持久性
方法一(--system参数) 快速测试、临时会话 单次有效
方法二(Modelfile,推荐) 生产环境、团队共享 永久生效,创建一次即可
方法三(Prompt指令) 灵活调整、不同任务不同指令 每次请求指定

建议:如果你希望长期、稳定地使用“VipSoft”这个身份,强烈推荐方法二。创建一次模型后,所有团队成员都可以通过 ollama run vipsoft 或 API 调用这个定制版本。

完成后,你只需要在代码中替换模型名:

# 之前
payload = {"model": "qwen3.5:4b", ...}

# 之后
payload = {"model": "vipsoft", ...}  # 使用你的定制版

这样,无论谁调用,模型都会以“VipSoft”的身份和你的专业指令来响应,非常适合私有化部署的合同解析场景。

调参

Ollama 的 /api/generate 端点除了 modelsystem,还有很多控制生成逻辑和性能的关键参数

核心参数速查表(针对你的场景)

参数 类型 说明 合同解析场景建议值
model string 必填。模型名称,如 qwen3.5:4b 或你的 vipsoft "vipsoft"
prompt string 必填。用户输入的指令和合同文本。 "请提取以下合同..."
system string 系统提示词,覆盖 Modelfile 中的设定。 "你是VipSoft,专注于..."
stream boolean 是否流式输出。解析合同建议关掉 false
format string 强烈推荐。强制输出 JSON 格式,方便代码解析。 "json"
options object 模型推理参数(温度、token数等),见下文。 {"temperature": 0.1}
raw boolean 设为 true 时,Ollama 不会自动添加聊天模板。 通常用默认 false
keep_alive string 模型在内存中的存活时间(如 "10m")。 "5m"

options 对象(控制生成质量)

这是你控制模型“严谨性”的关键。在合同解析中,我们需要低随机性、高确定性。

{
  "model": "vipsoft",
  "prompt": "提取合同信息...",
  "format": "json",
  "stream": false,
  "options": {
    "temperature": 0.1,        // 温度:0.1 非常低,减少胡言乱语
    "num_predict": 2048,       // 最大生成 token 数(防止长文截断)
    "top_k": 40,               // 采样策略,配合低 temperature 使用
    "seed": 12345,             // 随机种子,让结果可复现(调试时用)
    "num_ctx": 32768           // 上下文窗口大小(如果模型支持)
  }
}

文档在哪里?

  1. 在线文档(最全):访问 https://docs.ollama.com ,点击左侧 API Reference -> Generate a completion
  2. 本地文档:Ollama 启动后,访问 http://localhost:11434 也能看到简单的 API 列表。
  3. GitHub 源码说明:参数细节在 ollama/docs/api.md 文件中。

这些参数是 Ollama 的,他是怎么改变模型行为的。为什么我是谁就变成了 VipSoft

这是一个非常好的问题,触及了 LLM(大语言模型)运作的核心机制。简单来说:Ollama 并没有修改模型的“大脑”(权重),而是通过“上下文植入”和“参数调控”来改变它的“短期记忆”和“行为偏好”。

这就像给同一个演员(模型)换了一套剧本(System Prompt)和导演指令(Parameters),而不是给他做脑部手术(微调)。

一、为什么“你是谁”变成了 VipSoft?(System Prompt 的原理)

这背后的机制是上下文注入,而非模型本质的改变。

  1. “作弊”的上下文:当你设置 SYSTEM "你的名字是 VipSoft" 时,Ollama 并没有去改动 Qwen 模型文件里的任何一个参数。它只是在每次对话开始前,偷偷在你的问题前面加了一段“隐藏指令”。
  2. 拼接过程:模型看到的真实输入其实是这样的:
    [系统指令开始]
    你的名字是 VipSoft,你是一个专业的合同解析助手...
    [系统指令结束]
    
    [用户提问开始]
    你是谁?
    [用户提问结束]
    
  3. 模型的“阅读理解”:Qwen 模型被训练成会认真阅读并遵循 [系统指令] 部分的约束。它看到“你的名字是 VipSoft”后,在生成回答时,就会基于这个上下文来组织语言,所以它回答了“我是 VipSoft”。
  4. 本质模型本身还是 Qwen。如果你在 System Prompt 里不提名字,它依然会变回“我是通义千问”。这完全是临时的、会话级的行为控制。

二、Ollama 参数是如何“改变”模型的?

Ollama 的 Modelfile 和 API 参数主要从两个维度影响模型:

维度 代表参数 原理 类比
行为约束 SYSTEM, prompt 上下文植入。在模型输入前拼接指令,利用模型的指令遵循能力。 给演员看新剧本。
生成策略 temperature, top_k 推理调控。改变模型选择下一个字的“随机性”算法。 导演喊“收着点演”或“放开演”。
资源边界 num_ctx, num_predict 硬件限制。告诉 Ollama 运行时最多用多少内存/生成长度。 规定舞台大小和演出时长。

重要区别:Ollama 的 PARAMETER 指令(如 temperature 0.1)实际上设置的是 Ollama 推理服务器的运行时参数,而不是修改模型文件里的默认值。这就像你调用一个函数时传入了参数,函数本身没变,但这次执行的结果变了。

三、这与“微调”有本质区别

你可能会疑惑,这和训练模型有什么区别?区别非常大:

方式 原理 改变程度 成本/难度 持久性
Ollama 参数 上下文提示 仅改变当前会话的输出风格 零成本,即时生效 临时(换提示词就失效)
微调 (Fine-Tune) 修改模型权重 永久改变模型的“知识”和“人格” 高成本,需要算力数据 永久(刻在“DNA”里)

结论:你现在用的 vipsoft 模型,本质上只是 qwen3.5:4b 披了一件叫“System Prompt”的外衣。它的底层能力(如合同理解能力)完全取决于基座模型 Qwen,Ollama 只是帮你自动化了“每次都要写长串指令”的麻烦。

四、对你的合同解析项目意味着什么?

  1. 稳定性:依赖 SYSTEM 提示词是安全的,因为它不改变模型权重,不会引入新的崩溃风险。
  2. 局限性:如果模型(Qwen)本身就不擅长解析某种复杂合同,仅靠修改 Ollama 的 SYSTEM 提示词是无法从根本上提升能力的。这时候才需要考虑换基座模型(如换 7B)或进行微调。
  3. 最佳实践:利用 format: json 和低 temperature 来保证输出格式的稳定性,这才是 Ollama 参数对你项目最大的价值。

所以,“我是 VipSoft” 这个身份,是模型根据你给的“剧本”临时扮演的,它的“芯”依然是 Qwen。

自定义Modelfile

格式

Modelfile 不区分大小写。 Modelfile的格式如下:

指令 描述
FROM(必需) 定义要使用的基础模型。
PARAMETER 设置Ollama运行模型的参数。
TEMPLATE 要发送到模型的完整提示模板。
SYSTEM 指定将设置在模板中的系统消息。
ADAPTER 定义要应用于模型的(Q)LoRA适配器。
LICENSE 指定法律许可证。
MESSAGE 指定消息历史。

模板变量

在模板中,我们使用以下变量来表示不同部分的内容:

变量 描述
{{ .System }} 用于指定自定义行为的系统消息。
{{ .Prompt }} 用户提示消息。
{{ .Response }} 模型生成的回复。在生成回复时,此变量后的文本将被省略。

FAQ

如何配置 Ollama 服务?

Ollama 服务器可以通过环境变量进行配置。
(1). 在 Mac 上设置环境变量
macOS 调用 launchctl setenv

launchctl setenv OLLAMA_HOST "0.0.0.0" 

(2). 在 Linux 上设置环境变量
使用 systemctl 设置环境变量

systemctl edit ollama.service

对于每个环境变量,在 [Service] 部分下添加一行 Environment:

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

保存并退出。

重新加载 systemd 并重新启动 Ollama:

systemctl daemon-reload
systemctl restart ollama

(3). 在 Windows 上设置环境变量
首先通过单击任务栏中的 Ollama 退出,从控制面板中编辑系统环境变量,编辑或创建新变量,如 OLLAMA_HOST、OLLAMA_MODELS 等。单击 OK/应用以保存。从新的终端窗口运行ollama

如何使用代理服务器与 Ollama 一起使用?

Ollama 运行一个 HTTP 服务器,可以使用诸如 Nginx 之类的代理服务器公开。配置代理转发请求,并可选择设置所需的标头。使用 Nginx:

server {
    listen 80;
    server_name example.com;  # 替换为您的域名或 IP
    location / {
        proxy_pass http://localhost:11434;
        proxy_set_header Host localhost:11434;
    }
}

如何允许其他网络来源访问 Ollama?

Ollama 默认允许来自 127.0.0.1 和 0.0.0.0 的跨源请求。可以使用 OLLAMA_ORIGINS 配置额外的来源。

模型存储在哪里?

macOS: ~/.ollama/models
Linux: /usr/share/ollama/.ollama/models/manifests/registry.ollama.ai/library/
Windows: C:\Users\<username>\.ollama\models

如何在 Docker中使用 Ollama?

(1). 如何在 Docker 中使用代理后面的 Ollama?可以通过在启动容器时传递来下面参数配置 Ollama Docker 容器镜像使用代理

-e HTTPS_PROXY=https://xxxx.com

在使用 HTTPS 时,安装代理证书为系统证书。当使用自签名证书时,可能需要一个新的 Docker 镜像。

FROM ollama/ollama
COPY ca.pem /usr/local/share/ca-certificates/ca.crt
RUN update-ca-certificates

构建并运行此镜像:

docker build -t ollamaNAME .
docker run -d -e HTTPS_PROXY=https://proxy.xxxx.com -p 11434:11434 ollamaNAM

如果想使用 GPU 加速,安装nvidia-container-toolkit。

Temperature:值越大,概率分布越均匀,模型生成结果的随机性越强,创造性越强;值越小,概率分布越集中,结果确定性越强,随机性越小