PREVIEW

智算天玑 Phecda

用 Jev 式决策加速复杂工业软件求解
The purpose of computing is insight, not numbers.
计算的目的是洞察,而不是数字。(Richard Hamming)
智算天玑发布视频,约两分钟,有配乐。
三句话看懂天玑
  1. 工业软件每解一次方程组,都要先挑求解器。挑错了,一秒能解完的题会拖上几十秒,甚至解不出来。今天这件事靠老师傅的手感,我们管它叫工业软件界的“炼丹”。
  2. 天玑是求解器的“查询优化器”。它先让矩阵试跑几十步,再给每个求解器报一个成功概率;代码按期望代价排出先后,失败就自动换下一个。
  3. 在 SuiteSparse 的 117 个真实矩阵上,天玑判断得比通用决策模型 Jev 准,Brier 分数低 38%。在另一批 46 个能解出来的真实矩阵上,按它排的顺序求解,总耗时不到固定默认顺序的四成,试跑的时间也算在里面。

同一道题,一秒还是四十六秒

先看一道真题。SuiteSparse 矩阵库里有一个陀螺仪的刚度矩阵,叫 gyro_k,一万七千多个未知数。按固定的默认顺序,先上代数多重网格。它磨了 46 秒,残差几乎没动,宣告失败。换成直接法,1.1 秒解完。

这样的事在工业软件里很常见。有限元、流体、电路仿真,算到最后都是在解稀疏线性方程组。不可压流动里,光是压力方程就常常吃掉六到九成的计算时间[17]。在 CFD 软件的求解设置里,压力方程那一段通常只有几行,用什么求解器,配什么预条件器,光滑器选哪个。以开源的 OpenFOAM 为例,就是 system/fvSolution 文件里 p 的那一段。这几行填得好不好,决定了算得快慢,有时还决定了算不算得出来。

这几行怎么填,多数团队靠老师傅。老师傅的经验很值钱,却写不进文档。换一套网格、换一种材料,他也得重新试。人一走,经验也跟着走了。配方在人手里,火候全凭感觉,这就是我们说的“炼丹”。每一家用仿真的单位都在为它交学费,交的是工程师的时间,还有集群的机时。

Jev 读文字,天玑先摸矩阵

9 月 15 日,TypeSafe 发布了决策模型 Jev[1]。它的用法和聊天机器人不同。交给它一份状态和几道带类型的问题,是非题、选择题或分档题,它一次算完,直接返回每道题的概率,一个字也不写。TypeSafe 把它叫作 System One 模型,借的是“快思考”的说法。天玑也是快判断,但它是读过求解器日志的那种快。

这个接口很适合求解器决策。先试哪个求解器,本来就该看概率:有多大把握成功,失败了要赔多少时间。可 Jev 是通用模型,没见过求解器。给它一段矩阵的文字描述和几项统计量,它只能凭常识猜。

天玑留下了 Jev 的接口,换掉了内核,又补上两样东西。一样是探针,判断之前先让矩阵试跑几十步。另一样是一座数据工厂,拿求解器真跑出来的结果当训练标签。模型结构沿用社区开源的 Open-Jev-9B[2][3],底座是 Qwen3.5-9B[6]。

先跑一小段,再下判断

编译器有一招叫 profile-guided optimization。先把程序跑一小段,看热点在哪,再决定怎么优化。天玑的探针做的是同一件事。

探针分三步。第一步,用最便宜的 Jacobi 预条件跑 20 步共轭梯度,看残差降得多快,顺手估出条件数,还能发现矩阵是不是不定。第二步,把多重网格的层级搭起来试跑 15 步,看它推不推得动残差,粗网格能不能罩住最难消的那部分误差。第三步,把最难消的误差单独拎出来,看它能不能用常向量这样的简单模式解释。

回到陀螺仪那道题。探针看到,多重网格每一步只能把残差降到原来的 0.98,粗网格只罩住了 22% 的慢误差。这等于提前知道多重网格会卡住。天玑于是把直接法排在第一位,算上 4.3 秒探针,5.4 秒解完。默认顺序花了 47 秒。

探针不是免费的。大矩阵上,它可能要几十秒。这笔账后面会算清楚。

答案跑一遍就知道

