snapshot_download用来下载模型文件,可以设置一些参数,让下载更容易。
snapshot_download(model_id: str, #模型名称
revision: Optional[str] = None, #版本
cache_dir: Union[str, pathlib.Path, NoneType] = None,
user_agent: Union[Dict, str, NoneType] = None,
local_files_only: Optional[bool] = False, #不下载只返回本地路径,如果有的话
cookies: Optional[http.cookiejar.CookieJar] = None,
ignore_file_pattern: Union[str, List[str], NoneType] = None, #忽略下载的文件
allow_file_pattern: Union[str, List[str], NoneType] = None, #允许下载的文件
local_dir: Optional[str] = None, #本地存储路径
allow_patterns: Union[str, List[str], NoneType] = None, #同allow_file_pattern ,兼容hugging-face
ignore_patterns: Union[str, List[str], NoneType] = None) -> str #同ignore_file_pattern ,兼容hugging-face
参数:
- model_id :模型名称
- revision :版本
- cache_dir
- user_agent
- local_files_only :不下载只返回本地路径,如果有的话
- cookies
- ignore_file_pattern :忽略下载的文件
- allow_file_pattern :允许下载的文件
- local_dir :本地存储路径
- allow_patterns :同allow_file_pattern ,兼容hugging-face
- ignore_patterns :同ignore_file_pattern ,兼容hugging-face
设置 cache_dir ,则按照默认的 ”cache_dir/model_id/THE_MODEL_FILES“ 保存。
设置 local_dir ,则直接保存在该路径下,cache_dir 被忽略。
只下载需要的文件,可以节省流量、存储空间和时间。
模型仓库下可能会有各种不同格式的model,包括safetensors、bin、h5、msgpack等,可以使用ignore_file_pattern 指定忽略的文件,或者allow_file_pattern 指定允许的文件。
#只下载safetensors
from modelscope import snapshot_download
model_dir = snapshot_download('AI-ModelScope/bert-base-cased',
ignore_file_pattern=['*.bin',"*.msgpack","*.h5"])
如果只下载某一个文件
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('AI-ModelScope/stable-diffusion-xl-base-1.0',allow_file_pattern=["sd_xl_base_1.0.safetensors"])
如果要下载的文件有重名文件,但是在不同的文件夹下,可以在文件名前加上路径。
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('hf-diffusers/stable-diffusion-xl-1.0-inpainting-0.1',allow_file_pattern=["unet/diffusion_pytorch_model.fp16.safetensors"])
使用命令行下载
下载整个模型repo(到默认cache地址)
modelscope download --model 'Qwen/Qwen2-7b'
下载整个模型repo到指定目录
modelscope download --model 'Qwen/Qwen2-7b' --local_dir 'path/to/dir'
指定下载单个文件(以’tokenizer.json’文件为例)
modelscope download --model 'Qwen/Qwen2-7b' tokenizer.json
指定下载多个个文件
modelscope download --model 'Qwen/Qwen2-7b' tokenizer.json config.json
指定下载某些文件
modelscope download --model 'Qwen/Qwen2-7b' --include '*.safetensors'
过滤指定文件
modelscope download --model 'Qwen/Qwen2-7b' --exclude '*.safetensors'
指定下载cache_dir。(模型文件将被下载在’cache_dir/Qwen/Qwen2-7b’)
modelscope download --model 'Qwen/Qwen2-7b' --include '*.json' --cache_dir './cache_dir'
指定下载local_dir。(模型文件将被下载在’./local_dir’)
modelscope download --model 'Qwen/Qwen2-7b' --include '*.json' --local_dir './local_dir'
如果cache_dir和local_dir参数同时被指定,local_dir优先级高,cache_dir将被忽略