使用 Notebook 上传模型
将模型上传到模型仓库是发布 LLM 推理服务和创建微调任务的第一步。推荐使用 Workbench/Notebook 进行模型上传:
- 最优上传速度:由于 Workbench/Notebook 实例运行在平台上,上传速度最优。
- 内置 Git LFS:Notebook 内置了
git lfs 工具,无需在本地安装。
当然,你也可以从本地机器上传模型,但需要先安装 Git LFS。
创建 Workbench/Notebook 实例
注意: 在 Alauda AI >= 1.4 版本中,可以通过左侧导航的“Workbench”创建 Notebook 实例。在 Alauda AI <= 1.3 版本中,可以通过“Advanced - Notebook”创建 Notebook 实例。
Workbench/Notebook 的详细创建说明这里不再赘述,请参考 workbench 文档。需要注意的是,必须创建足够的存储空间以存放模型文件,才能保证上传过程顺利完成。
准备模型
从任意开源社区下载所需模型。推荐从以下三个网站下载,例如 https://hf-mirror.com/deepseek-ai/DeepSeek-R1。
从 huggingface 或 hf-mirror 下载模型时,可以使用 huggingface-cli 命令(需要先执行 pip install huggingface_hub)。更多命令行使用说明请参考 https://hf-mirror.com。示例下载命令,下载模型 DeepSeek-R1-Distill-Qwen-1.5B:
export HF_ENDPOINT=https://hf-mirror.com
pip install huggingface_hub
huggingface-cli download --resume-download deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B --local-dir DeepSeek-R1-Distill-Qwen-1.5B
注意: 如果你的环境无法访问互联网,可以选择一台有网络的机器(如与集群高速连接的桌面或服务器)下载模型,然后将其复制到 Notebook 环境中。
创建模型
注意:此步骤将创建一个空模型用于上传模型文件。如果你已经创建了模型仓库,可以跳过此步骤。
打开并登录 Alauda AI。在“模型仓库”页面,点击“创建模型仓库”,依次输入参数后点击“创建”。
- 名称:任意,建议使用下载的模型名称。本例中使用“DeepSeek-R1-Distill-Qwen-1.5B”。
- 标签:任意,建议填写模型类别,方便搜索,如“deepseek”。
- 描述:任意。
模型仓库创建完成后,可在“详情”页面找到模型的“仓库地址”,后续 git 操作时需要使用。
上传模型
INFO
为保证通过 Git LFS 稳定上传/下载大模型文件,请确保 Git 和 Git LFS 均升级到最新官方版本。旧版本可能导致 LFS 批处理 API 失败或 HTTP 级别异常,尤其是 Windows 系统自带的旧版本。
下载地址:
参考版本(已验证):Git 2.43.0 搭配 Git LFS 3.6.1
注意: 开始前,请确保 Notebook 环境已安装 Git 和 Git LFS:git lfs install && git lfs version
在 Notebook 中打开终端,执行以下命令将模型文件推送到模型仓库。
# 进入上一步下载模型的文件夹。
cd <your-repo-name>
# 删除模型之前的 Git 仓库信息(如果有)。
rm -rf .git
# 初始化 git 仓库并设置推送地址为上一步创建的模型仓库。
git init
git checkout -b main
git remote add origin <repository-url>
# 在 .gitattributes 文件中指定文件类型,告诉 Git LFS 需要跟踪哪些文件。
# 以下文件定义了常见模型文件格式,可直接使用。
cat >.gitattributes <<EOL
*.7z filter=lfs diff=lfs merge=lfs -text
*.arrow filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.ckpt filter=lfs diff=lfs merge=lfs -text
*.ftz filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.h5 filter=lfs diff=lfs merge=lfs -text
*.joblib filter=lfs diff=lfs merge=lfs -text
*.lfs.* filter=lfs diff=lfs merge=lfs -text
*.mlmodel filter=lfs diff=lfs merge=lfs -text
*.model filter=lfs diff=lfs merge=lfs -text
*.msgpack filter=lfs diff=lfs merge=lfs -text
*.npy filter=lfs diff=lfs merge=lfs -text
*.npz filter=lfs diff=lfs merge=lfs -text
*.onnx filter=lfs diff=lfs merge=lfs -text
*.ot filter=lfs diff=lfs merge=lfs -text
*.parquet filter=lfs diff=lfs merge=lfs -text
*.pb filter=lfs diff=lfs merge=lfs -text
*.pickle filter=lfs diff=lfs merge=lfs -text
*.pkl filter=lfs diff=lfs merge=lfs -text
*.pt filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.safetensors filter=lfs diff=lfs merge=lfs -text
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.tar.* filter=lfs diff=lfs merge=lfs -text
*.tar filter=lfs diff=lfs merge=lfs -text
*.tflite filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.wasm filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text
EOL
# 你也可以手动添加或修改 .gitattributes 文件,例如:
# 跟踪指定后缀的文件
git lfs track "*.h5" "*.bin" "*.pt"
# 添加所有更改,包括 .gitattributes 文件(如果创建了)和模型文件
git add .
# 确保所有符合 LFS 规则的文件正确标记
git add --renormalize .
# 查看当前被 LFS 跟踪的文件列表(可选)
# 如果你想存储的大模型文件未列出,请确认上述命令是否正确执行
git lfs ls-files -n
# 提交更改
# 建议配置用户名和邮箱,或确保全局已配置
# git config --global user.name "Your Name"
# git config --global user.email "your.email@example.com"
git commit -am "Add LLM model files with Git LFS"
# 推送到远程仓库
git -c http.sslVerify=false -c lfs.activitytimeout=36000 push -u origin main
# 如果需要强制推送,例如使用 git lfs migrate --import 后:
# git push -u origin main --force
编辑模型元数据
打开“模型详情”页面,进入“文件管理”标签页,点击“编辑元数据”,根据上传的模型选择“任务类型”和“框架”元数据,然后点击“确认”。
注意: 只有配置了任务类型和框架元数据后,才能使用“发布推理服务”页面发布推理服务。关于模型任务类型的更多信息,请参考 Huggingface pipelines
- 任务类型:决定基于模型如何创建推理服务(如 text-generation、image-classification)。
- 对于 LLM 模型,选择“text-generation”。
- 对于从 Huggingface 下载的其他模型,参考模型页面列出的任务类型。
- 对于自定义模型,根据模型用途选择任务类型。
- 框架:模型存储的格式。
附录
根据文件大小标记 LFS 文件
git lfs migrate 命令可以帮助你查找并迁移 Git 历史中已存在但未被 LFS 跟踪的大文件。请注意,该命令会重写提交历史。如果仓库是共享的,请务必与协作者协调,并在推送时使用 --force。
查看需要迁移的文件
迁移已有的大文件到 LFS:
以下命令会将所有大于 100MB 的文件迁移到 Git LFS。该 100MB 限制基于 GitHub 推荐的文件大小限制以获得最佳性能。
git lfs migrate import --above 100MB
如果仓库是共享的,运行此命令前请通知所有协作者,并准备在推送时使用 git push --force。