返回资讯中心
外部精选
软件工程
#开发者实时流

20行内核修复XLA下float32方差计算问题

来源标题:Show HN: A 20-line kernel that fixes float32 variance under XLA

开发者在Hacker News的Show HN板块发布了一个仅20行的内核,用于解决XLA编译器下float32方差计算的精度问题。该内核属于一个面向机器人与AI流数据的在线学习库,支持逐样本流的统计计算、漂移与异常检测及机器人安全指令等功能。该库已在UR3e机械臂、股票与加密货币价格、交易日志等数据上验证。

Hacker News 最新tatopenn2026/11/2 · 2 天前21 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

面向机器人、视觉和 AI 流数据的在线学习库,一次处理一个样本:在 float32 下保持准确的流式统计、防护、漂移与异常检测、安全的机器人指令、带持续学习和记忆巩固的深度学习、鲁棒的时间序列模型,以及与 scikit-learn、PyTorch、TensorFlow、River 和 LLM agent 的桥接。 📖 完整文档、API 参考、快速指南 → 面向数据逐个样本到达、模型需在运行中学习或保持稳定的系统的 Python 开发者:机器人控制回路、传感器流水线、agent 运行时、任何流式工作负载。固定数据集同样适用:dense_armor.ml 的机器学习类可一次读取整张表。 这些原语与领域无关:任何逐样本摄入数据、并需在流发生变化时做出反应的系统。它已在机械臂(UR3e 上的 CASPER)、股票和加密货币价格、信用卡交易、网络流量和电话营销日志(金融相关页面),以及具有已知漂移的合成流上进行了测量;模型上下层的结构在各处都是一样的。 不限定具体模型。任何遵循相同约定的估计器:learn_one(x, y) 用一个样本更新模型,predict_one(x) 返回预测,transform_one(x) 返回变换或残差,score_one(x) 返回异常分数(高 = 异常),update(x) 推进漂移检测器。输入和输出是 numpy 兼容标量或数组的字典。通过 JAX 在 CPU 或 GPU 上运行。shield 可以包装任何从 tensor 到 tensor 的可调用对象。 即使流中出现 NaN、尖峰或缺失样本,模型也能持续学习——这些数据在模型看到之前已被清洗,并且每次修正都会报告其移动幅度。 概念漂移由显式检测器捕获,而不是悄无声息地降低准确率。 异常以分数形式返回,一次一个样本。 机器人指令在到达执行器之前被限幅(速率限制、控制屏障函数)。 预测可以携带经过校准的不确定性区间。 在本库中,shielding 指清洗模型所看到的数据(NaN、尖峰、异常样本)并限幅机器人接收的指令,作用于任何遵循 learn_one / score_one 约定的在线学习器之上。它不是安全强化学习中的形式化 shield。 Dense-Armor 是一个带有在线部分的 Python 机器学习库。每个在线估计器在 JAX 上以控制回路速度逐样本学习,而 dense_armor.ml 的机器学习类通过 fit 读取整个数据集。相同的 learn_one / predict_one / transform_one 约定可运行在表、时间序列、机器人关节流、视频帧、token 流上,shield 可以置于其中任何一个之前。在此基础上,dense_armor.utility.deep.neural 包含深度学习组件(层、注意力、卷积和循环块、批量和流式训练、使用 EWC/GEM/A-GEM 的持续学习、使用向量量化、乘积量化和残差树的记忆巩固),dense_armor.utility.signals.stats 和 .timeseries 包含鲁棒模型(Student-t、高斯混合、GARCH、AR/VAR/Kalman)。 作为一个快速示例,我们将训练一个在线高斯朴素贝叶斯分类器,对一个具有 5 个特征和一次突然概念变化的漂移流进行分类。下面是数据集中第一个观测值的样貌。 来自 SyntheticArm(真实 Panda URDF、真实刚体动力学)的关节力矩流在第 50 个样本处带有一个 1e6 的尖峰。一个带速率限制的跟随器将施加的跳变限制在每步 max_vel 以内,因此下游控制器永远不会看到该尖峰: from pathlib import Path import numpy as np from dense_armor.utility.signals.datasets import SyntheticArm from dense_armor.utility.robot.control.rate_limiter import rate_limited_follower ds = SyntheticArm( Path("test/fixtures/urdf/panda.urdf"), period_s=1.0, rate_hz=50.0, n_cycles=2, fault_at_s=None, fault=None, seed=0, ) tau = np.array([float(sig["tau_1"]) for sig, _ in ds.stream()]) tau[50] = 1e6 safe = rate_limited_follower(tau, max_vel=2.0, max_accel=1.0) print(round(float(np.max(np.abs(tau))), 1), round(float(np.max(np.abs(safe))), 1)) 1000000.0 272.2 RigidBodyModel 从同一个 URDF 加载动力学(包括 .xacro 和 <mimic> 关节),quintic_trajectory 生成最小加加速度路径,cbf_safety_filter 在障碍物周围施加空间屏障。 pip install dense-armor # 核心:numpy + jax pip install "dense-armor[vision]" # + 摄像头 (OpenCV)、图像文件夹 (Pillow)、内存 pip install "dense-armor[ros]" # + rosbag 读取器 pip install "dense-armor[audio,data]" # + WAV、HDF5、NetCDF pip install "dense-armor[mcp]" # + 面向 LLM agent 的 MCP 服务器 pip install "dense-armor[quantum]" # + Dense-Evolution (NISQ 模拟器) pip install "dense-armor[sklearn]" # + scikit-learn 桥接 pip install "dense-armor[torch]" # + PyTorch 桥接 pip install "dense-armor[tensorflow]" # + TensorFlow 桥接 支持 Python 3.10+。JAX 是所有估计器的后端。 Dense-Armor 提供以下算法族的在线实现: Dense-Armor 还提供其他在线工具: 查看 API 获取全面概览。 对整个数据集进行学习可以解决许多问题,Dense-Armor 通过 dense_armor.ml 的机器学习类覆盖了这一点。在线方法适用于以下情况: 文档 快速开始 API 参考 更新日志 包发布 姊妹项目 (Dense-Evolution) DOI 贡献 欢迎贡献。该库被设计为一次扩展一个估计器,遵循相同的接口(learn_one / predict_one / transform_one)和相同的检查(dense_armor.checks)。代码风格通过 ruff check dense_armor 检查,配置位于 pyproject.toml。 author = {Pennacchio, Salvatore}, title = {Dense-Armor: Robot-AI Online Shielding \& Learning}, year = 2026, publisher = {Zenodo}, doi = {10.5281/zenodo.23584384} 许可证 GNU Affero General Public License v3.0 或更高版本。参见 LICENSE。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →