
最近这段时间技术社区里讨论最热烈的两个话题一是中国大模型产品的周调用量出现了非常明显的上涨甚至有消息称部分国产模型的周调用量已经排到全球前列二是 Kimi K3 发布后又一次点燃了市场价格战。很多开发者一边觉得机会来了一边又有点犹豫调用量登顶跟我有什么关系Kimi K3 的大参数到底是什么概念各家都在降价我是直接调 API还是自己下载模型本地部署这篇文章不打算只做新闻盘点而是从技术落地视角把这波“大模型热潮”拆开来看。你会看到调用量、模型架构、推理成本、部署方案、微调链路之间的真实关系也会拿到一套可以跟着操作的本地部署与微调入门流程。文章偏长建议先收藏再慢慢看。1. 背景中国大模型调用量登顶到底是怎么一回事1.1 调用量为什么比“注册用户”更能说明问题传统软件时代衡量一个产品火不火最常用的指标是活跃用户数。到了大模型时代“调用量”开始成为更硬的指标。调用量代表的是真实模型推理请求次数用户无论是写代码、做会议纪要、整理文档还是跑客服机器人每一次请求都会产生调用。也就是说调用量背后是真实业务在跑而不是“下载了 App 但没有使用”的沉默数据。对一个 API 服务商来说周调用量增长说明开发者和企业愿意把业务逻辑挂到模型之上。与此同时调用量快速增长也会放大基础设施压力GPU 集群要扩容、推理引擎要优化、流量高峰需要排队和限流。所以调用量上升既是生态繁荣的信号也是技术团队必须解决的新难题。对大模型服务商来说调用量不只是一个好看的数字它还决定了产品迭代方向。哪类任务调用最多哪类行业接入最活跃下游开发者最需要什么能力都会通过调用数据反馈到模型训练、上下文长度、工具调用等功能设计上。1.2 从调用量上涨到价格战中间发生了什么调用量上涨不一定直接导致降价真正让厂商降价的是两个因素。第一是推理成本下降比如更高效的推理引擎、更好的量化方案、更大的并发吞吐第二是竞争格局变化当头部模型厂商为了争夺开发者生态就会通过价格战抢占 API 调用入口。Kimi K3 的出现相当于在这个时间点把“高质量、大参数、低价格”的模型摆到了台面上其他厂商如果想留住开发者就需要快速跟进。站在开发者角度看价格战是好事因为直接降低了应用试错成本。但也要小心一件事不能只看 API 单价还要结合模型稳定性、限流策略、上下文长度、数据隐私要求等综合判断。价格战是敲门砖能不能长期用还是要看产品能力。同时还要理解大模型调用量上升也不只是 API 市场的变化。很多企业内部会把模型能力集成到办公助手、客服系统、内容生产工具里这类调用往往不为普通用户感知却会真实消耗大量 token。这也是为什么模型供应商愿意牺牲一部分单次利润也要把入口抢到手——调用生态一旦建立后续的增值服务和生态绑定会让收益更稳定。1.3 这篇文章能帮你掌握什么如果你是一名后端工程师或 AI 应用开发者读完这篇文章后你会有以下几个收获第一理解 Kimi K3 背后的大模型架构常识特别是 MoE 和参数量的关系第二学会在 API 调用和本地部署之间做决策第三掌握 Ollama、vLLM 两种典型部署方式并搞清楚 FP16、BF16、FP32 精度选择的逻辑第四判断自己是否需要微调以及微调的基本流程第五建立一套实用的成本控制和故障排查思路。2. Kimi K3 是谁从 2.8T 参数看 MoE 大模型架构2.1 Kimi K3 为什么引发关注Kimi 系列模型本来就以长文本处理能力受到关注。这次 K3 发布后行业讨论最集中的点是它的参数规模和架构形式。网络讨论中常提到“2.8T 参数”这个信息不过这里要提醒读者实际参数统计口径可能不同有的算总参数量有的算激活参数量建议以官方文档为准。重点不是记一个数字而是理解为什么“总参数大、激活参数小”的模型能同时兼顾效果和成本。这也说明模型能力的竞争正在从“单点技术领先”转向“工程效率领先”。过去大家可能更关心某个模型在评测集上的分数现在越来越多人关注的是同样部署一台 8 卡 GPU 服务器到底能服务多少并发用户单条请求的响应延迟是否可接受长上下文场景下显存能不能扛住。Kimi K3 引发讨论本质上是因为它在这些工程指标上给了行业一个新的参照系。2.2 什么是 MoE 架构MoEMixture of Experts混合专家是一种模型结构。传统 Transformer 模型里的 FFN前馈网络层可以理解为一个“全科老师”无论输入什么问题它都会把整套知识计算一遍。MoE 的做法是把一个 FFN 层拆成多个“专家”模块比如 8 个、16 个甚至上百个再通过一个“路由”来决定当前 token 交给哪些专家来算。用简单比喻来说传统模型是“不管什么问题都叫一个全科老师回答”MoE 是“把数学题交给数学老师语文题交给语文老师”。路由机制不是真的懂语义而是通过学习学会把不同的 token 分配给合适的专家。这样做的优势是模型总参数可以做得很大记忆容量更大但每次推理只需要激活其中一部分专家计算量并没有按总参数等比上升。这也是 Kimi K3 这类大参数模型敢于打价格战的核心原因之一。2.3 MoE 架构的挑战MoE 并不是没有代价。路由机制训练更复杂容易出现“专家不均衡”的问题也就是少数专家忙不过来、多数专家闲着。这就需要额外设计负载均衡损失、专家容量调整、top-k 路由选择等策略。推理部署时MoE 模型如果显存不够所有专家参数都放不进显存服务端就需要做更复杂的调度比如把专家分布到不同 GPU 上这对工程团队要求很高。所以看到一个大模型“参数很多”时不要急着说“这一定很贵”或“这一定很笨重”。关键要看架构、量化方式、推理优化和部署方案。对普通开发者来说这提醒我们评估一个开源大模型能不能在自己机器上跑不能只看参数量还要看 MoE 的专家数、激活参数量、上下文长度、量化位宽等信息。3. 价格战背后的技术账推理成本为什么能一降再降3.1 大模型 API 的成本构成API 调用价格不是厂商拍脑袋定的而是和推理成本有直接关系。推理成本主要包含四块成本项说明算力成本GPU 采购或租赁费用显存成本模型权重和 KV Cache 占用显存电力成本GPU 高负载运行的电费工程成本推理框架、调度系统、稳定性维护其中GPU 算力和显存成本占了大部分。模型越大显存占用越高处理单个请求需要的计算资源也越多。如果推理引擎吞吐不够服务器并发上不去单位请求分摊的固定成本就会很高。3.2 为什么价格还有下降空间推理成本下降有几个技术方向更高效的推理引擎如 vLLM、TensorRT-LLM 等通过 PagedAttention、continuous batching 提高吞吐。量化把 FP16 权重压缩到 INT8、INT4减小显存占用代价是效果可能略受影响。MoE 架构总参数大但激活参数小单次请求计算量下降。更好的硬件利用把 GPU 利用率提上去用更少的卡服务更多用户。这些技术叠加让单位请求的成本持续下降也就给降价留出了空间。价格战本质上是在拿工程优化换市场份额。很多开发者以为模型降价是因为“模型变弱了”其实情况往往相反。能够降价的模型通常已经在推理侧做了大量优化单位成本更低同时模型厂商也愿意牺牲一段时间的利润率来换取开发者接入。对下游应用来说这是好事但也要分析清楚降价的模型是否依然满足你的响应速度、输出质量、上下文窗口和合规要求。3.3 对开发者的启示降价不是“模型贬值”模型降价并不意味着“模型能力不行了”。相反降价往往说明技术上有了进步或者商业上打算用低价抢占生态。对开发者来说更需要关注的是自己项目里的成本模型每天有多少请求、平均输入和输出 token 数、高峰期集中在什么时段。有了这些数据才能在模型调价时判断“这次降价对我到底能省多少钱”。同时价格战也会带来另一个问题选择变多了。今天这个厂商降价明天那个厂商推新模型如果每次都要切换开发和联调成本会很高。比较合理的做法是在业务入口设计一个统一的模型路由层把具体模型版本放在配置里而不是写死在代码中。这样即使价格或能力发生变化也能快速切换和对比。4. 开发者的第一道选择题API 调用还是本地部署4.1 两种模式分别解决什么问题API 调用模式把请求通过 HTTP 发给模型厂商由对方返回结果。优点是使用简单、不需要 GPU、新模型出来立刻能用、按量付费缺点是数据要离开自己的服务器对隐私敏感场景有风险长时间高频调用成本也可能很高。本地部署模式把开源模型下载到自己的服务器或本机运行。优点是可以自定义推理参数、更好保障数据隐私、长期高频使用成本更可控缺点是需要 GPU 资源部署和运维门槛较高整体能力通常比头部闭源模型落后一些。这两种模式不是互斥的。很多企业的实际做法是对外部公开信息相关的任务走 API快速获得最好的模型能力对内部文档、私域知识、用户隐私数据走本地部署保证数据不出内网。两条腿走路既保证效果也守住安全边界。4.2 选择模型前要回答的四个问题在动手写代码之前先问自己四个问题我的数据能离开本地吗我的业务对延迟和并发的真实要求是多少目前闭源模型的 API 成本在我的预算内吗团队有没有能力维护一套本地推理服务把四个问题答案写下来再决定走哪条路线就清晰多了。很多项目一开始只考虑了成本忽略了数据权限结果上线阶段才发现某些用户数据不能外传又回来重做部署方案。反过来也有一些团队为了“本地部署”而本地部署花了好几天搭环境最后发现业务只需要调用一个现成 API人力成本反而更高。先做决策再选路径比看到新模型就冲动接入更重要。4.3 决策表场景推荐方案快速验证想法、写 MVP优先 API涉及客户隐私数据本地部署每天千万次调用、成本敏感本地部署 模型量化需要最新能力、长上下文优先闭源 API离线环境 / 内网部署本地部署需要提醒的是没有“唯一正确”的答案很多团队是混合使用核心数据走本地普通任务走 API。决策的关键是先弄清楚自己的约束条件再选择能带来最大收益的方案。5. 实战入门本地部署开源大模型Ollama 示例5.1 Ollama 是什么Ollama 是目前最简单的大模型本地部署工具之一。它把模型下载、模型服务、命令行交互、API 暴露整合到了一起。你不用手动写推理代码装好后几条命令就能在本地跑起来一个模型。对新手非常友好也适合做个人开发环境。很多开发者第一次在本地跑大模型就是从 Ollama 开始的。它不仅降低了环境配置成本也让你可以把注意力放在应用逻辑上。即使你以后要切换到更复杂的推理服务也值得先用 Ollama 理解一遍“模型下载、服务启动、接口调用”的基本链路。5.2 安装 Ollama以 Linux 为例Ollama 官方提供了自动安装脚本curl -fsSL https://ollama.com/install.sh | sh如果你对自动脚本不放心也可以使用 Docker 方式部署docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama注意使用脚本前建议先看脚本内容再执行这是基本的安全习惯。Docker 方式的-v ollama:/root/.ollama用来持久化模型数据重启容器模型不会丢。如果端口被占用可以换成其他宿主机端口例如-p 11435:11434。5.3 拉取并运行模型拉取一个模型ollama pull qwen2.5:7b直接交互式运行ollama run qwen2.5:7b进入交互模式后输入问题即可获得回答输入/bye退出。这里的7b表示 7B 参数版本适合大多数开发机器。如果显存不够也可以选择更小的qwen2.5:3b或qwen2.5:1.5b先跑通流程。5.4 通过 API 调用本地模型Ollama 默认在 11434 端口提供 HTTP 接口。用 Python 调用import requests url http://localhost:11434/api/generate payload { model: qwen2.5:7b, prompt: 用一句话解释什么是 MoE 架构, stream: False } resp requests.post(url, jsonpayload) print(resp.json().get(response, ))这里的stream参数决定是流式返回还是一次性返回。开发阶段建议设为False调试更直观生产环境要实现打字机效果可开启流式。5.5 常见注意事项模型下载目录默认在~/.ollama注意磁盘空间。7B 模型建议至少 8GB 显存如果你的机器只有 CPU也可以运行但速度会慢很多。生产环境不要把 Ollama 直接暴露到公网应该在前面加网关做鉴权。另外Ollama 虽然用起来方便但它默认提供的推理优化相对通用适合作为开发和验证工具。如果业务已经进入高并发阶段建议用 vLLM 一类更专业的大模型推理引擎替换底层服务Ollama 仍可作为模型管理和小规模调试入口。6. 实战进阶vLLM 高性能推理与精度选择6.1 vLLM 的适用场景Ollama 适合个人学习和轻量使用但如果要做高并发 API 服务vLLM 是更常见的选择。vLLM 通过 PagedAttention 机制高效管理 KV Cache支持连续批处理continuous batching能把 GPU 的吞吐压得更满。很多大模型 API 服务商的底层推理栈里都有类似的技术。KV Cache 是推理过程中用来缓存注意力中间结果的显存区域。传统方案会把显存预先分配好但实际请求长度变化很大容易浪费。PagedAttention 像操作系统的分页机制一样把 KV Cache 分成小块按需分配从而提高显存利用率和并发能力。6.2 安装与启动示例pip install vllm然后启动一个 OpenAI 兼容的服务vllm serve Qwen/Qwen2.5-7B-Instruct --port 8000首次运行会下载模型权重如果你的网络拉取模型很慢可以通过HF_ENDPOINT环境变量切换到镜像比如export HF_ENDPOINThttps://hf-mirror.com vllm serve Qwen/Qwen2.5-7B-Instruct --port 8000注意不同 vLLM 版本启动命令可能有差异建议以你安装版本对应的官方文档为准。启动成功后服务会监听 8000 端口并自动提供/v1/chat/completions等 OpenAI 风格接口。6.3 用 OpenAI SDK 访问 vLLMvLLM 提供的接口和 OpenAI 兼容所以可以直接用 openai 库from openai import OpenAI client OpenAI( base_urlhttp://localhost:8000/v1, api_keyEMPTY, ) response client.chat.completions.create( modelQwen/Qwen2.5-7B-Instruct, messages[ {role: user, content: 介绍一下大模型推理中的 KV Cache。} ], ) print(response.choices[0].message.content)这样你只需要切换base_url就可以在本地服务和云厂商 API 之间切换代码改造很小。这也是生产环境常用的设计思路业务代码不关心模型真正跑在哪里只面向一个稳定接口。6.4 精度选择FP16、BF16、FP32很多同学在部署模型时被精度问题困扰。精度简单理解就是数字在内存中用多少位来表示。大模型推理中常见三种精度说明显存占用适用场景FP32单精度浮点精度最高最大一般只用于训练中的某些环节推理很少直接用FP16半精度浮点精度较高约为 FP32 的一半常见推理格式BF16与 FP16 占位相同但保留了更大的指数范围与 FP16 相当训练和推理都很常用对模型稳定性更友好选择时会发现BF16 在防止训练/推理溢出方面比 FP16 更稳所以很多新版本模型权重都以 BF16 为主。如果你的 GPU 支持 BF16优先选择 BF16 格式的权重如果只能用 FP16则要留意输出是否出现 NaN 或明显退化。部署时如果显存紧张还可以做 INT8/INT4 量化例如用 bitsandbytes、GPTQ、AWQ 等工具。量化会进一步降低显存但可能带来精度损失需要结合业务场景测试。不要为了“能跑起来”而盲目选择最低精度观察模型在真实业务样本上的输出质量比看显存占用数字更重要。7. 大模型微调什么时候该做、怎么做7.1 微调不是第一选择很多开发者一遇到模型回答不符合预期第一反应就是“微调”。实际上微调的成本数据标注、GPU 训练、回归测试比很多人想象中高。正确顺序应该是先用提示词工程优化加示例、加思维链、加上下文约束。再用检索增强生成RAG把实时知识和私有文档注入上下文。如果前两步都解决不了才考虑微调。微调更适合的场景包括让模型学会特定的输出格式、稳定的语气风格、领域专有名词和规则、新的工具调用能力等。比如你要让模型输出固定的 JSON 结构通过提示词写清楚格式往往就能做到但如果业务要求模型长期用特定行业术语、固定报告模板和特殊缩写提示词可能越写越长效果还不稳定这时微调才有真正的发挥空间。7.2 微调的基本流程准备数据整理一批高质量的输入输出对。数据清洗去重、过滤低质量样本、检查敏感内容。选择基座模型从适合业务场景的开源模型中选。训练用 LoRA 等参数高效微调方法因为全参微调成本和显存要求更高。评估准备一组测试集和微调前的结果做对比。部署把微调后的权重合并或加载进推理引擎发布为新的服务。整个链路里数据准备和评估最容易被忽略但它们恰恰决定了微调是否有效。很多人把时间花在调学习率和训练步数上却忽略了数据里本身就有大量噪音结果模型越训越差。7.3 数据格式示例以指令微调常用的 JSON 格式为例[ { instruction: 将下面的文本改写为更加口语化的表达。, input: 关于该项议题我方认为有必要进行进一步探讨。, output: 这个事儿我觉得还可以再聊聊。 } ]不同框架对数据格式要求不同建议先按框架文档整理数据。数据量不在多而在于覆盖边界情况。如果你发现模型在某一类输入上经常出错就针对这类输入补充更多样本。7.4 常用工具如果你刚接触微调可以关注 LLaMA-Factory、Unsloth 等工具它们封装了很多训练细节并提供可视化界面。以 LLaMA-Factory 为例安装后启动 WebUI可以在网页上选择基座模型、加载数据集、配置 LoRA 参数比较适合入门。不过这类工具版本更新很快具体命令要以官方仓库的 README 为准不要照抄网上旧教程。微调并不等于从头