ModelScope魔塔能够像 huggingface 一样,在本地调用远程仓库中的模型吗?model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
就像这个一样
很抱歉,据我所知,ModelScope并没有直接支持像Hugging Face Transformers那样,直接在本地调用远程仓库中的模型。它的设计思路是用户首先在云端创建模型任务,然后在本地或其他设备上提交请求以使用该模型。在这种模式下,用户无需下载模型和tokenizer,而是直接调用ModelScope的API进行远程调用,进而使用模型。
不过,根据ModelScope的设计理念,它是致力于简化模型的使用流程,以便于降低AI开发者的门槛,让AI变得更加容易普及。因此,它倾向于提供更加易用、便于管理的接口,而非追求最大限度的灵活性。
因此,即使不能直接在本地调用远程仓库中的模型,但它在提供了一系列方便的工具和接口来帮助用户轻松地使用各种机器学习模型。同时,由于ModelScope采用了阿里云的基础设施,因此在安全性、稳定性等方面也有一定的保障。
是的,可以通过 load
函数来调用 ModelScope 中的模型。请参考以下代码:
from models import load
model = load("models://model-name")
input = ... # 准备输入数据
with torch.no_grad():
output = model.forward(input)
# 输出结果
print(output)
这个方法将会自动加载 ModelScope 中的模型和相关配置,而无需再指定其框架。
ModelScope本身并不直接支持直接从远程仓库加载模型。但是,你可以通过以下步骤来实现类似的功能:
首先,你需要在你的本地环境中下载并保存远程仓库中的模型文件。这可以通过wget
或git clone
等命令完成。
然后,你可以使用ModelScope的load_model
函数来加载你下载的模型文件。
最后,你可以使用ModelScope的pipeline
函数来处理输入数据。
以下是一个示例代码:
import os
import requests
# 下载模型文件
url = "https://github.com/your_username/your_repository/raw/main/path_to_model_file"
response = requests.get(url, allow_redirects=True)
open("path_to_save_model_file", "wb").write(response.content)
# 加载模型文件
from modelscope.modelscope_pb2 import ModelScopeMessage
model_scope_message = ModelScopeMessage()
with open("path_to_save_model_file", "rb") as f:
model_scope_message.ParseFromString(f.read())
# 创建pipeline实例
from modelscope.pipelines import pipeline
pipeline_ins = pipeline(task="your_task", model=model_scope_message)
# 处理输入数据
inputs = {"input": "your_input"}
outputs = pipeline_ins(input=inputs)
首次调用会下载,后面会使用缓存中的。https://modelscope.cn/docs/%E5%8A%A0%E8%BD%BD%E6%A8%A1%E5%9E%8B%E5%92%8C%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8,此回答整理自钉群“魔搭ModelScope开发者联盟群 ①”