群晖NAS部署Ollama本地大模型:完美对接WorkBuddy自定义接口,离线可用不翻车

近期使用第三方大模型API对接WorkBuddy时,频繁遇到模型下线、密钥无效、服务内部报错等问题,稳定性难以保障。对于持有群晖NAS的用户,完全可以在本地部署Ollama大模型服务,原生兼容OpenAI协议接口,直接作为自定义模型接入WorkBuddy。所有数据本地运行,无需依赖第三方平台,也没有额度、限速、模型下架的困扰。

本文基于群晖DS1019+(DSM 7.4、8GB内存、赛扬J3455)实测编写,兼顾性能与稳定性,包含完整部署步骤、WorkBuddy对接配置以及防止拖垮NAS的必做优化项。

一、硬件前提与模型选型建议

本地部署大模型,内存是第一约束,其次是CPU算力。以8GB内存的群晖DS1019+为例,系统核显会占用部分显存,实际可用内存约7.6GB;扣除DSM系统、常驻Docker服务(Immich、DTK、Vaultwarden等)的1.5~2GB占用,能稳定分配给大模型的内存约4.5~5GB。

推荐模型分级

模型名称 参数规格 运行内存占用 推荐度 适用场景
qwen2.5:3b 3B参数(int4量化) 1.8~2.2 GB ✅ 首选 日常对话、文案整理、信息摘要,响应流畅,不影响NAS其他服务
deepseek-r1:3b 3B参数(int4量化) 2.0~2.4 GB ✅ 备选 逻辑推理、数学计算能力略强,内存占用与3B通义千问相当
qwen2.5:7b 7B参数(int4量化) 4.2~5.2 GB ⚠️ 谨慎使用 接近内存红线,仅适合短对话,长时间使用易触发OOM导致NAS卡顿

结论:8GB内存机型优先选择3B参数模型,稳定流畅不折腾;如果追求更强能力,建议先升级内存到16GB,再上7B模型。

二、群晖Container Manager部署Ollama

采用项目(docker-compose)方式部署,与你现有Docker服务管理习惯一致,便于后续维护。

步骤1:创建数据目录

打开File Station,在你的Docker存储路径(本文以/volume2/docker为例)下新建文件夹:

  • 上级目录:/volume2/docker/ollama
  • 子目录:/volume2/docker/ollama/data(用于持久化保存模型文件,避免容器重建后重复下载)

步骤2:新建项目并编写配置

  1. 打开「Container Manager」→「项目」→「新建」
  2. 项目名称:ollama
  3. 路径:选择刚才创建的/volume2/docker/ollama
  4. 来源:选择「创建docker-compose.yml」

粘贴以下配置(已包含内存限制优化):

<code>services:
services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: always
    mem_limit: 2.8g
    ports:
      - "11434:11434"
    volumes:
      - ./data:/root/.ollama
    environment:
      - OLLAMA_HOST=0.0.0.0
      - OLLAMA_ORIGINS=*
      - OLLAMA_NUM_PARALLEL=1
      - OLLAMA_MAX_LOADED_MODELS=1
      - OLLAMA_THREADS=2
</code>

步骤3:启动服务

点击下一步完成项目创建,等待镜像拉取与容器自动启动。确认容器状态为「运行中」即可进入下一步。

三、拉取本地大模型

  1. 进入Container Manager → 容器 → 找到ollama → 操作 → 「打开终端」
  2. 根据选型执行对应的拉取命令:

首选(均衡推荐):

ollama pull qwen2.5:3b

备选(推理加强):

ollama pull deepseek-r1:3b

等待终端出现success提示,即代表模型下载完成并就绪。

四、WorkBuddy添加自定义模型接口

回到WorkBuddy的「添加模型」页面,供应商选择「自定义」,按以下参数逐项填写:

  • 接口地址:http://你的群晖内网IP:11434/v1

    示例:http://192.168.xx.xx:11434/v1

    注意:结尾只到/v1,不要追加/chat/completions,客户端会自动拼接路径。
  • API Key:任意填写即可(例如填ollama),本地服务不校验密钥。
  • 模型名称:与你拉取的模型名完全一致,例如qwen2.5:3b
  • 高级配置:取消「工具调用」勾选,图片输入、思考模式、自定义协议均不勾选。
  • 输入、输出保持「使用提供商默认值」

填写完成后点击「测试连接」,提示成功后保存即可使用。

五、部署优化建议(必做,防止拖垮NAS)

群晖NAS的核心定位是存储与轻量服务,大模型属于高负载应用,必须做好限制,避免影响基础服务稳定性。

1. 强制内存上限(最关键)

上述compose配置中的mem_limit: 4.5g必须保留,严格限制Ollama最大内存占用。防止模型推理时内存持续上涨,触发系统OOM杀掉进程,甚至导致整个NAS假死、文件服务中断。

如果使用3B模型,可将上限放宽到3g,预留更多资源给其他服务。

2. 非必要时关闭大内存容器

如果临时测试7B模型,建议先暂停immich_machine_learning、dtk_worker等内存占用较高的非核心容器,腾出内存空间,用完再恢复。

3. 避免长时间高负载推理

赛扬J3455这类低功耗CPU,纯CPU跑大模型会持续满负载。不要用来处理长文本总结、批量代码生成等耗时任务,否则会导致NAS文件访问、相册备份等其他服务响应变慢。

