mindreon 是 Mindreon 的命令行工具,用来完成模型或数据集仓库的本地协作流程:
- 安装依赖
- 登录平台
- 连接模型或数据集
- 拉取仓库内容
- 修改文件
- 提交代码
- 推送代码和 DVC 数据
全局安装:
npm i -g @sanmu2018/mindreon-cli
mindreon --help从源码本地安装:
cd /path/to/mindreon-cli
npm link
mindreon --help安装后统一使用 mindreon 命令。
如果你不想在宿主机从零安装依赖,可以直接构建和推送基础镜像:
cd /path/to/mindreon-cli
make image-build-local
make image-run-help如果要构建并推送当前机器架构的单架构镜像:
make image-build-push IMAGE_NAME=harbor.mindreon.com/mindreon/mindreon-cli IMAGE_TAG=v0.1.0如果要同时构建 amd64 和 arm64 多架构镜像并推送:
make image-buildx-push IMAGE_NAME=mindreon/mindreon-cli IMAGE_TAG=latest如果只想在本地测试多架构构建流程,也可以执行:
make image-buildx IMAGE_NAME=mindreon/mindreon-cli IMAGE_TAG=dev容器里已经预装:
mindreongitgit-lfspython3dvc[s3]
说明:
- 这个镜像本身不强制挂载任何宿主机目录
- 镜像只提供可直接使用的运行环境
- 是否挂载工作目录、配置目录、SSH 目录,由最终用户自行决定
例如,用户如果想把当前目录挂进容器并进入 shell,可以自己执行:
docker run -it \
-v "$PWD":/workspace \
-w /workspace \
harbor.mindreon.com/mindreon/mindreon-cli:v0.1.0 \
bash执行:
mindreon install这个命令会检查并安装:
gitgit-lfspython3python3-pipdvc[s3]skopeo(可选,用于镜像转推)
如果你不想安装 skopeo,可以跳过:
mindreon install --skip-skopeo镜像转推示例:
mindreon image docker.io/library/nginx:latest harbor.example.com/demo/nginx:latest也支持显式写法:
mindreon image copy --from docker.io/library/nginx:latest --to harbor.example.com/demo/nginx:latest说明:
- 已安装的依赖会自动跳过
- 在 Debian / Ubuntu 这类启用了 PEP 668 的环境里,命令会在必要时自动改用
pip --break-system-packages
如果你想先只看依赖状态:
mindreon install --check手动安装建议:
- macOS
brew install git git-lfs python3
python3 -m pip install --user "dvc[s3]"
git lfs install- Ubuntu / Debian
sudo apt-get update
sudo apt-get install -y git git-lfs python3 python3-pip
python3 -m pip install --user --break-system-packages "dvc[s3]"
git lfs install如果你不想改系统 Python,也可以手动使用 pipx:
sudo apt-get install -y pipx
pipx install "dvc[s3]"- RHEL / CentOS / Rocky / AlmaLinux
sudo dnf install -y git git-lfs python3 python3-pip
python3 -m pip install --user "dvc[s3]"
git lfs install执行交互式登录:
mindreon login也可以直接传参数:
mindreon login --url https://your-domain --username <USERNAME> --password <PASSWORD>mindreon model connect --name "Qwen2.5-7B-Instruct" --version "main"mindreon dataset connect --name "my-dataset" --version "main"说明:
connect会在当前目录下新建一个同名工作目录connect只做本地初始化,不会自动拉取远端文件- 成功后会提示下一步该
cd到哪个目录
如果你想手动指定目录:
mindreon model connect --name "Qwen2.5-7B-Instruct" --version "main" --dir ./workspace/model进入 connect 提示的目录后执行:
cd ./Qwen2.5-7B-Instruct
mindreon repo pull这一步会做:
- 拉取仓库代码,模型或者数据集文件
你可以直接在工作区内修改模型相关文件或数据集文件,例如:
echo "hello" > note.txtMindreon CLI 里,git 和 dvc 分工不同:
- 小文件默认继续由
git管理 - 大文件默认由
dvc管理
默认规则是:
- 超过
5 MiB的文件,会在mindreon repo add时自动执行dvc add - 这类文件不会直接进入 Git,而是由 DVC 管理真实内容
请特别注意:
- 不要删除任何带
.dvc后缀的文件 - 这些
.dvc文件是 DVC 对大文件的跟踪标识 - 它们本身需要提交到 Git
- 真正的大文件内容由 DVC 和对象存储管理
这样做的原因是:
- 大文件不适合直接放进 Git
- Git 负责管理代码和元数据
- DVC 负责管理大文件版本和远端存储
执行:
mindreon repo add说明:
- 默认超过
5 MiB的文件会自动走dvc add - 如果本次待跟踪文件总数超过
2000,会优先对最顶层的未追踪目录执行dvc add - 小文件会正常进入 Git
- 如果看到新生成的
.dvc文件,请一并提交,不要删除 - 也可以手动指定阈值:
mindreon repo add --threshold 1
mindreon repo add --count-threshold 5000
mindreon repo add --threshold 1 --count-threshold 5000执行:
mindreon repo commit -m "update assets"执行:
mindreon repo push这一步会做:
- 刷新 Git remote token
- 刷新 DVC 临时凭证
- 执行
dvc push - 执行
git push
下面是一套最常见的模型协作流程:
mindreon install
mindreon login
mindreon model connect --name "Qwen2.5-7B-Instruct" --version "main"
cd ./Qwen2.5-7B-Instruct
mindreon repo pull
echo "hello" > note.txt
mindreon repo add
mindreon repo commit -m "update note"
mindreon repo push如果你还没创建资源,可以先创建 model 或 dataset。
创建模型:
mindreon model create --name "my-model" --description "demo model"
mindreon model version create --name "my-model" --version "v1" --base "main"创建数据集:
mindreon dataset create --name "my-dataset"
mindreon dataset version create --name "my-dataset" --version "v1" --base "main"查看仓库状态:
mindreon repo status查看帮助:
mindreon help
mindreon model --help
mindreon dataset --help
mindreon repo --help任务调度:
mindreon workload create-infer --name "infer-test" --model "my-model" --modelVersion "v1" --cpu 4 --memory "8G" --gpu 1
mindreon workload create-training --name "train-test" --dataset "my-dataset" --datasetVersion "v1" --pretrainModel "my-model" --pretrainModelVersion "v1" --cpu 4 --memory "16G" --gpu 1