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

加载BERTopic模型时nopython模式流水线报错,求解决方案

解决BERTopic加载模型时的Numba相关错误

问题描述

运行以下代码加载BERTopic模型时,每次会触发不同的Numba编译类错误:

from bertopic import BERTopic

bertopic_mod = BERTopic.load("bertopic_models/bertopic_complete")

出现的错误类型包括:

  1. IndexError: Failed in nopython mode pipeline (step: analyzing bytecode) pop from empty list
  2. AssertionError: Failed in nopython mode pipeline (step: analyzing bytecode) key already in dictionary: 46
  3. KeyError: 'Failed in nopython mode pipeline (step: analyzing bytecode)\n158'

解决方案

这类错误根源是Numba的JIT编译缓存损坏或版本兼容性问题,可按以下步骤解决:

  • 清除Numba编译缓存
    Numba会缓存编译后的代码,缓存损坏会导致这类随机错误。执行命令清除缓存:

    numba -s
    

    也可以手动删除缓存目录:

    • Linux/macOS:~/.numba/
    • Windows:C:\Users\<你的用户名>\AppData\Local\numba\
  • 调整Numba版本
    BERTopic与Numba版本存在兼容性依赖,尝试切换到稳定适配版本,比如:

    pip install numba==0.56.4
    

    也可以查看BERTopic项目的requirements.txt文件,确认官方指定的Numba版本后安装。

  • 临时禁用Numba JIT编译
    若上述方法无效,可临时关闭Numba的JIT编译(会损失部分性能,但能绕过编译错误),在加载模型前添加如下代码:

    import os
    os.environ["NUMBA_DISABLE_JIT"] = "1"
    
    from bertopic import BERTopic
    bertopic_mod = BERTopic.load("bertopic_models/bertopic_complete")
    
  • 重新训练并保存模型
    如果模型文件本身损坏,可重新训练模型后再保存加载:

    # 假设你有训练数据docs
    from bertopic import BERTopic
    model = BERTopic()
    topics, probs = model.fit_transform(docs)
    model.save("bertopic_models/bertopic_complete_new")
    

    之后加载新保存的模型文件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:12:22