当前位置: 首页 > article >正文

使用 Ollama 本地部署 Qwen3.5-4B 多模态模型

使用 Ollama 本地部署 Qwen3.5-4B 多模态模型背景对于大模型初学者来说本地部署的第一步不一定是直接追求最大、最强的模型而是先把完整流程跑通。一个比较完整的入门流程通常包括下载模型本地运行模型命令行对话API 调用图片输入测试查看显存占用理解模型量化方式本次选择的模型是qwen3.5:4b这是 Qwen3.5 系列的 4B 多模态模型支持文本和图像输入适合用来学习本地多模态大模型部署。Ollama 可以简单理解为一个本地大模型运行器。它不是模型本身而是负责模型下载、模型管理、本地推理和 API 服务。使用 Ollama 的好处是安装和使用比较简单可以直接下载量化模型默认提供本地 HTTP API支持 GPU 加速适合快速验证模型效果适合初学者理解本地部署流程Ollama 和 Python 环境的关系Ollama 不是 Python 包也不是安装在 conda 的 base 环境里。它是一个独立的本地服务。可以这样理解Ollama 负责运行模型。Python 脚本只是客户端通过 HTTP 请求调用 Ollama。conda 环境只影响 Python 代码不影响 Ollama 本体。后续 Python 调用 Ollama 时本质上是访问http://localhost:11434/api/chat所以不用担心 Ollama 会污染 Python 环境。模型目录规划Ollama 默认会把模型文件放在系统目录中。随着后续下载的模型越来越多可能会占用较多系统盘空间。因此建议提前设置一个独立的模型存储目录例如OLLAMA_MODELS_DIR这里可以替换成自己的数据盘路径。后续所有通过 Ollama 下载的模型都会统一放在这个目录中方便管理。注意在 systemd 服务配置中建议使用绝对路径不要使用~因为服务环境中不一定会自动展开当前用户目录。安装 Ollama网络稳定时可以直接使用官方安装方式curl-fsSLhttps://ollama.com/install.sh|sh安装完成后检查whichollama ollama-v如果能看到 Ollama 的路径和版本号说明安装成功。如果网络不稳定直接安装可能会遇到下载中断例如curl: (92) HTTP/2 stream was not closed cleanly tar: 归档文件中异常的 EOF这通常表示安装包下载到一半中断导致压缩包不完整。更稳妥的方式是先完整下载安装包再手动解压。创建安装目录mkdir-pAPP_DIR/ollama_installcdAPP_DIR/ollama_install安装下载和解压工具sudoaptupdatesudoaptinstall-yaria2 zstd使用 aria2c 断点续传下载aria2c-x8-s8-k1M-c\https://ollama.com/download/ollama-linux-amd64.tar.zst\-oollama-linux-amd64.tar.zst下载完成后检查压缩包是否完整unzstd-tollama-linux-amd64.tar.zst如果没有报错再解压安装sudotar--use-compress-programunzstd-xfollama-linux-amd64.tar.zst-C/usr再次检查whichollama ollama-v创建模型存储目录创建模型目录sudomkdir-pOLLAMA_MODELS_DIR如果是手动安装系统里可能还没有ollama用户。可以先检查idollama如果提示用户不存在则创建 Ollama 系统用户sudouseradd-r-s/bin/false-U-m-d/usr/share/ollama ollama然后把模型目录权限交给 Ollamasudochown-Rollama:ollamaOLLAMA_MODELS_DIR这样 Ollama 服务才能正常读写模型文件。配置 Ollama 后台服务创建 systemd 服务文件sudotee/etc/systemd/system/ollama.service/dev/nullEOF [Unit] DescriptionOllama Service Afternetwork-online.target [Service] ExecStart/usr/bin/ollama serve Userollama Groupollama Restartalways RestartSec3 EnvironmentPATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin EnvironmentOLLAMA_MODELSOLLAMA_MODELS_DIR [Install] WantedBymulti-user.target EOF这里需要把OLLAMA_MODELS_DIR替换成自己的模型目录绝对路径。如果需要使用 NVIDIA GPU建议给ollama用户添加显卡访问权限sudousermod-aGvideo ollama getent group render/dev/nullsudousermod-aGrender ollama重载并启动服务sudosystemctl daemon-reloadsudosystemctlenable--nowollama查看服务状态systemctl status ollama --no-pager如果看到active (running)说明服务启动成功。检查模型目录环境变量是否生效systemctl show ollama--propertyEnvironment如果输出中包含OLLAMA_MODELSOLLAMA_MODELS_DIR说明模型目录配置成功。下载并运行 Qwen3.5-4B下载模型ollama pull qwen3.5:4b下载成功后通常会看到类似信息verifying sha256 digest writing manifest success查看本地模型列表ollama list检查模型目录大小du-shOLLAMA_MODELS_DIR如果模型目录出现几个 GB 的占用说明模型已经下载到了指定位置。启动模型ollama run qwen3.5:4b进入交互界面后可以直接输入你好请介绍一下你自己。如果模型正常回复说明本地模型已经成功运行。退出交互模式可以使用Ctrl D或者输入/bye查看模型信息和量化级别查看模型信息ollama show qwen3.5:4b可以看到类似信息architecture qwen3 parameters 4.7B context length 262144 embedding length 2560 quantization Q4_K_M capabilities completion, vision, tools, thinking其中最关键的是quantization Q4_K_M这说明当前下载的是 4-bit 量化版本。可以简单理解为Q4_K_M 是 GGUF / llama.cpp 体系中的一种 4-bit 权重量化格式。它接近 INT4 级别的压缩但不是最朴素的 int4而是包含分组、scale 等机制的量化格式。这也是为什么模型文件只有几 GB运行时显存占用也比较低。如果使用 FP16 原始权重4B 参数模型理论上仅权重就需要大约 8GB 显存4B × 2 bytes ≈ 8GB这还不包括 KV cache、运行时缓存、视觉编码器开销和上下文长度开销。而 Ollama 下载的通常是量化模型例如 Q4_K_M。量化后模型权重明显变小所以实际显存占用会低很多。检查是否使用 GPU可以打开一个新终端执行watch-n1nvidia-smi然后在另一个终端运行模型或发送 API 请求。如果nvidia-smi中出现 Ollama 进程并且显存占用增加说明模型正在使用 GPU。也可以查看当前正在运行的 Ollama 模型ollamaps测试本地 APIOllama 默认 API 地址是http://localhost:11434可以使用 curl 测试文本输入curlhttp://localhost:11434/api/chat\-d{ model: qwen3.5:4b, messages: [ { role: user, content: 你好请用三句话介绍一下你自己。 } ], stream: false }如果返回 JSON并且其中包含模型回复说明本地 API 调用成功。因为qwen3.5:4b是多模态模型所以也可以测试图片输入。假设有一张图片IMAGE_PATH先将图片转成 base64IMG$(base64-w0IMAGE_PATH)然后发送请求curlhttp://localhost:11434/api/chat\-d{\model\:\qwen3.5:4b\,\messages\: [ {\role\:\user\,\content\:\请描述这张图片并判断图中是否有车辆、建筑、道路、水体或裸土。请用 JSON 格式输出。\,\images\: [\$IMG\] } ],\stream\: false,\options\: {\temperature\: 0.2,\num_ctx\: 4096 } }如果模型能够返回图片描述说明多模态输入已经跑通。使用 Python 调用 Ollama API后续如果要批量处理图片更推荐使用 Python 调用本地 API。示例脚本如下importbase64importjsonimportrequestsfrompathlibimportPath MODELqwen3.5:4bURLhttp://localhost:11434/api/chatIMAGE_PATHIMAGE_PATHdefencode_image(image_path:str)-str:returnbase64.b64encode(Path(image_path).read_bytes()).decode(utf-8)defmain():image_b64encode_image(IMAGE_PATH)payload{model:MODEL,messages:[{role:user,content:(你是一个图像理解助手。请判断图像中主要包含什么内容是否有车辆、建筑、道路、水体或裸土。请严格用 JSON 输出格式为{\summary\:\一句话描述\, \objects\:[\车辆\,\建筑\], \reason\:\简短原因\}),images:[image_b64]}],stream:False,options:{temperature:0.2,num_ctx:4096}}responserequests.post(URL,jsonpayload,timeout120)response.raise_for_status()dataresponse.json()contentdata[message][content]print(模型原始输出)print(content)try:parsedjson.loads(content)print(\n解析后的 JSON)print(json.dumps(parsed,ensure_asciiFalse,indent2))exceptException:print(\n注意模型输出不是严格 JSON后续可以加强提示词或做 JSON 清洗。)if__name____main__:main()运行脚本python test_qwen35_image.py常用 Ollama 命令查看已下载模型ollama list运行模型ollama run qwen3.5:4b查看模型信息ollama show qwen3.5:4b查看正在运行的模型ollamaps删除模型ollamarmqwen3.5:4b查看 Ollama 服务状态systemctl status ollama --no-pager重启 Ollama 服务sudosystemctl restart ollama查看模型目录大小du-shOLLAMA_MODELS_DIR