大模型这两年在数学和代码上进步很快,一个常被提到的原因是答案能自动核对。数学题对一下答案,代码跑一遍测试,对错立判。这类训练信号叫可验证奖励。

求解器决策天生就是这样的题。某个求解器能不能在预算内解出来,要多少步,花几秒,跑一遍就知道,不用任何人标注。数据能有多少,只看算力有多少。

我们据此搭了一座数据工厂(图 1)。一边用 13 族生成器出题,覆盖扩散、线弹性、对流扩散、Helmholtz、薄壁壳等问题,共 4,087 道,最大的有 79 万未知数。一边从 SuiteSparse 收来 544 个真实矩阵,一部分进训练,其余留作考题。每道题都用 5 个求解器配置在同一预算下真跑一遍,成败、步数和耗时记下来,就是标签。

图里还有一条回流的虚线。天玑每在真实环境里指挥一次求解,结果就是一条新标签,可以直接拿回来继续训练。老师傅的经验留不住,这份经验能留下来。对做产品的人来说,这就是数据飞轮:用得越多,攒下的标签越多。

离线:数据工厂(标签靠算力造) 在线:一次决策 合成题与真实矩阵13 族生成器,SuiteSparse 求解器菜单真跑5 个配置,同一预算 结果即标签成败、谁最快、几步 写成状态 s特征、探针、文字描述 训练天玑交叉熵加 Brier 矩阵与描述工程师或智能体提交 代码算特征规模、对称、对角占优 探针试跑、估谱、慢模态 天玑一次前向带类型问题的概率 按期望代价排序概率乘典型耗时 按序真跑失败就回退 真跑的结果本身就是新标签,回流进数据工厂 训好的权重

图 1 天玑的数据工厂与一次在线决策。上一行离线生成题目、真跑求解器菜单,把运行结果写成标签,把特征、探针和文字描述写成状态。下一行是一次决策:代码先算特征、跑探针,天玑给出每个带类型问题的概率,代码按期望代价排出求解顺序并执行。执行结果回流为新的训练样本。

求解器的查询优化器

数据库收到一条 SQL,并不照字面直接执行。查询优化器先看表的统计信息,再用代价模型比较几种执行计划,挑预计最省的那个。天玑站的就是这个位置。探针读数相当于统计信息。天玑给出每个求解器的成功概率,代码再按期望代价排出尝试顺序。

期望代价把两件事放在一起算:成功的把握有多大,失败了要赔多少时间。一个很有把握但很慢的求解器,可能会排在一个把握一般但很快的后面,因为后者值得先试一下。代码把 5 个配置的 120 种先后顺序全算一遍,取期望代价最小的那条。

失败了就自动换下一个,也就是工程里常说的 fallback。模型只报概率,排序和执行都由代码负责。每次求解都核验真实残差,所以就算天玑全猜错,最坏也只是把菜单挨个试一遍,不会交出一个错的解。

接进现有软件,改动也不大。天玑以插件的形式挂在已有求解器前面,核心就是下面十几行。features、probe、build_state、best_order 是我们脚本里的函数,phecda 是天玑的一次前向,输入输出与 Jev 的 /v1/systemone 同形。放到 CFD 软件里,天玑要填的就是求解设置里压力方程那几行:solver、preconditioner、smoother。天玑 PlayGround 演示的正是这个过程。

from scipy.sparse.linalg import cg, splu; import pyamg
amg = lambda A: pyamg.smoothed_aggregation_solver(A).aspreconditioner()
MENU = {"amg_cg":    lambda A, b: cg(A, b, rtol=1e-8, maxiter=500, M=amg(A)),
        "direct_lu": lambda A, b: (splu(A.tocsc()).solve(b), 0)}   # 其余配置、PETSc 同理
def solve_sparse(A, b, description=""):
    f = features(A)                                         # 数字特征
    r = probe(A, f["block_size_detected"], f["asym_rel"])   # 探针
    p = phecda(build_state(f, description, r), QUESTIONS)   # 天玑:概率
    for name in best_order(p, f):                           # 期望代价排序
        x, info = MENU[name](A, b)
        if info == 0 and norm(b - A @ x) <= 1e-8 * norm(b):  # 核验真残差
            return x, {"engine": name, "probe_s": r["time_s"]}
    raise RuntimeError("菜单里的配置都失败了")               # 否则退到下一个

