AI入门系列 | 如何优雅地下载最前沿的模型?
简介
一片白云横谷口,几多归鸟尽迷巢。
小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩。本系列主要基于过往经历,总结当时自身环境中实操经验。倘若能够顺便帮到他人,也是善莫大焉。
本文主要介绍如何从huggingface上下载业界最先进、最前沿的模型和数据。极力推荐本文的下载方式,这是因为这种方式支持断点续传,而且会自动重试。即使,真的由于网络或者其他原因导致下载中断,也可以通过再次执行同样的命令,实现断点续传,持续下载。
准备工作
pip3 install -U huggingface_hub hf-transfer -i https://mirrors.cloud.tencent.com/pypi/simple
环境配置
如果国内无法直接访问 https://huggingface.co/,那么可以设置镜像网址hf-mirror.com。在终端命令行中执行以下命令:
# 可根据实际需要,设置不同的镜像或者代理地址
export HF_ENDPOINT=https://hf-mirror.com
另外,可以尝试设置:
export HF_HUB_ENABLE_HF_TRANSFER=1
# 如果设置之后,下载模型报这个相关的错误,可设置为0
这里多说两句。设置环境变量HF_HUB_ENABLE_HF_TRANSFER=1
用于启用 Hugging Face Hub 的文件传输功能。当从 Hugging Face Hub 下载模型或其他资源时,这个设置可以提高下载速度。
具体来说,当设置了该环境变量后,Hugging Face Hub 将使用更高效的文件传输协议来下载资源,而不是使用默认的 HTTP 请求方式。这种优化的传输协议能够显著提高下载大型文件的速度,尤其是在网络环境较好的情况下。
需要注意的是,由于一些网络环境的限制(如代理、防火墙等),优化的文件传输协议可能无法正常工作。在这种情况下,您可以取消设置该环境变量,以使用默认的下载方式。
总的来说,设置 HF_HUB_ENABLE_HF_TRANSFER=1
是为了提高从 Hugging Face Hub 下载大型模型和数据集时的传输速度,但并非所有网络环境都能受益于此优化。如果下载速度没有明显提升或出现问题,可以取消该设置。
更多细节可以参考官方说明:
https://huggingface.co/docs/huggingface_hub/v0.24.6/package_reference/environment_variables#hfhubenablehftransfer
下载模型
huggingface-cli download --resume-download --local-dir-use-symlinks False $model_id --local-dir /你的下载目录/$model_id/
这里的$model_id
就是你在模型下载页面,如下红色箭头拷贝的内容:
具体到,https://huggingface.co/Qwen/Qwen2-0.5B-Instruct 这个页面,model_id
值为Qwen/Qwen2-0.5B-Instruct
下载数据
至于下载数据,只需要多一个参数--repo-type dataset
,其他的与下载模型一致。比如,想要下载 https://huggingface.co/datasets/Hello-SimpleAI/HC3 上的数据,则
huggingface-cli download --resume-download --repo-type dataset --local-dir-use-symlinks False Hello-SimpleAI/HC3 --local-dir /你存放数据的目录/Hello-SimpleAI/HC3
总结
本文简要介绍如何便捷地从huggingface上下载模型。该方式从小编自身的实践来看,是目前最为便捷的,特别是支持断点续传的功能,特别符合我们的网络环境。