Kaggle竞赛提交环境无法联网,下载模型和 tokenizer 到本地,后续从本地加载/或上传到对应环境

pyTorch框架

✅ 解决方案:将模型和分词器打包为本地文件使用

你需要在训练阶段就把模型和 tokenizer 下载到本地,并在推理(提交)代码中 从本地加载


🔧 操作步骤如下:

✅ 第一步:在本地或 notebook 中下载模型和 tokenizer

在 自己的机器上运行以下代码,将 tokenizer 和模型保存到本地文件夹中,例如 ./bert-base-uncased

from transformers import BertTokenizer, BertModel

# 下载并保存
model_name = "bert-base-uncased"
tokenizer = BertTokenizer.from_pretrained(model_name)
model = BertModel.from_pretrained(model_name)

tokenizer.save_pretrained("./bert-base-uncased")
model.save_pretrained("./bert-base-uncased")

这将创建一个目录 ./bert-base-uncased/,里面包含:

  • config.json
  • pytorch_model.bin
  • vocab.txt
  • tokenizer_config.json
✅ 第二步:将 bert-base-uncased/ 文件夹上传到 Kaggle
  • 在 Kaggle 上的 notebook 项目中,点击左侧 “Add data” → “Upload” 上传整个 bert-base-uncased 目录为一个 Dataset。
  • 上传完成后,Kaggle 会给你一个路径,例如 /kaggle/input/bert-base-uncased/

✅ 第三步:在推理代码中从本地加载
from transformers import BertTokenizer, BertModel

# 从本地路径加载 tokenizer 和 model
tokenizer = BertTokenizer.from_pretrained("/kaggle/input/bert-base-uncased")
model = BertModel.from_pretrained("/kaggle/input/bert-base-uncased")

这样你就不再依赖联网资源了,提交代码不会报错。


✅ 提交建议

  • 保证你的提交脚本中不要含有任何 from_pretrained(‘bert-base-uncased’) 网络请求
  • 你的 .py 脚本或 notebook 要与上传的模型目录配合使用

TensorFlow框架

如果使用的是 TensorFlow 框架,那么需要使用 transformers 库中 TensorFlow 版本的 BERT 模型BertTokenizer。下面是如何下载并保存模型的步骤,适用于 Kaggle 无网络环境。


✅ 第一步:下载并保存 bert-base-uncased 模型(TensorFlow 版本)

from transformers import BertTokenizer, TFBertModel

# 模型名称
model_name = 'bert-base-uncased'

# 下载 tokenizer 和 TensorFlow 模型
tokenizer = BertTokenizer.from_pretrained(model_name)
model = TFBertModel.from_pretrained(model_name)

# 保存到本地目录
save_directory = './bert-base-uncased'
tokenizer.save_pretrained(save_directory)
model.save_pretrained(save_directory)

这一步会在本地创建一个包含以下内容的文件夹 bert-base-uncased/

bert-base-uncased/
├── config.json
├── tf_model.h5                ← TensorFlow 模型
├── vocab.txt
├── tokenizer_config.json
├── special_tokens_map.json

✅ 第二步:上传到 Kaggle

  1. 将这个 bert-base-uncased/ 文件夹压缩为 .zip
  2. 上传到你的 Kaggle Dataset(点击 “Add data” → “Upload”)
  3. 添加这个 Dataset 到你的 Kaggle notebook 或提交脚本
  4. 上传后 Kaggle 会给你一个类似路径 /kaggle/input/bert-base-uncased/(根据你上传命名)

✅ 第三步:在提交脚本中加载本地模型

from transformers import BertTokenizer, TFBertModel

# 使用本地路径加载
model_path = '/kaggle/input/bert-base-uncased'
tokenizer = BertTokenizer.from_pretrained(model_path)
model = TFBertModel.from_pretrained(model_path)

🔒 小结:避免联网的方法

组件下载方式Kaggle 中使用方式
TokenizerBertTokenizer.from_pretrainedfrom_pretrained('/kaggle/input/...')
模型(TF)TFBertModel.from_pretrainedfrom_pretrained('/kaggle/input/...')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术与健康

你的鼓励将是我最大的创作动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值