运行PaddleNLP中的uie时报错:OSError: [Errno 28] No space left on device: ‘/root/.paddlenlp/models/uie-base/t

Traceback (most recent call last):
  File "/home/jh/PaddleNLP/model_zoo/uie/finetune.py", line 262, in <module>
    main()
  File "/home/jh/PaddleNLP/model_zoo/uie/finetune.py", line 121, in main
    tokenizer = AutoTokenizer.from_pretrained(model_args.model_name_or_path)
  File "/root/miniconda3/envs/paddleocr/lib/python3.9/site-packages/paddlenlp/transformers/auto/tokenizer.py", line 322, in from_pretrained
    return actual_tokenizer_class.from_pretrained(
  File "/root/miniconda3/envs/paddleocr/lib/python3.9/site-packages/paddlenlp/transformers/tokenizer_utils_base.py", line 1636, in from_pretrained
    tokenizer.save_pretrained(cache_dir)
  File "/root/miniconda3/envs/paddleocr/lib/python3.9/site-packages/paddlenlp/transformers/tokenizer_utils_base.py", line 1704, in save_pretrained
    with io.open(tokenizer_config_file, "w", encoding="utf-8") as f:

出现此问题的原因是存储cache的地址空间不足。

解决方法

mv /root/.paddlenlp/ /your_dir/
ln -s /your_dir/.paddlenlp/ /root/

把.paddlenlp文件夹里面的文件移动到新的磁盘上,然后用软链接把它链接回去

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这个代码是 PaddleNLP 的一个模型 Fine-tuning 的示例,用于在 UIE(User Intention Extraction)任务上 Fine-tuning 预训练好的 ERNIE-Gram 模型。 以下是代码的主要部分解析: ```python from paddlenlp.transformers import ErnieGramForSequenceClassification, ErnieGramTokenizer import paddle # 加载预训练模型和分词器 model = ErnieGramForSequenceClassification.from_pretrained('ernie-gram-zh') tokenizer = ErnieGramTokenizer.from_pretrained('ernie-gram-zh') # 加载数据 train_ds, dev_ds, test_ds = load_dataset(datafiles) # 定义数据处理函数 def convert_example(example, tokenizer, max_seq_length=512): query, title, label = example['query'], example['title'], example['label'] encoded_inputs = tokenizer(query, title, max_seq_len=max_seq_length, pad_to_max_seq_len=True) input_ids = encoded_inputs['input_ids'] token_type_ids = encoded_inputs['token_type_ids'] attention_mask = encoded_inputs['attention_mask'] return input_ids, token_type_ids, attention_mask, label # 定义数据读取器 train_data_loader = paddle.io.DataLoader(train_ds.map(lambda x: convert_example(x, tokenizer)), batch_size=batch_size, num_workers=num_workers, shuffle=True) dev_data_loader = paddle.io.DataLoader(dev_ds.map(lambda x: convert_example(x, tokenizer)), batch_size=batch_size, num_workers=num_workers, shuffle=False) test_data_loader = paddle.io.DataLoader(test_ds.map(lambda x: convert_example(x, tokenizer)), batch_size=batch_size, num_workers=num_workers, shuffle=False) # 定义优化器和损失函数 optimizer = paddle.optimizer.AdamW(learning_rate=lr, parameters=model.parameters()) criterion = paddle.nn.loss.CrossEntropyLoss() # Fine-tuning for epoch in range(epochs): for input_ids, token_type_ids, attention_mask, labels in train_data_loader: logits = model(input_ids, token_type_ids, attention_mask) loss = criterion(logits, labels) loss.backward() optimizer.step() optimizer.clear_grad() ``` 首先,通过 PaddleNLP 的 `ErnieGramForSequenceClassification` 和 `ErnieGramTokenizer` 加载预训练模型和分词器。 然后,通过 `load_dataset` 函数加载数据集,并定义 `convert_example` 函数将数据转化为模型需要的格式,包括输入的 `input_ids`、`token_type_ids` 和 `attention_mask` 以及标签 `label`。 接着,通过 `DataLoader` 定义数据读取器,将数据输入模型进行 Fine-tuning。 最后,定义优化器和损失函数,使用 `backward` 计算梯度并更新模型参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值