yc_YUMING CHEN
菜单

YUMING CHEN / ENGINEERING JOURNAL

把问题想清楚,
把系统做完整。

9 年以上研发经验,做过流体仿真、游戏智能体与 AI 开发工具。
我关心模型如何接进工作流程,也关心系统变慢时怎么定位、建议如何验证,以及做出的功能是否有人用。

GUANGZHOU / ALGORITHMS & BACKEND SYSTEMS

THE THREAD THROUGH IT ALL

沿着做过的项目,谈实现、验证,也谈没有奏效的选择。

01 — 08 ↓
CURIOSITY / FLASH01 / 08

一切从一帧动画开始。

14 岁,第一次接触 Flash,试着制作动画。那时的兴趣很直接:把脑海里的画面做出来,让它在屏幕上动起来。

逐帧动画
关键帧之间,一次小球弹跳。ANIMATION / KEYFRAMES
FRAME 01 → FRAME 02 → FRAME 03循环示意

带到下一程的经验先做出一个可以看见、可以修改的东西。

Flash动画
LOGIC / PASCAL02 / 08

从安排画面,到描述规则。

高中时,用 Pascal 写下第一行代码。创作开始有了另一种方式:把想法拆成步骤,用程序表达,再观察它是否按预期运行。

第一段程序
Pascal 程序逐行执行,将循环结果输出到终端。HELLO.PAS1program Hello;2begin3 for i := 1 to 3 do4 writeln('Hello, ', i);5end.OUTPUTHello, 1Hello, 2Hello, 3
begin → imagine → build → end.循环示意

带到下一程的经验把一个模糊的想法,拆成可以执行的步骤。

Pascal编程起点
MODELING / 2012 — 201603 / 08

让代码走进物理世界。

大学学习理论与应用力学,用 C 和 Fortran 做计算流体力学。开始面对另一类问题:怎样把连续的物理过程变成离散计算,以及如何理解数值结果与现实之间的差距。

TRY THE MODEL

亲手调整参数,观察流动怎样变化。

THE FLUID LABD2Q9 / LIVE

顶盖驱动方腔流

64 × 64
MOVING LID →LID-DRIVEN CAVITY

静态边界示意 · 启用 JavaScript 体验模拟

流速 |u| 暗 0 → 亮 0.10t = 0 Δt

封闭方腔 · 上盖 U → · 三壁无滑移

上盖向右运动,其余三壁静止 · 点击格点探查分布

Re ≈ 87 · τ = 0.650格子单位 · 调参后重新初始化
流动是怎样算出来的?

二维 D2Q9:上盖向右运动,带动封闭方腔内的主涡;Re 以腔体边长计算。初始流体静止。

格点(32,32)
ρ · u

每格保存九个方向的分布 fᵢ,中心 f₀ 为静止分布。

  1. 碰撞:分布向局部平衡态松弛,守恒质量与动量。
  2. 迁移:分布移动到相邻格点。静止壁反弹,上盖通过移动壁修正注入水平动量。
  3. 涌现:求和得到密度与速度,示踪粒子沿速度场留下运动轨迹。
fi=fififieqτf_i^\star = f_i - \frac{f_i - f_i^{\mathrm{eq}}}{\tau}fi(x+ci,t+1)=fi(x,t)f_i(\mathbf{x} + \mathbf{c}_i, t + 1) = f_i^\star(\mathbf{x}, t)ρ=ifi\rho = \sum_i f_iρu=ifici\rho\mathbf{u} = \sum_i f_i\mathbf{c}_iν=13(τ12)\nu = \frac{1}{3}\left(\tau - \frac{1}{2}\right)

亮点是示踪粒子,不是逐个求解的分子。两个算例均为低马赫数 BGK 教学模型,参数使用格子单位。颜色超出图例范围时饱和。了解反弹边界 ↗

THE FLUID LAB

计算流体力学实验

带到下一程的经验建模之外,还要关心边界条件、误差和验证。

CFortran计算流体力学
展开项目细节

2015 年 9 月至 2016 年 5 月,兼职协助导师开展仿生力学实验研究与仿真模拟。学习如何让实验与计算相互检验,而不只关注程序是否运行。

APPLIED RESEARCH / 2016 — 202104 / 08

模型需要经得起实验。

工作的第二年(2017 年),开始用 Python 做机器学习与深度学习,解决实际工程问题。参与风力机样机研发、仿真与风洞测试,构建工业设备在线监测模型;也开始用 JavaScript 写网站和微信小程序。

风机与监测
风机转动,传感信号传向监测终端。PHYSICAL SYSTEM / ONLINE MONITORINGSENSOR / SIGNALACQUIRE → MODEL → OBSERVE
SIMULATION ⇄ EXPERIMENT ⇄ DATA循环示意

带到下一程的经验把仿真、实验与设备数据放在一起看,再决定下一步。

Python机器学习JavaScript设备监测
展开项目细节

用 SST-DDES 研究垂直轴风轮,检查计算域、网格与时间步长的无关性;独立完成齿轮箱磨损分类的数据处理、建模、实验及论文工作,并独立设计、训练和评测风光功率预测模型。2018 年起参与新能源创业,主导物联网平台和微信小程序开发,把设备数据接到使用者面前。

GAME ALGORITHMS / SYSTEMS05 / 08

算法之外,还有整个系统。

