5分钟跑通 download_model.py:大模型下载脚本完整上手指南
2026/9/12 21:25:08 网站建设 项目流程

5分钟跑通 download_model.py:大模型下载脚本完整上手指南

【免费下载链接】llm-universe本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/项目地址: https://gitcode.com/GitHub_Trending/ll/llm-universe

实验室机房刚开通教育网,你要给整台机器装上 RAG 项目要用的 Embedding 模型,直连 Hugging Face 却基本跑不动。项目里的 download_model.py 就是为解决这件事而写的两行小脚本:它先切到国内镜像,再带断点续传把模型拉到本地。

它能帮你解决什么问题

三个典型场景,都是 RAG 项目跑起来前绕不过的一步。

  • 痛点:Hugging Face 源在国内直连速度慢、时常中断。解法:脚本第一行就把HF_ENDPOINT指向hf-mirror.com,走国内镜像加速下载。
  • 痛点:下载几个 GB 的模型,网络一断就要从头再来。解法:命令里带了--resume-download参数,中断后重跑同一命令即可从断点继续。
  • 痛点:模型下到本地后,代码里AutoModel.from_pretrained还要写对路径才能加载。解法--local-dir固定了落地目录,和 streamlit_app.py 里读取的目录名一致,下载完即可直接加载。

项目里有两个版本的脚本,功能一致,只是落地目录不同:notebook/附/DW高校行/download_model.py 下到embedding_model,notebook/附/SCNet/download_model.py 下到embedding_model_small

从零跑通第一条命令

下面以 SCNet 目录为例,4 步拿到可用的本地模型。

  1. 安装项目依赖,并确认huggingface-cli可用(由huggingface_hub提供)。
  2. 进入脚本所在目录。
  3. 运行脚本,等待镜像下载完成。
  4. 看到本地多出一个embedding_model_small目录,里面是config.jsonpytorch_model.bintokenizer.json等文件,说明成功。
# 1. 安装依赖,并补装下载命令行(若已有可跳过) pip install -r requirements.txt pip install -U "huggingface_hub[cli]" # 2. 进入目录并执行 cd notebook/附/SCNet python download_model.py

脚本只有两行逻辑:os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'设置镜像,下一行huggingface-cli download拉取Alibaba-NLP/gte-multilingual-base。首次运行会显示实时进度,中途断网直接再跑一次即可续传。

按需定制:换模型、改路径与批量下载

脚本写死了模型名和目录名,实际使用常要改。改法都集中在第 7 行的那条命令上。

更换要下载的模型

把命令里的Alibaba-NLP/gte-multilingual-base换成目标模型名即可。例如换moka-ai/m3e-base,其余参数不用动:

huggingface-cli download --resume-download moka-ai/m3e-base --local-dir embedding_model_small

修改本地落地路径

--local-dir决定模型存到哪个目录。改它就能把不同模型分开存放,避免互相覆盖。改完后记得让读取端(如streamlit_app.py里的model_name_or_path)指向同一个目录名。

一次下载多个模型

要批量拉取时,照同样思路循环即可。下面这段可独立运行,复用脚本的镜像设置:

import os os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com' models = ["Alibaba-NLP/gte-base", "moka-ai/m3e-base"] for m in models: name = m.split('/')[1] os.system(f'huggingface-cli download --resume-download {m} --local-dir {name}')

配合 Streamlit 图形界面

下载只是准备数据,真正的入口是同目录的 streamlit_app.py。它用AutoTokenizer/AutoModel从本地目录加载刚下好的模型,再封装成 LangChain 可调用的Embeddings类,接入 RAG 问答流程。

启动方式:streamlit run notebook/附/SCNet/streamlit_app.py,前提是模型已下好、且已按 config 配置好 LLM 接口。

模型加载这一步依赖transformers>=4.36.0,若版本偏旧,升级后再启动即可正常读取本地模型。

常见卡点与解法

  • 现象huggingface-cli: command not found原因:没装提供该命令的huggingface_hub一行解法pip install -U "huggingface_hub[cli]"

  • 现象:进度条反复 0%,或长时间不动。原因:镜像节点临时拥堵,或断网后没续上。一行解法:直接重跑python download_model.py--resume-download会自动从断点接续。

  • 现象:脚本跑完,界面启动却报找不到模型文件。原因--local-dir的目录名和streamlit_app.pymodel_name_or_path对不上。一行解法:统一两处目录名,例如都用embedding_model_small

延伸方向

  • 想理解 Embedding 原理与分块:docs/C3/C3.md
  • 自定义 Embedding 封装的详细讲解:docs/C3/附LangChain自定义Embedding封装讲解.md
  • 完整 RAG 应用构建流程:docs/C4/C4.md
  • 合作课程的整体资料说明:notebook/附/readme.md

download_model.py 的价值,就是用一个带镜像加速和断点续传的两行脚本,把"从 Hugging Face 拿模型"这件易断的事变成一条可重跑的命令。下一篇将讲本地 Embedding 模型的封装与调用,让下好的模型真正接入 LangChain 跑起来。

【免费下载链接】llm-universe本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/项目地址: https://gitcode.com/GitHub_Trending/ll/llm-universe

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询