示范程序:
from modelscope.pipelines import pipeline
word_segmentation = pipeline('word-segmentation')
会将 【damo\nlp_structbert_word-segmentation_chinese-base】模型自动下载到
【C:\Users\fspqf.cache\modelscope\hub\damo\nlp_structbert_word-segmentation_chinese-base】 文件夹下。
问题1:
如何让 pipeline() 把模型下载到本地指定文件夹?例如我希望下载到【e:\modelscope\model\】文件夹下,该如何写代码?
问题2:
如果解决了问题1,那么下载到了制定本地文件夹的模型,我如何使用 pipeline() 载入和调用?
问题1:
要让 pipeline() 将模型下载到本地指定文件夹,可以在创建 pipeline 时传入 model_dir
参数。例如,将模型下载到 "e:\modelscope\model\" 文件夹下,可以这样写代码:
from modelscope.pipelines import pipeline
word_segmentation = pipeline('word-segmentation', model_dir='e:\\modelscope\\model\\')
问题2:
如果已经将模型下载到了指定的本地文件夹,可以使用相同的方法创建 pipeline,只需确保 model_dir
参数指向正确的文件夹即可。例如:
from modelscope.pipelines import pipeline
word_segmentation = pipeline('word-segmentation', model_dir='e:\\modelscope\\model\\')
在ModelScope(魔搭)中,要自定义模型下载路径,可以通过设置环境变量来实现。具体做法如下:
问题1 解答:
在调用ModelScope的pipeline之前,设置MODELSCOPE_CACHE
环境变量指向你希望模型下载到的本地文件夹路径:
import os
import modelscope
# 设置模型缓存路径
os.environ['MODELSCOPE_CACHE'] = 'e:/modelscope/model/'
# 然后加载模型
from modelscope.pipelines import pipeline
word_segmentation = pipeline('word-segmentation')
这样一来,下载的模型将会保存到你指定的e:/modelscope/model/
目录下。
问题2 解答:
一旦模型按照指定路径下载,当你再次调用pipeline()
时,ModelScope会优先检查缓存目录下是否存在模型文件,如果存在,则直接从指定的本地路径加载模型,无需再次下载。所以,设置好环境变量后,按照正常的流程调用pipeline()
即可:
# 已经设置了环境变量 MODELSCOPE_CACHE 后
word_segmentation = pipeline('word-segmentation')
# 使用模型进行分词
result = word_segmentation("你好,世界")
print(result)
这样就能直接从e:/modelscope/model/
目录下加载模型并进行使用。当然,前提是你之前已经通过上述方式下载过模型,否则首次调用时还是会尝试从网络下载模型。
ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352