如何无需猜测快照哈希加载通过snapshot_download下载的Hugging Face模型
无需指定快照哈希加载本地Hugging Face模型的方法
你可以通过以下几种方式避免手动指定快照哈希路径,直接加载本地已下载的模型:
方法1:利用from_pretrained的cache_dir参数自动匹配
只要保持cache_dir和你使用snapshot_download时的路径一致,from_pretrained会自动在缓存目录中查找对应模型的快照,无需手动拼接哈希路径:
from transformers import AutoModelForSeq2SeqLM model = AutoModelForSeq2SeqLM.from_pretrained( "facebook/nllb-200-distilled-600M", cache_dir="./", # 与snapshot_download的cache_dir保持一致 local_files_only=True # 强制仅从本地加载,避免联网请求 )
方法2:创建软链简化路径
在模型根目录下创建一个指向快照哈希目录的软链,后续直接通过软链路径加载模型:
第一步:创建软链(命令行执行)
cd ./models--facebook--nllb-200-distilled-600M ln -s snapshots/bf317ec0a4a31fc9fa3da2ce08e86d3b6e4b18f1 current
第二步:通过软链路径加载模型
from transformers import AutoModelForSeq2SeqLM model = AutoModelForSeq2SeqLM.from_pretrained( "./models--facebook--nllb-200-distilled-600M/current/", local_files_only=True )
方法3:使用huggingface_hub的get_local_dir自动获取路径
借助get_local_dir方法自动解析缓存目录中的模型路径,无需手动处理哈希:
from huggingface_hub import get_local_dir from transformers import AutoModelForSeq2SeqLM repo_id = "facebook/nllb-200-distilled-600M" # 获取模型在本地缓存中的目录路径 local_model_dir = get_local_dir(repo_id, cache_dir="./") model = AutoModelForSeq2SeqLM.from_pretrained(local_model_dir, local_files_only=True)
内容的提问来源于stack exchange,提问作者alvas
相关产品推荐
相关产品推荐

