使用HuggingFace Llama 3.1遇'minloglevel重复定义'错误求助
解决HuggingFace Llama 3.1模型加载时的minloglevel重复定义错误
问题背景
尝试使用HuggingFace加载Llama 3.1 70B/8B模型(目标是量化后部署到Amazon Sagemaker),运行代码时遇到以下错误:
ERROR: Flag 'minloglevel' was defined more than once (in files
'src/error.cc' and
'home/conda/feedstock_root/build_artifacts/abseil-split_1720857154496/work/absl/log/flags.cc').
Notebook中运行时内核直接崩溃,导出为Python文件在命令行运行后出现上述错误,推测是包冲突导致,与模型本身无关。运行的代码如下:
import torch from transformers import AutoModelForCausalLM, BitsAndBytesConfig, AutoTokenizer model_id = "meta-llama/Llama-3.1-8B" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, device_map="auto" ) input_text = """<|begin_of_text|><|start_header_id|>user<|end_header_id|>Translate the following English text to French: 'Hello, how are you?'<|eot_id|><|start_header_id|>assistant<|end_header_id|>""" input_ids = tokenizer(input_text, return_tensors="pt").to("cuda") print(input_ids) output = model.generate(**input_ids, max_new_tokens=10)
解决方案
这个错误是由于abseil-cpp包的版本冲突或重复安装导致的,以下是几种可行的修复方式:
清理并重新安装依赖包
先卸载冲突的abseil相关包,再重新安装transformers及依赖:pip uninstall -y abseil-py absl-py pip install --force-reinstall transformers accelerate torch如果是conda环境,也可以用conda重新安装:
conda uninstall -y abseil-cpp conda install -c conda-forge abseil-cpp=20240116.2 pip install transformers accelerate torch指定abseil的兼容版本
直接安装与transformers兼容的abseil版本,避免冲突:pip install abseil-py==2.0.0在代码中添加环境变量屏蔽重复定义错误
如果暂时无法修改依赖,可以在代码最开头添加以下内容,强制忽略flag重复定义的问题:import os os.environ['ABSL_FLAGS_ALLOW_CONFLICT'] = '1'注意:这只是临时 workaround,优先推荐修复依赖版本。
内容的提问来源于stack exchange,提问作者Luis Leal
相关产品推荐
相关产品推荐

