Files
openmind/docs/zh/developer_tutorial/trouble_shooting.md
2024-11-26 09:24:53 +08:00

6.6 KiB
Raw Blame History

故障处理

在使用openMind Library的过程中您可能会遇到一些问题或困惑。为此我们特地整理了一份常见问题及其解决方法的文档旨在为您提供及时的帮助和支持。我们将不断更新这份文档确保其中包含的信息始终与最新的openMind Library版本保持同步。

openMind Library不显示错误栈

问题现象

使用openMind Library运行出现报错时错误栈不显示。

原因分析

出于安全考虑为避免错误栈泄露用户敏感个人数据如访问令牌tokenopenMind Library默认关闭错误栈显示。

解决措施

如用户需要通过错误栈定位问题,可通过设置环境变量OPENMIND_HIDE_STACKTRACE开放错误栈显示。

  • 设置OPENMIND_HIDE_STACKTRACE=FALSEOPENMIND_HIDE_STACKTRACE=false表示开放错误栈显示。

  • 设置OPENMIND_HIDE_STACKTRACE=TRUEOPENMIND_HIDE_STACKTRACE=true表示关闭错误栈显示。

注意事项: 环境变量OPENMIND_HIDE_STACKTRACE仅支持TRUEtrueFALSEfalse四个值,其他值会被判定为非法值。

风险提示: 开放错误栈显示存在泄露用户敏感个人数据如访问令牌token的风险请用户注意信息安全保护。

证书验证失败CERTIFICATE_VERIFY_FAILED

证书验证失败的原因可能有多种,以下为不同错误对应的解决方案。

第一种此错误的原因为python根CA证书过期需更新此证书。

SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)')
  1. 获取本地证书的路径需先安装或升级cretifi库pip install certifipip install certifi --upgrade

    import certifi
    
    print(certifi.where())
    # -> /path/to/certifi/cacert.pem
    
  2. 获取最新证书,于https://curl.se/docs/caextract.html下载cacert.pem文件。

    img.png

  3. 用新的cacert.pem证书替换之前的证书替换前请做好备份。

第二种:需手动配置魔乐社区网站的证书。

SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1131)')
  1. 魔乐社区网站下载证书。以下是使用Microsoft Edge浏览器下载证书的步骤其他浏览器类似。

    img.png img_1.png

    img_2.png

  2. 将下载的证书移动到/usr/local/share/ca-certificates/路径下。

  3. 命令行执行update-ca-certificates

  4. 添加环境变量。编辑~/.bashrc对于Bash shell或~/.zshrc对于Zsh shell文件添加export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt,重启终端或使用source ~/.bashrc后生效。

RuntimeError: Multiple frameworks detected

问题现象

在使用pipeline等模块时如果环境中同时安装了PyTorch和MindSpore框架会遇到如下错误

RuntimeError: Multiple frameworks detected, including {', '.join(_frameworks)}.

原因分析

openMind不支持同时安装多种框架的场景。

解决措施

卸载不需要使用的框架。

ImportError: libgomp-6e1a1d1b.so.1.0.0: cannot allocate memory in static TLS block

问题现象

当在conda环境中运行程序时可能会遇到类似如下报错ImportError: /your/conda/env/path/libgomp-6e1a1d1b.so.1.0.0: cannot allocate memory in static TLS block。

原因分析

该问题是由于系统中的线程本地存储(TLS)分配空间不足导致的。TLS是一个线程使用的私有数据区域用于存储线程的本地变量。在高压缩率大型数据集或大规模机器学习模型训练期间会产生大量的并行线程和TLS。由于默认情况下内核仅仅为每个线程分配2MB的TLS空间而大数据集和模型所需要的TLS空间可能会超过这个值从而发生这个错误。

解决措施

调整内存分配策略:

find / -name "libgomp-6e1a1d1b.so.1.0.0"
export LD_PRELOAD=$LD_PRELOAD:/your/conda/env/path/libgomp-6e1a1d1b.so.1.0.0

AttributeError: module 'tbe.common.utils' has no attribute 'para_check'

问题现象

在MindSpore框架下使用openMind Library可能会遇到如下报错AttributeError: module 'tbe.common.utils' has no attribute 'para_check'。

原因分析

在昇腾设备上安装MindSpore框架后需要再配置环境变量。如果昇腾AI处理器配套软件包没有安装在默认路径安装好MindSpore之后需要导出Runtime相关环境变量下述命令中LOCAL_ASCEND=/usr/local/Ascend的/usr/local/Ascend表示配套软件包的安装路径需注意将其改为配套软件包的实际安装路径。

解决措施

可将下述环境变量保存在ms_env.sh文件中再在设备上直接输入source ms_env.sh使环境变量生效。

# control log level. 0-DEBUG, 1-INFO, 2-WARNING, 3-ERROR, 4-CRITICAL, default level is WARNING.
export GLOG_v=2

# Conda environmental options
LOCAL_ASCEND=/usr/local/Ascend # the root directory of run package

# lib libraries that the run package depends on
export LD_LIBRARY_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/lib64:${LOCAL_ASCEND}/driver/lib64:${LOCAL_ASCEND}/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/op_tiling:${LD_LIBRARY_PATH}

# Environment variables that must be configured
## TBE operator implementation tool path
export TBE_IMPL_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe
## OPP path
export ASCEND_OPP_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/opp
## AICPU path
export ASCEND_AICPU_PATH=${ASCEND_OPP_PATH}/..
## TBE operator compilation tool path
export PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/compiler/ccec_compiler/bin/:${PATH}
## Python library that TBE implementation depends on
export PYTHONPATH=${TBE_IMPL_PATH}:${PYTHONPATH}

RuntimeError: UnregisterExternalAllocator failed

问题现象

在同时安装PyTorch和MindSpore框架下使用openMind Library可能会遇到如下报错RuntimeError: UnregisterExternalAllocator failed。

原因分析

在昇腾设备上同时安装PyTorch和MindSpore框架后可能会影响某一种框架的初始化和析构出现此错误。

解决措施

保证同一环境中同时仅存在一种框架。在pt框架不推荐安装mindformers等MindSpore强相关的依赖在ms框架下不推荐安装transformers等PyTorch强相关的依赖。请检查并且卸载多余的依赖。