成绩单

先说判断准不准。我们用 Brier 分数来量:说九成会成的事,最好真有九成成了。它同时奖励判得对和报得实,越低越好。

我们的考卷是 SuiteSparse 里 117 个对称正定矩阵。在考卷上,天玑的 Brier 分数是 0.089,读同一份状态的 Jev 是 0.143,低了 38%,差值的 95% 置信区间不跨 0。再换一批 68 个真实矩阵,它们同样来自 SuiteSparse,但和考卷不在同一个 group(可以理解为不同的来源),以非对称和不定矩阵为主。天玑依然领先,0.105 对 0.135(图 2)。

0.00 0.09 0.17 0.26 0.34 SuiteSparse 考卷 117 题 其他 group 的真实矩阵 68 题 天玑 Jev,读同一份状态 按基率猜 Brier,越低越好
图 2 真实矩阵上“能否收敛”五道是非题合并的 Brier 分数,越低越好。天玑和 Jev 读的是同一份带探针读数的状态。

天玑还有一个长处:一个模型回答所有问题。问题写在输入里,换个问法不用重新训练。训练时从没出现过的两个求解器配置,BiCGSTAB 和 AMG 预条件的 GMRES,天玑在真实矩阵上也判得比 Jev 准(0.047 对 0.077,0.049 对 0.082)。为每个问题单独训练的梯度提升树,在它训过的问题上和天玑打成平手,这两道新题它却根本答不了。

再说省不省时间。后面这 68 个真实矩阵里,有 46 个至少有一个配置能在预算内解出来。我们按各方法排出的顺序依次真跑,失败的尝试按实际耗时算,探针的时间也算进去(图 3)。天玑一共花了 841 秒,其中探针 370 秒。固定默认顺序花了 2,260 秒,是天玑的 2.7 倍。默认顺序先试多重网格,而这批矩阵大多不对称或不定,多重网格很少成功,每失败一次就白等一段。

事后最优 340 秒 天玑(含探针 370 秒) 841 秒 Jev,读同一份状态 930 秒 固定默认顺序 2,260 秒
图 3 其他 group 的 46 个可解真实矩阵上,按各方法排出的顺序依次真跑的总墙钟时间,越短越好。事后最优是每题直接选中最快配置的耗时。

这个 2.7 倍有明确的范围,只在这 46 个矩阵上成立。换到考卷那 117 个对称正定矩阵上,账就没这么好看,探针本身也还没回本。这些不好看的数字,都放在文末的折叠区里。

天玑 PlayGround 是一个示意的求解工作台,天玑以浮动卡片的形式嵌在里面。挑一道题,看卡片怎么摸矩阵、怎么排序,一键把配置填进求解设置,再看残差监视器回放真实的收敛曲线。十道题全部来自真实运行,也包括天玑看走眼的那一道。
打开天玑 PlayGround

下一步:给大模型一双摸矩阵的手

多模态模型给大模型装上了眼睛。天玑想给它装上一双能摸矩阵的手。今天的天玑,还是先把探针读数写成数字和文字,再交给语言模型去读。我们更想做的,是把矩阵本身当成一种模态,让模型直接读它的结构和谱。

在智算星座里,天璇 OmniArch[15]端到端地预测解场,玉衡 Alioth[16]生成求解器组件,天玑负责判断该交给谁、失败了退到哪里。

接下来我们会把数据生成器、求解器菜单和全部标签开源,并放出天玑的 LoRA 权重。

给较真的读者:我们还没做好的事、完整表格和方法细节

我们还没做好的事

