在 DeepSeek Harness (DSH) 的开发流程中,大模型在执行矩阵乘法、行列式计算、逆矩阵求解以及线性方程组处理时,常出现数值误差。dsh-linalg 插件将这类计算从模型推理中剥离,交由本地精确代码执行,确保结果确定性。
插件定位¶
dsh-linalg 是 DeepSeek Harness (dsh) 的线性代数工具箱。由 TYEclipse 维护。它提供零运行时依赖的纯本地算术,处理矩阵乘法、行列式、逆矩阵、特征值分解及向量运算,确保结果确定且正确。
核心功能¶
该插件提供以下已核实功能:
- 矩阵运算:矩阵乘法、行列式、逆矩阵、迹、转置、行简化阶梯形(RREF)、秩、整数矩阵幂。
- 线性系统求解:求解 Ax = b,并分类解的情况(唯一解、无限解、无解)。
- 特征值分解:对称矩阵的特征值分解,包含残差测量。
- 向量运算:点积、叉积、范数、投影、角度计算。
安装与启用¶
安装前需确保 pnpm 在系统 PATH 中。
- 执行以下命令添加插件:
dsh plugin --profile web add github:TYEclipse/dsh-linalg
(请将 web 替换为你的实际配置文件名)
典型用法¶
矩阵计算¶
计算行列式:
matrix_compute(matrix=[[2,1,1],[1,3,2],[1,0,0]], op="determinant")
# 返回:-1
计算逆矩阵:
matrix_compute(matrix=[[4,7],[2,6]], op="inverse")
# 返回:[[0.6,-0.7],[-0.2,0.4]]
线性系统求解¶
求解线性方程组:
solve_linear(a=[[2,3],[1,-1]], b=[8,1])
# 返回:unique solution: [2.2, 1.2]
向量运算¶
计算叉积:
vector_ops(op="cross", a=[1,2,3], b=[4,5,6])
# 返回:[-3,6,-3]
计算向量角度(度):
vector_ops(op="angle", a=[3,4], b=[4,0])
# 返回:53.1301023542
配置项¶
插件支持以下配置(YAML 格式):
- name: 'github:TYEclipse/dsh-linalg'
config:
maxDimension: 20 # 矩阵最大维度(行/列),范围 1-50
roundPlaces: 10 # 输出数字保留的小数位数,范围 1-15
数值行为与注意¶
- 算法:使用带部分选主元的高斯消元法;特征值分解使用循环 Jacobi 方法;整数幂计算使用二进制幂。
- 精度:所有输出数字默认保留 10 位小数(可通过
roundPlaces配置);绝对值小于 5e-12 的值会被归零,避免出现-0。 - 容差:主元容差为 1e-12,低于此值的项被视为零,防止病态矩阵产生垃圾结果。
- 限制:矩阵维度默认上限为 20×20(可配置);整数幂运算的指数限制在 -64 到 64 之间。
总结¶
dsh-linalg 为 DSH 提供了可靠的本地算术支持,解决了大模型在数学运算中的不稳定性问题。
- GitHub:https://github.com/TYEclipse/dsh-linalg
- 插件目录:https://www.skillhub.cn/plugins/TYEclipse/dsh-linalg