通义千问,源码安装https://github.com/modelscope/modelscope.git
创建多模态视觉定位任务失败,代码和错误信息如下
visual_det = pipeline('visual-grounding')
Traceback (most recent call last):
File "test.py", line 18, in <module>
visual_det = pipeline('visual-grounding')
File "/workspace/modelscope/modelscope/pipelines/builder.py", line 133, in pipeline
pipeline_name, default_model_repo = get_default_pipeline_info(task)
File "/workspace/modelscope/modelscope/pipelines/builder.py", line 182, in get_default_pipeline_info
pipeline_name = list(PIPELINES.modules[task].keys())[0]
KeyError: 'visual-grounding'
根据官方文档,该功能是支持的。但源码中pipeline中有该任务名称,Tasks中没有涵盖该功能。请问该功能是否可用?是调用方式有问题还是不支持?
根据您提供的错误信息和描述,问题的核心在于调用 pipeline('visual-grounding')
时出现了 KeyError: 'visual-grounding'
的错误。这表明在源码中,Tasks
模块未正确注册或支持 visual-grounding
任务,尽管官方文档声称该功能是支持的。
以下是针对问题的详细分析和解决方案:
错误原因
错误信息显示,get_default_pipeline_info
函数尝试从 PIPELINES.modules[task]
中获取 visual-grounding
任务的相关信息,但未能找到对应的键值。这表明:
visual-grounding
任务可能未在 Tasks
模块中注册。可能的原因
modelscope
源码版本可能较旧,尚未包含对 visual-grounding
任务的支持。首先,检查您安装的 modelscope
源码版本是否为最新版本。可以通过以下命令查看:
git rev-parse HEAD
然后,对比 GitHub 仓库的最新提交记录,确保您的本地代码是最新的。如果版本较旧,请更新代码:
git pull origin master
检查 Tasks
模块是否包含 visual-grounding
任务。打开文件 /workspace/modelscope/modelscope/pipelines/builder.py
,查找 PIPELINES.modules
的定义部分,确认是否存在 visual-grounding
的注册信息。如果没有,说明该任务尚未被正式支持。
如果确认 visual-grounding
功能已实现但未注册,可以尝试手动添加注册信息。例如,在 builder.py
文件中添加以下内容:
PIPELINES.modules['visual-grounding'] = {
'default': 'your_model_name', # 替换为实际模型名称
}
保存后重新运行代码。
多模态任务通常依赖特定的模型和数据集。请确保以下条件满足: - 已正确安装所有依赖项(如 torch
, transformers
等)。 - 下载并配置了支持 visual-grounding
的预训练模型。
如果上述方法无效,建议参考官方文档中的示例代码,确保调用方式正确。例如:
from modelscope.pipelines import pipeline
visual_det = pipeline('visual-grounding', model='damo/cv_resnet50_visual-grounding')
result = visual_det(input='example_input')
print(result)
注意:model
参数需要替换为实际支持的模型名称。
如果以上方法仍无法解决问题,建议采取以下措施: 1. 提交 Issue
在 ModelScope GitHub 仓库 提交 Issue,详细描述问题并附上错误日志和代码片段。
通过以上步骤,您可以逐步排查并解决 visual-grounding
任务调用失败的问题。如果仍有疑问,请提供更多上下文信息以便进一步分析。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。