下面这些,是天玑现在还做得不好的地方。每一条都有数字。

  1. 探针还没回本。在正文那 46 个真实矩阵上,不带探针的天玑只要 447 秒,比带探针的 841 秒还快;不带探针的逻辑回归也只要 464 秒。探针让判断变准了,自己的开销却还没挣回来。SuiteSparse 考卷的 63 道可解题上更明显:带探针的天玑要 3,579 秒,其中探针 1,177 秒,比固定默认顺序的 2,858 秒还慢;最快的是不带探针的逻辑回归,1,535 秒;事后最优是 943 秒。考卷上探针的中位耗时是 24 秒,大矩阵上的多重网格试跑常常用满 60 秒上限。同一个矩阵如果要反复求解,比如多个右端项或多个时间步,探针只需做一次,开销会被摊薄。这一点我们还没有实测。
  2. 梯度提升树不服。在它训练过的问题上,逐题训练的梯度提升树(GBDT)和天玑不分胜负。考卷上天玑略好(0.089 对 0.104),其他 group 的真实矩阵上 GBDT 略好(0.094 对 0.105),两处差值的置信区间都跨 0。“哪个配置最快”这道选择题,GBDT 明显更好,考卷上 Brier 分数 0.427 对 0.530。
  3. 没见过的问题,不是都能答。训练里从没问过内存。问“直接法会不会超出内存”,天玑在真实矩阵上的 Brier 分数是 0.330,比按基率猜的 0.054 还差。它把“内存超限”和“直接法失败”当成了一回事,两者的概率在考卷上相关系数达 0.88,超时的题也被判成了内存超限。合成测试集上,五项新问题和新配置里有三项输给 Jev。
  4. 只给文字,天玑就懵了。把状态里的数字全部拿掉、只留一段文字描述,天玑在真实矩阵上的 Brier 分数是 0.266,比 Jev 的 0.230 还差,两者离按基率猜都不远。文字描述到底有没有用,目前还拿不出证据。
  5. 天玑也会看走眼。PlayGround 里的曲轴段矩阵 crankseg_1 就是一例。天玑先后押了两种多重网格,各自撞上 120 秒上限,最后才换到直接法,一共 381 秒。Jev 读同一份状态,一上来就选了直接法,141 秒。固定默认顺序也只要 222 秒。
  6. 温度只在 35 个矩阵上拟合。校准用的这批真实矩阵以非对称为主,和考卷分布不同。温度缩放让“最快”选择题变差了,也让 GBDT 的收敛 Brier 变差了(见表 1 注)。
  7. 还没进过真正的 CFD 软件。PlayGround 是示意界面,矩阵来自 SuiteSparse 和我们的合成题,求解由 SciPy 与 PyAMG 执行。天玑还没有接进 OpenFOAM 或任何商业软件做过实测。
  8. 其他小账。接近 120 秒上限的标签会受机器负载影响。样本量有限,考卷上不少结论的置信区间偏宽。训练按时间预算停在计划 735 步中的第 662 步。

实验怎么做的

测试集。SuiteSparse 考卷是 117 个对称正定矩阵,规模最大 156 万未知数;其中 58 个所在的 group 有别的矩阵进入了训练,59 个没有。其他 group 的真实测试集有 68 个矩阵,以非对称和对称不定为主。合成测试集是 274 道留出的合成题。

对照方法。(1)Jev 零样本:用公开 API 读取与天玑完全相同的状态和问题(版本 jev-1.13.0)。(2)梯度提升树(GBDT)与(3)逻辑回归(LR):以数字特征和探针的数值结果为输入,每个问题单独训练一个模型,训练数据与天玑相同。(4)基率:按训练集频率给概率。每种方法都有带探针和不带探针两个版本;天玑、GBDT 与 LR 都在真实矩阵校准集上做温度缩放[10]。

指标。Brier 分数[8]是预测概率与实际结果之差的平方均值,越低越好。AUC 衡量排序能力。ECE 衡量校准,即各分箱里预测概率与实际频率的平均差距。正文报告五个“能否收敛”问题合并后的 Brier 分数。路由模拟在可解题上按各方法的顺序依次真跑,失败的尝试按实际耗时计入,单次上限 120 秒,带探针的方法计入探针耗时。

完整成绩单

