LVM: Sequential Modeling Enables Scalable Learning for Large Vision Models(视觉大模型论文阅读与环境搭建)

一、 LVM

LVM是一种视觉预训练模型,它将各种视觉数据转换成视觉句子,并进行自回归的下一标记预测。同时支持GPU和TPU。
LVM建立在OpenLLaMA(一种自回归模型)和OpenMuse(一种将图像转换为视觉令牌的VQGAN)之上。

环境搭建

git clone https://github.com/ytongbai/LVM
cd LVM
export PYTHONPATH="\${
    
    PWD}:\$PYTHONPATH"

conda env create -f scripts/gpu_environment.yml
conda activate LVM

数据准备

本节介绍如何通过将可视化数据标记为可视化句子,然后混合和洗牌数据集来准备数据集。

我们在 ./tokenize_examples中有单独的脚本来处理论文中提到的不同类型的视觉句子。简单说明和使用说明如下。

(1)配对数据集(Pair Datasets)

对于配对数据集,视觉句子被构造为 [图像, 标签, 图像, 标签, 图像, 标签, …] 的形式。
我们使用脚本 tokenize_examples/tokenize_paired_dataset_muse.py 生成视觉 token。
例如,对于深度图、表面法线、边缘和分割任务,我们首先使用 prism 工具生成伪标签(pseudo labels),然后使用脚本生成视觉句子。
注意,对于分割任务,我们在从 prism 获取伪标签后,使用额外的颜色映射脚本来处理标签映射,这可以通过运行 tokenize_examples/map_color.py 实现。

(2)视频数据集(Video Datasets)

对于视频数据集,视觉句子被构造为 [帧1, 帧2, 帧3, … 帧x] 的形式。
可以使用脚本 tokenize_examples/tokenize_video_muse.py 来生成视觉 token。
超参数 stride 可以用来控制从视频中提取帧的采样率

(3)图像修复数据集(Inpainting Datasets)

对于图像修复数据集,视觉句子被构造为 [遮挡图像, 原始图像, 遮挡图像, 原始图像, …] 的形式。
可以使用脚本 tokenize_examples/tokenize_inpainting_dataset_muse.py 来生成视觉句子。
用户可以通过修改 FLAGS.hole_mask_ratio 参数来控制遮挡的比例。

在这里插入图片描述
混合和洗牌数据集
在生成JSONL文件之后,需要对数据集进行混合和重组。遵循以下步骤:

在这里插入图片描述

模型训练

python -u -m EasyLM.models.llama.llama_train \
    --jax_distributed.initialize_jax_distributed=True \
    --jax_distributed.coordinator_address='$MASTER_ADDR:$MASTER_PORT' \
    --jax_distributed.local_device_ids='0,1,2,3,4,5,6,7' \
    --mesh_dim='$SLURM_NNODES,-1,1' \
    --dtype='bf16' \
    --total_steps=400000 \ # change according to the number of data
    --log_freq=10 \
    --save_model_freq=1000 \
    --save_milestone_freq=2000 \
    --load_llama_config=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值