ModelScope中,有没有遇到运行文档“文本生成任务”当中完整示例时出现错误?

ModelScope中,有没有遇到运行文档“文本生成任务”当中完整示例时出现 :KeyError: 'tgts' 错误?damo/nlp_palm2.0_pretrained_chinese-baselQLPJxroXIFGSWTNAjrNAqywsc1Wt8siXisFQ4hU0QCVAA_684_570.pnghttps://modelscope.cn/docs/%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90%E4%BB%BB%E5%8A%A1

这个页面上的完整示例

KeyError Traceback (most recent call last)
/home/netsun/work/workspace/learn-modelscope/ModelScope Library教程/各任务最佳实践/文本生成任务.ipynb 单元格 23 line 9
93 os.environ['LOCAL_RANK'] = '0'
94 trainer = build_trainer(name='text-generation-trainer', default_args=kwargs)
---> 95 trainer.train()

File ~/.conda/envs/modelscope/lib/python3.8/site-packages/modelscope/trainers/trainer.py:711, in EpochBasedTrainer.train(self, checkpoint_path, load_all_state, args, *kwargs)
707 self.set_checkpoint_file_to_hook(checkpoint_path, load_all_state,
708 kwargs.get('strict', False))
709 self.model.train()
--> 711 self.train_loop(self.train_dataloader)

File ~/.conda/envs/modelscope/lib/python3.8/site-packages/modelscope/trainers/trainer.py:1234, in EpochBasedTrainer.train_loop(self, data_loader)
1232 self.invoke_hook(TrainerStages.before_train_iter)
1233 self.train_step(self.model, data_batch)
-> 1234 self.invoke_hook(TrainerStages.after_train_iter)
1235 # Value changed after the hooks are invoked, do not move them above the invoke_hook code.
1236 del self.data_batch

File ~/.conda/envs/modelscope/lib/python3.8/site-packages/modelscope/trainers/trainer.py:1395, in EpochBasedTrainer.invoke_hook(self, fn_name)
1393 for hook in self._hooks:
1394 if hasattr(hook, fn_name):
-> 1395 getattr(hook, fn_name)(self)

File ~/.conda/envs/modelscope/lib/python3.8/site-packages/modelscope/trainers/hooks/evaluation_hook.py:47, in EvaluationHook.after_train_iter(self, trainer)
44 """Called after every training iter to evaluate the results."""
45 if self.eval_strategy == EvaluationStrategy.by_step and self._should_evaluate(
46 trainer):
---> 47 self.do_evaluate(trainer)
48 self.last_eval_tag = ('iter', trainer.iter)

File ~/.conda/envs/modelscope/lib/python3.8/site-packages/modelscope/trainers/hooks/evaluation_hook.py:67, in EvaluationHook.do_evaluate(self, trainer)
65 def do_evaluate(self, trainer):
66 """Evaluate the results."""
---> 67 eval_res = trainer.evaluate()
68 for name, val in eval_res.items():
69 trainer.log_buffer.output['evaluation/' + name] = val

File ~/.conda/envs/modelscope/lib/python3.8/site-packages/modelscope/trainers/trainer.py:800, in EpochBasedTrainer.evaluate(self, checkpoint_path, saving_fn, **kwargs)
797 for m in metric_classes:
798 m.trainer = self
--> 800 metric_values = self.evaluation_loop(self.eval_dataloader,
801 metric_classes)
803 self._metric_values = metric_values
804 return metric_values

File ~/.conda/envs/modelscope/lib/python3.8/site-packages/modelscope/trainers/trainer.py:1295, in EpochBasedTrainer.evaluation_loop(self, data_loader, metric_classes)
1293 else:
1294 from modelscope.trainers.utils.inference import single_gpu_test
-> 1295 metric_values = single_gpu_test(
1296 self,
1297 data_loader,
1298 device=self.device,
1299 metric_classes=metric_classes,
1300 vis_closure=vis_closure,
1301 data_loader_iters=self._eval_iters_per_epoch)
1303 self.invoke_hook(TrainerStages.after_val)
1304 return metric_values

File ~/.conda/envs/modelscope/lib/python3.8/site-packages/modelscope/trainers/utils/inference.py:56, in single_gpu_test(trainer, data_loader, device, metric_classes, vis_closure, data_loader_iters)
54 for i, data in enumerate(data_loader):
55 data = to_device(data, device)
---> 56 evaluate_batch(trainer, data, metric_classes, vis_closure)
58 if progress_with_iters:
59 batch_size = 1 # iteration count

展开
收起
多麻辣哦 2023-11-22 10:23:22 149 分享 版权
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在运行 ModelScope 文档中的文本生成任务时出现 KeyError: 'tgts' 错误,可能是由于您在构建模型时未指定目标变量名称。
    一般来说,目标变量是指您希望预测的结果。它是一个字符串,用于标识模型应返回的结果。例如,在文本生成任务中,您可能会有一个名为“sentences”的输入序列,而目标变量可以命名为“output”。当您构建模型时,应确保指定正确的 target 字段。
    解决此问题的方法如下:

    1. 检查您的模型定义:请检查您的模型定义是否正确。确保您的 model.py 文件中的目标变量名与您的任务定义一致。
    2. 检查您的数据集:请检查您的数据集是否包含目标变量。确保您的数据集中包含了名为“tgts”的列,并且其内容符合模型的要求。
    3. 重新编译模型:如果上述两种方法都不能解决问题,您还可以尝试重新编译模型。您可以重新加载模型并重新启动任务,以确保所有的更改都被正确应用。
    2023-11-29 13:20:22
    赞同 展开评论
  • 在ModelScope中,运行文档“文本生成任务”的完整示例时出现KeyError: 'tgts'错误,可能是因为模型输入的数据格式不正确。请检查输入数据是否包含'tgts'这个键。如果需要使用damo/nlp_palm2.0_pretrained_chinese-base模型进行文本生成任务,可以参考以下代码:

    from modelscope.pipelines import pipeline
    from modelscope.utils.constant import Tasks
    
    # 创建文本生成任务的管道
    text_generation = pipeline(Tasks.text_generation, model='damo/nlp_palm2.0_pretrained_chinese-base')
    
    # 输入文本
    input_text = "你好,我是一个AI助手。"
    
    # 生成文本
    output_text = text_generation(input_text)
    
    print(output_text)
    

    请确保输入数据包含'tgts'这个键,并根据实际情况修改代码。

    2023-11-29 11:36:34
    赞同 展开评论
  • 用这里的代码,可以跑。
    https://modelscope.cn/models/damo/nlp_palm2.0_pretrained_chinese-base/summary
    ——此回答整理自钉群:魔搭ModelScope开发者联盟群 ①

    2023-11-22 21:15:48
    赞同 展开评论

包含图像分类、图像生成、人体人脸识别、动作识别、目标分割、视频生成、卡通画、视觉评价、三维视觉等多个领域

热门讨论

热门文章

还有其他疑问?
咨询AI助理