无双的个人博客

无双的个人博客

华为防火墙SIP ALG于NAT后的SIP头的爱恨情仇:一次从抓包到配置绕过的完整复盘

FreeSWITCH部署在华为防火墙后,公网对端能收到INVITE但ACK总丢,BYE之后通话还不释放。抓包一看,NAT已经改了Contact头,但Via和Record-Route里的IP却和实际出口对不上——防火墙的SIP ALG在改写时序和改写范围上各有一套自己逻辑,禁用它又怕影响对端NAT穿越。最后靠抓包定位ALG的改写盲区,手动在SIP配置里对齐NAT行为,解决问题。

为什么站点间VPN我更倾向GRE over IPSec:基于功能、场景和性能的全维度决策

不是GRE比IPSec更好,而是这个组合在大多数企业站点间互联场景下功能覆盖最完整。组播支持、动态路由、NAT穿越能力、性能开销——这几个维度一拉平,答案就很清楚了。

RTP语音流穿越NAT的深度排查:从STUN/TURN/ICE机制到媒体端口选择的完整定位链

FreeSWITCH对接传统PBX时,一方在NAT后出现单向通话或无声音。排查过程从STUN绑定响应入手,发现对端是对称型NAT导致的非对称路径拒绝。这篇文章复盘完整的排查链:SDP解析→ICE候选交换→STUN Binding→对称型NAT判定→TURN中继回退,重点剖析为什么最终选了TURN而不是其他方案。

LoRA多卡训练梯度累积失效:有效batch size远小于预期导致模型收敛异常

设了gradient_accumulation_steps=8,理论有效batch=32,结果每个step的loss降得像火箭一样快,还以为学习率太高。排查了两天才发现DeepSpeed的配置覆盖问题,实际有效batch只有1。

vLLM推理OOM排查记:不是显存不够,是你没搞清楚max_length和batch_size的坑

70B模型配了4张80G卡,长文本一推就爆。查了一圈发现不是显存容量问题,是max_length设太大,kv cache按最坏情况预分配显存。上线前没做profiling,差点多花20万买卡。

LoRA微调时梯度消失导致训练无效:从日志异常到optimizer状态分析

loss明明在降,验证集指标却一动不动。查了半天发现只有少数几层LoRA权重在更新,其他层梯度几乎为零。这个坑花了我两天才定位清楚,分享下排查思路和具体操作。

LoRA微调实战:使用QLoRA在单卡GPU上微调70亿参数大模型

朋友想在单张4090上微调7B模型做客服,我一开始觉得不可能。按项目交付手册走,从业务场景、数据清洗到上线评估,踩了一堆坑,最后用QLoRA搞定了。这里分享下完整的交付过程和可运行的脚本。

微调数据准备的坑:从原始文本到训练数据集的完整流水线

技术同事电话打过来,说微调后的模型输出全是乱码。我一看,训练数据格式错了,差点没把自己绕进去。这篇文章记录了我从原始文档到训练数据集的完整流水线,包括数据清洗、标注、质量检查的坑,还有可复用的代码。