0.00 0.09 0.17 0.26 0.34 SuiteSparse 考卷 117 题 真实测试 68 题 合成测试 274 题 天玑 Jev GBDT LR 基率 Brier,越低越好
图 4 三个测试集上五个“能否收敛”问题合并的 Brier 分数(带探针)。天玑在考卷和合成测试集上最低;在其他 group 的真实矩阵上,GBDT 略低于天玑。
表 1 主结果(带探针)。“收敛”为五个“能否收敛”问题合并,“最快”为六选一的选择题。每个测试集内收敛 Brier 最低者加粗。未做温度缩放时,GBDT 在考卷、真实测试集和合成测试集上的收敛 Brier 分别为 0.080、0.098、0.042,天玑分别为 0.088、0.111、0.062。
数据集方法收敛 Brier ↓收敛 AUC ↑收敛 ECE ↓最快 Brier ↓最快 准确率 ↑
SuiteSparse 考卷天玑0.0890.9370.0450.5300.718
Jev 零样本0.1430.8810.1220.7100.479
GBDT0.1040.9450.1270.4270.718
LR0.1430.8820.1360.6380.581
基率0.2990.5940.2720.8450.197
真实测试(其他 group)天玑0.1050.9340.0760.6110.574
Jev 零样本0.1350.8750.0530.6530.485
GBDT0.0940.9550.0650.5080.574
LR0.1060.9300.0520.6600.515
基率0.2950.6240.3000.7730.426
合成测试天玑0.0640.9690.0440.5310.697
Jev 零样本0.2090.8150.2310.8850.336
GBDT0.0800.9550.1420.3750.755
LR0.1210.9310.1680.6550.668
基率0.1910.6980.0860.7510.321
表 2 考卷按“该题所在 group 是否有其他矩阵进入训练”拆开后的收敛 Brier 分数(带探针)。没进过训练的那一半反而更准,GBDT 也一样,说明两半难度不同,没有看到泄漏的迹象。
方法同 group 进过训练
(58 题)
同 group 未进训练
(59 题)
天玑,带探针0.1010.077
Jev 零样本,带探针0.1400.146
GBDT,带探针0.1170.092
LR,带探针0.1610.126
基率0.2780.320
0.00 0.06 0.11 0.17 0.22 天玑 Jev 零样本 GBDT LR 不带探针 带探针 Brier,越低越好
图 5 考卷上各方法不带探针(灰)与带探针(蓝)的收敛 Brier 分数。四种方法加上探针后都明显下降,信息主要来自摸矩阵这一步。
表 3 探针消融。天玑是同一个模型,训练时四分之一的样本去掉了探针段。合成测试集上数字特征已经够用,探针对 GBDT 反而有害。
方法SuiteSparse 考卷
不带 → 带探针
真实测试(其他 group)
不带 → 带探针
合成测试
不带 → 带探针
天玑0.142 → 0.0890.133 → 0.1050.080 → 0.064
Jev 零样本0.189 → 0.1430.148 → 0.1350.236 → 0.209
GBDT0.133 → 0.1040.097 → 0.0940.062 → 0.080
LR0.193 → 0.1430.142 → 0.1060.156 → 0.121
0.00 0.21 0.43 0.64 0.86 Jacobi-CG 100 步内 直接法 内存超限 AMG 与直接法 谁先成功 BiCGSTAB 能否收敛 AMG-GMRES 能否收敛 天玑 Jev 零样本 基率 Brier,越低越好
图 6 真实矩阵(考卷与其他 group,共 185 题)上,训练时没见过的三个问题与两个求解器配置的 Brier 分数。GBDT 与 LR 没有这些问题的训练标签,无法作答。
表 4 泛化测试的 Brier 分数。格式变化只在真实矩阵上测,只算五个“能否收敛”问题。每栏最好者加粗。
测试项真实矩阵(185 题)合成测试(274 题)GBDT 与 LR
天玑Jev基率天玑Jev基率
Jacobi-CG100 步内0.0280.0410.1170.1530.0520.103无法作答:没有训练标签
直接法内存超限0.3300.0750.0540.1210.0250.000无法作答:没有训练标签
AMG 与直接法谁先成功0.4520.5860.7470.4190.5020.575无法作答:没有训练标签
BiCGSTAB能否收敛0.0470.0770.2560.0960.2540.249无法作答:没有训练标签
AMG-GMRES能否收敛0.0490.0820.4010.1600.1130.218无法作答:没有训练标签
格式变化:一半矩阵字段缺失0.1620.178————缺失特征当缺失值:0.279
格式变化:字段顺序打乱0.0940.142————按字段名解析,不受影响:0.086
格式变化:只有文字描述0.2660.230————无法作答:没有数值特征
事后最优 340 s 天玑,不带探针 447 s 天玑,带探针 841 s 天玑,带探针,复用层级 832 s Jev,带探针 930 s Jev,不带探针 524 s GBDT,带探针 964 s GBDT,不带探针 722 s LR,带探针 1,346 s LR,不带探针 464 s 固定顺序 2,260 s
图 7a 其他 group 的 46 道可解真实矩阵上,按各方法的顺序依次真跑的总墙钟时间。“复用层级”表示探针建好的多重网格层级在随后的 AMG-CG 求解中不再重建。
事后最优 943 s 天玑,不带探针 3,633 s 天玑,带探针 3,579 s 天玑,带探针,复用层级 3,521 s Jev,带探针 3,785 s Jev,不带探针 2,127 s GBDT,带探针 3,006 s GBDT,不带探针 2,159 s LR,带探针 3,827 s LR,不带探针 1,535 s 固定顺序 2,858 s
图 7b SuiteSparse 考卷 63 道可解题上的同一统计。带探针的方法都没有快过不带探针的 LR。
表 5 路由模拟:可解题上的总墙钟时间(秒)。
策略SuiteSparse 考卷真实测试(其他 group)合成测试
事后最优9433401,955
天玑,带探针3,5798415,352
天玑,带探针,复用 AMG 层级3,5218325,277
天玑,不带探针3,6334474,099
Jev,带探针3,7859309,734
Jev,不带探针2,1275245,959
GBDT,带探针3,0069645,450
GBDT,不带探针2,1597223,613
LR,带探针3,8271,3467,263
LR,不带探针1,5354643,920
固定顺序2,8582,2605,256
按基率排序3,2191,1896,585
其中探针耗时1,1773701,683
可解题数6346263

