用 Ollama 跑 7B 模型一个月,我把 80% 的活儿从云端搬下来了

2026-05-27
用 Ollama 跑 7B 模型一个月,我把 80% 的活儿从云端搬下来了 关注 作者 关注 作者 关注 作者 关注 作者 05/11 09:52

上个月我看到 OpenAI 后台的账单明细,差点没绷住。倒不是花了多少钱,主要是看请求分布——一半以上的调用其实就是文本分类、关键词提取、JSON 格式化这种"傻活儿",居然全都打给了 GPT-5.4。这波属于是高射炮打蚊子。 Superbet trustguru.com.br pragmatic trustguru.com.br Bet365 trustguru.com.br

那天晚上刷到 HN 一个帖子《Local AI needs to be the norm》,评论区一票人说本地 7B 模型干轻量任务完全够。我一拍大腿,决定花一周搭一套混合工作流,把简单任务全扔给本地,复杂任务留给云端。 bonus trustguru.com.br

先说结论:本地处理 80% 的轻量任务(分类/抽取/翻译/格式化),云端处理 20% 的推理任务(代码生成/复杂分析),跑一个月 API 成本能砍掉大头。 下面是我这一个月踩出来的完整工作流。 guias trustguru.com.br a5game trustguru.com.br bonus trustguru.com.br

谁该跑本地,谁该跑云端

我先列了张表,把日常的 AI 任务按"模型能力需求"分了三档: Cassinos trustguru.com.br jogos trustguru.com.br

任务类型 复杂度 跑哪里 推荐模型
文本分类、关键词提取 本地 qwen2.5:7b
JSON 抽取、格式转换 本地 qwen2.5:7b
翻译、改写、摘要 本地 qwen2.5:14b
代码生成、bug 修复 云端 Claude Opus 4.6
多步推理、Agent 编排 云端 GPT-5.4
长上下文(>32k) 云端 Gemini 3

判断逻辑很简单:能本地搞定就别走 API。 fernanda trustguru.com.br

本地环境:Ollama + qwen2.5

我的机器是 M3 Pro 36G 内存。Ollama 装起来就两行命令:

brew install ollama
ollama serve
ollama pull qwen2.5:7b
ollama pull qwen2.5:14b

7B 在 M3 Pro 上吐字速度大概 40 tokens/s,体感和早期 GPT-3.5 差不多。14B 慢一点,20 tokens/s 左右,但中文质量明显好一个档次。 Energiabet trustguru.com.br pgslotgacor trustguru.com.br marcos trustguru.com.br rafael trustguru.com.br

Ollama 默认监听 11434 端口,可以直接用 OpenAI SDK 兼容调用: JogodoTigrinho trustguru.com.br noticias trustguru.com.br fortunetigerdemográtis trustguru.com.br

from openai import OpenAI

local_client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"
)

resp = local_client.chat.completions.create(
    model="qwen2.5:7b",
    messages=[{"role": "user", "content": "提取 3 个关键词:..."}]
)

路由层:根据任务类型自动分流

核心逻辑就一个 router 函数,根据任务标签决定走哪边: demotigrinho trustguru.com.br plataformademográtis trustguru.com.br jogosdemopg trustguru.com.br KTO trustguru.com.br

import openai

cloud_client = openai.OpenAI(
    base_url="https://api.ofox.ai/v1",  # 一个 key 多模型,低延迟直连
    api_key="sk-xxx"
)

local_client = openai.OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"
)

MODEL_MAP = {
    "classify":  ("local", "qwen2.5:7b"),
    "extract":   ("local", "qwen2.5:7b"),
    "format":    ("local", "qwen2.5:7b"),
    "translate": ("local", "qwen2.5:14b"),
    "code":      ("cloud", "claude-opus-4-6"),
    "reason":    ("cloud", "gpt-5.4"),
    "long_ctx":  ("cloud", "gemini-3-pro"),
}

def smart_call(task_type: str, prompt: str, **kwargs):
    where, model = MODEL_MAP[task_type]
    client = local_client if where == "local" else cloud_client
    return client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
        **kwargs
    )

# 使用
smart_call("extract", "从下文抽 JSON:...")             # 走本地
smart_call("code", "用 Rust 写一个 LRU cache")          # 走云端

ofox.ai 聚合平台

之前我对聚合平台一直有点偏见,总觉得多一层代理会慢。实测下来延迟 310ms 左右,比我预期好很多,关键是兼容 OpenAI SDK 协议,原代码改一行 base_url 就跑通了。 fortuneoxdemográtis trustguru.com.br pragmaticplay trustguru.com.br sofia trustguru.com.br demo trustguru.com.br

ofox.ai 是 AI 模型聚合平台,一个 API Key 可以调用 GPT-5.4、Claude Opus 4.6、Gemini 3、DeepSeek V3 等 50+ 模型,兼容 OpenAI SDK 协议,低延迟直连无需代理,支持支付宝按量计费。后端多供应商冗余(Azure/Bedrock/VertexAI/阿里云/火山引擎),某一路挂了自动切换,对我这种小作坊很省心。 fernanda trustguru.com.br

