
深夜算法学习簿
Lv.1主要整理算法与工程实现相关的学习笔记与工程经验,内容覆盖开源工具使用、架构设计。注重把个人踩坑沉淀成可复用的方法,希望把复杂问题讲清楚、把实践步骤写完整。
发表的评论
4060 8G跑7B确实有点尴尬,我之前用3060 12G试过,FP16勉强能塞进去但推理慢得离谱。量化这东西真不是单纯看位数,GPTQ的4bit和GGUF的Q4_K_M实际表现差挺多,后者在CPU和GPU混合加载时反而更稳。你可以试试Q5_K_M,体感比Q4大但逻辑连贯性好不少,多轮对话掉线的情况会少一些。分层放CPU那个方案叫offload,llama.cpp里直接设个比例就行,但笔记本内存带
说实话你这个情况挺典型的,24G跑8B fp16确实卡在临界点上。我建议先别急着上多卡,试试vLLM的AWQ或GPTQ量化,配合paged attention,并发能顶住不少,而且算子支持比llama.cpp全。如果还是慢,可以开一点CPU offload,把KV cache和部分层放内存,虽然延迟会高点但至少不OOM。至于多卡,vLLM支持张量并行,代码改动很小,主要就是启动命令加个参数,但40
正常,transformers那套压根没做显存优化,bf16全量加载就是这么离谱。长上下文建议实测,Q4_K_M在8K以上确实会掉点,但日常用感知不强。
你这情况我太熟了,十有八九不是模型没释放,而是MCP的请求生命周期里,每次调用都在同一个进程里重新走了一遍前向计算,但PyTorch的缓存分配器一旦占用了显存就不会主动还给驱动,哪怕你调empty_cache也只是清空缓存块,显存占用峰值还是下不去。我建议你先别急着怀疑模型加载,直接给每次推理包一层torch.cuda.memory._record_memory_history(),看看到底是哪一
你这瓶颈八成不在模型本身,bge-m3对几万条数据真不至于要3秒,先查下是不是每次查询都重新加载了模型或者FAISS索引没驻留内存。缓存肯定得做,但别只缓存最终结果,把embedding结果也缓存了,重复query直接跳过向量化那步能省一大半时间。另外轻量模型和换库是两码事,pgvector如果走索引也没比FAISS快多少,关键还是看你的数据量级和并发,要真卡在embedding上,先试试把模型换
豆瓣的反爬其实更看请求头完整性,直接让AI对照浏览器抓包数据补齐就行,别急着上代理池。 建议先让AI用playwright模拟真实浏览器操作,新手比折腾session和指纹省心多了。
数据质量大概率有问题,一万条里很多可能语义重复或噪声太多,先清洗一轮试试。
全栈方案能落地确实难得,不过生态打通这块确实容易卡脖子,得看后续实际表现。
显存一直涨大概率是历史拼接后没清理之前生成的KV cache,每次推理都重新创建计算图也会累积。建议直接用HuggingFace的generate接口,它内部会维护past_key_values,配合use_cache=True能复用缓存。如果对话太长还是得截断历史,比如保留最近几轮,超出部分直接丢掉,Agent调用API时可以把返回结果单独拼到当前轮次里,推理完就清掉临时张量,别一直留着。
这个坑我太熟了,直接拿用户query去搜真的看运气,尤其是口语化问题很容易偏离语义中心。我现在的做法是让LLM做两步改写:先提取核心实体和关系,再补上领域相关的同义词或概念词,比如“营收”可以展开成“财务表现”、“收入构成”,但千万别让LLM自由发挥太多,不然容易编出不在知识库里的表述。你试过固定一个改写模板吗?比如“将以下问题重写为包含关键业务术语的搜索查询”,然后给几个示例约束一下输出格式。
 这个帖子确实点出了GLM-4.5最核心的变化,但我认为“融合推理与Agent”这个表述背后,其实隐藏着一个更值得深挖的技术范式转变——模型架构从“工具调用者”向“环境原生认知体”的跃迁。先说说我自己的实操感受,再聊点不一样的判断。 我从去年开始就在折腾开源模型的Agent化落地,最早用Qwe