
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
DIA这个模块,说白了就是“该省省该花花”——让模型自己决定哪里该花计算量。但别指望一上来就能跑通,我前后迭代了四个版本才稳定下来。最关键的教训:动态模块的梯度流一定要检查。用手动算一下门控对loss的梯度,如果梯度为0或者nan,说明你的straight-through或者Gumbel-Softmax实现有问题。另一个血泪史:方向性偏置在Transformer里效果很好,但在CNN backbo

去年秋天调一个轻量级检测模型,在T4上跑得好好的,换到Jetson Orin上就炸了——loss直接飞到NaN。查了三天,最后定位到是SE模块的sigmoid输出在某些极端激活值下溢出了。当时我盯着那行,突然意识到一个问题:注意力机制和特征重标定,本质上是不是在干同一件事?只是数学表达上绕了个弯子?这个疑问直接催生了DEIM(Dynamic Efficient Interaction Module

中文大模型的“幻觉”问题比英文严重得多。英文模型说“I don’t know”的概率更高,中文模型倾向于“编造”答案。所以,一定要加“不知道就直说”的约束,比如在prompt里写“如果你不确定,请回答‘我不确定’”。这篇笔记写到这里,窗外天已经亮了。想起去年那个熬夜调中文分词的夜晚,现在看都是值得的。中文大模型的路还很长,从ChatGLM到Yi系列,我们看到了进步,也看到了更多待解决的问题。如果你

上周帮客户调一个RAG问答系统,对方坚持用LLaMA 3 8B做embedding,结果中文检索准确率惨不忍睹,召回率不到40%。我换了个Qwen2.5 7B的embedding模型,同样的数据,召回直接跳到78%。客户问我:“都是开源大模型,差距怎么这么大?”这个问题其实问到了开源模型选型的核心——没有万能模型,只有最适合场景的模型。今天这篇笔记,我把手头几个主流开源模型在真实项目中的表现、踩过

上周帮客户调一个RAG问答系统,对方坚持用LLaMA 3 8B做embedding,结果中文检索准确率惨不忍睹,召回率不到40%。我换了个Qwen2.5 7B的embedding模型,同样的数据,召回直接跳到78%。客户问我:“都是开源大模型,差距怎么这么大?”这个问题其实问到了开源模型选型的核心——没有万能模型,只有最适合场景的模型。今天这篇笔记,我把手头几个主流开源模型在真实项目中的表现、踩过

不要迷信理论峰值:连续批处理的吞吐量提升不是线性的。我测试过从batch_size=1到64,吞吐量增长曲线在batch_size=16后明显放缓。找到你硬件平台的“甜蜜点”比盲目增大批次更重要。监控KV Cache命中率:这是vLLM的核心指标。如果命中率低于80%,说明页表分配策略有问题,可以尝试增大block_size或调整调度策略。混合使用两种方案:我在一个项目中,用vLLM处理短对话(<

如果用户平均对话长度只有200个token,你花两周时间优化2048长度的KV Cache就是浪费。先测量,再优化,不要为了优化而优化。KV Cache优化没有银弹,每个方案都有trade-off。但理解了它的本质——用空间换时间,同时管理好这个“空间”——你就能在显存和速度之间找到最适合自己业务的平衡点。

上周三凌晨两点,我盯着终端里那个报错发呆——一块A100 80G显存,跑一个7B的LLaMA推理,居然OOM了。检查了半天,发现是模型加载时把KV cache的max_seq_len设成了4096,加上batch size 4,显存直接炸穿。同事在旁边说:“要不换个更小的模型?”我摇头,业务场景要求必须保留这个特定微调后的能力。那晚我翻出了压箱底的模型压缩方案,最终把模型体积砍掉60%,推理速度提

硬件加速的最终效果,取决于软件栈的配合。这里分享三个我在实际部署中验证过的经验。第一,内存池化。大模型推理时,显存分配和释放是高频操作。默认的cudaMalloc每次都要和驱动交互,开销极大。正确的做法是预分配一个内存池,推理时从池里取,推理完归还。PyTorch 2.0的可以自定义分配器,我写了一个简单的环形缓冲池,把显存分配耗时从平均120μs降到了3μs。第二,batch size的“黄金分

昨晚调试到凌晨三点,ESP32串口疯狂输出乱码,我盯着逻辑分析仪上的波形发呆——量化后的模型推理结果全是NaN。这不是第一次了,上次在STM32上跑TinyML也遇到过类似问题,但那次是激活函数溢出,这次是定点数乘法精度丢失。嵌入式AI的坑,永远比你想象的多。








