download_model.py:镜像加速与断点续传下载 LLM 模型
【免费下载链接】llm-universe本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/项目地址: https://gitcode.com/GitHub_Trending/ll/llm-universe
llm-universe 是一套面向初学者的 LLM 应用开发教程,多个 RAG 案例都依赖本地 Embedding 模型。手动从 Hugging Face 拉取模型时,国内网络经常慢或中断。项目里的 download_model.py 把这件事压缩成一条命令:自动切换 hf-mirror.com 镜像、开启断点续传,模型直接落到本地目录,供后续代码加载。
它适合解决什么
脚本出现在 notebook/附/ 下两个课程配套目录:SCNet 与 DW 高校行,各不到十行,做的事一致:先把下载端点指到国内镜像,再执行 huggingface-cli 下载命令。
适合它的场景:
- 课程 Demo 首次运行前,准备模型文件
- 网络不稳定,下载中断后需要继续
- 同一批实验要重复或成批地准备模型
手动操作时,"export 镜像变量 + 敲完整 CLI 参数"这两步容易漏,脚本把它们固定下来,可以反复执行。
RAG 应用里,Embedding 负责把文档和问题变成向量再检索,本地模型是绕不开的一环,模型下载就是它的前置步骤。
最小可用示例 📥
先给结论:装好依赖,在课程目录里运行一次脚本,就会得到完整的模型目录。
git clone https://gitcode.com/GitHub_Trending/ll/llm-universe cd llm-universe/notebook/附/SCNet pip install -r ../../../requirements.txt huggingface_hub python download_model.py终端会滚动输出下载进度。完成后当前目录多出embedding_model_small,里面有 config.json、模型权重文件和分词器文件——这正是 SCNet 案例 streamlit_app.py 加载模型所用的目录。另外,真正加载模型还需要 torch 与 transformers,教程 notebook 里有对应的安装步骤。
按场景使用
换个模型或换个目录
脚本第 7 行就是一条完整下载命令,替换模型名和--local-dir即可:
os.system('huggingface-cli download --resume-download BAAI/bge-large-en-v1.5 --local-dir bge_large')注意:改过--local-dir后,加载模型处也要同步改目录名,否则后续会报路径不存在。
一次准备多个模型
多个实验要不同模型时,把"模型名 + 目标目录"写成列表,循环执行同一条命令,每条都保留--resume-download。这样每个模型各自断点续传,某一个卡住不影响其他。
下载结果如何被使用
模型目录直接对接课程代码:
- SCNet 案例:streamlit_app.py 中
model_name_or_path写的是embedding_model_small,启动 RAG 问答前必须先跑下载脚本 - DW 高校行:对应目录名是
embedding_model,langchain_demo.ipynb 正文也明确写了"在终端 python download_model.py"这一步
界面本身不复杂,关键前置条件就是模型已经在本地目录里。
常见卡点 ⚠️
| 现象 | 可能原因 | 处理 |
|---|---|---|
| 下载中断、卡住 | 网络波动,国内访问官方仓库不稳定 | 直接重跑脚本,--resume-download会续传;想彻底重来就删掉目标目录 |
| 提示找不到 huggingface-cli | 未安装 huggingface_hub | pip install huggingface_hub,必要时重开终端 |
| 脚本没报错,后续加载模型却失败 | 在错误目录执行,或目录名与代码不一致 | 在课程目录内运行;核对 streamlit_app.py 的model_name_or_path |
| 磁盘空间告警 | 模型体积大于预期 | 下载前先看剩余空间,不用的模型目录及时清理 |
| hf-mirror.com 连接超时 | 镜像站偶发波动 | 稍后重跑;或临时注释掉脚本第 4 行,改走官方端点 |
下一步
- 模型跑通后,接着 C3 搭建知识库 与 C4 构建 RAG 应用 两章,走完文档切分、向量化、检索的完整链路
- 想弄清模型如何接入 LangChain,读 附LangChain自定义Embedding封装讲解
- 可以继续尝试:换一个参数更大的 Embedding 模型下载下来,对比检索召回效果是否有提升
【免费下载链接】llm-universe本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/项目地址: https://gitcode.com/GitHub_Trending/ll/llm-universe
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考