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

Colab中调用DeepSpeech的generate_lm.py构建自定义评分器出现subprocess错误

报错原因

*SIGSEGV(信号11)*属于内存访问异常(段错误),本次是kenlm的build_binary工具执行时触发,常见触发原因如下:

  • 内存不足:Colab免费版运行内存上限通常为12GB,参数中--top_k 500000词汇量过大,搭配5阶ARPA模型、--arpa_prune "0|0|1"前两阶完全不剪枝的设置,很容易超出内存限制触发段错误。
  • 中间ARPA文件损坏:生成的lm_filtered.arpa文件可能为空、格式不完整,根源可能是输入的hindi_tokens.txt存在编码错误、特殊字符、格式不符合kenlm输入要求,导致ARPA文件生成异常,build_binary读取时崩溃。
  • kenlm二进制兼容问题:使用的kenlm编译产物和当前Colab运行环境的glibc版本、CPU架构不兼容,执行时触发异常。
  • 参数设置不合理:--binary_a_bits 255参数设置过大,低内存环境下处理对应规模的哈希表时容易触发内存越界。
解决方法
  • 调整参数降低模型规模
    • 将--top_k从500000下调至200000以内,印地语常用词汇量无需设置过高的top_k阈值
    • 修改剪枝参数,将--arpa_prune改为"1|2|3",给低阶n元组也设置剪枝阈值,大幅降低内存占用
    • 将--binary_a_bits下调至225或200,不会明显影响模型效果,可有效降低内存开销
    • 若调整后仍报错,可将--arpa_order从5下调至4,降低模型阶数进一步减少内存占用
  • 校验输入与中间文件
    • 先检查hindi_tokens.txt格式,确保每行单个token、无乱码、无空行,编码为UTF-8
    • 报错后检查/content/DeepSpeech/data/lm/lm_filtered.arpa文件大小,若小于1MB基本可判定为损坏文件,需排查输入问题后重新生成ARPA文件
  • 优化内存分配
    • 将--max_arpa_memory从"85%"下调至"70%",避免触发Colab的内存OOM机制
    • 执行脚本前清空Colab中不需要的变量、缓存,或直接重启运行时后再执行脚本,释放足够内存空间
  • 重新编译kenlm
    • 以上方法均无效时,在Colab中重新编译kenlm适配当前运行环境,执行命令如下:
      cd /content/DeepSpeech/native_client/kenlm
      mkdir -p build && cd build
      cmake ..
      make -j$(nproc)
      
  • 分步排查定位问题
    • 可跳过generate_lm.py的封装,手动分步执行kenlm命令,定位具体报错环节:先手动生成ARPA文件,再手动执行build_binary命令,查看详细报错输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:15:03