Mac环境下加载facebook/bart-large-cnn模型失败求助
Mac环境下加载facebook/bart-large-cnn模型失败的排查与解决
问题详情
使用facebook/bart-large-cnn开发文本摘要工具,代码在Windows环境运行正常,但Mac环境执行时触发模型加载错误,错误堆栈:
Traceback (most recent call last): File "/Users/shubhamsingh/Desktop/Python Udemy Tutorial/Summarizer/summary.py", line 5, in <module> summarizer = pipeline("summarization", model="facebook/bart-large-cnn") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/transformers/pipelines/__init__.py", line 776, in pipeline framework, model = infer_framework_load_model( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/transformers/pipelines/base.py", line 271, in infer_framework_load_model raise ValueError(f"Could not load model {model} with any of the following classes: {class_tuple}.") ValueError: Could not load model facebook/bart-large-cnn with any of the following classes: (<class 'transformers.models.auto.modeling_auto.AutoModelForSeq2SeqLM'>, <class 'transformers.models.bart.modeling_bart.BartForConditionalGeneration'>).
运行代码:
from transformers import pipeline import torch import os summarizer = pipeline("summarization", model="facebook/bart-large-cnn") def summarize_text(text: str, max_len: int) -> str: try: summary = summarizer(text, max_length=max_len, min_length=10, do_sample=False) return summary[0]["summary_text"] except IndexError as ex: return summarize_text(text=text[:(len(text) // 2)], max_len=max_len//2) + summarize_text(text=text[(len(text) // 2):], max_len=max_len//2) print(summarize_text(ANY_TEXT, max_len=1024))
环境依赖:Python 3.11.2、pip 23.0.1、torch 2.0.0
解决步骤
1. 确保transformers版本兼容
执行命令升级transformers到最新兼容版本,避免与torch 2.0.0冲突:
pip install --upgrade transformers
若仍有问题,可指定稳定兼容版本:
pip install transformers==4.28.1
2. 清理损坏的模型缓存
Mac端Hugging Face模型缓存可能损坏,删除对应模型缓存后重新下载:
rm -rf ~/.cache/huggingface/hub/models--facebook--bart-large-cnn
重新运行代码,模型会自动重新下载并加载。
3. 明确指定PyTorch框架加载
在pipeline初始化时强制指定framework为PyTorch,避免自动推断出错:
summarizer = pipeline("summarization", model="facebook/bart-large-cnn", framework="pt")
4. 适配Mac芯片的PyTorch安装
若使用M1/M2系列芯片,需确保安装的是适配arm64架构的torch版本,重新安装:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
5. 手动加载本地模型
从Hugging Face Hub手动下载facebook/bart-large-cnn的全部模型文件到本地目录,然后指定路径加载:
summarizer = pipeline("summarization", model="./local-path-to/facebook-bart-large-cnn")
内容的提问来源于stack exchange,提问作者Shubham Singh
相关产品推荐
相关产品推荐

