项目
真实做过的事,附上当时的约束和取舍。
角色 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