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

如何让transformers的.from_pretrained在Jupyter Notebook稳定显示下载进度

解决transformers from_pretrained进度条在Jupyter Lab内核崩溃后不显示的问题

核心原因

内核崩溃后,tqdm(transformers依赖的进度条库)的全局实例或输出缓冲区状态异常,导致后续调用时无法正常渲染进度条;同时可能伴随transformers的日志/进度条配置被意外修改。

解决方案

  • 强制重置tqdm状态
    在调用from_pretrained前添加代码,清除残留的tqdm实例并重置配置:

    from tqdm import tqdm
    # 清除所有tqdm实例
    tqdm._instances.clear()
    # 重置tqdm全局设置
    tqdm.reset()
    

    同时显式启用进度条:

    from transformers import AutoTokenizer, AutoModelForCausalLM
    tokenizer = AutoTokenizer.from_pretrained("model_name", show_progress_bar=True)
    model = AutoModelForCausalLM.from_pretrained("model_name", show_progress_bar=True)
    
  • 重置transformers日志与输出配置
    内核崩溃可能导致transformers的日志级别被调低,强制开启INFO级日志并重置输出处理器:

    import transformers
    transformers.utils.logging.set_verbosity_info()
    transformers.utils.logging.enable_default_handler()
    transformers.utils.logging.enable_explicit_format()
    
  • 修复输出缓冲区异常
    手动设置标准输出为行缓冲,避免进度条被缓冲无法实时显示:

    import sys
    # 将stdout设置为行缓冲
    sys.stdout = open(sys.stdout.fileno(), 'w', buffering=1)
    # 强制刷新缓冲区
    sys.stdout.flush()
    sys.stderr.flush()
    
  • 彻底清理残留内核进程
    在远程服务器上执行命令,找到并终止残留的Jupyter内核进程:

    # 查找相关进程
    ps aux | grep python | grep jupyter
    # 终止进程(替换为实际PID)
    kill -9 <pid>
    

    之后重启Jupyter Lab,新建Notebook重新运行代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:06:05