除了pipeline,还有别的ModelScope方式可以用于推理吗?

除了pipeline,还有别的ModelScope方式可以用于推理吗?

展开
收起
小小爱吃香菜 2024-01-22 17:20:06 98 分享 版权
阿里云 AI 助理回答

除了使用 Pipeline 方式进行推理外,ModelScope 还支持其他方式进行模型推理。以下是几种常见的推理方式及其详细说明:


1. 通过API接口调用模型服务

ModelScope 支持将模型部署为在线服务,并通过 API 接口进行推理调用。这种方式适用于需要集成到生产环境或与其他系统交互的场景。

调用步骤:

  1. 部署模型服务

    • 在阿里云 PAI-EAS(弹性算法服务)平台上部署 ModelScope 模型。
    • 配置服务名称、镜像、环境变量和资源规格(如 GPU 实例)。
    • 确保服务状态变为“运行中”。
  2. 获取服务访问信息

    • 在 EAS 控制台中,获取服务的访问地址(service_url)和服务 Token(token)。
  3. 发送推理请求

    • 使用 Python 的 requests 库或其他 HTTP 客户端发送 POST 请求。
    • 示例代码如下:

      import requests
      import json
      
      service_url = 'YOUR_SERVICE_URL'
      token = 'YOUR_SERVICE_TOKEN'
      
      request_data = {"input": {"text": "Deploying ModelScope models on PAI-EAS is simple and easy to use"}}
      resp = requests.post(service_url,
                        headers={"Authorization": token},
                        data=json.dumps(request_data))
      
      print(resp.text)  # 输出模型推理结果
      
  4. 验证返回结果

    • 返回结果通常为 JSON 格式,包含模型的输出内容。

2. 通过WebUI调用模型服务

对于某些场景化模型,ModelScope 提供了 WebUI 调用方式,用户可以通过图形化界面直接测试模型效果。

调用步骤:

  1. 部署模型服务

    • 在 PAI-EAS 平台上完成模型部署。
  2. 启动WebUI

    • 在 EAS 控制台中,单击目标服务的“查看Web应用”按钮。
    • 打开 WebUI 页面后,在左侧输入测试数据,点击“执行测试”。
  3. 查看结果

    • 测试结果会显示在右侧文本框中,同时展示输入输出的 Schema 和实际数据内容。

3. 通过本地推理脚本调用

如果不想依赖在线服务,也可以直接在本地环境中加载 ModelScope 模型并进行推理。

调用步骤:

  1. 安装ModelScope SDK

    • 使用以下命令安装最新版 ModelScope SDK:
      pip install -U modelscope
      
  2. 加载模型并推理

    • 使用 ModelScope 提供的 pipeline 或直接加载模型权重进行推理。
    • 示例代码如下:

      from modelscope.pipelines import pipeline
      from modelscope.utils.constant import Tasks
      
      # 初始化推理管道
      product_embedding = pipeline(
       Tasks.product_retrieval_embedding,
       model='damo/cv_resnet50_product-bag-embedding-models'
      )
      
      # 输入图片URL并生成向量
      img_url = 'https://example.com/test_image.jpg'
      result = product_embedding(img_url)
      print(result['img_embedding'])  # 输出图片向量
      

4. 通过容器化部署调用

ModelScope 模型可以部署在 Kubernetes 集群中(如阿里云 ACK),并通过容器化方式进行推理。

调用步骤:

  1. 部署推理服务

    • 使用 arena 工具在 ACK 中部署 ModelScope 模型。
    • 示例命令如下:
      arena serve submit \
      --name=modelscope \
      --image=registry.cn-beijing.aliyuncs.com/modelscope-repo/modelscope:latest \
      --gpus=1 \
      --port=8000
      
  2. 验证服务状态

    • 使用以下命令查看服务状态:
      arena serve get modelscope
      
  3. 发送推理请求

    • 建立端口转发后,通过 HTTP 请求调用模型服务:
      curl -XPOST http://localhost:8000/generate \
        -H "Content-Type: application/json" \
        -d '{"text_input": "什么是人工智能?", "parameters": {"temperature": 0.9}}'
      

5. 通过DashVector结合ModelScope进行向量检索

对于特定任务(如图片检索),可以结合 ModelScope 和 DashVector 进行向量转换与检索。

调用步骤:

  1. 初始化ModelScope管道

    • 加载预训练模型并生成图片向量。
    • 示例代码如下:

      from modelscope.pipelines import pipeline
      
      product_embedding = pipeline(
       Tasks.product_retrieval_embedding,
       model='damo/cv_resnet50_product-bag-embedding-models'
      )
      
  2. 创建DashVector集合

    • 使用 DashVector SDK 创建集合并将向量入库。
    • 示例代码如下:

      from dashvector import Client
      
      client = Client(api_key='YOUR_API_KEY', endpoint='YOUR_ENDPOINT')
      client.create('resnet50-embedding', dimension=512)
      
  3. 插入向量并检索

    • 插入图片向量并进行相似性检索:
      collection.insert(('ID1', generate_embeddings(img_url)))
      docs = collection.query(generate_embeddings(img_url))
      print(docs)
      

总结

除了 Pipeline 方式,ModelScope 还支持以下推理方式: 1. API接口调用:适用于生产环境集成。 2. WebUI调用:适合快速测试和验证。 3. 本地推理脚本:无需在线服务,适合离线场景。 4. 容器化部署:适合大规模分布式推理。 5. 结合DashVector:适合向量检索类任务。

根据具体需求选择合适的推理方式,确保高效利用 ModelScope 的能力。

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

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

热门讨论

热门文章

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