华为防火墙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。
通话结束了,RTP流还在跑?一次对端网关缓冲区的排查实录
通话3分钟,录音文件10分钟。抓包一看,BYE都互发完了,RTP包还在往FreeSWITCH跑。问题不在FreeSWITCH,在运营商网关的发送缓冲。直接说怎么定位和验证。
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搞定了。这里分享下完整的交付过程和可运行的脚本。
微调数据准备的坑:从原始文本到训练数据集的完整流水线
技术同事电话打过来,说微调后的模型输出全是乱码。我一看,训练数据格式错了,差点没把自己绕进去。这篇文章记录了我从原始文档到训练数据集的完整流水线,包括数据清洗、标注、质量检查的坑,还有可复用的代码。