相关文章:

使用 Ollama 本地部署 Qwen3.5-4B 多模态模型

使用 Ollama 本地部署 Qwen3.5-4B 多模态模型 背景 对于大模型初学者来说,本地部署的第一步不一定是直接追求最大、最强的模型,而是先把完整流程跑通。一个比较完整的入门流程通常包括: 下载模型本地运行模型命令行对话API 调用图片输入测试查…...

嵌入式系统中ASN.1数据处理的优化策略与实践

1. ASN.1在嵌入式系统中的核心挑战在嵌入式系统开发中处理ASN.1数据面临着独特的挑战。与通用计算环境不同,嵌入式设备通常具有严格的内存限制、有限的处理能力和苛刻的实时性要求。让我们先看一个典型的场景:当设备需要处理X.509证书时,传统…...

声明式3D开发:基于React与Three.js构建Web三维场景

1. 项目概述:三维世界构建的新范式 最近在探索3D内容创作和Web交互领域时,一个名为 pmndrs/triplex 的项目引起了我的浓厚兴趣。这并非一个传统的3D建模软件或游戏引擎,而是一个基于现代Web技术栈(特别是React和Three.js&#x…...

汽车OTA升级技术深度解析:从安全架构到工程实践

1. 汽车OTA升级:从概念到落地的深度拆解作为一名在汽车电子和嵌入式系统领域摸爬滚打了十几年的工程师,我亲眼见证了汽车从一个纯粹的机械产品,演变成一个高度复杂的、由软件定义的“轮上计算机”。在这个过程中,空中下载技术&…...

一码溯源坚守本心 京尚重构智慧厨房品质新生态

在消费升级与健康理念普及的当下,食品接触器具的品质与安全备受关注。京尚智慧厨房正式推出“一锅一码一匠心”全链条溯源体系,以数字化技术实现从泥到火的生产全程可追溯,用透明化管理彰显品牌责任与硬核实力,为行业树立品质新标…...

fast-mcp:基于MCP协议的高性能AI工具调用服务器实现

1. 项目概述:一个为AI应用提速的“高速公路”接口 最近在折腾AI应用开发的朋友,估计没少为“上下文管理”和“工具调用”这两件事头疼。你辛辛苦苦写了个Agent,让它去调用一个外部API获取数据,结果发现光是来回传递消息、解析指令…...

Taotoken用量看板与成本管理在团队API开支控制中的实际效果

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken用量看板与成本管理在团队API开支控制中的实际效果 对于小型技术团队而言,大模型API的调用成本是项目预算中一…...

构建青少年网络安全防护体系:从技术配置到风险认知培养

1. 项目概述:当网络安全教育遇上青少年社交网络使用最近在整理一些旧资料时,翻到一篇2012年关于儿童网络安全的行业评论,核心观点是:一项调查显示,高达88%的消费者希望向使用社交网络的儿童提供更多的安全建议。但文章…...

自然语言驱动自动化:nopua项目如何用LLM与Python解放重复劳动

1. 项目概述:一个为“懒人”设计的自动化工具最近在GitHub上闲逛,发现一个挺有意思的项目,叫nopua,来自wuji-labs。光看这个名字,就透着一股子“无为而治”的哲学味儿。点进去一看,果然,它的定位…...

基于NeoGPT构建本地知识库:RAG技术实战与调优指南

1. 项目概述:当本地大模型遇上你的个人知识库最近在折腾本地大模型的朋友,可能都遇到过类似的困境:模型本身能力不差,但一聊到公司内部文档、个人笔记或者某个特定领域的专业资料,它就立刻“露怯”,要么胡说…...

韩国AI应用付费爆发:开发者如何抢占AI出海高价值订阅增长窗口?

数字分析机构Sensor Tower披露的数据显示,截至2026年1月,韩国已跃升为谷歌生成式AI服务Gemini的全球第二大付费订阅市场,创收能力仅次于美国。 而Gemini的成功并非个例:许多AI应用开发者表示,尽管产品在韩国的下载量不…...

模拟信号隔离技术:工业自动化中的地环路干扰解决方案

1. 模拟信号隔离的工业需求与技术痛点在工业自动化现场,我们经常遇到这样的场景:一台PLC需要采集分布在车间不同位置的传感器信号,这些传感器可能分别接在不同配电柜的电源上。当把这些信号直接接入采集系统时,显示器上会出现莫名…...

NeoGPT实战:基于RAG构建本地私有知识库问答系统

1. 项目概述:当本地大模型遇上你的个人知识库最近在折腾本地大模型应用的朋友,估计都绕不开一个核心痛点:如何让这些动辄几十亿参数的“大聪明”真正理解并回答你私有的、特定领域的问题?比如,你想让它帮你分析公司内部…...

从2D到3D NAND:存储技术演进、控制器挑战与未来展望

1. 从平面到立体:一场关于存储密度的极限博弈 十多年前,当道格黄(Doug Wong)在EE Times的访谈中谈及存储行业的未来时,他描绘的图景在今天看来,许多已成为现实,而另一些则仍在深刻的演进之中。那…...

头歌MySQL-基于电影、演员及票房应用的数据查询(Select)

第1关:应用背景介绍与电影信息查询任务描述:熟悉本实训数据库的内容; 查询电影的主要信息。 相关知识 为了完成本关任务,你需要掌握:SELECT单表简单条件查询。背景 本实训采用的是电影网站的一个裁剪版的数据库&#x…...

Product Hunt 每日热榜 | 2026-05-08

1. FlowMarket 标语:一个由人工智能代理构成的社交网络,用于创造企业间的交易。 介绍:FlowMarket 是一个由人工智能代理组成的网络,能够自动发现、匹配和生成B2B交易。你只需几分钟就能创建自己的代理,并让它全天候运…...

【图像隐写】多通道DWT-DCT-SVD彩色图像水印系统【含Matlab源码 15419期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab领域博客之家💞&…...

【图像隐写】DWT和DCT的鲁棒图像水印系统【含Matlab源码 15418期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab领域博客之家💞&…...

【楼梯】装知网配式楼梯轻⁤量化优化设计【含Matlab源码 15422期】含同名参考文献

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab领域博客之家💞&…...

2026 最新版全网最细网络安全学习路线,从零基础小白逆袭实战专家全覆盖

网络安全作为数字时代的核心刚需领域,岗位需求持续激增,薪资水平稳居行业前列。但很多零基础学习者入门时会陷入资料杂乱、方向迷茫、学用脱节的困境——要么盲目刷课却不懂实战,要么只学工具却缺乏底层逻辑。 本文整理了一套循序渐进、实战…...

ARM浮点转整数指令VCVTA原理与应用详解

1. ARM浮点转整数指令VCVTA深度解析在嵌入式开发和底层优化中,浮点数与整数之间的高效转换是一个关键操作。ARM架构提供了专门的VCVTA指令来处理这类转换,其独特之处在于采用了"Round to Nearest with Ties to Away"(RNTA&#xff…...

登录获取token和刷新token两个接口是怎么用的???

登录获取 Token 和刷新 Token 是两个配合使用的接口,下面是完整的使用流程和代码实现。一、两个接口的作用接口类型使用时机返回内容有效期登录接口用户首次登录accessToken refreshTokenaccessToken 短期(如30分钟)refreshToken 长期&#…...

腾讯会议企业管理员 REST API 实战:用户/部门批量管理与会议合规审计

本文适用于企业级管理员开发场景,代码基于腾讯会议 REST API v2,Python 3.x 示例。 参考文档:腾讯会议开放平台 API 文档 【内文配图1位置】 背景 中大型企业使用腾讯会议企业版后,IT 管理员通常面临以下管理需求: 批…...

视频人脸打码软件工具

引言随着视频录制、直播互动、公共终端应用的普及,人脸信息作为核心个人隐私,其保护需求日益迫切。无论是课堂录制中需要隐藏学生身份、直播场景下保护观众隐私,还是自助终端界面避免路人面部泄露,传统手动打码效率低下、易遗漏的…...

MySQL 索引底层深度解密:为什么 InnoDB 偏偏选中了 B + 树?

作为后端开发,我们每天都在和 MySQL 打交道,写 SQL 时张口就来 “加个索引优化一下”,面试时也总能脱口而出 “MySQL 索引底层是 B 树”。但只要面试官多追问一句:为什么不用二叉树、红黑树做索引?哈希表单点查询 O (…...

力扣算法刷题 Day 63 Bellman_ford 算法

队列优化 Bellman_ford 朴素算法在每一轮操作中对所有边进行松弛是不必要的。只需要对上一轮更新过的边进行计算就好&#xff0c;因此我们定义一个队列&#xff0c;初始化只有出发节点&#xff0c;之后其中为当前轮次加入的队列。 #include <iostream> #include <vect…...

ByteBase实战:基于Database-as-Code理念构建数据库DevOps协作中心

1. 项目概述与核心价值 最近在折腾一个内部小项目&#xff0c;需要把几个不同业务线的数据库变更流程统一管起来。这活儿听起来简单&#xff0c;但真做起来&#xff0c;从开发提工单、DBA审核、到最终执行和回滚&#xff0c;中间涉及的工具链、权限控制和审计日志&#xff0c;零…...

智能机器人学习知识库构建:从感知规划控制到AI决策实战

1. 从零到一&#xff1a;如何构建你的智能机器人学习知识库最近在整理自己的技术笔记时&#xff0c;发现很多朋友对机器人学&#xff0c;特别是智能机器人这个领域很感兴趣&#xff0c;但苦于入门资料零散、理论艰深。这让我想起了几年前在瓦萨大学&#xff08;University of V…...

C++版俄罗斯赌盘(爽到飞起)

俄罗斯赌盘是一款比较火的网络游戏而今天我用c加加代码复原了他&#xff0c;接下来请大家尽情欣赏源代码:#include <iostream> #include <vector> #include <queue> #include <cstdlib> #include <ctime> #include <algorithm> #include &…...

Linux48:rockx常用的API

rockx人脸检测使用的API rockx框架提供了一系列的人脸识别、检测的API&#xff0c;开发者使用它的API能够快速开发出人脸相关的功能。我们来看看在人脸检测中需要用到的API。 1.1 rockx_create函数的定义 rockx_ret_t rockx_create(rockx_handle_t *handle, rockx_module_t m…...