ModelScope问题之基于PTTS-basemodel微调时报错如何解决

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,5000CU*H 3个月
简介: ModelScope镜像是指用于在ModelScope平台上创建和管理的容器镜像,这些镜像包含用于模型训练和推理的环境和依赖;本合集将说明如何使用ModelScope镜像以及管理镜像的技巧和注意事项。

问题一:基于PTTS-basemodel微调时报错InvalidProtobuf: [ONNXRuntime


用的付费的

8核 32GB 显存16G 预装 ModelScope Library 预装镜像 ubuntu20.04-cuda11.3.0-py38-torch1.11.0-tf1.15.5-1.6.1

这个环境

InvalidProtobuf                           Traceback (most recent call last)
Cell In[10], line 33
     22 kwargs = dict(
     23     model=pretrained_model_id,                  # 指定要finetune的模型
     24     model_revision = "v1.0.6",
   (...)
     27     train_type=train_info                       # 指定要训练类型及参数
     28 )
     30 trainer = build_trainer(Trainers.speech_kantts_trainer,
     31                         default_args=kwargs)
---> 33 trainer.train()
File /opt/conda/lib/python3.8/site-packages/modelscope/trainers/audio/tts_trainer.py:229, in KanttsTrainer.train(self, *args, **kwargs)
    226     ignore_pretrain = kwargs['ignore_pretrain']
    228 if TtsTrainType.TRAIN_TYPE_SAMBERT in self.train_type or TtsTrainType.TRAIN_TYPE_VOC in self.train_type:
--> 229     self.prepare_data()
    230 if TtsTrainType.TRAIN_TYPE_BERT in self.train_type:
    231     self.prepare_text()
File /opt/conda/lib/python3.8/site-packages/modelscope/trainers/audio/tts_trainer.py:205, in KanttsTrainer.prepare_data(self)
    202     audio_config = self.model.get_voice_audio_config_path(
    203         self.speaker)
    204 se_model = self.model.get_voice_se_model_path(self.speaker)
--> 205 self.audio_data_preprocessor(self.raw_dataset_path, self.data_dir,
    206                              audio_config, self.speaker,
    207                              self.lang_type, self.skip_script,
    208                              se_model)
File /opt/conda/lib/python3.8/site-packages/modelscope/preprocessors/tts.py:36, in KanttsDataPreprocessor.__call__(self, data_dir, output_dir, audio_config_path, speaker_name, target_lang, skip_script, se_model)
     28 def __call__(self,
     29              data_dir,
     30              output_dir,
   (...)
     34              skip_script=False,
     35              se_model=None):
---> 36     self.do_data_process(data_dir, output_dir, audio_config_path,
     37                          speaker_name, target_lang, skip_script, se_model)
File /opt/conda/lib/python3.8/site-packages/modelscope/preprocessors/tts.py:56, in KanttsDataPreprocessor.do_data_process(self, datadir, outputdir, audio_config, speaker_name, targetLang, skip_script, se_model)
     53 if not os.path.exists(audio_config):
     54     raise TtsDataPreprocessorAudioConfigNotExistsException(
     55         'Preprocessor: audio config not exists')
---> 56 process_data(datadir, outputdir, audio_config, speaker_name,
     57              targetLang, skip_script, se_model)
File /opt/conda/lib/python3.8/site-packages/kantts/preprocess/data_process.py:198, in process_data(voice_input_dir, voice_output_dir, audio_config, speaker_name, targetLang, skip_script, se_model, split_ratio)
    196 if se_enable:
    197     sep = SpeakerEmbeddingProcessor()
--> 198     sep.process(
    199         voice_output_dir,
    200         se_model,
    201     )
    202 logging.info("Processing speaker embedding done.")
    204 logging.info("Processing done.")
File /opt/conda/lib/python3.8/site-packages/kantts/preprocess/se_processor/se_processor.py:67, in SpeakerEmbeddingProcessor.process(self, src_voice_dir, se_onnx)
     65 opts = onnxruntime.SessionOptions()
     66 opts.intra_op_num_threads = 1
---> 67 sess = onnxruntime.InferenceSession(se_onnx, sess_options=opts)
     69 wav_dir = os.path.join(src_voice_dir, "wav")
     70 se_dir = os.path.join(src_voice_dir, "se")
File /opt/conda/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py:383, in InferenceSession.__init__(self, path_or_bytes, sess_options, providers, provider_options, **kwargs)
    380 disabled_optimizers = kwargs["disabled_optimizers"] if "disabled_optimizers" in kwargs else None
    382 try:
--> 383     self._create_inference_session(providers, provider_options, disabled_optimizers)
    384 except (ValueError, RuntimeError) as e:
    385     if self._enable_fallback:
File /opt/conda/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py:424, in InferenceSession._create_inference_session(self, providers, provider_options, disabled_optimizers)
    422 session_options = self._sess_options if self._sess_options else C.get_default_session_options()
    423 if self._model_path:
--> 424     sess = C.InferenceSession(session_options, self._model_path, True, self._read_config_from_model)
    425 else:
    426     sess = C.InferenceSession(session_options, self._model_bytes, False, self._read_config_from_model)
InvalidProtobuf: [ONNXRuntimeError] : 7 : INVALID_PROTOBUF : Load model from ./pretrain_work_dir/orig_model/basemodel_16k/speaker_embedding/se.onnx failed:Protobuf parsing failed.


参考回答:

确认您的输入数据是否符合 ONNX 格式。ONNX 格式要求输入数据为 Tensor 类型,并且需要指定正确的形状和数据类型。您可以使用以下代码检查您的输入数据:

python

Copy

import torch

import numpy as np

假设您的输入数据为 input_data

input_data = np.random.rand(1, 3, 224, 224) # 假设输入形状为 (1, 3, 224, 224)

input_tensor = torch.from_numpy(input_data).float() # 将 numpy 数组转换为 PyTorch 张量,并指定数据类型为 float

输出张量的形状和数据类型

print(input_tensor.shape)

print(input_tensor.dtype)

如果您的输入数据不符合要求,请根据您的具体情况进行修改。
检查您的模型是否符合 ONNX 格式。您可以使用 PyTorch 提供的 torch.onnx.export() 函数将 PyTorch 模型导出为 ONNX 格式,并使用 ONNX 官方提供的工具检查导出的 ONNX 模型是否符合规范。例如,您可以使用以下命令检查模型是否符合规范:
bash
Copy
onnx-check model.onnx

其中 model.onnx 是您导出的 ONNX 模型文件名。如果模型不符合规范,则需要修改模型代码以确保其符合规范。

确认您使用的 ONNX 运行时是否正确安装。您可以通过以下命令检查 ONNX 运行时是否正确安装:

python

Copy

import onnxruntime

检查 ONNX 运行时版本

print(onnxruntime.version)

创建 ONNX 运行时会话

sess = onnxruntime.InferenceSession('model.onnx')

```

其中 'model.onnx' 是您导出的 ONNX 模型文件名。如果 ONNX 运行时没有正确安装,则需要重新安装 ONNX 运行时。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/526223?spm=a2c6h.14164896.0.0.73612605SRfTl1


问题二:请问,ModelScope文档上的镜像要怎么使用?镜像已pull下来,怎么用起来呢?


请问,ModelScope文档上的镜像要怎么使用? 镜像已pull下来,怎么用起来呢?


参考回答:

docker run


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/512685?spm=a2c6h.14164896.0.0.73612605SRfTl1


问题三:docker desktop 中如何使用ModelScope官方镜像? 谢谢


docker desktop 中如何使用ModelScope官方镜像? 谢谢


参考回答:

docker run registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope -d docker ps 找到 container_id docker exec -it container_id bash 进入。 或者前往notebook直接使用,方便快捷


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/493602?spm=a2c6h.14164896.0.0.73612605SRfTl1


问题四:你好,自己服务器上面如何使用你们给的ModelScope官方镜像?


你好,自己服务器上面如何使用你们给的ModelScope官方镜像?


参考回答:

如果您想在自己的服务器上使用 ModelScope 官方镜像,可以按照以下步骤进行操作:

在您的服务器上安装 Docker,如果您已经安装了 Docker,可以跳过此步骤。
下载 ModelScope 官方镜像。您可以在 ModelScope 的官方网站上找到官方镜像的下载链接,例如:

docker pull modelscope/modelscope:latest

运行 ModelScope 官方镜像。您可以使用以下命令来启动 ModelScope 官方镜像:

docker run -it --rm -p 8080:8080 modelscope/modelscope:latest

其中,-p 参数用于将容器内部的端口映射到主机上的端口,可以根据需要进行调整。例如,如果您想将容器内部的 8080 端口映射到主机上的 8888 端口,可以使用以下命令:

docker run -it --rm -p 8888:8080 modelscope/modelscope:latest

访问 ModelScope。启动容器后,您可以在浏览器中访问 ModelScope 的 Web 界面,例如 http://localhost:8080。在 Web 界面中,您可以上传模型、运行模型评估、查看模型性能等。

需要注意的是,如果您使用的是自己的服务器,可能需要对防火墙和网络配置进行调整,以确保 ModelScope 的正常运行。另外,如果您需要在多台服务器上使用 ModelScope,可以考虑使用 Docker Swarm 或 Kubernetes 等容器编排工具,以实现分布式部署和管理。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/497292?spm=a2c6h.14164896.0.0.73612605SRfTl1

相关文章
|
6月前
|
缓存 自然语言处理 物联网
LLama Factory+ModelScope实战——使用 Web UI 进行监督微调
LLaMA Factory 是一个高效的大语言模型训练和推理框架,它通过提供一站式的 Web UI 界面和集成多种训练方法,简化了大模型的微调过程,并能够适配多种开源模型。
|
自然语言处理 数据格式
【DSW Gallery】基于ModelScope的中文GPT-3模型(1.3B)的微调训练
本文基于ModelScope,以GPT-3(1.3B)为例介绍如何使用ModelScope-GPT3进行续写训练与输入输出形式的训练,训练方式不需要额外指定,训练数据集仅包含 src_txt 时会进行续写训练,同时包含 src_txt 和 tgt_txt 时会进行输入输出形式的训练。
【DSW Gallery】基于ModelScope的中文GPT-3模型(1.3B)的微调训练
|
6月前
|
语音技术 开发工具 git
要进行ModelScope-Funasr实时ASR的微调,您可以按照以下步骤操作:
要进行ModelScope-Funasr实时ASR的微调,您可以按照以下步骤操作:
620 5
|
6月前
modelscope-funasr怎么拿验证集评估微调后的模型效果呢
【2月更文挑战第19天】modelscope-funasr怎么拿验证集评估微调后的模型效果呢
85 1
|
6月前
|
数据采集 机器学习/深度学习 算法
modelscope问题之m-plug微调训练自己的模型如何解决
ModelScope训练是指在ModelScope平台上对机器学习模型进行训练的活动;本合集将介绍ModelScope训练流程、模型优化技巧和训练过程中的常见问题解决方法。
226 0
|
6月前
|
数据采集 自然语言处理
在ModelScope中进行情感分析模型的微调
在ModelScope中进行情感分析模型的微调
140 4
|
6月前
|
自然语言处理
在ModelScope中,你可以通过设置模型的参数来控制输出的阈值
在ModelScope中,你可以通过设置模型的参数来控制输出的阈值
147 1
|
6月前
|
API 语音技术
ModelScope-FunASR**有支持热词又支持时间戳的模型**。
【2月更文挑战第30天】ModelScope-FunASR**有支持热词又支持时间戳的模型**。
207 2
|
6月前
|
人工智能 API 决策智能
Modelscope结合α-UMi:基于Modelscope的多模型协作Agent
基于单个开源小模型的工具调用Agent,由于模型容量和预训练能力获取的限制,无法在推理和规划、工具调用、回复生成等任务上同时获得比肩大模型等性能。
|
6月前
|
文字识别 并行计算 语音技术
ModelScope问题之下载模型文件报错如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
783 3