Tech Blog
Renyuan's Engineering Field Notes
A card-based map of coding agents, LLM routing, serving systems, CUDA/Triton kernels, and transformer foundations. Every date in Renyuan_Log.md is represented below.
Curated Posts
Deep Dives
Longer articles distilled from multiple related log dates.
LayerNorm vs RMSNorm:从几何自由度到 Triton kernel 成本
RMSNorm 只去掉长度,LayerNorm 同时去掉长度和平移基准;这个几何差异会落到 kernel 成本上。
融合算子的学习路线:为什么 fused softmax 不是“把函数写一起”
融合算子的核心是减少中间结果写回 global memory,而不是简单把几个函数排在一起。
从写循环到写映射:CUDA kernel 如何接上 LLM 优化
用学习者视角把 CUDA 从线程映射讲到 shared memory、reduction 和 LLM kernel 优化入口。
NPU 集群调度实战:Kubernetes + Volcano + ktp 如何影响推理服务
模型服务启动失败时,问题可能不在模型,而在调度、镜像缓存、共享存储和跨节点通信。
DeepSeek V4 Flash on Ascend:一次 vLLM-Ascend 部署复盘
一次大模型部署排障复盘:资源评估、镜像兼容、patch、MTP、OOM、KV cache bug 和最终可用配置。
大模型并行的最小闭环:集合通信、TP、FSDP/ZeRO-3 到权重分片
从通信原语推到线性层切分,再区分训练省显存和推理拆单层计算的不同目标。
vLLM V1 工程边界:一条请求如何从 API 走到 PagedAttention
读 vLLM 不要一开始盯 kernel,而要先看 serving runtime 的稳定边界和请求生命周期。
Encoder 输出 Z 矩阵到底去了哪里:从 Memory 到 K/V
Encoder 的最终输出不是消失了,而是作为 memory 被 Decoder cross-attention 投影成 Key 和 Value。
RoPE 的几何直觉与代码实现
把 RoPE 理解成 D/2 个二维平面的成对旋转,再映射到 rearrange、unbind 和 stack。
vLLM Semantic Router 架构拆解:从分类器到 LLM 流量控制平面
vLLM Semantic Router 更像 LLM 流量控制平面:信号、投影、决策、模型选择和插件共同组成运行时策略。
从 CS336 作业理解 Transformer 训练基本功
把 activation checkpointing、Linear/einsum、权重矩阵布局和 BF16 串成训练系统基础。
Semantic Router 实验:为什么 Override 形态优于五路 Tiered 路由
实验显示,真正决定效果的不是工具名,而是 route 形态、数据分布、metadata 和 threshold。
如何搭建一个 Router Evaluation Pipeline
把多模型 benchmark、tier 标签、classifier、cascade 和 semantic-router 放进统一离线评测链路。
RouteLLM 复现笔记:从 GSM8K 生成到评测可视化
跑通 RouteLLM 的响应生成、评测和可视化链路,并比较 strong/weak/router 的成本准确率。
LLM Router 的设计空间:从难度感知到级联系统
把模型路由拆成决策时机、使用信号、计算方式和六类主流技术路线。
从 opencode 到 Agent-Do:Workshop MVP 的瘦身重构
复杂项目集成不总是正确方向;当目标是 Workshop MVP 时,更小的系统反而更容易稳定。
Agent 前端如何展示过程:SSE、JSONL、文件树、代码预览与安全状态
把黑盒生成改成可观察任务流:文件树、代码预览、阶段状态和最终结果都通过事件驱动更新。
Coding Agent 不是一个接口:分层、RunStore、工作流与自动修复闭环
从一次性生成接口升级为生成、验证、读错误、打补丁、再验证的工程闭环。
Workshop 云端运行架构:OSS、FC 容器、Docker 镜像与本地验证闭环
生成代码只是开始,真正要交付给用户的是能构建、能启动、能预览、能回收的运行闭环。
把 OnlySpecs 接入 Workshop:从 Electron Coding Agent 到 Web 低代码生成器
一次开源项目改造笔记:理解 Electron、IPC、node-pty 和 Claude CLI 后,把桌面 Agent 接到 Web 平台。
Supplement
Concept Map
Short explanations added to fill gaps where the raw log only had keywords, links, or partial notes.
FastAPI 中间层
把前端直调接口改造成稳定后端边界,负责参数校验、任务创建、状态查询和产物返回。
node-pty 与无头 Agent
node-pty 适合驱动交互式 CLI,但 Web 服务更需要无头化、结构化输入输出和超时控制。
SSE / JSONL
SSE 负责浏览器端单向流式订阅,JSONL 负责生成器向后端持续输出结构化事件。
RunStore / EventStore
Run 记录任务状态,Event 记录过程事实,Artifact 记录生成产物,是 Agent 可观察性的基础。
Patch Loop
生成失败后只把错误摘要和少量相关文件交给模型,要求小范围补丁,再次验证。
OSS / FC / Docker
OSS 保存产物和静态资源,FC 容器提供运行预览,Docker 统一本地和云端运行环境。
LLM Router 三问
任何路由策略都应先回答:什么时候决策、看什么信号、用什么算法计算。
Semantic Override
默认使用强模型,只在语义上足够确定时降级到小模型,比多路直接分类更稳。
Router Latency
端到端延迟和 router decision latency 不是同一个指标,离线评测不能替代线上延迟验证。
vLLM Semantic Router
它是信号、投影、决策、模型选择和插件组成的流量控制平面,不只是分类器。
RoPE
把隐藏维度两两成对放进二维平面旋转,用方向关系编码位置并保持向量长度。
Activation Checkpointing
训练中用重算换显存,不是保存参数矩阵,而是保存必要边界并在反向时重算激活。
BF16
BF16 保留 FP32 的指数范围但减少尾数精度,适合大模型训练和推理中的动态范围需求。
KV Cache / PagedAttention
KV cache 保存历史 token 的 K/V,PagedAttention 用块式管理降低连续显存分配压力。
Tensor Parallel
TP 拆单层计算,ColumnParallelLinear 和 RowParallelLinear 分别对应不同维度切分和通信模式。
FSDP / ZeRO-3
FSDP 和 ZeRO-3 主要分片参数、梯度和优化器状态,目标是训练省显存。
Ascend NPU 调度
NPU 任务失败可能来自镜像、模型兼容、队列配额、CPU/内存请求、HCCL 或共享存储。
CUDA Reduction
高效规约通常按 thread-local、warp、block、global 层级推进,尽量减少 global memory 访问。
Operator Fusion
融合算子的收益来自减少中间结果写回 global memory,而不是把多个函数简单放在一起。
LayerNorm vs RMSNorm
RMSNorm 只去长度,LayerNorm 同时去均值和长度;这个统计量差异会变成 kernel 成本差异。
Complete Coverage
Full Log Map
Each card corresponds to one dated section in Renyuan_Log.md. Timeline-only cards preserve context without forcing weak notes into articles.
FastAPI、TypeScript 与第一次工程化拆分
从 TypeScript/npm 基础和 FastAPI 框架入门开始,把原先前端直调 API 的教育项目拆出后端层,建立前后端分离的第一版验证路径。
OnlySpecs 调研与 WSL 网络修复
调研 OnlySpecs 作为 Workshop 低代码生成的候选开源 Agent,同时处理 WSL/Linux 网络和 Claude API 调用环境问题。
Electron Agent 如何改造成 Web 服务
梳理 OnlySpecs 的 Electron、IPC、node-pty 和 Node.js Web Server 结构,比较原 Workshop 架构和开源 Agent 架构的对接方式。
OnlySpecs Web 化与输出物抽象
完成 FastAPI 代理、SSE、ZIP 打包和 Web 菜单汉化,并开始把源代码、Web 应用、桌面程序、PWA 作为不同输出物设计。
Docker、FastAPI 与 FC 容器初步架构
学习 Docker/FastAPI 后,把 Workshop 运行链路拆成 FastAPI 前端、API Server、生成器、FC 容器和 OSS 存储。
Coding Agent 工作流与沙箱安全
从多 Agent 使用体验推进到 Coding Agent 方案二,提出生成、验证、修复、再验证的闭环,并补充沙箱、工具层和运行安全思考。
复杂 Agent 流程落地与 Docker 打包
把 /generate/agent 流程具体化为 RunStore、workspace、events、validation、patch loop,随后简化成 /runs 并完成 Docker 打包验证。
从 Agent 能力优先到格式化输出
反思先做强 Agent 再对接 OSS/FC 的工程顺序,设计 IntentDetector 和 ProjectPromptEnhancer,把简单需求变成结构化项目生成任务。
opencode 改造与流式 Agent UX
改造 opencode 工作流,封装 FastAPI 调用,并设计 SSE/JSONL 事件,让前端展示文件树、代码预览和安全阶段状态。
Workshop 在线运行与架构路线收敛
重新讨论 Workshop 的目的,从在线 Coding Agent、Skill pipeline 和 World Model 学习中收敛到可运行、可调试、可展示的 MVP 路线。
Docker 与项目未来定位
继续补 Docker 基础,同时讨论项目定位:每天早晨五分钟了解 AI 圈大事并上手实践,Workshop 需要服务这个主目标。
容器 Workspace 与 Docker CLI 排障
定位 Agent-Do 子容器 workspace 挂载路径错误和 Docker CLI input/output error,形成 MVP 运行环境的关键排障经验。
PageAttention 与 Flash Attention 入口
记录 PageAttention 和 Flash Attention 的学习入口,后续并入 vLLM、KV cache 和 attention backend 的系统理解。
LLM Router 设计空间
从决策时机、使用信号和计算方式拆解 LLM Router,并整理 difficulty-aware、preference、clustering、RL、uncertainty、cascade 等路线。
Router Pipeline 与经典论文复现顺序
搭建自己的 Router pipeline,并梳理 AutoMix、FrugalGPT、BEST-Route、GraphRouter、CP-Router 等代表方法的复现优先级。
RouteLLM GSM8K 复现
比较 strong、weak、random 和 router 策略在 GSM8K 上的准确率与成本,形成 cost-performance tradeoff 的第一轮数据。
Semantic Router 接入与延迟口径
把 semantic-router 作为检索式分类器接入评测链路,确认 accuracy/cost 可比,但 router decision latency 仍需独立定义。
Semantic Override 实验
从五路 tiered 路由转向 strong default + smaller override,发现 MPNet、metadata 和 threshold tuning 才是关键收益来源。
CS336、MoE 与训练系统概念
整理 CS336 作业、einsum、模型参数估算、MoE、PPO/GRPO/DPO 等基础入口,为后续训练系统文章补概念底座。
Checkpoint、BF16 与 Linear 权重布局
把 activation checkpointing、FP32/FP16/BF16、einsum 和 Linear 权重矩阵布局串起来,形成训练基础文章。
vLLM Semantic Router 架构
拆解 Signals、Projections、Decisions、Algorithms、Plugins 与 Envoy extproc 路径,定位它是 LLM 流量控制平面。
Encoder 输出 Z 到 K/V
解释 Encoder 最终输出作为 memory,被 Decoder cross-attention 投影成 Key 和 Value。
vLLM Router 实跑与 MoM 配置
实际跑通 vLLM Router,确认 model=MoM 才会进入路由,单 modelRef 配置本质上仍是规则分类到固定模型。
CUDA 执行模型与 LLM 优化入口
从 thread、block、warp、memory hierarchy 建立 CUDA 心智模型,连接到 LLM kernel 优化的算力与带宽判断。
CUDA 内存分配与拷贝
学习 cudaMemcpy 目标地址语义、cudaMemcpyDefault、cudaMallocManaged 与 CPU/GPU 内存一致性。
GPU 集合通信基础
整理 Gather、Reduce、AllReduce、Broadcast、Scatter 等 GPU 通信操作,为 TP/FSDP/ZeRO-3 对比做铺垫。
vLLM 工程边界与请求生命周期
从目录地图、LLMEngine、Scheduler、KVCacheManager、ModelRunner 理解一次请求如何被 vLLM 推进。
张量并行与 Linear 切分
学习 ColumnParallelLinear、RowParallelLinear、Megatron/vLLM 中线性层切分与通信关系。
FSDP/ZeRO-3、TP 与权重分片
比较 FSDP/ZeRO-3 与张量并行的目的差异,并通过 narrow、offset、slided_weight 理解权重切片。
DeepSeek V4 Flash 资源评估
盘点 DeepSeek V4 Flash、Pro、W8A8、BF16、NPU 资源和 YaRN RoPE 扩展,为 vLLM-Ascend 部署做准备。
DeepSeek V4 环境手动配置
持续手动配置 DeepSeek V4 环境,并完成 LeetGPU Easy 阶段,积累推理服务和 GPU/NPU 实操经验。
DeepSeek V4 Flash 单节点跑通与 NPU 调度
确认单节点 16 NPU 可跑通 DeepSeek V4 Flash W8A8,并整理镜像、patch、MTP、KV cache bug、Volcano/ktp 调度经验。
CUDA kernel、device function 与 reduction
区分 __global__ kernel 和 __device__ function,学习 warp-level/block-level reduction、Grid-Stride Loop 和 shared memory。
融合算子与 fused softmax
从课程记录中抽象 fused softmax、relu/silu/sigmoid 融合和一次加载多次计算的内存带宽直觉。
数值处理、softmax 融合与 block 规约
整理 log-softmax、softmax dropout、softmax + element-wise、block 划分和规约,为 Triton 实现做准备。
LayerNorm 与 RMSNorm 几何理解
用超球面和过球心超平面解释 RMSNorm 与 LayerNorm 的自由度差异,并连接 Triton kernel 累加器成本。

