DeepSeek-V4-Flash 正式发布

🎉 DeepSeek-V4-Flash 正式版 API 已上线公测,Agent 能力大幅增强;V4-Pro 暂未变动。

一、核心变化速览

项目变化
API 状态正式版上线公测 ✅
Agent 能力大幅增强,基准测试远超 V4-Pro-Preview
API 格式原生支持 Responses API,针对性适配 Codex
V4-Pro暂未变动
模型版本V4-Flash-0731

二、Agent 能力大幅增强

正式版 V4-Flash 在 Agent 任务上表现显著提升,基准测试远超 V4-Pro-Preview

基准测试得分
Terminal Bench 2.182.7
NL2Repo54.2
Cybergym76.7
DeepSWE54.4
Toolathlon verified70.3
Agent Last Exam25.2
Automation Bench (Public)25.1
DSBench-FullStack68.7
DSBench-Hard59.6

测试说明
注1:对于公开基准测试集中的 Code Agent 任务,正式版 V4-Flash 使用 DeepSeek Harness 极简模式(即将发布)作为测试框架,采用 max 档位,topp=0.95temperature=1.0
注2:DSBench-FullStack 为内部全栈开发测试集;DSBench-Hard 为内部 Coding Agent 难题测试集。

三、接口与集成支持

正式版 V4-Flash 原生支持 Responses API 格式,并针对 Codex 做了针对性适配。具体配置方法请参考官方文档:DeepSeek 官方配置文档

四、版本说明

DeepSeek-V4-Flash-0731 的模型结构、尺寸与 V4-Flash-Preview 保持一致,仅重新进行了后训练

⚠️ 重要提醒

本次仅升级了 V4-Flash 的 API 接口,以下内容未做任何更改

  • DeepSeek-V4-Pro API
  • APP / WEB 端模型

PostgreSQL 19 新特性:为什么 COUNT(*) 终于比 COUNT(1) 快了?

前言

很多开发者都纠结过 COUNT(*)COUNT(1) 到底哪个更快。PostgreSQL 19 给了一个明确的答案——​数据库会自动帮你选最快的那个​。

COUNT(*) vs COUNT(1):老生常谈的问题

在 SQL 里,COUNT 是最常用的聚合函数之一。关于这两种写法的争论已经持续了很多年:

  • COUNT(*)​:统计所有行数
  • COUNT(1)​:对每一行计算常量 1,然后统计非 NULL 的数量

理论上,如果表达式永不为 NULL(比如常量 1),这两种写法的结果​完全一样​。但在 PostgreSQL 内部,它们的执行路径却大不相同。

为什么以前 COUNT(1) 反而更慢?

