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

使用Transformers构建聊天机器人时遇training_args导入RuntimeError问题

问题描述

我在构建聊天机器人时使用Transformers库,执行以下依赖安装命令:

%pip install --upgrade pip
%pip install --disable-pip-version-check \
    torch==1.13.1 \
    torchdata==0.5.1 --quiet

%pip install \
    transformers==4.27.2 \
    datasets==2.11.0 \
    evaluate==0.4.0 \
    rouge_score==0.1.2 \
    loralib==0.1.1 \
    peft==0.3.0 --quiet

随后导入相关模块:

from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, GenerationConfig, TrainingArguments, trainer
import torch
import time
import pandas as pd
import random
import numpy as np
import os
import string
from nltk.corpus import stopwords
from sklearn.feature_extraction.text import CountVectorizer, TfidfTransformer, TfidfVectorizer
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
from sklearn.decomposition import LatentDirichletAllocation

但会随机出现以下错误,重启内核重新安装后有时正常,有时仍触发:

RuntimeError: Failed to import transformers.training_args because of the following error (look up to see its traceback):
/usr/local/lib/python3.10/site-packages/_XLAC.cpython-310-x86_64-linux-gnu.so: undefined symbol: _ZNK5torch4lazy17LazyGraphExecutor16ShouldSyncTensorERKN3c1013intrusive_ptrINS0_10LazyTensorENS2_6detail34intrusive_target_default_null_typeIS4_EEEE
解决方案

这类随机出现的XLAC相关未定义符号错误,多由PyTorch与XLA依赖版本不兼容、安装缓存冲突或环境加载顺序问题导致,可按以下步骤修复:

  1. 清理PyTorch残留与缓存
    完全卸载现有PyTorch组件并清理pip缓存,避免旧版本干扰:

    pip uninstall -y torch torchdata torch_xla
    pip cache purge
    
  2. 安装兼容的PyTorch与XLA版本
    错误涉及XLAC库,需安装与torch==1.13.1匹配的torch_xla版本,以Linux x86_64、Python3.10为例:

    pip install torch==1.13.1 torchdata==0.5.1 torch_xla==2.0 -f https://storage.googleapis.com/torch-xla-releases/wheels/cp310/torch_stable.html
    
  3. 强制重装Transformers相关依赖
    确保依赖版本严格匹配,避免残留文件引发冲突:

    pip install --force-reinstall transformers==4.27.2 datasets==2.11.0 evaluate==0.4.0 rouge_score==0.1.2 loralib==0.1.1 peft==0.3.0 --quiet
    
  4. 调整模块导入顺序
    先导入torch再导入Transformers组件,同时修正trainer为大写Trainer(原代码小写会引发导入异常):

    import torch
    from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, GenerationConfig, TrainingArguments, Trainer
    # 其余模块导入保持不变
    import time
    import pandas as pd
    # ...
    
  5. 临时禁用XLA(无需加速时)
    通过环境变量禁用XLA加载,规避XLAC库冲突:

    export XLA_FLAGS=--xla_force_host_platform_device_count=1
    

    或在Python代码开头添加:

    import os
    os.environ['XLA_FLAGS'] = '--xla_force_host_platform_device_count=1'
    

内容的提问来源于stack exchange,提问作者Chawki-Hjaiji

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 21:56:07