记一次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下模型下载出错问题。


目录
相关文章
|
2月前
|
NoSQL Redis 数据安全/隐私保护
Redis 最流行的图形化界面下载及使用超详细教程(带安装包)! redis windows客户端下载
文章提供了Redis最流行的图形化界面工具Another Redis Desktop Manager的下载及使用教程,包括如何下载、解压、连接Redis服务器以及使用控制台和查看数据类型详细信息。
192 6
Redis 最流行的图形化界面下载及使用超详细教程(带安装包)! redis windows客户端下载
|
2月前
|
NoSQL Redis 数据库
Redis 图形化界面下载及使用超详细教程(带安装包)! redis windows下客户端下载
文章提供了Redis图形化界面工具的下载及使用教程,包括如何连接本地Redis服务器、操作键值对、查看日志和使用命令行等功能。
191 0
Redis 图形化界面下载及使用超详细教程(带安装包)! redis windows下客户端下载
|
2天前
|
关系型数据库 MySQL 数据库
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
|
14天前
|
弹性计算 开发框架 安全
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
|
21天前
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
1月前
|
Dart 搜索推荐 IDE
Windows下Zed编辑器配置Dart环境
本文介绍了Dart编程语言及其主要框架Flutter的优势,并推荐使用轻量级编辑器Zed进行Dart开发。详细步骤包括Dart环境的安装与配置,Zed编辑器的安装与个性化设置,以及如何在Zed中编写并运行Dart的HelloWorld程序。通过自定义任务实现Dart文件的快速运行,提高了开发效率。
|
2月前
|
Oracle 关系型数据库 MySQL
Mysql(1)—简介及Windows环境下载安装
MySQL 是一个流行的关系型数据库管理系统(RDBMS),基于 SQL 进行操作。它由瑞典 MySQL AB 公司开发,后被 Sun Microsystems 收购,现为 Oracle 产品。MySQL 是最广泛使用的开源数据库之一,适用于 Web 应用程序、数据仓库和企业应用。
64 2
|
2月前
|
应用服务中间件 Shell PHP
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
|
2月前
|
NoSQL Redis 数据库
Redis Windows版下载,带安装包
文章提供了Windows版Redis的下载和安装指南,包括如何解压、启动Redis服务以及连接到Redis数据库。
1096 0
Redis Windows版下载,带安装包
|
3月前
|
SQL JavaScript 数据库
sqlite在Windows环境下安装、使用、node.js连接
sqlite在Windows环境下安装、使用、node.js连接