在 PG 19 之前,PostgreSQL 对待 COUNT(1) 是”老实巴交”的:

  1. 表达式计算​:对每一行都要计算一次表达式值(虽然结果就是 1
  2. NULL 检查​:检查计算结果是否为 NULL(虽然 1 永远不是 NULL)
  3. Tuple Deform(解构元组)​:如果表达式涉及列值,数据库可能需要从磁盘行格式中提取出完整的列数据。对于列很多的宽表,这个开销会非常明显

COUNT(*) 走的是特化路径——​什么都不算,直接数行​,天然就少了这些开销。

PG 19 的优化:让规划器替你省事儿

PostgreSQL 19 引入了一个重要的性能补丁(Commit 42473b3),标题就是:

“Have the planner replace COUNT(ANY) with COUNT(*), when possible”

简单说:​查询规划器现在会自动把冗余的 COUNT(表达式) 重写为更高效的 COUNT(*)​。

触发条件

要触发这个优化,必须同时满足:

  1. COUNT() 里的表达式​保证不会为 NULL​(比如常量 1、NOT NULL 约束的列)
  2. 不包含 ORDER BYDISTINCT 子句
-- 优化前:COUNT(1) 有额外计算开销
SELECT COUNT(1) FROM orders;

-- 优化后:PG 19 自动重写为 COUNT(*),无需表达式计算
-- 执行计划内部等价于:
SELECT COUNT(*) FROM orders;

技术内幕:SupportRequestSimplifyAggref

这个补丁引入了一个新的支持请求类型 SupportRequestSimplifyAggref,允许聚合函数的支持函数(prosupport)检查自身的调用是否可以被简化。

对于 COUNT(),PG 新增了一个专门的支持函数,负责判断:

  • 输入表达式是否非空?
  • 有没有 ORDER BY / DISTINCT

如果条件满足,就在查询规划阶段直接把 COUNT(ANY) 替换为 COUNT(*),从源头上消除了不必要的表达式评估和 NULL 检查。

附带收益:更干净的执行计划

这个补丁还顺带改进了 expr_is_nonnullable() 函数,让它能正确识别常量表达式的非空性。

比如以前执行计划里可能出现的这种冗余过滤:

One-Time Filter: (100 IS NOT NULL)

现在规划器知道 100 肯定不是 NULL,直接把这个无用过滤器移除了,执行计划更清爽。

总结

写法PG 19 之前PG 19 及以后
COUNT(*)最快,直接数行依然最快
COUNT(1)慢,有表达式计算和 NULL 检查开销自动优化为 COUNT(*)
COUNT(not_null_col)慢,可能触发 tuple deform自动优化为 COUNT(*)

最终结论

  • PG 19 之前​:请直接写 COUNT(*),它是性能最优的写法。
  • PG 19 及以后​:写 COUNT(1) 也不会吃亏了,数据库会自动帮你优化。但出于习惯和对旧版本的兼容性,​COUNT(*) 依然是最佳实践​。

Kimi K3 正式发布

月之暗面今日凌晨正式推出其迄今能力最强的模型 —— Kimi K3,一个 2.8 万亿参数的开源模型,面向长程编程、知识工作和推理等前沿智能场景设计。这是全球首个开源的 3 万亿级别模型。

Kimi K3 发布公告

核心要点

  • 2.8 万亿参数,全球首个开源 3 万亿级别模型
  • KDA 混合线性注意力机制 + 注意力残差技术
  • 原生支持视觉理解,100 万 token 上下文窗口
  • MoE 稀疏度扩大:896 个专家中激活 16 个
  • 相比 K2 整体扩展效率提升约 2.5 倍
  • 从 SFT 阶段采用量化感知训练(MXFP4/MXFP8)
  • 擅长长程编程、视觉推理和端到端知识工作
Kimi K3 架构

架构创新

Kimi K3 基于 KDA 混合线性注意力机制(Kimi Delta Attention)和注意力残差(Attention Residuals)技术构建。KDA 为注意力扩展提供高效基础,AttnRes 有选择地跨深度检索表示,二者共同使模型能扩展到万亿参数以上规模。

MoE 架构

结合 Stable LatentMoE 框架,模型可在 896 个专家中高效激活 16 个。Quantile Balancing 和 Per-Head Muon 让大规模训练更自适应。

评测对比

性能表现

虽然 Kimi K3 的整体表现仍落后于最强的闭源模型 Claude Fable 5 和 GPT-5.6 Sol,但在整套评测中展现出前沿水平的能力,并稳定超过了其他所有模型。

评测数据
能力展示

可用性

  • 用户可通过 kimi.com、Kimi 手机 App、Kimi Work 桌面客户端、Kimi Code 和 Kimi API 使用
  • 当前默认思考强度为 max(极致),后续增加 low 和 high 模式
  • 完整模型权重将于 2026 年 7 月 27 日前发布
  • 已向 vLLM 社区贡献 KDA 实现

来源:开源中国(OSCHINA)

PostgreSQL Hot Standby 查询冲突处理

冲突原因(4种)

  1. 主库 VACUUM 清理了备库查询需要的多版本数据(最常见)
  2. 主库 LOCK/DDL 产生的排他锁与备库查询冲突
  3. 主库删除表空间,但备库查询需要在其上存放临时文件
  4. 主库删除数据库,而备库仍有 session 连接

处理方式(2种)

  • 等待:让备库 WAL 应用进程等查询结束再应用 WAL
  • 取消:强制取消备库正在执行的查询

关键参数

  • max_standby_archive_delay — 归档模式最大等待延迟,默认 30s,-1 表示一直等
  • max_standby_streaming_delay — 流复制模式最大等待延迟,默认 30s,-1 表示一直等
场景 建议设置
备库用于高可用 设小值,保证不延迟
备库用于大查询 设大值

减少冲突的配置

  • hot_standby_feedback = on:备库告知主库哪些多版本数据还需要,防止 AutoVacuum 清理(推荐方案)
  • vacuum_defer_cleanup_age 调大:延迟清理多版本数据(辅助方案)

注意事项

  • 即使配置了以上参数,仍可能因冲突被取消查询
  • 备库应用应检测 canceling statement due to conflict with recovery 错误并自动重试
  • 冲突可通过 pg_stat_database_conflicts 视图查询