方法细节

状态与问题。状态由三部分组成:代码从矩阵算出的数字特征,探针读数,以及一段自然语言描述。数字都附一句文字分档,例如“几乎没有行对角占优”。问题分三种:是非题(noul)问一个条件是否成立,选择题(choice)从若干选项中选一个,分档题(score)从有序档位中选一个。例如“AMG-CG 能否在预算内收敛”是是非题,“哪个配置最先成功”是选择题。

预算与菜单。所有配置共用一个预算:真实相对残差降到 10−8,迭代不超过 500 步,单核墙钟不超过 120 秒,额外内存不超过 6GB。菜单有五个配置:Jacobi-CG;光滑聚集 AMG[11][12]预条件的 CG(AMG-CG),近零空间只用常向量;同一 AMG 加上由矩阵自身算出的低能向量(AMG+近零空间-CG);ILU 预条件的 GMRES[14];SuperLU 直接法[13]。

探针。Jacobi 试跑做 20 步 Jacobi 预条件的共轭梯度(矩阵不像对称正定时改用 GMRES),记录每步残差的平均缩小倍数,并由共轭梯度的系数组出 Lanczos 三对角阵,估计缩放后矩阵的最大、最小特征值和条件数,出现非正特征值时报告矩阵不定。多重网格试跑建立与 AMG-CG 相同的层级,跑 15 步,记录建层级耗时、层数、残差缩小倍数,以及光滑后的误差落在粗网格空间里的比例;这个比例低,说明近零空间假设不成立,这正是结构力学矩阵上多重网格失败的常见原因。慢模态检查对随机误差做 10 次阻尼 Jacobi 光滑,统计存活比例,以及存活误差中能被常向量或富化近零空间解释的部分。探针的中位耗时在合成测试集上为 0.7 秒,在其他 group 的真实矩阵上为 2.8 秒,在考卷上为 24 秒。

模型与训练。结构沿用 Open-Jev-9B:底座 Qwen3.5-9B,加秩为 8 的 LoRA[7]和一个标量打分头。每个候选答案单独做一次前向,打分头从 Yes 与 No 两个词元的读出初始化;是非题取 sigmoid,选择题和分档题在候选之间取 softmax。损失为交叉熵加 0.1 倍 Brier 分数,两者都是严格适当评分规则[9],模型只有如实报告概率,期望损失才最小。训练分两段:先只用合成题,再把真实矩阵(重复三次以提高权重)加进来继续训练,第二段共 2,848 条样本、662 步,用两张 RTX 5090 约 55 分钟。四分之一的样本去掉探针段,让同一个模型既能读带探针的状态,也能读不带探针的状态。温度在真实矩阵校准集上按题型拟合。

