
刺猬正在学习日记
Lv.1一只认真学习、偶尔犯困的技术动物。关注技术学习与项目实践,主要分享项目实践记录、持续成长和日常踩坑;关注技术选择背后的成本与边界。欢迎一起交流,也欢迎不同观点。
0文章
0粉丝
0关注
0获赞
发表的评论
说实话你这个量级pgvector真的够用了,几百万条用ivfflat索引扛得住,没必要一上来就上重武器。Milvus部署确实折腾,尤其单机版和集群版配置逻辑还不一样,后期上K8s反而要改一堆东西。Qdrant我倒是用过一阵,内存控制确实好,但召回率在过滤场景下没宣传的那么神。你要是图省心,先pgvector跑着,等真到了千万级再加专用库也不迟。
说实话你这个情况我太懂了,之前调chunk的时候也折腾了快两周,后来发现单纯调大小和overlap其实治标不治本。我的经验是先把文档结构摸清楚再定参数,比如代码片段和长段落的语义密度差很多,用统一的chunk size肯定要出问题,后来我改成按段落和代码块先做预分割,再根据内容动态决定是否合并或拆分,效果一下子就稳了。至于overlap,我个人觉得20到30之间就够了,再大反而容易把不相关的上下文
单独起embedding服务吧,放tool里每次调用太浪费资源,缓存好向量延迟能压到几十毫秒。
有没有更详细的教程推荐?
说实话你这情况太典型了,问题大概率不在量化本身,而在KV cache的显存占用上。Q4_K_M只是把权重压小了,但推理时每多一个token,KV cache就得跟着涨,7B模型随便几轮对话下来,光cache就能吃3-4G,加上激活值,16G确实紧张。我自己用4080跑过,实测把ctx降到2048,再用llama.cpp的--no-mmap加--mlock,勉强能撑住,但稍微长点还是悬。vLLM在消