除了pipeline,还有别的ModelScope方式可以用于推理吗?
除了使用 Pipeline 方式进行推理外,ModelScope 还支持其他方式进行模型推理。以下是几种常见的推理方式及其详细说明:
ModelScope 支持将模型部署为在线服务,并通过 API 接口进行推理调用。这种方式适用于需要集成到生产环境或与其他系统交互的场景。
部署模型服务:
获取服务访问信息:
service_url
)和服务 Token(token
)。发送推理请求:
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) # 输出模型推理结果
验证返回结果:
对于某些场景化模型,ModelScope 提供了 WebUI 调用方式,用户可以通过图形化界面直接测试模型效果。
部署模型服务:
启动WebUI:
查看结果:
如果不想依赖在线服务,也可以直接在本地环境中加载 ModelScope 模型并进行推理。
安装ModelScope SDK:
pip install -U 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']) # 输出图片向量
ModelScope 模型可以部署在 Kubernetes 集群中(如阿里云 ACK),并通过容器化方式进行推理。
部署推理服务:
arena
工具在 ACK 中部署 ModelScope 模型。arena serve submit \
--name=modelscope \
--image=registry.cn-beijing.aliyuncs.com/modelscope-repo/modelscope:latest \
--gpus=1 \
--port=8000
验证服务状态:
arena serve get modelscope
发送推理请求:
curl -XPOST http://localhost:8000/generate \
-H "Content-Type: application/json" \
-d '{"text_input": "什么是人工智能?", "parameters": {"temperature": 0.9}}'
对于特定任务(如图片检索),可以结合 ModelScope 和 DashVector 进行向量转换与检索。
初始化ModelScope管道:
示例代码如下:
from modelscope.pipelines import pipeline
product_embedding = pipeline(
Tasks.product_retrieval_embedding,
model='damo/cv_resnet50_product-bag-embedding-models'
)
创建DashVector集合:
示例代码如下:
from dashvector import Client
client = Client(api_key='YOUR_API_KEY', endpoint='YOUR_ENDPOINT')
client.create('resnet50-embedding', dimension=512)
插入向量并检索:
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 的能力。