ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Kosmos-2 环境搭建完全指南:基于 unilm 仓库的 conda 安装与依赖详解

Kosmos-2 环境搭建完全指南:基于 unilm 仓库的 conda 安装与依赖详解 Kosmos-2 环境搭建完全指南基于 unilm 仓库的 conda 安装与依赖详解【免费下载链接】unilmLarge-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities项目地址: https://gitcode.com/GitHub_Trending/un/unilm本文是 Kosmos-2Grounding Multimodal Large Language Models to the World在 unilm 仓库中的安装部署指南以 kosmos-2/docs/install.md 为骨架结合仓库内的 requirements.txt、vl_setup_xl.sh 等源码与脚本完整讲解从克隆仓库、创建 conda 环境、编译 NVIDIA Apex 到一键安装全部依赖的完整流程。读完本文你将能够独立搭建一套可运行的 Kosmos-2 开发环境并能运行仓库自带的 Gradio 本地 Demo 与推理脚本验证环境。Kosmos-2 环境概览需要装什么为什么这么装Kosmos-2 是一个接地grounding的多模态大语言模型它的代码仓库并不是一个单体 Python 包而是构建在多个子项目之上的fairseq提供分布式训练、任务task、模型arch注册与 checkpoint 管理等基础设施train.sh 中使用的python -m torch.distributed.launch与--task、--criterion、--arch等参数全部由它解析infinibatch提供跨进程的流式数据加载用于大规模图像-文本对如 GRIT/COYO的读取torchscale提供 Transformer 底层模块如subln、sope-rel-pos等架构选项的实现基础open_clip提供视觉编码器训练脚本中的--image-encoder clip --visual-model-name ViT-L-14即来自该库DeepSpeed / xformers优化训练与注意力计算--flash-attentionsentencepiece / spacy分词与短语抽取GRIT 数据的noun_chunks即由 spaCy 提取。因此安装环节分为三层conda 基础环境 pip 版本锁定依赖requirements.txt、Apex 编译安装CUDA 扩展、子项目与训练增强依赖vl_setup_xl.sh。第一步克隆仓库并进入项目目录install.md 的第一步是从 GitHub 克隆 unilm 仓库并进入 kosmos-2 子目录git clone https://github.com/microsoft/unilm.git cd unilm/kosmos-2如果你已经拥有本仓库的副本直接进入kosmos-2/目录即可。仓库根目录下kosmos-2/的顶层结构如下对应 kosmos-2 目录kosmos-2/ ├── fairseq/ # 本地安装的 fairseq 子项目 ├── infinibatch/ # 本地安装的流式数据加载库 ├── torchscale/ # 本地安装的模型底层库 ├── open_clip/ # 本地安装的 OpenCLIP 实现 ├── unilm/ # Kosmos-2 特有的任务、模型、数据与损失实现 ├── data/ # 分词字典、sentencepiece 模型与数据预处理脚本 ├── demo/ # Gradio 演示应用gradio_app.py 等 ├── evaluation/ # 评估代码 ├── docs/ # 文档含本文依据的 install.md ├── requirements.txt # 版本锁定的 pip 依赖 ├── vl_setup_xl.sh # 一键安装脚本 ├── train.sh # 训练脚本 ├── run_gradio.sh # 本地 Demo 启动脚本 ├── train.py / generate.py / interactive.py / preprocess.py / validate.py注意fairseq/、infinibatch/、torchscale/、open_clip/这四者既是目录也是可安装的 Python 包这正是 vl_setup_xl.sh 用本地pip install安装它们的原因。第二步创建 conda 环境并安装版本锁定依赖install.md 给出了明确的 Python 版本要求与依赖清单conda create -n kosmos-2 python3.9 conda activate kosmos-2 pip3 install -r requirements.txt其中requirements.txt的内容kosmos-2/requirements.txt完整如下numpy1.23.0 scipy1.8.0 sentencepiece0.1.99 protobuf3.20.3 torch1.13.0 gradio3.37.0 torchvision0.14.0 opencv-python-headless4.8.0.74 tensorboardX1.8这些依赖有几个值得注意的约束点包版本在 Kosmos-2 中的作用torch / torchvision1.13.0 / 0.14.0核心深度学习框架torch1.13.0为编译期锁定的版本与后文 Apex、xformers 的兼容性直接相关numpy / scipy1.23.0 / 1.8.0数值计算与图像数据处理sentencepiece0.1.99分词器训练与推理脚本均通过--spm-model data/sentencepiece.bpe.model指定模型protobuf3.20.3sentencepiece 的依赖且被精确锁定——protobuf 4.x 与某些旧版库存在兼容性问题这也是 install.md 显式固定该版本的原因gradio3.37.0本地 Demo 界面demo/gradio_app.py 依赖其grAPI 构建交互式演示opencv-python-headless4.8.0.74无 GUI 环境的图像读取与处理服务器场景tensorboardX1.8训练日志写入对应训练脚本中的--tensorboard-logdir参数实操提示install.md 使用的是pip3 install -r requirements.txt。由于torch1.13.0是 CPU/GPU 通用的版本约束如果你的 CUDA 环境特殊可以在安装 requirements 之前先按官方渠道安装匹配的 PyTorch 预编译包再安装其余依赖但请保持numpy、protobuf等关键版本与清单一致避免后续 Apex 编译或 sentencepiece 运行时出现兼容问题。第三步编译安装 NVIDIA ApexCUDA 扩展Apex 提供混合精度训练所需的--cpp_ext与--cuda_ext扩展。install.md 给出了两种安装方式区别取决于你的 pip 版本git clone https://github.com/NVIDIA/apex cd apex # 如果 pip 23.1该版本开始支持同一 key 的多个 --config-settings pip install -v --disable-pip-version-check --no-cache-dir --no-build-isolation --config-settings --build-option--cpp_ext --config-settings --build-option--cuda_ext ./ # 否则旧版 pip使用 --global-option pip install -v --disable-pip-version-check --no-cache-dir --no-build-isolation --global-option--cpp_ext --global-option--cuda_ext ./两种方式的要点解析--cpp_ext/--cuda_ext编译 C 与 CUDA 扩展。Kosmos-2 训练脚本 train.sh 使用了--memory-efficient-fp16、--fp16-init-scale 4、--fp16-scale-window 256、--min-loss-scale 0.0001等混合精度参数这些在底层会用到 Apex 提供的优化器与缩放器实现因此不可跳过 Apex 安装--no-build-isolation禁止 pip 为构建过程创建隔离环境直接使用当前 conda 环境中的 PyTorch 头文件与编译器保证 Apex 链接到的是torch1.13.0--no-cache-dir/--disable-pip-version-check避免缓存导致的编译产物不一致并减少不必要的网络检查pip 23.1 分水岭pip 23.1 起--global-option被移除同一--build-option需通过多个--config-settings重复传入这正是 install.md 分别给出两条命令的原因。可以先执行pip --version确认自己的 pip 版本再选择对应命令。Apex 编译需要本机具备 NVIDIA CUDA 工具链nvcc与兼容的 GCC编译过程耗时较长属正常现象看到Successfully built apex即表示成功。第四步一键安装子项目与训练增强依赖环境安装的最后一步是执行仓库自带的一键脚本bash vl_setup_xl.shvl_setup_xl.sh 的全部内容如下逐行拆解pip install fairseq/ pip install infinibatch/ pip install torchscale/ pip install open_clip/ pip install --user githttps://github.com/microsoft/DeepSpeed.gitjeffra/engine-xthru-v2 pip install -v -U githttps://github.com/facebookresearch/xformers.gitv0.0.22 pip install numpy1.23.0 tiktoken ftfy sentencepiece httpcore0.17.3 gradio3.37.0 spacy3.6.0 thinc8.1.10 pydantic1.10.11行作用pip install fairseq/等四行以本地可编辑安装之外的方式安装仓库内四个子包使import fairseq / infinibatch / torchscale / open_clip可用四个包源码即位于 kosmos-2 目录下DeepSpeed指定 commit 分支安装jeffra/engine-xthru-v2分支版本的 DeepSpeed对应训练脚本中的--ddp-backendno_c10d、--checkpoint-activations激活重计算等特性xformers v0.0.22固定版本的 xformers支撑--flash-attention高效注意力实现-v -U表示显示详细输出并强制覆盖已装版本最后一行的 Python 依赖覆盖安装numpy1.23.0与 requirements 保持一致、tiktoken分词、ftfy文本修正、sentencepiece、httpcore0.17.3固定版本避免与 gradio 冲突、gradio3.37.0、spacy3.6.0GRIT 名词短语抽取、thinc8.1.10spaCy 底层依赖、pydantic1.10.11固定 1.x兼容 gradio 3.x从脚本内容可以看出最后一行的numpy、gradio、sentencepiece与 requirements.txt 中的版本保持一致属于统一版本、防止冲突的收尾动作。整个脚本是幂等友好的即使某一步失败修复环境后重新执行bash vl_setup_xl.sh即可继续。备选方案官方 Docker 镜像在 kosmos-2/README.md 的 Setup 一节中官方还提供了一条 Docker 路径作为 conda 方案的替代aliaswhoami | cut -d. -f2; docker run -it --rm --runtimenvidia --ipchost --privileged -v /home/${alias}:/home/${alias} nvcr.io/nvidia/pytorch:22.10-py3 bash该命令基于 NVIDIA NGC 的pytorch:22.10-py3镜像内含与torch1.13.0时代匹配的 CUDA 环境进入容器后直接执行bash vl_setup_xl.sh即可省去 conda 与 Apex 的编译步骤。README 同时指出详细包信息可参考仓库 issue 中的评论conda 方案则正是本文依据的 kosmos-2/docs/install.md。两种方式二选一推荐在无法访问 Docker 的机器上使用 conda 路径。安装后验证下载模型并启动本地 Demo环境安装完成不代表万事大吉建议按以下顺序做三层验证。1. 验证 Python 导入python -c import torch, fairseq, torchscale, open_clip; print(torch.__version__)正常应输出1.13.0且无 ImportError随后验证 Apexpython -c from apex import amp; print(apex ok)2. 下载 Kosmos-2 checkpointREADME 提供了模型权重的下载命令checkpoint 由wget从转换中心获取DLINK$(echo -n aHR0cHM6Ly9jb252ZXJzYXRpb25odWIuYmxvYi5jb3JlLndpbmRvd3MubmV0L2JlaXQtc2hhcmUtcHVibGljL2tvc21vcy0yL2tvc21vcy0yLnB0P3N2PTIwMjMtMDEtMDMmc3Q9MjAyNC0wNC0xMFQxMyUzQTExJTNBNDRaJnNlPTIwNTAtMDQtMTFUMTMlM0ExMSUzQTAwWiZzcj1jJnNwPXImc2lnPTRjWEpJalZSWkhJQldxSGpQZ0RuJTJGMDFvY3pwRFdYaXBtUENVazNaOHZiUSUzRA | base64 --decode) wget -O kosmos-2.pt $DLINK模型权重即后续 Demo 与推理所需的kosmos-2.pt。3. 启动 Gradio 本地 Demo仓库提供 run_gradio.sh 一键启动本地交互式 Demobash run_gradio.sh脚本内部会将model_path/path/to/kosmos2.pt替换为你的权重路径然后通过torch.distributed.launch单卡启动 demo/gradio_app.py并携带一系列推理关键参数--task generation_obj使用 Kosmos-2 的接地生成任务对应 unilm 下的任务实现--model-overrides {visual_pretrained: , dict_path:data/dict.txt}与--dict-path data/dict.txt指定分词字典data/dict.txt--image-feature-length 64图像侧送入语言模型的 token 数与训练脚本中的--latent-query-num 64一致--locate-special-token 1启用grounding特殊 token让模型输出目标框--location-bin-size 32坐标离散化的分桶大小对应训练侧的--quantized-size 32。从 demo/gradio_app.py 的源码可以看到输入图像会先经过Resize((224, 224)) Inception 归一化mean[0.48145466, 0.4578275, 0.40821073]的预处理管线再送入视觉编码器最终由draw_box模块把模型输出的坐标渲染成可视化框。若此 Demo 能正常出图与出框说明从 PyTorch、Apex 到 sentencepiece、gradio 的整条依赖链均已就绪。进阶训练环境相关的参数速查完成上述安装后环境同样支持训练数据准备后执行bash train.sh。这里补充 train.sh 中与环境能力直接相关的参数说明便于验证你的环境是否满足训练需求参数含义依赖组件--task image_gpt_interleaved_laion_obj交错图文 LAION/COYO 目标检测数据的预训练任务infinibatch、open_clip--arch unigptmodel_xlXL 规模模型结构torchscale--memory-efficient-fp16系列混合精度训练Apex--flash-attentionFlash Attention 加速xformers v0.0.22--checkpoint-activations激活重计算以省显存DeepSpeedengine-xthru-v2 分支--spm-model data/sentencepiece.bpe.modelsentencepiece 模型路径sentencepiece其中 DeepSpeed、xformers 均来自 vl_setup_xl.sh 的安装data-weights 0,8,0表示交错数据、LAION 数据、纯文本数据三类数据源按 0:8:0 的概率采样。如果你的环境缺少 GPU 或未安装 CUDA 工具链训练相关步骤Apex 编译、DeepSpeed 安装会失败但纯推理 Demo 在满足 CUDA 的前提下仍可运行。常见问题与排查建议基于安装脚本与源码结构可以推断以下常见问题及对策Apex 编译失败多为torch与 nvcc 版本不匹配。确认nvcc --version与torch.version.cuda对应并在编译前保证当前 conda 环境中torch1.13.0已就位--no-build-isolation直接复用该环境protobuf报错严格按 requirements.txt 锁定protobuf3.20.3避免被其他安装步骤升级到 4.xgradio / pydantic 冲突保持gradio3.37.0与pydantic1.10.11两者版本联动不要单独升级其中任意一个sentencepiece 加载失败检查--spm-model指向的data/sentencepiece.bpe.model文件是否存在位于 kosmos-2/data 目录分布式启动报错run_gradio.sh与train.sh都依赖torch.distributed.launch若多卡环境异常可先设置CUDA_VISIBLE_DEVICES0单卡运行验证环境本身。总结Kosmos-2 的安装分为四个层次conda 环境与版本锁定依赖requirements.txt→ Apex CUDA 扩展编译 → 子项目与训练增强依赖一键安装vl_setup_xl.sh→ 模型权重下载与本地 Demo 验证run_gradio.sh。其中最容易出错的是 Apex 编译注意 pip 版本对应的两种安装语法与 protobuf/pydantic 等精确版本锁定。按照本文顺序执行即可获得一套同时支持本地交互 Demo 与大规模预训练实验的完整 Kosmos-2 环境仓库的 Docker 方案kosmos-2/README.md Setup 一节可作为跳过编译步骤的替代选项。【免费下载链接】unilmLarge-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities项目地址: https://gitcode.com/GitHub_Trending/un/unilm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表