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

我用一台旧电脑跑了个 AI 模型,发现比云 API 还香(附一键部署命令)

🦞 一只用 AI Agent 搭副业产线的程序员


上篇算完账单,你可能有个想法:「每天 100+ 次调用,一年也是一笔钱。能不能自己部署,不花这个钱?」

答案是可以。而且比你想的简单。

我用一台配置很普通的机器——i7-12700H、32G 内存、一块 RTX 3060(12G 显存)的笔记本——跑了一个开源模型。同一个代码生成任务,本地 vs 云端的结果是这样的:

指标DeepSeek V4 APIOllama + Qwen 2.5 Coder 7B
代码正确率95%80%
单次生成耗时3s8s
每次调用成本¥0.0018¥0(电费忽略不计)
并发能力几乎无限1-2 个请求
隐私代码传到云端数据不出本机

结论先行:本地模型适合高频、隐私敏感、不要求最高质量的场景。云端 API 适合需要最强模型能力的场景。两者不是替代关系,是互补关系。


第一步:一行命令装 Ollama

Ollama 是目前最简单的大模型本地部署工具。没有复杂的 Python 环境配置,没有 CUDA 版本兼容问题。

# macOS / Linuxcurl-fsSLhttps://ollama.com/install.sh|sh# Windows# 去 ollama.com 下载安装包,双击安装

装完验证:

ollama--version# ollama version is 0.12.0

第二步:挑一个模型

# 推荐这几个,按显存大小选:# 8G 显存 — 选 7B 参数模型ollama pull qwen2.5-coder:7b# 通义千问代码版,推荐# 16-24G 显存 — 可以跑 14B 了ollama pull qwen2.5-coder:14b# 32G+ 显存 — 32B 走起ollama pull qwen2.5-coder:32b

第一次会下载模型文件,7B 模型大概 4GB,几分钟的事。

拉下来之后,终端直接聊:

ollama run qwen2.5-coder:7b>>>用 Go 写一个冒泡排序

这就是本地版的 ChatGPT 体验了。不联网,数据不出你的电脑。


第三步:用 Go 调用本地模型

Ollama 自带一个兼容 OpenAI 格式的 API 端点。代码几乎不用改:

