使用 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

查看需要迁移的文件

git lfs migrate info

迁移已有的大文件到 LFS:

以下命令会将所有大于 100MB 的文件迁移到 Git LFS。该 100MB 限制基于 GitHub 推荐的文件大小限制以获得最佳性能。

git lfs migrate import --above 100MB

如果仓库是共享的,运行此命令前请通知所有协作者,并准备在推送时使用 git push --force