You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku部署因sentence-transformers致Slug超限,如何使用semantic_search?

解决Heroku部署sentence-transformers导致Slug超限的方案

1. 精简依赖包

  • 移除requirements.txt中不必要的依赖:排查sentence-transformers间接引入但实际未用到的包,比如冗余的模型依赖、测试工具等,只保留核心功能所需项。
  • 手动指定必要依赖:用pip install --no-deps sentence-transformers跳过自动安装所有依赖,再手动添加semantic_search必需的包,如transformers、CPU版torch、numpy、scipy等,避免冗余依赖占用体积。

2. 使用轻量预训练模型

  • 选择体积更小的模型:比如all-MiniLM-L6-v2(约80MB),替换大体积模型,代码中指定加载该模型:
    from sentence_transformers import SentenceTransformer
    model = SentenceTransformer('all-MiniLM-L6-v2')
    
  • 本地加载模型:提前下载所需模型文件并压缩,放到项目的models目录,代码中指定本地路径加载,减少构建时的下载量和slug体积。

3. 优化Heroku构建流程

  • 禁用pip缓存:在requirements.txt开头添加--no-cache-dir,避免缓存文件占用额外空间。
  • 清理构建残留:在heroku-postbuild脚本中添加清理命令,删除临时文件和冗余缓存:
    rm -rf ~/.cache/pip
    rm -rf /app/.heroku/python/lib/python3.x/site-packages/*.dist-info
    
  • 配置.slugignore:将项目中无需打包的大文件(如日志、临时数据、未用到的模型文件)加入该文件,排除在slug之外。

4. 拆分语义搜索功能到外部服务

  • 将semantic_search功能部署到专门的模型推理平台,Heroku应用通过API调用该服务完成语义搜索,无需在本地安装sentence-transformers依赖,彻底规避slug体积问题。

5. 申请Slug体积扩展

  • 若以上方法均无法解决,可联系Heroku官方支持申请提升slug最大限制(默认500MB),此为付费选项。

内容的提问来源于stack exchange,提问作者user69

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 07:57:03