通义千问:pipeline 任务支持visual_grounding功能吗?

通义千问,源码安装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中没有涵盖该功能。请问该功能是否可用?是调用方式有问题还是不支持?

展开
收起
viera 2023-09-07 15:42:02 182 分享 版权
阿里云 AI 助理回答

根据您提供的错误信息和描述,问题的核心在于调用 pipeline('visual-grounding') 时出现了 KeyError: 'visual-grounding' 的错误。这表明在源码中,Tasks 模块未正确注册或支持 visual-grounding 任务,尽管官方文档声称该功能是支持的。

以下是针对问题的详细分析和解决方案:


1. 问题分析

  • 错误原因
    错误信息显示,get_default_pipeline_info 函数尝试从 PIPELINES.modules[task] 中获取 visual-grounding 任务的相关信息,但未能找到对应的键值。这表明:

    • visual-grounding 任务可能未在 Tasks 模块中注册。
    • 或者,源码安装的版本与官方文档描述的功能不一致。
  • 可能的原因

    1. 版本不匹配:您安装的 modelscope 源码版本可能较旧,尚未包含对 visual-grounding 任务的支持。
    2. 调用方式问题:即使功能存在,调用方式可能不符合当前代码实现的要求。
    3. 文档滞后:官方文档可能未及时更新,导致描述的功能与实际代码实现不一致。

2. 解决方案

步骤 1:确认源码版本

首先,检查您安装的 modelscope 源码版本是否为最新版本。可以通过以下命令查看:

git rev-parse HEAD

然后,对比 GitHub 仓库的最新提交记录,确保您的本地代码是最新的。如果版本较旧,请更新代码:

git pull origin master

步骤 2:验证任务注册

检查 Tasks 模块是否包含 visual-grounding 任务。打开文件 /workspace/modelscope/modelscope/pipelines/builder.py,查找 PIPELINES.modules 的定义部分,确认是否存在 visual-grounding 的注册信息。如果没有,说明该任务尚未被正式支持。

步骤 3:手动注册任务(可选)

如果确认 visual-grounding 功能已实现但未注册,可以尝试手动添加注册信息。例如,在 builder.py 文件中添加以下内容:

PIPELINES.modules['visual-grounding'] = {
    'default': 'your_model_name',  # 替换为实际模型名称
}

保存后重新运行代码。

步骤 4:检查依赖项

多模态任务通常依赖特定的模型和数据集。请确保以下条件满足: - 已正确安装所有依赖项(如 torch, transformers 等)。 - 下载并配置了支持 visual-grounding 的预训练模型。

步骤 5:参考官方示例

如果上述方法无效,建议参考官方文档中的示例代码,确保调用方式正确。例如:

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 参数需要替换为实际支持的模型名称。


3. 官方支持与反馈

如果以上方法仍无法解决问题,建议采取以下措施: 1. 提交 Issue
在 ModelScope GitHub 仓库 提交 Issue,详细描述问题并附上错误日志和代码片段。

  1. 联系技术支持
    如果您使用的是阿里云相关服务,可以通过官方渠道联系技术支持团队,提供详细的错误信息和环境配置。

4. 重要提醒

  • 版本一致性:确保本地代码版本与官方文档描述的功能一致。
  • 依赖完整性:多模态任务通常依赖复杂的模型和数据集,请仔细检查所有依赖项是否正确安装。
  • 文档滞后风险:官方文档可能存在滞后性,建议优先参考源码实现。

通过以上步骤,您可以逐步排查并解决 visual-grounding 任务调用失败的问题。如果仍有疑问,请提供更多上下文信息以便进一步分析。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

包含图像描述、文本生成图片、版面分析、多模态表征、视觉问答、文档理解等多个领域

热门讨论

热门文章

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