HuggingFace中的 Files and versions 如何优雅下载到本地?(Python requests,tqdm)

前言

在使用huggingface把玩各种大模型时,如果选择从远程加载模型,这个过程可能因为网络问题而非常耗时甚至直接失败,所以把模型、分词器等相关文件下载到本地,再直接从本地加载就成了不可回避的流程。

在进入具体版本的模型后,我们可以去Files and Versions这个菜单项下面找到需要下载到本地的全部模型(以WizardCoder为例)

第一步是获取我们想要下载的文件的下载时url

在文件大小的右侧,可以看到一个向下的箭头表示下载,鼠标移动到箭头上,右键,选择“复制链接地址”,这样就得到了下载时url

我们将这些url存放到list中。

第二步就是python代码,这里除了用于请求的request库,我还使用了tqdm库,tqdm也可通过pip install来安装,它的作用是在下载较大的文件时,我们可以在终端看到下载的速度和进度

import requests
import os
from tqdm import tqdm

urls = [
    "https://huggingface.co/WizardLM/WizardCoder-15B-V1.0/resolve/main/pytorch_model.bin"
]

filepath = "WizardCoder/WizardCoder-15B-V1.0"


def download_file(url):
    filename = url.split("/")[-1]
    download_path = os.path.join(filepath, filename)

    response = requests.get(url, stream=True, verify=False)
    response.raise_for_status()

    file_size = int(response.headers.get("Content-Length", 0))  # 获取待下载的文件大小
    chunk_size = 8192  # 读取的数据块的大小是8千字节
    
    with open(download_path, "wb") as file, tqdm(
        total=file_size, unit="B", unit_scale=True, unit_divisor=1024, desc=filename
    ) as progress_bar:
        for chunk in response.iter_content(chunk_size=chunk_size):
            if chunk:
                file.write(chunk)
                progress_bar.update(1)


for url in urls:
    download_file(url)

### 解决 `pip` 安装 `requests` 库失败的问题 当尝试通过 `pip install requests` 命令安装 Python 的 `requests` 库时,如果遇到错误提示 `ERROR: No matching distribution found for requests` 或者类似的版本不匹配问题[^1],这通常是由以下几个原因引起的: #### 可能的原因分析 1. **Python 版本过低** 如果使用的 Python 版本低于支持的最低版本(通常是 2.7 或更高),可能会导致无法找到兼容的包。建议升级到最新稳定版的 Python。 2. **网络连接问题** 网络不稳定可能导致 PyPI 镜像源访问失败,从而引发找不到分发文件的情况。可以更换国内镜像源来解决问题。 3. **依赖项缺失或冲突** 错误消息提到 `chardet` 是 `requests` 的依赖之一。如果该依赖未正确解析或者存在版本冲突,则会阻止整个安装过程完成。 4. **pip 工具本身陈旧** 使用较老版本的 pip 可能无法识别最新的软件包及其元数据结构,因此需要更新至最新版本。 #### 实施解决方案 以下是针对上述可能原因的具体解决措施: - 更新 `pip`: 运行命令以确保拥有当前可用的最佳实践工具链。 ```bash python -m pip install --upgrade pip setuptools wheel ``` - 更改索引服务器地址为更可靠的中国区站点, 如清华大学开源软件镜像服务. ```bash pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple/ ``` - 若仍存在问题, 尝试手动下载对应平台预编译 whl 文件并本地执行安装操作: 下载链接可以从官方页面获取 [PyPi Requests](https://pypi.org/project/requests/#files), 并按照如下方式处理: ```bash pip install path_to_downloaded_file.whl ``` 以上方法应该能够有效缓解大多数情况下由于环境配置不当所造成的安装难题。 ```python import sys print(sys.version_info) ``` 运行此脚本来确认实际部署环境中 Python 的确切发行号也是很有帮助的一个步骤。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSU迦叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值