从huggingface上自动下载所需要的nlp模型,再也不用手动下载了

文章介绍了如何通过编写Python代码自动从Huggingface平台下载NLP模型和tokenizer到本地,避免手动操作,提高效率。提供的代码示例展示了使用transformers库的AutoModel和AutoTokenizer函数实现模型及tokenizer的保存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

起因

在做nlp任务时,很多时候我们需要把模型下载到本地,然后在代码中指定路径去加载。遇到这种情况,我之前都是去huggingface上手动下载,一个一个点,感觉非常的麻烦。于是想办法能不能有个自动化下载的方法,查阅了很多发现都不怎么有用。于是问了chatgpt,有了答案。

解决方案

代码如下:

def download_hf_model_to_dir(model_name, save_dir):
    """
    下载huggingface上的文件到本地文件
    :param model_name: 指定模型文件名,huggingface上的名字 如 bert-base-uncased
    :param save_dir:  存到本地的文件夹路径。
    :return: 
    """
    from transformers import AutoModel, AutoTokenizer
    
    model = AutoModel.from_pretrained(model_name)
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    
    model.save_pretrained(save_dir)
    tokenizer.save_pretrained(save_dir)
    print(f"{model_name} 已经下载完毕,已保存至{save_dir}")

### 使用 Python 从 Hugging Face 下载模型权重 为了通过 Python 脚本下载 Hugging Face 提供的预训练模型权重,可以利用 `transformers` 库中的功能。以下是实现方法的具体说明: #### 方法一:使用代理设置 如果网络环境无法直接访问 Hugging Face 的官方资源库,则可以通过配置代理来解决连接问题。代码如下所示: ```python from transformers import AutoModelForSequenceClassification, AutoTokenizer model_name = "distilbert-base-uncased-finetuned-sst-2-english" proxies = { "http": "http://your_proxy_address:port", "https": "http://your_proxy_address:port" } model = AutoModelForSequenceClassification.from_pretrained(model_name, proxies=proxies)[^2] tokenizer = AutoTokenizer.from_pretrained(model_name, proxies=proxies) ``` #### 方法二:使用国内镜像站点 对于更高效的下载体验或者在网络受限的情况下,推荐使用国内镜像站点作为替代方案。具体操作方式如下: ```python from transformers import AutoModelForSequenceClassification, AutoTokenizer mirror_url = "https://mirrors.cloud.tencent.com/hugging-face-models/" model_name_with_mirror = mirror_url + "distilbert-base-uncased-finetuned-sst-2-english" model = AutoModelForSequenceClassification.from_pretrained(model_name_with_mirror)[^1] tokenizer = AutoTokenizer.from_pretrained(model_name_with_mirror) ``` 此方法能够显著提升下载速度并减少因网络不稳定带来的错误。 #### 方法三:离线模式加载本地文件 当遇到持续性的网络问题时,可以选择提前手动下载所需模型并将它们存储到指定目录下,之后再调用这些已存在的模型文件完成初始化工作。 ```python local_model_path = "/path/to/local/model/files/distilbert-base-uncased-finetuned-sst-2-english" model = AutoModelForSequenceClassification.from_pretrained(local_model_path)[^3] tokenizer = AutoTokenizer.from_pretrained(local_model_path) ``` 以上三种途径均能有效获取Hugging Face平台上的各类NLP模型及其参数数据集等内容。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值