2021 年起,更关注系统工程问题,并接触 Rust。基于 SEED RL 搭建分布式训练系统,解决跨机器梯度聚合与数据广播问题。体育竞技游戏智能体上线前依据 Elo、TrueSkill 提供 25 档难度,由运营人员调整使用。

对战与学习
智能体在对战环境中行动,经验回到策略网络。ENVIRONMENT / POLICY / EXPERIENCESTATEACTIONPOLICY UPDATE
ENVIRONMENT ⇄ POLICY ⇄ EVALUATION循环示意

带到下一程的经验一次实验之外,还要考虑数据怎样产生,任务怎样运行,结果怎样比较。

强化学习分布式训练RustElo / TrueSkill
展开项目细节

搭建网页训练与分析平台,支持启动训练、监控状态和调整算法。另用强化学习与遗传算法分析 SLG 数值平衡,但系统侧重优化已有组合,未能直接帮助策划设计新资料,使用约一年后终止。这让我开始更认真地区分算法目标与用户的主要工作。

DEVELOPER TOOLS / 2023 — 202606 / 08

把模型接进每天的工作。

从零构建 AI 编程工具,覆盖推理服务、上下文引擎、语言服务器、聊天界面、IDE 插件和数据遥测。独立完成首版全部组件并上线。平台运营后扩充研发团队,离任时共 12 人,并承担技术负责与维护交接。

上下文与补全
编辑器获取上下文,生成补全并接受代码。EDITOR / COMPLETIONdef complete(context): prompt = retrieve(context) return model.generate(prompt)✓ ACCEPTEDCONTEXTINFERENCE
CONTEXT → INFERENCE → EDITOR → FEEDBACK循环示意

带到下一程的经验用户体验取决于整条链路:上下文、推理延迟、编辑器交互与反馈。

模型推理LSPGPTQ可观测性
展开项目细节

2023 年 10 月上线,日服务 700 多名程序员,日均请求超过 20 万次,代码采纳率为 16%~20%。以 RTX 3090/4090 运行 7B 级及以下代码模型,键盘输入至补全文本显示的端到端延迟 P99 约 490 ms。一次随运行时间增长的延迟,最终通过遥测定位到请求依赖注入中的数据库写入。

CODE INTELLIGENCE / 2025 — 202607 / 08

给判断找到依据。

独立完成面向 SVN 与大型遗留代码库的代码审查流水线首版并上线,把质量分析、代码图谱、语义检索与运行时查证接入审查过程,并对比不同方案的查证率、耗时与成本。

审查与证据
扫描代码变更,沿引用找到证据,完成查证。DIFF / RETRIEVAL / VERIFICATIONCODE CHANGE + REFERENCEVERIFICATION
CHANGE → RETRIEVE → VERIFY → REVIEW循环示意

带到下一程的经验把质量、延迟和成本放进同一次评测,才能讨论工程取舍。

代码图谱语义检索评测流水线
展开项目细节

内部对照评测中,在保持查证率的条件下,token 消耗约为 Agent 方案的六分之一,执行时间约为十分之一。2026 年 2 月起常态运营,平均每晚处理 5 千多次请求。用户采纳率约 9%;已收到的反馈中,正确反馈占比约 76%,两者回答的是不同问题。

PLATFORM ENGINEERING / 202608 / 08

让好用的方法被更多人用到。

独立开发内部智能体技能分享平台首版并上线,提供注册、版本管理、检索、扫描、分发与实验能力,交付 CLI、Web 和 API。处理 OAuth、跨网络权限与链接分享,并完成运营维护交接。

技能与分享
技能进入注册库,完成扫描,再分发给使用者。REGISTER / SCAN / SHARESKILL LIBRARYPUBLISHCLIWEB
REGISTER → DISCOVER → REUSE循环示意

带到下一程的经验交付也包括权限、使用反馈,以及接手的人能否继续维护。

后端服务PostgreSQL / pgvector对象存储权限
展开项目细节

2026 年 6 月上线,平台内公开技能超过 200 项,累计分发超过 2 千次,完成向 4 名工程师的运营维护交接。持续以 Rust 开发 lspf 和 banshu-ai,把协议生命周期、取消、重试与资源边界写进可复用的工具。

STILL BUILDING

把经验写进自己的工具。

GitHub ↗

RESEARCH ROOTS

有些方法,
一直带在身上。

做仿真时关注边界条件,做实验时寻找验证依据。后来训练智能体、优化推理服务,依然要回答相似的问题:模型遗漏了什么,结果能否复现,在真实环境中是否成立。

在风轮仿真中检查网格与时间步长,在有限的设备样本上比较分类模型,再把监测和预测接进软件。这些经历让我逐渐学会,同时考虑算法依据、数据条件和使用方式。

阅读研究项目 ↗指标与参考 ↗

FIELD NOTES

代码之外,留下思考。

一次补全延迟排查,一个没有对准需求的系统,以及审查指标背后的分母。

阅读工程笔记

NOW / 近况

足迹之外,还在继续。

最近在做 lspf、Banshu 和 LBM-Rust,也在尝试 Bevy 的物理引擎。

THE NEXT CHAPTER

下一个问题,一起解决。

欢迎交流模型服务、开发工具与后端系统,也欢迎讨论难以定位的问题和不容易做的取舍。

发邮件给我 meymchen@qq.com