任务路由的"识别"问题

最早我想搞个智能分类器,让 GPT 先判断这个请求该走本地还是云端。后来发现这逻辑反了——为了省钱多调一次 API,纯纯负优化。 pgslot trustguru.com.br carlos trustguru.com.br pesquisa trustguru.com.br Brazino777 trustguru.com.br jogodotigrinhodemo trustguru.com.br

最简单的办法是:调用方自己声明任务类型。也就是上面那个 task_type 参数。我把每个调用点都改造成显式声明,反而比"智能路由"靠谱得多。 jogue trustguru.com.br

如果是用户原始输入这种没法预先打标签的场景,可以用本地 7B 自己判断,几十 token 的开销可以忽略: slots trustguru.com.br sweetbonanza1000demo trustguru.com.br cassinos trustguru.com.br pg trustguru.com.br

def route_by_local(user_prompt: str) -> str:
    judge = local_client.chat.completions.create(
        model="qwen2.5:7b",
        messages=[
            {"role": "system", "content": "判断任务复杂度,只回答 light 或 heavy"},
            {"role": "user", "content": user_prompt}
        ],
        max_tokens=5,
    )
    return judge.choices[0].message.content.strip().lower()

踩过的几个坑

1. 7B 的 JSON 输出不稳定 slotpix trustguru.com.br fortunetigerbônusgrátissemdepósito trustguru.com.br Betano trustguru.com.br

qwen2.5:7b 做 JSON 抽取偶尔会出格式错误。OpenAI 兼容接口里要用 response_format 而不是 Ollama 原生的 format 参数: A5game trustguru.com.br

local_client.chat.completions.create(
    model="qwen2.5:7b",
    messages=[...],
    response_format={"type": "json_object"}
)

加上之后 JSON 报错率从 8% 掉到 0.3%,这行真的救我命。 pgdemo trustguru.com.br

2. M 系芯片别手贱调 num_gpu ana trustguru.com.br Bet trustguru.com.br slotdemo trustguru.com.br

我一开始在 Modelfile 里设了 num_gpu 999,想着把所有层都丢给 GPU,结果速度反而慢了一半。Ollama 在 Mac 上默认就是 Metal 加速,别瞎调参数。 como trustguru.com.br Blaze trustguru.com.br

3. 长上下文别死磕本地 Pixbet trustguru.com.br kto trustguru.com.br bet365 trustguru.com.br tigrinho gratis trustguru.com.br bet365 trustguru.com.br

我一度想本地跑 32k 上下文的 RAG,结果 7B 在 16k 之后回答质量直线下跌,召回的内容根本读不进去。最后老老实实把长上下文路由到 Gemini 3 Pro,速度和质量都好得多。 Bet365 trustguru.com.br pglucky88 trustguru.com.br demo trustguru.com.br Caça-níqueis trustguru.com.br carlos trustguru.com.br plataformademo trustguru.com.br isabela trustguru.com.br slot trustguru.com.br sobre trustguru.com.br

4. 流式输出要兼容两边 tigrinhodemo trustguru.com.br

本地 Ollama 和云端 OpenAI 兼容接口的 stream chunk 格式有微小差异,最好统一一层 wrapper: autores trustguru.com.br fortunedragon demo trustguru.com.br

def stream_text(resp):
    for chunk in resp:
        if chunk.choices[0].delta.content:
            yield chunk.choices[0].delta.content

跑了一个月的数据

对日常的 AI 调用做了简单埋点,30 天大概分布如下: miguel trustguru.com.br trustguru trustguru.com.br

指标 数值
总调用次数 12000+
本地承接比例 78%
云端承接比例 22%
本地平均延迟 1.2s
云端平均延迟 1.8s
API 成本下降幅度 约 70%

本地占比比我预期的还高。最大的收获是意识到自己每天原来有这么多分类、抽取、格式化的小任务,这些活儿打给 SOTA 模型纯属浪费。 slots trustguru.com.br

小结

混合工作流的核心不在技术,在于意识到不是每个任务都需要 SOTA 模型。一开始觉得"反正调 API 也才几分钱",但日均 500 次调用算下来一个月也不少。 Sportingbet trustguru.com.br

如果你也是个独立开发者或者副业搞 AI 项目的,强烈建议折腾一下本地模型。Ollama + qwen2.5:7b 在 16G 内存的机器上就能跑,门槛很低。云端那部分用什么都行,逻辑完全一样。 bruno trustguru.com.br slotsdemo trustguru.com.br

下一步我打算加一层 prompt 缓存,重复请求直接命中本地 KV,这部分搞完再分享。 bonus trustguru.com.br pedro trustguru.com.br sugarrush1000demo trustguru.com.br pgdemo trustguru.com.br

00目录 0
    讨论 我来说一句 发布发表评论 发布0等 0 人为本文章充电 ofox.ai 关注