开发者社区 > ModelScope模型即服务 > 正文

get_sentence_embedding用到GPU了吗

示例代码

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks


pipeline_ins = pipeline(
    Tasks.faq_question_answering,
    'damo/nlp_structbert_faq-question-answering_chinese-base',
    device='cuda'
)

pipeline_ins.get_sentence_embedding(['你好'])

执行时没发现gpu的占用

展开
收起
鸡蛋灌饼加里脊 2023-12-12 11:56:16 67 0
1 条回答
写回答
取消 提交回答
  • 在你提供的示例代码中,get_sentence_embedding方法的实现并没有明确指出是否使用了GPU。然而,从你指明device='cuda'这一点来看,它应该尝试使用CUDA设备(通常是NVIDIA GPU)进行计算。如果执行时没有发现GPU占用,可能有以下原因:

    1. 模型不支持GPU:

      • 虽然你在创建管道实例时指定了使用CUDA设备,但具体使用的模型可能会忽略这个设置。
      • 如果模型本身没有针对GPU优化,或者模型库中的实现不支持GPU,那么即使指定了CUDA设备,也可能不会看到GPU占用。
    2. 环境配置问题:

      • 确保你的系统正确安装了CUDA和CuDNN,并且与你的PyTorch版本兼容。
      • 检查torch.cuda.is_available()返回的结果,以确保你的Python环境能够访问CUDA设备。
    3. 资源限制:

      • 如果GPU内存不足,或者已经被其他进程占用,模型可能无法在GPU上运行。
      • 使用nvidia-smi命令检查当前的GPU状态,包括已分配的内存、正在运行的进程等。
    4. 代码错误或优化问题:

      • 有时,尽管模型可以使用GPU,但是在某些情况下可能由于错误或性能优化问题导致GPU利用率较低。
      • 在这种情况下,你可能需要查看模型的源代码,或者联系模型开发者的社区寻求帮助。

    为了确定get_sentence_embedding是否实际使用了GPU,你可以尝试以下操作:

    • 使用torch.cuda.current_device()torch.cuda.get_device_name()来检查当前使用的设备和设备名称。
    • 监视GPU使用情况,例如通过nvidia-smi或类似的工具来观察GPU在调用get_sentence_embedding时是否有活动。
    • 如果可能的话,查看模型的源代码或文档,了解其对硬件加速的支持情况。
    2023-12-12 14:38:29
    赞同 展开评论 打赏

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载