Skip to content
robinbgPublic

About

精成 · 把老师傅的一句话变成优化器的先验(数字孪生 + 受约束贝叶斯优化 + LLM 先验编译)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

精成 · 把老师傅的一句话,变成优化器的先验

从贵州的磷矿石到电芯,这条链已经通了;链通了之后差的是良率和效率——最贵那道工序仍靠人工经验把关。精成把产线上最贵工序的经验,从手感变成可计算、可审计、可结算的资产。

评委念一句工艺口诀("首充慢一点,SEI 长得匀"),屏幕上的搜索空间当场收缩;两块沙盘同起点、同机理规则、同随机种子开跑——唯一的差别就是那句话。跑完当场结算这句话值多少个试验批次。系统称量而不是服从:歪经("化成就是走过场,1C 拉满省电费")会被数据算出负分并否决,否决来自测出来的废品数和真值,不是我们贴的标签。

在线体验

pip install -r requirements.txt
uvicorn server.server:app --port 8080
# 打开 http://localhost:8080

技术栈

层 选型 为什么
前端 原生 JavaScript + Canvas,零框架、零构建、零运行时依赖 演示关键路径不能依赖网络和构建链:file:// 双击就能演,是最后一层降级兜底
优化内核 手写高斯过程(RBF 核 + Cholesky)+ 受约束期望改进(EI),Python 侧 numpy、JS 侧纯数组运算 不用现成 BO 库,因为要往 GP 里注入自定义先验均值/噪声/坐标校准,现成库没有这些注入点
后端 Python 3 + FastAPI + uvicorn API 毫秒级同步返回;LLM 翻译走异步 job + 轮询,HTTP handler 里绝不等慢活
翻译层 LLM(自然语言 → 先验规格,temperature=0)+ 三层降级:LLM → 本地关键词规则翻译器 → 预制卡缓存 LLM 绝不进演示关键路径;规则翻译器永不申请硬剪除,授权只给 LLM 与预制卡
孪生沙盘 公开定性机理规则 + 公开量级估算的合成数据生成器 明确不做电化学仿真(P2D/纽曼模型),无实测数据参与;标定页上每个数都能追到骨架函数

核心架构:一次编译,两个解释器

一句人话 ──LLM/规则──▶ 先验规格(封闭 op 清单)
                          │
                 prior_dsl.py 确定性编译
                          │
                    IR(纯数据)
                    ╱          ╲
        Python 解释器          JS 解释器(engine.js)
        (bo.py,测试口径)      (浏览器,演示口径)
  • 校验、红线族授权、可行域体积上限(单句最多剪 40%)、降级记录全部只在编译期(Python 侧)发生;JS 只做算术,没有权限做判断。
  • 这条结构是修一个真 bug 修出来的:前端曾手写过第二份先验,和后端编译结果悄悄分叉——同一张歪经卡,后端否决,前端却算成全场最省批次。
  • priors_ir.js 是构建物(server/export_ir.py 生成),用 <script> 而非 fetch 加载,保住 file:// 演示。

一致性与诚实性测试

cd server
python test_ir_parity.py    # IR 双解释器在确定性探针网格上逐位对账(容差 1e-9)
python test_bo_parity.py    # 88 组(场景×卡×种子)BO 轨迹逐批对账,0 分叉
python test_align.py        # 端到端:验证层拦幻觉、经验卡结算、概率校准审计、
                            # 确定性重跑、歪经自愈、消融对照(真翻译 vs 维度打乱)

这些测试抓出过的真 bug:采集函数 argmax 被浮点尾数决定、平局取舍两端不一致、视窗自己复述阈值公式与沙盘分叉。测试留在仓库里,就是为了这个。

目录结构

index.html        演示页(双击可跑)
app.js            交互与渲染:三幕剧、热力图、结算、同题对照
engine.js         JS 侧优化内核:GP + 受约束 EI + IR 解释器 + 16 种子结算
scenarios.js      两个场景(磷酸铁锂化成 / 压铸)的沙盘:机理规则、红线、异方差
twin.js           机理视窗:CC-CV 三段充电曲线、负极余量、析锂
calib.js          「孪生从哪来」标定页:机理骨架 + 当场跑的特征自检
priors_ir.js      构建物:9 张经验卡编译出的 IR
server/
  server.py       FastAPI:/api/health /api/run_bo /api/translate + 静态托管
  prior_dsl.py    先验 DSL 与确定性编译器(验证层、授权、体积上限在这)
  bo.py           Python 侧优化内核(与 engine.js 同构)
  sandbox.py      沙盘生成器(与 scenarios.js 同构)
  translate.py    LLM 翻译层 + 三层降级
  cards.py        预制经验卡
  export_ir.py    IR 导出(生成 priors_ir.js)
  test_*.py       一致性与诚实性测试

数字口径

全部区间与量级为公开文献典型范围 + 演示标定,无任何企业实际数据;PoC 阶段由客户产线数据校准。优化方法为公开学术方法族(高斯过程代理、受约束贝叶斯优化),由团队自行实现。

About

精成 · 把老师傅的一句话变成优化器的先验(数字孪生 + 受约束贝叶斯优化 + LLM 先验编译)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages