ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

国产大模型实战评测:从API接入到本地部署的选型指南

国产大模型实战评测:从API接入到本地部署的选型指南 最近半年国产大模型进入了名副其实的“混战期”。不管是刷开源模型榜单还是看各家发布会每隔几周就会冒出一个新版本、新架构、新应用场景。很多开发者面临同一个问题模型这么多到底选哪个是跟风换最新的还是稳定用某个老牌 API本地部署有没有价值这篇文章会延续之前对国产主流 AI 大模型的评价思路从实际开发视角重新做一轮梳理。我不准备只贴榜单和跑分而是把评价维度、API 接入方式、本地部署方案、常见踩坑点都展开讲清楚方便你在做技术选型时有据可依。1. 为什么需要一份国产 AI 大模型评价1.1 国产大模型当前的局面国产主流 AI 大模型已经不是“能不能用”的阶段而是“哪个更好用、更适合自己的场景”的阶段。目前市面上能见到的模型大致可以分为两类第一类是闭源 API 服务比如文心一言、讯飞星火、Kimi、豆包等由厂商直接提供接口和配套工具开发者调用即可。第二类是开源可私有化部署的模型比如 DeepSeek、通义千问 Qwen、智谱 GLM、百川 Baichuan 等既可以通过官方 API 调用也可以下载权重在本地或者私有云环境部署。这种格局带来的直接好处是选择空间大坏处是信息噪音同样大。每个厂商都有自己的榜单、自己的评测集、自己的“首发优势”普通开发者很难从宣传话术里判断真实水平。1.2 开发者选择模型时的真实困惑结合近半年社区和项目群里的反馈开发者在选大模型时反复遇到的困惑集中在几个方向模型推理能力宣传得很强但接入业务后一旦涉及复杂逻辑就答非所问。开源模型很多但不知道自己的显卡资源能不能跑得动量化之后效果损失多大。API 价格差异明显低价模型是否够用高价模型是否真的物有所值。多模态能力、长文本能力、代码能力到底怎么量化比较。幻觉问题在严肃业务场景下有多严重如何用提示词或工程手段缓解。这些问题靠看宣传稿是解决不了的需要结合真实使用场景做评测。这也是本文写作的初衷尽量用工程化的方式去评价而不是停留在感官描述。1.3 本文评价的边界与原则在进入正文前先说明本评价的几个原则避免读者产生误解大模型能力迭代非常快本文描述的是当前阶段的综合印象不构成永久性结论。评测结果会受测试集、温度参数、提示词表达方式影响本文尽量保持同样的测试条件。不同模型在不同任务上各有侧重不存在“一个模型通吃所有场景”的情况。所有 API 接入示例只做演示实际调用前请查阅对应平台最新文档。2. 评价方法与核心维度2.1 评价维度设计为了不让评价变成单纯的“个人感觉”我把评价拆成六个可操作维度维度考察内容适合的测试方式中文语义理解对中文语境、成语、歧义句的理解用包含歧义的自然语句提问代码生成与调试生成可运行代码、修复 bug、解释代码让模型写算法题、找代码缺陷复杂推理数学题、逻辑题、多步推理使用中学数学题和逻辑推理题长文本处理超过 8000 字内容的归纳与抽取输入长文档并提问多模态能力图片理解、图表分析上传截图、表格图片并提问幻觉控制对不确定信息的回答是否谨慎询问模型不确定或不存在的内容2.2 测试方法与数据集选择建议不要用单一数据集做结论。比较稳妥的方式是准备三组测试内容第一组通用常识题覆盖生活、科技、历史等领域。第二组编程题包含一个排序算法、一个 SQL 查询、一个调试场景。第三组开放性问题比如“帮我规划一个项目技术方案”重点观察回答的结构和条理。测试时要注意参数一致性。如果对比多个模型最好统一设置 temperature 为 0.2 或 0.3这样能减少随机性对结果的干扰。2.3 评价过程需要注意的问题有几个坑在评测时很容易踩到第一不要只测一次就下结论。大模型的生成有随机性同一问题在不同次回答中质量会有波动。建议每个问题至少测三次取综合印象。第二不要忽略上下文长度的影响。有些模型在短对话时表现不错一旦上下文变长就出现信息遗忘或重复。评测时要把长上下文场景单独列出来。第三不要只看生成内容还要看接口稳定性。有些模型生成质量尚可但 API 经常超时或限流这类问题在真实业务中会造成很大困扰。3. 国产主流大模型盘点3.1 开源派通义千问、DeepSeek、GLM、百川开源模型最大的价值在于可控性。你可以把模型部署到自己的服务器数据不出内网这对于金融、政务、医疗等敏感行业非常关键。通义千问Qwen阿里的开源模型系列覆盖了从 0.5B 到 70B 以上多个尺寸适合按资源情况选择。Qwen 系列在中文理解和代码能力上表现均衡社区生态也比较成熟有很多微调和量化方案可以借鉴。DeepSeek深度求索出品的模型以推理能力见长尤其是 R1 系列引入推理链路后在数学、逻辑类任务上的表现非常突出。DeepSeek 的开源权重和 API 价格在社区讨论度很高是一众模型中性价比讨论较多的一个。智谱 GLM智谱AI的GLM系列是国产开源模型的老牌选手。GLM 系列在中文优化上一直做得比较细很多中文任务表现稳定而且支持工具调用和智能体开发适合做落地应用。百川 Baichuan百川智能早期的开源模型在中文语料上有明显优势后续也推出了闭源 API。开源版本的迭代节奏相对慢一些但在一些垂直领域中仍有使用价值。3.2 闭源服务派文心一言、讯飞星火、Kimi、豆包闭源模型不需要自己部署接入 API 就能用适合快速上线产品的团队。文心一言ERNIE百度的模型依托百度搜索生态在中文知识型任务上积累较多。新版模型在多模态和知识问答上提升明显适合知识库问答、内容创作等场景。讯飞星火科大讯飞的模型在中文语音和口语化表达上有天然优势。星火在教育、办公、行业应用方面落地案例较多如果业务涉及语音交互值得关注。Kimi月之暗面推出的模型最大特点是超长上下文能力在处理长文档、研究报告、合同等场景中体验很好。Kimi 的 AI 搜索和文档解析能力也比较强。豆包字节跳动的模型整合了搜索、插件等能力。豆包在对话体验和多轮交互上做得比较流畅在 App 场景、内容生成领域有不少应用。3.3 各模型定位与适用人群简单归纳一下各模型的适用方向需要私有化部署、追求数据主权优先考虑开源模型Qwen、DeepSeek、GLM 都可以作为候选。追求最强推理能力尤其是数学和逻辑重点关注 DeepSeek 的推理系列。需要超长文档处理优先体验 Kimi 这类长上下文模型。需要中文内容创作、知识问答文心一言和讯飞星火都有成熟方案。需要多模态理解比如图片分析通义千问、豆包的多模态版本值得测试。4. 实际使用体验对比4.1 中文理解与生成能力中文理解是国产大模型的传统优势区但不同模型的水平差异依然存在。在测试中我对所有模型都问了同一个问题“小明在雨天把伞借给了小红自己淋雨跑回家。请问小明的行为体现了什么品质如果小明没有带伞他还能把伞借给小红吗”这个问题的难点在于第二问需要逻辑判断小明没有带伞自然无法把伞借给小红。部分模型在回答时会把“乐于助人”和“逻辑合理性”混在一起表现得不够严谨。整体来看头部模型在中文表达能力上差距不大但在逻辑嵌套问题上推理能力强的模型优势明显。实际落地时如果你的业务涉及大量中文文案生成建议用多个模型分别生成同一批文案再人工对比风格和结构。4.2 代码生成与调试能力代码能力是很多开发者选模型的首要指标。我用一个典型的算法题做测试# 题目给定一个整数数组 nums 和一个目标值 target # 请找出数组中两个数之和等于 target 的下标 def two_sum(nums, target): pass测试结果分为几个层次。第一梯队的模型不仅能写出正确的哈希表解法还会主动解释时间复杂度和空间复杂度。第二梯队的模型能写出可用代码但偶尔在边界条件处理上不够仔细。还有少量模型会给出暴力解法虽然正确但不高效。写代码之外调 bug 的能力同样重要。让模型解释一段有明显逻辑错误的代码看它能不能定位问题。这一步非常考验模型对代码语义的理解力也是很多开发者实际使用最多的场景。4.3 复杂推理与数学能力国产大模型在数学推理上的进步是近一年最明显的变化。以前大家普遍觉得大模型“语文好、数学差”但现在很多模型已经能处理复杂的方程和逻辑证明。需要注意的是推理类问题对模型的选择很敏感。有些模型为了追求回答速度会跳过中间步骤直接给结果这在简单题上没问题但在复杂问题上容易出错。建议在推理场景中优先选择带“深度思考”模式的模型这类模型会把推理过程完整展开虽然响应时间更长但正确率明显更高。4.4 长文本处理能力长文本处理能力在实际业务中非常实用比如合同审核、论文综述、会议纪要整理。测试方式很简单找一份 1 万字左右的文档让模型总结核心观点再提问文档中的某个具体细节。关键看两点模型能不能准确抽取细节信息而不是只给泛泛的总结。随着对话轮次增加模型会不会忘记文档早期内容。从体验来看主打长上下文的模型在首轮总结上表现优秀但在多轮追问后部分模型仍然会出现信息遗漏。所以在用长上下文模型时建议把关键文档片段拆成多个独立任务处理而不是在一个超长对话里反复追问。4.5 多模态能力多模态能力测试主要围绕图片理解展开。比如给模型一张表格截图让它提取数据并计算汇总或者给一张架构图让它解释系统流程。当前国产大模型的多模态能力已经能处理文字清晰的截图、表格、海报等内容但对模糊图片、复杂图表、多图层信息的理解仍有提升空间。在上传图片时建议先压缩图片体积再明确告诉模型需要关注图片中的哪部分内容这样准确率会更高。5. API 接入实战5.1 OpenAI 兼容接口统一接入现在很多国产大模型平台都提供了 OpenAI 兼容接口这意味着你不需要为每个模型单独写一套调用逻辑只要把 base_url 和 api_key 换掉就可以。统一的调用代码大致如下from openai import OpenAI # 以 OpenAI 兼容接口为例 client OpenAI( api_keyyour-api-key, base_urlhttps://your-provider-endpoint/v1 ) response client.chat.completions.create( modelyour-model-name, messages[ {role: system, content: 你是一个有用的助手}, {role: user, content: 请解释一下什么是大模型幻觉} ], temperature0.3 ) print(response.choices[0].message.content)其中 base_url 和 model 名称以平台文档为准。各家平台的兼容程度不完全一样有的额外支持工具调用有的暂时不支持这些都要以官方文档为准。5.2 通义千问接入示例通义千问的 DashScope 平台提供了 OpenAI 兼容接口也可以用官方 SDK 调用。这里给出一个使用 OpenAI 兼容方式调用的示例from openai import OpenAI client OpenAI( api_keyyour-dashscope-api-key, base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 ) response client.chat.completions.create( modelqwen-plus, messages[ {role: user, content: 帮我写一个 Python 快速排序函数} ] ) print(response.choices[0].message.content)如果使用官方 SDK需要先安装依赖pip install dashscope然后代码可以写成import dashscope from dashscope import Generation dashscope.api_key your-dashscope-api-key response Generation.call( modelqwen-plus, messages[ {role: user, content: 帮我写一个 Python 快速排序函数} ] ) print(response.output.text)两种方式都可以看团队习惯选择。我比较推荐使用 OpenAI 兼容方式因为方便以后切换其他平台。5.3 DeepSeek 接入示例DeepSeek 的 API 设计同样兼容 OpenAI 格式接入成本很低。下面是一个标准调用示例from openai import OpenAI client OpenAI( api_keyyour-deepseek-api-key, base_urlhttps://api.deepseek.com ) response client.chat.completions.create( modeldeepseek-chat, messages[ {role: user, content: 用 Python 实现二叉树的中序遍历} ], streamFalse ) print(response.choices[0].message.content)DeepSeek 还提供了推理增强模型适合数学、逻辑类任务。调用时只需要更换 model 名称并关闭温度参数或按要求设置建议严格阅读平台文档中的参数说明。5.4 多模型切换封装在实际项目中我们往往需要同时接入多家模型方便做兜底和对比。这里提供一个简单的 Python 封装思路class LLMClient: def __init__(self, provider, api_key, base_url, model): from openai import OpenAI self.client OpenAI(api_keyapi_key, base_urlbase_url) self.model model def chat(self, message, temperature0.3): response self.client.chat.completions.create( modelself.model, messages[{role: user, content: message}], temperaturetemperature ) return response.choices[0].message.content # 使用示例 qwen LLMClient( providerqwen, api_keyyour-qwen-key, base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1, modelqwen-plus ) deepseek LLMClient( providerdeepseek, api_keyyour-deepseek-key, base_urlhttps://api.deepseek.com, modeldeepseek-chat ) print(qwen.chat(你好)) print(deepseek.chat(你好))这个封装类只是一个最小实现实际工程中还应该考虑超时重试、错误分类、日志记录、并发控制等问题。6. 本地部署与私有化方案6.1 开源模型本地部署的基本流程如果业务对数据安全要求高或者 API 用量大导致成本不可控本地部署开源模型就是一个值得考虑的方案。本地部署的基本流程通常包含四步下载模型权重可以从 Hugging Face 或 ModelScope 获取。选择合适的推理框架比如 vLLM、Ollama、llama.cpp 等。启动推理服务通常以 OpenAI 兼容接口暴露出来。将业务代码的 base_url 指向本地服务地址。这里给出一个使用 Ollama 部署 Qwen 小模型的示例# 安装 Ollama 后拉取模型 ollama pull qwen2.5:7b # 启动服务 ollama serve服务启动后默认会在 11434 端口暴露接口可以通过 OpenAI 兼容方式访问from openai import OpenAI client OpenAI( api_keyollama, base_urlhttp://localhost:11434/v1 ) response client.chat.completions.create( modelqwen2.5:7b, messages[{role: user, content: 你好}] ) print(response.choices[0].message.content)6.2 推理资源需求估算很多人对本地部署望而却步主要是担心显卡资源不够。这里给出一个粗略的估算思路。模型推理需要的内存主要取决于模型参数量和量化精度。以 7B 模型为例如果使用 FP16 精度加载大约需要 14GB 显存如果使用 INT4 量化显存需求会降到 4GB 到 6GB 左右。判断资源是否够用可以按这个公式估算显存需求 ≈ 参数量B × 每个参数的字节数如果是 7B 模型FP16 每个参数占 2 字节大致就是 7 × 2 14GB。实际推理时还需要加上 KV Cache 等额外开销因此建议保留 20% 到 30% 的余量。如果你的显卡显存只有 8GB可以选择 4B 或 7B 的量化版本如果显存在 24GB 以上可以考虑 14B 到 32B 的模型。6.3 本地部署的坑与建议本地部署最大的坑是“部署成功但效果不如预期”。这通常有两个原因第一量化精度过低导致生成质量下降。虽然 INT4 能大幅降低显存占用但复杂推理任务中可能出现明显退化。建议先用 FP16 验证效果再决定是否量化。第二模型尺寸太小能力上限有限。本地方案部署的一般是中小尺寸模型它们的通用知识储备和推理能力与云端大模型有一定差距更适合垂直场景微调后使用。建议在本地部署前先明确业务场景。如果是简单分类、信息抽取、固定格式生成小模型完全够用如果是开放域对话、复杂代码生成还是优先考虑云端 API。7. 常见问题与排查思路在实际使用国产大模型 API 和本地部署的过程中有几个问题出现的频率特别高问题现象常见原因解决思路接口报 401 或 403API Key 错误或权限不足检查 Key 是否复制完整确认账户已开通对应服务接口返回超时模型负载高或网络波动配置超时重试使用流式输出降低首字延迟生成内容重复或偏离主题温度参数过高或提示词不清晰降低 temperature在提示词中明确输出格式长文本回答中断达到最大 token 限制设置 max_tokens 或分块处理任务本地模型回答质量差模型太小或量化严重更换更大模型或减少量化精度损失流式输出乱码编码格式不匹配统一使用 UTF-8 编码处理输出排查问题时建议按下面的顺序逐一确认确认网络连通性先用 curl 测试接口是否可访问。确认 API Key 权限看文档中是否要求单独开通模型权限。确认参数是否合法尤其是 model 名称是否对应平台最新版本。确认提示词是否清晰有时候问题出在输入而不是模型。# 用 curl 快速测试接口连通性 curl https://api.deepseek.com/v1/models \ -H Authorization: Bearer your-api-key这条命令能很快帮你定位是网络问题、鉴权问题还是代码问题。8. 最佳实践与选型建议8.1 按场景选型没有最好的模型只有最合适的模型。在做选型时建议先列清楚业务场景再匹配模型能力。业务场景推荐方向原因智能客服、对话机器人闭源 API 大模型对话流畅度高接入快文档分析、合同审核长上下文模型能处理超长文本代码生成、代码审查代码能力强的模型减少人工修改量私有化知识库开源中小模型数据不出内网可控性强数学计算、逻辑推理带深度思考模式的模型推理过程完整准确率高多模态图片识别多模态大模型直接解析图片内容8.2 成本控制调用 API 的成本和模型参数量、输入输出 token 数直接相关。控制成本有几个经验优先使用小模型处理简单任务只有复杂任务才调用大模型。使用缓存机制避免重复请求。相同的用户问题在短时间内可以直接返回缓存结果。使用上下文压缩策略。尽量精简 inputs不要把无关信息全部塞进 prompt。使用流式输出提升用户体验同时减少超时重试成本。8.3 安全与合规在使用大模型 API 时需要特别注意数据安全边界。涉及用户个人信息、企业敏感数据时要评估数据出境风险并确认是否可以使用本地部署方案。在提示词层面建议加入输出过滤策略避免模型生成不合规内容。同时在应用的接入层增加内容审核模块对模型的输入和输出都做校验。在代码层面API Key 绝对不能硬编码到前端或开源仓库中。密钥应该保存在环境变量或配置中心并定期轮换。import os api_key os.getenv(LLM_API_KEY) if not api_key: raise ValueError(请先设置环境变量 LLM_API_KEY)8.4 工程化落地建议把大模型接入业务系统不能只写一个调用函数就结束了。更完整的工程方案还应该包含提示词模板管理把提示词抽象成模板避免在代码中散落。模型切换开关通过配置中心控制线上模型的选择方便灰度切换。测试回归集沉淀一批评测用例每次更换模型版本时做回归验证。日志与监控记录每次调用的耗时、token 数、失败原因便于成本核算和问题定位。9. 总结如何继续关注国产大模型发展国产大模型的发展速度很快每个月都有新的能力升级和产品发布。如果你现在做选型不要迷信单次测试结果也不要只看厂商宣传而是应该建立一套自己的评测流程把测试样例沉淀下来持续观察模型的变化。如果你的团队还处于探索阶段建议按“简单任务用小模型、复杂任务用大模型、敏感数据走本地部署”的思路搭一套混合方案。这样既能控制成本又能在不同模型之间灵活切换降低被单一厂商绑定的风险。对于开发者来说现阶段最重要的不是追新模型而是提升自己掌握提示词工程、模型评测、应用集成的能力。大模型能力会持续迭代但工程化方法论是长期复用的。动手去跑几个模型记录测试结果对比不同模型的回答你会比任何榜单都更清楚哪个模型适合你的业务。如果这篇文章对你有帮助可以收藏备用后续有新版本模型时我们继续更新评价。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进