6.6 KiB
故障处理
在使用openMind Library的过程中,您可能会遇到一些问题或困惑。为此,我们特地整理了一份常见问题及其解决方法的文档,旨在为您提供及时的帮助和支持。我们将不断更新这份文档,确保其中包含的信息始终与最新的openMind Library版本保持同步。
openMind Library不显示错误栈
问题现象
使用openMind Library运行出现报错时,错误栈不显示。
原因分析
出于安全考虑,为避免错误栈泄露用户敏感个人数据(如访问令牌token),openMind Library默认关闭错误栈显示。
解决措施
如用户需要通过错误栈定位问题,可通过设置环境变量OPENMIND_HIDE_STACKTRACE
开放错误栈显示。
-
设置
OPENMIND_HIDE_STACKTRACE=FALSE
或OPENMIND_HIDE_STACKTRACE=false
表示开放错误栈显示。 -
设置
OPENMIND_HIDE_STACKTRACE=TRUE
或OPENMIND_HIDE_STACKTRACE=true
表示关闭错误栈显示。
注意事项: 环境变量OPENMIND_HIDE_STACKTRACE
仅支持TRUE
、true
、FALSE
、false
四个值,其他值会被判定为非法值。
风险提示: 开放错误栈显示存在泄露用户敏感个人数据(如访问令牌token)的风险,请用户注意信息安全保护。
证书验证失败:CERTIFICATE_VERIFY_FAILED
证书验证失败的原因可能有多种,以下为不同错误对应的解决方案。
第一种:此错误的原因为python根CA证书过期,需更新此证书。
SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)')
-
获取本地证书的路径,需先安装或升级cretifi库:
pip install certifi
或pip install certifi --upgrade
。import certifi print(certifi.where()) # -> /path/to/certifi/cacert.pem
-
获取最新证书,于https://curl.se/docs/caextract.html下载cacert.pem文件。
-
用新的cacert.pem证书替换之前的证书,替换前请做好备份。
第二种:需手动配置魔乐社区网站的证书。
SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1131)')
-
从魔乐社区网站下载证书。以下是使用Microsoft Edge浏览器下载证书的步骤,其他浏览器类似。
-
将下载的证书移动到
/usr/local/share/ca-certificates/
路径下。 -
命令行执行
update-ca-certificates
。 -
添加环境变量。编辑~/.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强相关的依赖。请检查并且卸载多余的依赖。