packagemainimport("bytes""encoding/json""fmt""net/http")typeRequeststruct{Modelstring`json:"model"`Promptstring`json:"prompt"`Streambool`json:"stream"`Options Options`json:"options"`}typeOptionsstruct{Temperaturefloat64`json:"temperature"`NumPredictint`json:"num_predict"`// = MaxTokens}funcmain(){req:=Request{Model:"qwen2.5-coder:7b",Prompt:"用 Go 写一个并发安全的计数器。",Stream:false,Options:Options{Temperature:0.1,NumPredict:300,},}body,_:=json.Marshal(req)resp,_:=http.Post("http://localhost:11434/api/generate","application/json",bytes.NewReader(body),)deferresp.Body.Close()varresultmap[string]interface{}json.NewDecoder(resp.Body).Decode(&result)fmt.Println(result["response"])}

注意两处变化:

  • URL 从api.deepseek.com变成localhost:11434
  • 不需要 API Key
  • 请求格式略有不同(单 Prompt 而非 Messages 数组)

第四步:同任务对比——本地 vs 云端

我用同一个 Prompt 跑了 20 次,记录结果:

Prompt: "用 Go 写一个支持超时、重试、连接池的 HTTP 客户端工具类。"

DeepSeek V4 Pro(云端):

// 输出完整,包含 Client 结构体、Option 模式、超时配置// 有 context 超时控制、指数退避重试、自定义 Transport// 代码共 85 行,一次性编译通过

Qwen 2.5 Coder 7B(本地):

// 输出较简洁,包含了基本功能但缺少连接池配置// 有超时和重试,但重试用的是固定间隔而非指数退避// 代码共 45 行,需要手动调整才能用于生产

差别在哪?7B 模型「懂」要做超时和重试,但细节不够到位。14B 模型的输出跟 DeepSeek V4 Pro 的差距就小很多了。


成本计算:什么时候自建划算

假设你用 AI 做代码生成,每天 200 次调用,每次 Prompt ~500 token、输出 ~300 token:

方案每天花费每月花费每年花费
DeepSeek V4 Flash API¥0.10¥3.00¥36
DeepSeek V4 Pro API¥0.36¥10.80¥129
Ollama 本地 7B电费 ~¥2¥60¥720
Ollama 本地 14B电费 ~¥3¥90¥1080

等等,本地怎么看起来更贵了?

因为电费。一台跑满的电脑功率 ~300W,24 小时开机的话一个月电费 ~¥100。但你的电脑大概率不会 24 小时跑模型——你可能一天只用几小时。

所以真实的账单比上面复杂。我列一个决策表:

你的情况建议
每天 < 50 次调用DeepSeek API,便宜又省事
每天 50-200 次调用Flash 主力 + Pro 替补
每天 200+ 次调用本地 7B 主力 + 云端 Pro 替补
数据不能出内网必须本地部署,没得选
电脑没有独显别试了,CPU 跑模型慢到你怀疑人生
做 Agent 开发的实验阶段DeepSeek Flash,便宜不怕烧

一个很实用的混合方案

真正聪明的方法是:本地模型当第一轮,云端模型做最后确认。

funcsmartCall(promptstring)string{// 第一轮:本地快速生成(快,免费)localResult:=callOllama("qwen2.5-coder:7b",prompt,0.1)// 判断是否需要升级到云端ifneedsBetterQuality(localResult){// 第二轮:云端精修(贵,但质量高)returncallDeepSeek("deepseek-v4-pro","请优化以下代码,补充错误处理和边界条件:\n"+localResult,0.1)}returnlocalResult}

这个组合每个月省了我大概 60% 的 API 费用,但代码质量没有明显下降。

因为大多数调用生成的代码本来就需要你手动调整——本地生成再改 vs 云端生成再改,最终效果差不多。


Docker Compose 一键部署

我整理了一个 docker-compose,把 Ollama + Open WebUI(本地版 ChatGPT 界面)+ 你将来要用的向量数据库全打包:

version:"3.8"services:ollama:image:ollama/ollama:latestcontainer_name:ollamaports:-"11434:11434"volumes:-ollama_data:/root/.ollamadeploy:resources:reservations:devices:-driver:nvidiacount:1capabilities:[gpu]restart:unless-stoppedopen-webui:image:ghcr.io/open-webui/open-webui:maincontainer_name:open-webuiports:-"13000:8080"environment:-OLLAMA_BASE_URL=http://ollama:11434volumes:-webui_data:/app/backend/datadepends_on:-ollamarestart:unless-stoppedvolumes:ollama_data:webui_data:
# 一台机器,两条命令,全环境跑起来dockercompose up-dollama pull qwen2.5-coder:7b# 打开 http://localhost:13000,本地版 ChatGPT 就出来了

说实话:本地模型的坑

我跑了两个多月,踩过的坑如实告诉你:

  1. 7B 模型有时候会「犯傻」——给你写一个不存在的标准库函数。温度调低能缓解,但不能根除。
  2. 显存是硬门槛——8G 显存只能跑 7B,16G 跑 14B,32B 要 24G+。没有独显就别考虑本地了。
  3. 中文能力不如 API 模型——开源模型的训练数据英文占比高,中文注释偶尔有语病。
  4. 首次加载慢——模型刚从硬盘加载到显存需要 10-30 秒。加载完后就快了。

但这些坑都不影响结论:对于高频、低敏感度的任务,本地模型已经是够用的水平了。


下一篇预告

我们用一个 50 行的 Go 程序,搞定 Embedding——把两段文字变成向量,然后计算它们的语义相似度。你会发现「AI 理解文字」这件事比你想象的简单得多。

关注我,别错过。


🦞 一只用 AI Agent 搭副业产线的程序员

全平台同名:虾哥不加班
需要定制 AI 工具?来聊聊 → lob_ai

源码:GitHub - lobster-bujiaban

http://www.jsqmd.com/news/929078/

相关文章:

  • 基于Arduino与Processing的RFID交互式视频播放系统实战指南
  • Windows系统深度优化架构:AtlasOS实现原理与配置机制解析
  • 如何快速修复机械键盘连击问题:免费开源防粘连工具完整指南
  • 555定时器驱动PCB艺术徽章:从经典电路到像素化耿鬼设计
  • 从零打造8x8x8 LED光立方:硬件搭建、驱动原理与Arduino编程全解析
  • 基于Arduino与TCS230的颜色识别系统:从传感器原理到实践应用
  • AI检测太高论文过不了?这4个降AI率平台2026年别再错过!
  • 如何用WeChatMsg打造你的专属数字记忆库:从数据留痕到情感永存
  • 基于Pinoo与Mblock3的倾斜传感器猜色游戏:事件驱动编程入门实践
  • 别再只盯着模型了!搞懂Unity Mesh的这3个渲染模式,性能优化和调试效率翻倍
  • 用74LS138和74LS00玩点花的:手把手教你设计一个简易的‘多数表决器’电路
  • HY-Embodied-0.5-X的长时规划能力:从任务分解到失败反思的完整循环
  • 显卡驱动清理神器:DDU深度使用终极指南
  • 树莓派四人抢答游戏机:从GPIO控制到Pygame交互的嵌入式开发实践
  • Kotlin 协程设计思想(一):CoroutineContext 到底是什么?为什么 Job 和 Dispatcher 可以直接相加?
  • 鸣潮自动化助手完整指南:如何用ok-ww解放双手,轻松完成日常任务
  • 从零制作哈利波特魔杖灯:DIY电子入门与创意电路实践
  • FinTech架构深度解析:从数据、算法到风控中台实战
  • 别死磕Ubuntu18.04了!拯救者Y9000P装双系统,直接上Ubuntu 22.04 LTS的保姆级教程(附驱动验证清单)
  • 别再死记硬背公式了!用Python手把手实现吴恩达浅层神经网络(附完整代码)
  • 南海区26年最新奢侈品名包名表专业回收权威店铺推荐 - 莘州文化
  • Arduino避障机器人:从硬件选型到代码实现的完整实践指南
  • 基于Transformer与GPT-2的惠特曼风格诗歌生成器实践
  • Veo 2分辨率配置深度解析(行业首发12K超采样白皮书):NVIDIA/AMD/Apple芯片专属优化矩阵
  • 别再死记硬背公式了!用NumPy手写一个神经元,彻底搞懂矩阵运算与并行加速
  • Django搭建的轻量级物业后台系统,含业主管理、报修工单与费用记录功能
  • 集成toxic-comment-model到现有系统:Python API调用与微调实战
  • 【Redis从入门到精通】第23篇:ZSet对象——ziplist和skiplist的完美组合
  • 从零设计电子徽章:EasyEDA实战与PCB制作全流程
  • 蓬江区26年最新奢侈品名包名表专业回收权威店铺推荐 - 莘州文化