高效下载huggingface模型权重的4种实用方法
1. 使用国内镜像站加速下载遇到Hugging Face模型下载慢的问题我最先尝试的解决方案就是切换镜像站。国内有几个稳定的镜像源实测下载速度能提升5-10倍。这里分享我最常用的hf-mirror.com镜像站使用技巧。首先需要安装官方工具包pip install -U huggingface_hub设置环境变量是关键步骤这个命令会让所有后续操作自动走镜像通道export HF_ENDPOINThttps://hf-mirror.com下载命令需要特别注意几个参数。比如要下载llama2-7b模型到当前目录huggingface-cli download --resume-download \ --local-dir-use-symlinks False \ meta-llama/Llama-2-7b-hf \ --local-dir ./llama2-7b这里解释下关键参数--resume-download支持断点续传--local-dir-use-symlinks False避免创建符号链接模型名称格式为发布者/模型名对于需要认证的模型如Llama2需要在命令中加入tokenhuggingface-cli download --token hf_你的实际token \ --resume-download \ --local-dir-use-symlinks False \ meta-llama/Llama-2-7b-hf \ --local-dir ./llama2-7b获取token的位置登录Hugging Face网站 → 点击头像 → Settings → Access Tokens。建议给token设置只读权限。2. 多线程下载工具优化当镜像站速度也不理想时可以尝试多线程下载工具。我测试过aria2和axel都能显著提升大文件下载速度。先安装aria2sudo apt install aria2 # Ubuntu/Debian brew install aria2 # MacOS获取模型文件的实际下载链接以bert-base为例huggingface-cli download --resume-download \ bert-base-uncased \ --local-dir ./bert-base \ --force-download \ --verbose在输出日志中找到类似这样的实际文件URLhttps://cdn-lfs.huggingface.co/repos/xx/yy/zz...然后用aria2多线程下载aria2c -x16 -s16 -k1M 文件URL -o 保存文件名参数说明-x16最多16个连接-s16每个文件分16块下载-k1M每块大小1MB实测100MB文件下载时间对比原生方式3分12秒aria2多线程28秒3. 使用国内模型平台替代当Hugging Face访问困难时国内几个优质平台也是不错的选择。我经常使用的ModelScope就收录了大量预训练模型。安装ModelScope环境pip install modelscope下载bert-base模型的示例代码from modelscope import snapshot_download model_dir snapshot_download(bert-base-uncased)平台特点对比平台模型数量下载速度需要登录API兼容性Hugging Face10万慢部分需要原生ModelScope5万快不需要需适配飞桨Paddle3万较快需要需转换ModelScope的优点是服务器在国内下载稳定支持HTTP/HTTPS/FTP多种协议提供镜像下载加速4. 组合优化下载方案经过多次实践我发现最可靠的方式是组合使用多种技术。这是我的标准操作流程第一步通过API获取模型文件清单from huggingface_hub import list_files_info files list_files_info(repo_idbert-base-uncased)第二步筛选需要的大文件100MBlarge_files [f for f in files if f.size 100_000_000]第三步对每个大文件生成下载命令aria2c -x16 -s16 -k1M 文件URL \ --headerAuthorization: Bearer hf_你的token第四步小文件直接用镜像站下载huggingface-cli download --resume-download \ bert-base-uncased \ --local-dir ./bert-base \ --exclude*.bin # 排除已下载的大文件这种组合方案的优点大文件用多线程稳定下载小文件走镜像批量下载自动跳过已下载文件支持断点续传最后建议创建一个下载脚本把整个过程自动化。我在实际项目中用这种方法成功下载过50GB的大模型平均速度能保持在20MB/s左右。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2492260.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!