4. 系统预留空间

必须给DSM系统、文件缓存、网络缓冲预留至少1~1.5GB内存,不要把内存占满。一旦开始使用硬盘交换分区,整体性能会断崖式下跌,同时损伤硬盘寿命。

5. 外网访问建议

如果需要在外网调用该接口,优先通过群晖自带反向代理+HTTPS访问,或者路由器端口映射;不建议直接将11434端口暴露在公网,避免未授权访问。

六、常见问题排查

  • 测试连接失败:检查群晖防火墙是否开放11434端口,确认接口地址结尾是/v1,模型名称与拉取的完全一致。
  • 响应速度很慢:纯CPU推理3B模型属于正常现象;如果异常卡顿,查看内存占用是否触顶,触发了交换分区。
  • 容器自动退出:大概率是内存超限被系统杀掉,调低mem_limit数值,或者换用更小参数的模型。

七、WorkBuddy高级配置选项怎么勾选(对照表)

很多新手容易踩坑:以为勾选开关就能开启AI的识图、思考、工具能力。实际上这些选项只是 WorkBuddy 客户端侧的协议打包开关,勾选后会在请求报文里增加对应的特殊字段。只有 Ollama后端 + 当前加载的模型同时支持该特性时,勾选才有效;模型不支持就会直接超时、请求失败。

核心原则:一次尽量只开启一种高级能力,不要多个选项同时勾选,尤其对于DS1019+这类低CPU性能NAS,复杂请求极易超时。

使用模型 图片输入 工具调用 思考模式 自定义协议 说明
qwen2.5:3b(当前推荐,纯文本) ❌ 不勾选 ❌ 不勾选 ❌ 不勾选 ❌ 不勾选 适合日常问答、文案撰写、摘要整理,负载最低、稳定性最好
qwen2.5:3b-v / qwen2.5:7b-v(多模态识图版) ✅ 勾选 ❌ 不勾选 ❌ 不勾选 ❌ 不勾选 支持上传图片识别内容,内存占用相比普通文本模型更高
deepseek-r1:3b / deepseek-r1:7b(推理思考模型) ❌ 不勾选 ❌ 不勾选 ✅ 勾选 ❌ 不勾选 模型会输出 <think> 标签包裹的思考过程,客户端分离展示思考内容与最终答案
qwen2.5:3b-fc(Function Call工具调用版本) ❌ 不勾选 ✅ 勾选 ❌ 不勾选 ❌ 不勾选 支持函数、工具调用,适合需要外部能力联动的场景
所有标准Ollama /v1接口 — — — ❌ 永远不勾选 自定义协议用于非标改造API,原生Ollama不要开启

最简建议:如果你主要用来写文章、整理信息、日常对话,就使用 qwen2.5:3b,高级配置全部留空不勾选,是这套NAS硬件下最稳妥的方案。

八、DS1019+ 资源监控与负载控制实战提醒

从Dozzle监控面板可以直观看到:qwen2.5:3b运行时,Ollama容器常驻占用约2.7GB内存,推理阶段CPU占用飙升至80%以上。DS1019+搭载J3455处理器、8GB物理内存,同时运行Immich、DTK、PostgreSQL、Redis等多个容器,资源余量非常紧张。

  • 建议增加 cpus:2.0 限制CPU核心,OLLAMA_THREADS=2 限制推理线程,避免Ollama独占全部CPU导致其他服务卡顿、接口超时;
  • 内存上限锁定2.8G,防止模型推理时内存持续上涨触发系统OOM,容器被强制杀死;
  • 最优使用策略:按需启停Ollama容器,不用AI的时候直接停止ollama,释放2.7G内存给NAS核心存储、图片备份服务;
  • Immich的机器学习容器(immich_machine_learning)同样是内存大户,不使用图片识别功能时建议暂停;
  • 该硬件条件下,禁止常驻加载7B及更大参数模型,极易内存溢出、服务瘫痪。

补充说明:群晖DSM不支持compose里cpus CPU配额限制

DS1019+这类Braswell平台的DSM内核没有开启CFS CPU带宽调度,在compose中填写 cpus: x.x 会报错:NanoCPUs can not be set, as your kernel does not support CPU CFS。

  • 内存限制 mem_limit 不受影响,可以正常使用;
  • 必须删掉 compose 中的 cpus 配置项;
  • 替代方案:依靠 OLLAMA_THREADS=2 在模型推理层控制线程数,同时在Container Manager图形界面调低容器CPU调度优先级;
  • OLLAMA_THREADS 是 Ollama 自身的参数,不依赖系统cgroup,在群晖上可以正常生效,是J3455机型控制负载的核心手段。

总结

在群晖NAS上部署Ollama本地大模型,最核心的价值是数据安全、稳定可控、永久免费。对于日常轻量使用场景,3B参数模型完全够用,且不会对NAS造成过重负担。如果后续有更高需求,升级内存是性价比最高的优化方式。

部署完成后,WorkBuddy就可以完全离线调用本地大模型,不再受第三方平台的服务波动、模型下架、额度限制影响,打造完全属于自己的私有AI助手。

分享到:

用微信扫一扫,分享给朋友


发布日期:

所属分类: 编程语言 标签:



下一篇:

没有了,已经是最新文章