记一次windows环境下PaddleNLP的模型下载bug排除

简介: 记一次windows环境下PaddleNLP的模型下载bug排除

一、问题描述


由于计划做一个智能代码提示生成的工具,所以晚上就消耗大量时间在coding。。。。。。


平时都在aistudio的linux环境下干活,这次想着作为插件部署到jupyter下,所以就本地干活了,然而平时跑的很溜的代码,就出现了不可思议的错误。具体如下:

image.png

平时都用的好好的,为什么这次就错了呢?为此我打开虚拟环境,挨个代码查看, 看看到底什么地方出错,看代码都很平静,那问题出在哪儿呢?修改下paddlenlp代码打印下日志:

https://bj.bcebos.com/paddlenlp/models/community/Salesforce/codegen-350M-mono\vocab.json
https://bj.bcebos.com/paddlenlp/models/community/Salesforce/codegen-350M-mono\merges.txt
https://bj.bcebos.com/paddlenlp/models/community/Salesforce/codegen-350M-mono\added_tokens.json


二、问题分析


发现下载模型等链接,且报404,心有不甘,手动点链接,文件下载文件成功,那这个是什么锅?


心有不甘,仔细对比发现最末尾的斜杠不一样,会不会是这个问题呢?我对比下发现:

image.png


那,不同的斜杠,request 下载结果截然不同,那锅找到了。


三、解决办法


分析道问题了,那么这个杠怎么来的?大胆猜测,这里的杠是采用了os.path.join来连接 url 的。殊不知不论win还是linux等系统,url格式都是一致的,反而会导致python访问异常。那么就按部就班解决问题,把原先的path.join修改为“/”。


1.修改transformers\model_utils.py


对该文件第1539行修改

# vocab_files["tokenizer_config_file"] = os.path.join(
            #     COMMUNITY_MODEL_PREFIX, pretrained_model_name_or_path,
            #     cls.tokenizer_config_file)
            vocab_files["tokenizer_config_file"] = COMMUNITY_MODEL_PREFIX+ '/'+ pretrained_model_name_or_path +'/'+ cls.tokenizer_config_file


2.修改transformers\tokenizer_utils_base.py


对该文件248行修改

# Assuming from community-contributed pretrained models
            for file_id, file_name in cls.resource_files_names.items():
                # full_file_name = os.path.join(COMMUNITY_MODEL_PREFIX,
                #                               pretrained_model_name_or_path,
                #                               file_name)
                full_file_name = COMMUNITY_MODEL_PREFIX +'/'+  pretrained_model_name_or_path +'/'+file_name
                resource_files[file_id] = full_file_name
            # resource_files["model_config_file"] = os.path.join(
            #     COMMUNITY_MODEL_PREFIX, pretrained_model_name_or_path,
            #     cls.model_config_file)
            resource_files["model_config_file"] = COMMUNITY_MODEL_PREFIX +'/'+ pretrained_model_name_or_path +'/'+cls.model_config_file

这样就解决了win下模型下载出错问题。


目录
相关文章
|
1月前
|
开发工具 Android开发 git
Windows下载android2.2完整源码(转)
Windows下载android2.2完整源码(转)
41 3
|
15天前
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
|
4天前
|
编解码 Windows
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
XviD是开源MPEG-4视频编码器,与DivX相似但后者非开源。早期MP4常使用XviD或DivX编码,现已被H.264取代。在Windows上集成FFmpeg的XviD编解码库libxvid,需访问<https://labs.xvid.com/source/>下载源码,解压后在MSYS环境中配置、编译和安装。之后重新配置FFmpeg,启用libxvid并编译安装。详细步骤包括configure命令、make和make install。成功后,通过`ffmpeg -version`检查是否启用libxvid。更多音视频开发技术可参考《FFmpeg开发实战:从零基础到短视频上线》。
30 0
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
|
9天前
|
运维 Linux 网络安全
跨平台SSH文件传输:Linux与Windows环境下的实践指南
本文介绍了在Linux和Windows之间使用SCP、SecureCRT及PuTTY工具集进行文件传输的方法。在Linux中,利用SCP命令进行文件下载、上传及目录传输。在Windows环境下,PSFTP和PSCP提供类似功能,而SecureCRT作为SSH客户端,支持设置上传下载目录并进行文件传输。掌握这些工具的使用可提升跨平台运维效率。
|
14天前
Qt安装 qt-unified-windows-x64-online.exe下载慢
Qt安装 qt-unified-windows-x64-online.exe下载慢
|
15天前
|
PHP Windows
windows 安装php7.4并配置phpstorm环境
windows 安装php7.4并配置phpstorm环境
|
25天前
|
编解码 5G Linux
FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器
AVS3是中国首个8K及5G视频编码标准,相比AVS2和HEVC性能提升约30%。解码器libuavs3d支持8K/60P视频实时解码,兼容多种平台。《FFmpeg开发实战》书中介绍了在Windows环境下如何集成libuavs3d到FFmpeg。集成步骤包括下载源码、使用Visual Studio 2022编译、调整配置、安装库文件和头文件,以及重新配置和编译FFmpeg以启用libuavs3d。
40 0
FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器
|
1月前
|
算法 Linux Windows
FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
在Windows环境下为FFmpeg集成字幕渲染库libass涉及多个步骤,包括安装freetype、libxml2、gperf、fontconfig、fribidi、harfbuzz和libass。每个库的安装都需要下载源码、配置、编译和安装,并更新PKG_CONFIG_PATH环境变量。最后,重新配置并编译FFmpeg以启用libass及相关依赖。完成上述步骤后,通过`ffmpeg -version`确认libass已成功集成。
44 1
FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
|
1月前
|
计算机视觉 Windows
OpenCV + CLion在windows环境下使用CMake编译, 出现Mutex相关的错误的解决办法
OpenCV + CLion在windows环境下使用CMake编译, 出现Mutex相关的错误的解决办法
30 0
|
1月前
|
Web App开发 JavaScript 前端开发
Windows环境下 NVM 介绍、下载安装及使用详解
Windows环境下 NVM 介绍、下载安装及使用详解
159 0