期望代价。第一个配置 c 的期望代价为 pc tok(c) + (1 − pc)(tfail(c) + Erest),其中 pc 是天玑给的成功概率,tok 与 tfail 是训练集上按矩阵规模回归得到的典型成功与失败耗时,Erest 是剩余配置的最优期望代价。

数据划分。真实矩阵按 SuiteSparse 的 group 划分。考卷所在的 36 个 group 之外的矩阵全部可用。由于考卷所在的 group 几乎囊括了库里的对称正定结构矩阵,我们放宽规则,也允许考卷同 group、但不属于考卷的矩阵进入训练,只排除名字去掉末尾数字后与考卷同族的矩阵;考卷成绩因此按 group 是否进过训练分开报告(表 2)。其余真实矩阵按 group 划出训练集(324 个)、校准集(35 个)和测试集(68 个),校准集只用于温度缩放。合成题中有 103 道超过 20 万未知数。

天玑与 TypeSafe 公司及其 Jev 模型没有任何关联。文中 Jev 的数字全部来自我们用公开 API 对同一批状态和问题的实测,版本 jev-1.13.0,未做任何调参或校准;页面没有使用 TypeSafe 的标识和品牌样式。

参考文献

  1. TypeSafe. System One models and the Jev API documentation. docs.typesafe.ai
  2. Z. Cai. Open-Jev-9B: LoRA adapter and decision head for Qwen3.5-9B. 2026. huggingface.co/ZefanCai/Open-Jev-9B
  3. Open-Jev: open Qwen-based non-generative probability decisions. github.com/Zefan-Cai/Open-Jev
  4. J. R. Rice. The algorithm selection problem. Advances in Computers, 15 (1976) 65–118. doi:10.1016/S0065-2458(08)60520-3
  5. T. A. Davis and Y. Hu. The University of Florida sparse matrix collection. ACM TOMS, 2011. sparse.tamu.edu
  6. Qwen Team. Qwen3.5-9B. huggingface.co/Qwen/Qwen3.5-9B
  7. E. J. Hu et al. LoRA: Low-rank adaptation of large language models. ICLR, 2022. arXiv:2106.09685
  8. G. W. Brier. Verification of forecasts expressed in terms of probability. Monthly Weather Review, 78 (1950) 1–3.
  9. T. Gneiting and A. E. Raftery. Strictly proper scoring rules, prediction, and estimation. J. Amer. Statist. Assoc., 102 (2007) 359–378. doi:10.1198/016214506000001437
  10. C. Guo, G. Pleiss, Y. Sun, K. Q. Weinberger. On calibration of modern neural networks. ICML, 2017. arXiv:1706.04599
  11. N. Bell et al. PyAMG: Algebraic multigrid solvers in Python. J. Open Source Software, 2023. github.com/pyamg/pyamg
  12. P. Vaněk, J. Mandel, M. Brezina. Algebraic multigrid by smoothed aggregation for second and fourth order elliptic problems. Computing, 56 (1996) 179–196. doi:10.1007/BF02238511
  13. X. S. Li. An overview of SuperLU: algorithms, implementation, and user interface. ACM TOMS, 31 (2005) 302–325. doi:10.1145/1089014.1089017
  14. Y. Saad. Iterative Methods for Sparse Linear Systems. 2nd ed., SIAM, 2003. doi:10.1137/1.9780898718003
  15. T. Chen et al. OmniArch: Building foundation model for scientific computing. ICML, 2025. arXiv:2402.16014
  16. 北航 SCAL 小组. 智算玉衡 Alioth:让 AI 生成方程求解器. 2026. tianyuc.com/blog/alioth.html
  17. H. C. Elman, D. J. Silvester, A. J. Wathen. Finite Elements and Fast Iterative Solvers: with Applications in Incompressible Fluid Dynamics. 2nd ed., Oxford University Press, 2014. oup.com
北航 SCAL 小组
2026 年 9 月