多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

ollama离线安装与国内镜像源:本地部署大模型完整指南

ollama离线安装与国内镜像源:本地部署大模型完整指南 最近连续三天都在帮团队把大模型环境从云端搬到本地工作站。过程中最大的感受是模型的推理效果反而不是第一道坎第一道坎是文件怎么下载下来。官网的ollama安装脚本在我这边的网络环境里经常跑到一半就断之后用ollama去拉模型更是时不时卡成个位数KB运气差的时候等十分钟进度条都纹丝不动。于是我把整套流程整理成了“离线安装 国内镜像源 本地导入”的方案先用镜像源把ollama安装包搞到手上再从国内可高速访问的大模型开放平台把GGUF格式的模型文件拉下来最后通过ollama的Modelfile机制导入。全程不走海外下载链路速度稳定很多。现在这几台机器已经稳定跑着通义千问2.5的7B和14B版本还有一台在跑DeepSeek-R1的蒸馏版日常写周报、做代码审查、处理表格都够用。这篇内容适合谁正在本地部署AI大模型的开发者和运维被ollama下载慢折磨过的重度用户还有需要在内网环境给团队提供大模型服务的朋友。看完之后你可以照着这套链路把ollama完整安装起来并把通义千问、DeepSeek这些模型在自己的机器上真正跑起来。1. 项目思路拆解为什么选ollama国内镜像源解决什么1.1 本地部署的三个前置问题动手之前先想清楚三件事为什么本地、用什么框架、模型从哪来。第一件事为什么本地。云端API确实方便但很多场景下数据是不能出内网的比如内部文档分析、代码片段审查、客户聊天记录摘要这些数据经过云端服务心里总是不踏实。另外长期高频调用API的成本也不低本地部署需要一次性投入硬件但边际成本反而更可控。我见过不少团队一开始图省事全用云API等到月账单下来才开始认真考虑本地方案。第二件事用什么框架。模型本身是开源的但裸跑需要自己写加载权重、管理KV Cache、处理tokenizer工作量不小。ollama的价值就是把这一整套都封装好了一条命令拉取模型或导入模型一条命令对话还自带OpenAI兼容接口底层的GPU调度、量化加载都有现成实现。对比过llama.cpp、vLLM这些方案ollama对普通用户最友好对运维也省心所以我把它当首选。第三件事就是核心问题模型文件从哪来、怎么下载。ollama官方模型registry和GitHub都在海外网络链路不稳定这才是“国内镜像源”这个需求存在的根本原因。搞清楚这条链路后面的操作才算是知其所以然。1.2 “离线安装镜像源”的完整链路整条链路其实就四个环节拿安装包、装ollama、拿模型文件、导入并运行。拿安装包和拿模型文件是两条独立的下行链路都需要走国内源。安装包一般通过GitHub加速服务和网友分享的网盘来拿模型文件则重点推荐ModelScope魔搭社区。魔搭上很多模型是官方或作者本人发布的GGUF格式有通义千问系列也有DeepSeek的蒸馏版下载速度比海外源稳定得多。这里要特别解释一下“离线”的含义。所谓离线安装并不是要求完全断网而是指不走ollama官方的在线安装脚本和在线pull流程。ollama官方安装脚本会从海外地址拉包在线pull模型也走海外registry网络稍差就歇菜。离线安装的思路是预先从国内可达的资源把文件准备好再手动导入。网络只需要访问国内服务全程稳定很多。1.3 核心组件一句话说明先把几个概念说清楚后面操作时不迷糊我用大白话描述ollama本体负责模型加载、推理调度、提供API服务相当于“大模型运行时的管理工具”。GGUF文件模型权重的一种打包格式把模型参数、分词器等信息粘合在一起。量化后的GGUF体积更小适合本地加载。Modelfileollama定义模型的配置文件用来告诉ollama用哪个GGUF文件、用什么模板和参数作用类似Docker的Dockerfile。ModelScope魔搭国内的大模型开放平台承担模型文件下载源角色对应“国内镜像源”里最关键的一块。这四个概念串起来整个项目的技术骨架就清楚了。2. ollama安装包获取本质是“把安装文件搬运回国”2.1 Linux安装包下载与离线安装先说我实际用过的推荐路径。在GitHub上找到ollama的 Releases 页面下载对应平台的安装包首先需要拿到release asset的直链通常长这样https://github.com/ollama/ollama/releases/download/版本号/ollama-linux-amd64.deb。由于直连不稳实际下载时我习惯在GitHub加速服务上拼一个前缀再下载思路类似下面这样# 下载前先组合加速链接示例为linux amd64 deb包 wget https://ghproxy.com/https://github.com/ollama/ollama/releases/download/v0.5.4/ollama-linux-amd64.deb这里要提前说明GitHub加速服务的域名经常会失效如果ghproxy.com不可用直接搜索“GitHub 下载加速”找一个能用的替换即可。下载完不要急着装先看文件大小是否与GitHub页面标记的size接近做到心里有数。拿到安装包后用常规命令安装sudo dpkg -i ollama-linux-amd64.deb # redhat/centos系用 # sudo rpm -ivh ollama-linux-amd64.rpm安装完成后直接执行ollama --version能正常打印版本号说明安装成功。如果系统提示有依赖问题dpkg会提示缺了哪些包先用sudo apt --fix-broken install修复再重新dpkg一次。2.2 Windows/macOS安装包下载Windows和macOS的流程逻辑类似ollama官方提供exe安装包和dmg安装包都在GitHub Releases页面。下载时同样可以用GitHub加速链接或者用热心网友整理的网盘分享。如果从网盘下载务必记住一个原则下载完成后先校验文件哈希再安装不要直接双击就完事。之前就看到过有人因为下载到被篡改的安装包安装过程中被塞了推广程序。校验方法很简单对比官方页面提供的SHA256和本地计算出来的值能对上才安全。Windows安装就是一路Next装完在CMD或PowerShell里执行ollama --version验证。macOS则要特别注意区分Apple Silicon和Intel两种架构M系列选arm64版本Intel Mac选amd64版本选错的话偶尔会出现启动崩溃或性能异常的问题。有人会问为什么不用官网install.sh因为install.sh本质是从官方源拉二进制文件网络不稳定的环境下经常跑到一半断开然后报一堆难以排查的错误。与其跟脚本死磕不如手动下载安装包一条命令搞定还方便在内网机器之间搬运分发。2.3 环境变量与开机自启配置ollama装好之后强烈建议第一时间看两个环境变量OLLAMA_MODELS和OLLAMA_HOST。OLLAMA_MODELS控制模型文件的存放目录默认在用户主目录下的.ollama/models。本地部署模型动辄几十G如果系统盘空间本来就紧张一定要提前把这个目录指到数据盘。在Linux上我习惯在/etc/environment里加一行sudo mkdir -p /data/ollama/models sudo sh -c echo OLLAMA_MODELS/data/ollama/models /etc/environmentOLLAMA_HOST控制服务监听地址默认是127.0.0.1:11434。如果只在本机用保持默认完全没问题如果想让局域网其他机器也能调用需要改成0.0.0.0:11434。但要注意监听所有网卡会带来未授权访问的风险最好别在无防护的公网环境下裸奔。Linux安装deb包之后一般会自动注册systemd服务用systemctl status ollama就能看到状态。如果没自动注册手动启动就两条命令ollama serve # 新开一个终端验证 ollama --version3. 模型文件获取用ModelScope当国内模型镜像源3.1 ollama拉模型为什么慢先理解默认的拉取机制。正常情况下执行ollama run qwen2.5:7bollama会去官方模型仓库拉取模型层这些文件托管在海外服务器上链路长、分片多断点续传能力又一般所以慢。慢的解决方案不是硬等而是绕。模型下载的本质是把几个GB的权重文件搬到本地只要让文件从国内可高速访问的源出来问题就解决了一大半。ModelScope魔搭社区就是这样一个源我把它当主力模型镜像源用。3.2 下载通义千问GGUF文件步骤很明确先到ModelScope网站搜索“Qwen2.5-7B-Instruct-GGUF”优先选官方账号下的仓库。一个仓库里通常有多个量化版本的文件我们只需要挑一个。下载推荐用git clone但前提是系统装了git-lfs否则大文件只会下载出一个文本指针。先装一下git-lfssudo apt install git-lfs git lfs install然后克隆仓库git clone https://www.modelscope.cn/models/Qwen/Qwen2.5-7B-Instruct-GGUF.git克隆完进目录会看到一堆.gguf文件。先别急着全要用ls查看选择名字里带q4_k_m的那个。这个标识代表4bit量化属于体积和效果的均衡点也是本地部署最常见的默认选择。如果中途断线git lfs支持断点续传直接重新执行git clone或者git lfs pull往往能接着下。这个体验比浏览器下载靠谱太多。3.3 下载DeepSeek蒸馏版GGUF文件本地部署DeepSeek首选是DeepSeek-R1-Distill系列。这个系列是DeepSeek官方做的蒸馏版本把R1的推理能力蒸馏到小参数模型上有1.5B、7B、14B、32B、70B等规格。对个人开发者来说7B和14B是最现实的选型。下载方式同样从ModelScope走git clone https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B-GGUF.git仓库里的文件按量化精度区分选q4_k_m标识的即可。有一点提醒一下DeepSeek原版模型参数量有671B本地单机基本不可能跑得动不要看到“DeepSeek”就直接去拉原版那只会浪费时间和磁盘空间。3.4 通过Modelfile将GGUF导入ollama模型文件拿到本地之后ollama并不认识它需要写一个Modelfile告诉ollama“用这个文件创建模型”过程跟Dockerfile构建镜像的思路非常相似。先建目录mkdir -p ~/my-models/qwen25-7b cd ~/my-models/qwen25-7b vim Modelfile内容就两行核心FROM /data/qwen/Qwen2.5-7B-Instruct-GGUF/qwen2.5-7b-instruct-q4_k_m.gguf保存后执行ollama create qwen2.5-7b-local -f Modelfile ollama listollama list能看到刚创建的模型说明导入成功。如果还想调整Temperature这类生成参数可以一起写进Modelfile加上一行FROM /data/qwen/Qwen2.5-7B-Instruct-GGUF/qwen2.5-7b-instruct-q4_k_m.gguf PARAMETER temperature 0.7然后就可以直接对话ollama run qwen2.5-7b-local这个“download done再create”的过程就是把原本需要海外pull的流程改成从国内源下载后本地导入。相比硬等官方仓库速度和可控性都高出好几个量级。3.5 顺带提一下Hugging Face镜像除了ModelScopeHugging Face在国内也有可用的镜像通道把huggingface.co换成hf-mirror.com即可。像一些在HF上先行发布的社区GGUF模型通过镜像站也能快速拉到本地。不过我个人习惯优先ModelScope因为模型仓库存放更规范国内访问体验也更舒服。两个镜像源可以搭配使用原则就一条文件从哪下得快就从哪下最后殊途同归。4. 模型选型与硬件匹配别再盲目下载70B4.1 GGUF量化到底是怎么回事简单说模型训练完以后参数是以一定精度保存的常见的有16位浮点或8位整数。如果直接加载7B模型光权重就要十几GB显存小的机器直接就爆了。GGUF量化就是把参数压缩到更低的bit数例如Q4_K_M代表模型参数用约4bit表达。代价是精度有一点点损失但换来的是体积大幅缩小、内存占用降低、更多显卡都能跑得动。实际体感上Q4_K_M在7B规模下的流畅度对绝大多数场景完全够用不会出现明显智力下降的感觉。选型时有个粗略估算方法模型文件多大加载时占用的内存就大约等于文件大小再加几GB的KV Cache与运行时开销。反过来讲也可以根据自己显卡容量倒推该选哪个模型。4.2 根据自己的显存选模型下面这张表是我按实际部署经验和常见配置整理的数值是保守推荐基于量化文件大小加上运行时开销估算仅供参考模型规格量化文件大小约推荐显存建议场景Qwen2.5 0.5B0.5GB4GB可用即可跑通流程、简单测试Qwen2.5 1.5B1.1GB4GB轻量任务、问答Qwen2.5 7B4.7GB8GB日常对话、文本分析Qwen2.5 14B9GB16GB高质量输出、复杂指令Qwen2.5 32B20GB24GB长文档处理、复杂任务DeepSeek-R1-Distill 1.5B1.1GB4GB体验推理链路DeepSeek-R1-Distill 7B4.7GB8GB代码辅助、逻辑推理DeepSeek-R1-Distill 14B9GB16GB中等规模推理、复杂任务还有一个情况必须说显卡显存不够时ollama会自动退回去用CPU也能跑就是速度感人。7B模型在纯CPU上大概每秒只能出几个token翻一页回答都要等半天。如果实在只能CPU跑建议选1.5B或3B这种小模型起码交互不煎熬。4.3 通义千问/DeepSeek怎么选通义千问的优势是中文理解扎实、生态完善Qwen2.5系列官方对GGUF支持很好本地部署首选Qwen2.5-7B或14B。DeepSeek的蒸馏版则更擅长推理和代码类任务R1系列带完整的思考链跑数学题、代码逻辑都比较强大。我自己的搭配是日常问答和文档处理用Qwen2.5涉及代码和多步推理的交给DeepSeek-R1-Distill。一台8GB显存的机器先装7B的Qwen不占用太多资源剩余空间再放一个1.5B的DeepSeek用来体验推理过程分工很清晰。如果只打算装一个那我会选7B的Qwen通用性更强英文、中文任务都能接。5. 本地部署后的使用命令行、API与接入Dify5.1 命令行直接对话ollama run是最直接的入口。启动之后就是交互式对话输入问题回车即出答案。实际操作时有一个细节想提醒ollama默认会把模型整个加载进显存如果同时跑多个模型显存会不够用。我一般养成习惯切模型之前先退出当前对话不要同时在几个终端里打开不同模型否则容易出现共享显存导致的OOM。5.2 通过OpenAI兼容API接入自己的应用ollama最有价值的地方是自带OpenAI兼容API端口默认11434。也就是说以前为OpenAI写好的客户端代码只需要改一下base_url和api_key就能切到本地模型。api_key随便填一个非空字符串就行它不校验。用curl试一下curl http://localhost:11434/v1/chat/completions \ -H Content-Type: application/json \ -d { model: qwen2.5-7b-local, messages: [{role: user, content: 介绍一下你自己}] }Python里更是直接用openai官方库就能连from openai import OpenAI client OpenAI( base_urlhttp://localhost:11434/v1, api_keyollama ) resp client.chat.completions.create( modelqwen2.5-7b-local, messages[{role: user, content: 写一段周报}] ) print(resp.choices[0].message.content)这一步走通大模型就可以被自己写的应用接进来了这就是“本地部署大模型”落地价值所在。5.3 接入Dify等平台最近很多人折腾Dify思路也一样。在Dify的设置里添加模型供应商选OpenAI-API-compatible填入API地址和密钥。API地址格式是http://host:11434/v1host是运行ollama的机器IP填写之后就能在应用编排里选择本地模型。很多桌面客户端、VS Code插件也支持OpenAI兼容接口把base_url一填就能用。这个兼容API让本地模型与整个AI生态的衔接顺畅得多不需要额外适配。6. 常见问题与排查实录6.1 下载慢或中途失败安装包下载慢就换GitHub加速或网盘模型文件下载慢优先确认是不是没走ModelScope而是走了官方registry。经常有人命令行执行ollama run以后才意识到怎么这么慢一看进度条是从海外源来的赶紧中断改用Modelfile本地导入速度立刻就不一样了。git clone到一半断了不用慌git lfs自带断点重新执行一次之前的clone指令就能接着下。最忌讳的是删了重来纯属浪费带宽。6.2 导入失败/ollama list没有模型如果ollama create时报“file does not exist”这类的提示十有八九是Modelfile里的FROM路径写错了。特别是相对路径容易受当前工作目录影响直接在FROM里写绝对路径最省事。还有人问“为什么导入成功了但ollama run找不到”多半是名字没写对。ollama create时写的是什么名字run的时候就用什么名字别多打冒号也别随意加后缀保持一致性就不会出问题。6.3 GPU不工作与内存不足Linux下ollama跑起来发现CPU占用极高而GPU空闲最常见的原因是没有正确安装NVIDIA驱动。先执行nvidia-smi能看到显卡信息说明驱动正常。如果驱动OK还是不识别就要查内核模块加载情况必要时重装驱动版本。显存不足的报错一般是“failed to allocate memory”之类。这时候要么换更小量化的模型要么降低并发。我给的建议是模型选型时宁可保守一点8GB显存别硬上14B否则每句话都多等几十秒体验非常不划算。6.4 端口冲突与后台进程管理跑起来以后发现端口被占先查端口占用再处理lsof -i :11434 kill -9 进程IDWindows用户要留意ollama的托盘图标有时退出界面但后台进程还在任务管理器里找到ollama相关进程结束再重启。这个问题在Windows上出现频率比我预期高多半是托盘退出逻辑不够干净导致的。6.5 安全与来源校验最后一条其实放到最前面看更合适——任何从网盘或第三方站点下载的安装包、模型文件肉眼无法判断是否被篡改。我的习惯是安装包下载后一定看看有没有提供SHA256有的话对一下没有就尽量只从官方或大型平台下载。模型文件则优先选ModelScope或Hugging Face镜像站里的官方账号不要贪方便随便找个人转存的链接。本地部署大模型一旦跑了敏感业务文件来源可信这道关口守不住后面都是隐患。跑完这一整套流程我的体会是本地部署大模型的难度其实不在模型本身而在“怎么让文件稳定地到你机器里”。只要安装包和模型文件这两条链路打通后面的一切都是水到渠成。想部署的朋友我建议先从7B的Qwen开始把流程跑顺了再根据显存往上走。给团队交付时也建议做一个标准镜像把已经下载好的模型文件统一放到同一目录通过OLLAMA_MODELS指过去后续换机器时只要拷贝目录即可省得每台机器重新拉一次。最后再分享一个小细节模型文件迁移时可以先把ollama的models目录整个拷贝到新机器再在新机器上启动ollama服务ollama会自动识别目录里的模型基本不用重新下载。我的经验里这一招在内网批量部署时尤其好用比逐个导入快多了。
返回列表