持续更新 · 架构笔记

AI 架构与基础设施
学习笔记

一个从应用电子专业转过来的工程师,记录 AI 系统架构与基础设施的实践过程。 每篇都按同一个结构写:做了什么、为什么这么选、换一种做法的代价 —— 因为架构的本质是可解释的取舍,不是配置清单。

项目

真实做过的事,附上当时的约束和取舍。

角色 LoRA 训练管线

SDXL · kohya/sd-scripts · 单卡 16GB · 60 遍数据
做了什么
为单一角色建立可复现的训练管线:dim64/alpha32、AdamW、cosine+warmup、min-SNR、bf16、gradient checkpointing。
为什么这么选
单卡 16GB 的现实约束下,梯度检查点换显存、bf16 换吞吐、min-SNR 提升小数据集(103 张)的收敛质量。
代价
梯度检查点让步速降到约 1.1 it/s;alpha 只影响缩放不影响容量,所以容量旋钮实际是 dim。

出图实验台与评测流水线

A1111 API · 438 张对照图 · 配对统计
做了什么
把"改一个参数"标准化成可复现的实验:一份 plan = 若干变体 × 提示词 × seed,自动命名、写 manifest、断点续跑。
为什么这么选
先测出这台机器的噪声地板(同配置跨 seed 的 sd 中位数 = 0.0112),再定判据 |Δ| > 0.0224;否则所有差异都只是种子抖动。
代价
12 个配置的结论里,8 个训练改动全部埋在噪声里 —— 这比"找到一个神奇参数"更常见,也更有用。

GPU 稳定性工程

RTX 5080 Laptop · Windows · 长跑训练
做了什么
定位"训练中途驱动复位(nvlddmkm 153)"的成因,并建立可验证的稳定性基线与三层守门(温度 / 驱动事件 / 图像完整性)。
为什么这么选
实测区分了三种现象:功耗墙降频(正常)、热降频(需散热)、驱动复位(真故障);用确定性重放证明"硬件没有算坏数据"。
代价
降低功耗上限可以降温但会变慢;完全不碰 V/F 曲线是硬约束 —— 那才是崩溃真因。

自建 DNS 与服务器运维

AdGuard Home · Docker · DoT/DoH · 广州轻量
做了什么
自建 DoT/DoH 私人解析器(含广告拦截),并把可观测性做实:53/853/8443 分层验证、证书自动续期、容器自启策略。
为什么这么选
加密解析防劫持,本地缓存降低常用域名的解析开销;限速 + refuse_any + 屏蔽 version.bind 是开放解析器的最低防线。
代价
上游仍是公共 DNS,所以它不能让"解析不了的域名"变得可用;多一跳必然比直连公共 DNS 慢一点。

方法

这套东西比任何单个结论都更耐用。

先测噪声
任何"改进"都必须先知道抖动有多大,否则你量的是运气。
分层排除
抖动大?先分清是宽带、线路、协议还是客户端 —— 四者修法完全不同。
读原始数据
"看起来对"和"实际对"是两件事;要确认,就去读字节,不要盯截图。
小步验证
先跑 3 个样本,再跑全量;先冒烟测试,再上长任务。

关于

这里只放我自己搭过、跑过、量过的东西。

LinuxDockernginxPython CUDA / PyTorchSDXL / LoRAsing-boxAdGuard Home