说明
Large World Model(LWM)是一个通用的大环境多模态自回归模型,它利用了一个技术名为RingAttention,通过在大型的多样化视频和图书数据集上的训练,实现了对语言、图像和视频的理解与生成能力。
在github上已有4.2k star!
- github主页:https://largeworldmodel.github.io/
- 代码仓库:https://github.com/LargeWorldModel/LWM
- huggingface:https://huggingface.co/LargeWorldModel
功能概述
LWM主要解决的问题是,当前的语言模型在理解那些难以用言语描述的世界方面存在短板,并且在处理复杂、长篇任务时表现不佳。视频序列提供了语言和静态图像中缺失的宝贵时间信息,这对于与语言的联合建模而言十分有吸引力。这些模型可以发展对人类文本知识和物理世界的理解,为人类提供更广泛的AI能力。但是,从数百万个视频和语言序列的标记中学习面临着内存限制、计算复杂性和数据集有限等挑战。为了解决这些挑战,LWM整合了大量多样化视频和图书的数据集,使用RingAttention技术在长序列上可扩展地训练,并逐步将环境大小从4K增加到1M标记。
应用场景
LWM可以在以下情况下使用:
- 知识检索与回答问题:LWM能够在1M的环境中准确地检索事实,这使其能够回答基于覆盖范围极广数据的复杂问题,例如,在长达一小时的YouTube视频中找到特定信息。
- 与图像的对话:LWM不仅能够理解和生成语言,还可以与图像“对话”。这意味着它可以理解图像内容,并根据图像内容生成文本回应。
- 从文本生成视频和图像:LWM能够将文本描述转换成图像或视频,这在内容创作、游戏开发和其他需要将文本想法可视化的领域具有巨大应用潜力。
安装步骤
- 先创建虚拟环境:
conda create -n lwm python=3.10
conda activate lwm
- 安装pytorch和cudnn
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia
- 如果上步骤没有安装起cudnn,可以按以下方式手动安装cudnn
在nvidia下载对应的cudnn压缩包文件:https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/
这里下载的是:https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
上传到服务器,解压,安装:
tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xzsudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
安装完成后,可进入python环境,查看各版本:
import torch
# pytorch版本
torch.__version__
# cuda版本
torch.version.cuda
# cudnn版本
torch.backends.cudnn.version()
- 安装jax0.4.23版本
直接执行安装:
pip install -U "jax[cuda12_pip]==0.4.23"
如果后续运行报错,尝试使用whl文件安装:
在网站https://storage.googleapis.com/jax-releases/jax_cuda_releases.html下载对应jax版本的whl:https://storage.googleapis.com/jax-releases/cuda12/jaxlib-0.4.23+cuda12.cudnn89-cp310-cp310-manylinux2014_x86_64.whl
然后上传服务器,安装:
pip install jaxlib-0.4.23+cuda12.cudnn89-cp310-cp310-manylinux2014_x86_64.whl
- 安装项目依赖
下载项目源码,进入项目目录,安装依赖:
pip install -r requirements.txt
- 下载模型
从https://huggingface.co/LargeWorldModel/LWM-Chat-32K-Jax/tree/main下载模型,放到服务器上
也可使用huggingface镜像站点直接下载,运行python代码:
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
os.system('huggingface-cli download --resume-download LargeWorldModel/LWM-Chat-32K-Jax --local-dir ~/software/lwm-model')
项目运行
修改scripts/run_vision_chat.sh中的模型路径,将自己的输入视频传入:
export llama_tokenizer_path="/root/software/lwm-model/tokenizer.model"
export vqgan_checkpoint="/root/software/lwm-model/vqgan"
export lwm_checkpoint="/root/software/lwm-model/params"
export input_file="/root/software/seasons_of_china.mp4"
然后“–mesh_dim=‘!1,-1,32,1’”这句要删除
然后运行:bash run_vision_chat.sh
然后报错:
GPU不足,看到issue上有说到这个配置:
暂无对应设备,作罢!