SEED-Story尝鲜

254 阅读2分钟

腾讯开源推出了 SEED-Story,这是一种基于SEED-X的多模态大型语言模型,能够生成由丰富且连贯的叙事文本以及在角色和风格上保持一致的图像组成的多模态长篇故事。他们还发布了 StoryStream,这是一个专门为训练和评估多模态故事生成而设计的大规模数据集。

image.png

安装使用

依赖项

  • Python >= 3.8 (Recommend to use Anaconda)
  • [PyTorch >=2.0.1](Recommend to use torch==2.1.2+cu121)(pytorch.org/)
  • NVIDIA GPU + CUDA

安装

克隆仓库并安装依赖项

git clone https://github.com/TencentARC/SEED-Story.git
cd SEED-Story

我们使用cuda docker环境来完成基础依赖的安装,可以参考教程

进入容器之后执行

pip3 install -r requirements.txt

数据准备

腾讯开源发布 StoryStream 数据集用于训练和测试多模态故事生成。在StoryStream中下载图像和故事文本文件。
StoryStream 数据集由 3 个子集组成,即好奇的乔治、疯狂兔子入侵和史前时代。我们以乔治子集为例。
jsonl 文件包含所有数据。它的每一行都包含一个由 30 张图像和相应的故事文本组成的故事。“图像”部分是 30 张图像路径的列表。“说明”部分是 30 个相应的故事文本的列表。
为了提高训练效率,您可以像我们一样将故事分成 10 的长度。分块的脚本在./StoryStream/chunk_data.py中。

模型权重

腾讯开源发布预训练的分词器、预训练的去分词器、预训练的基础模型SEED-X-pretrained、StoryStream 指令调整的 MLLMSEED-Story-George和 StoryStream 调整的去分词器在Detokenizer-GeorgeSEED-Story Hugging Face中。
请下载检查点并将它们保存在./pretrained文件夹下。
您还需要下载stable-diffusion-xl-base-1.0Llama-2-7b-hfQwen-VL-Chat,并将它们保存在./pretrained文件夹下。请使用以下脚本来提取 Qwen-VL-Chat 中视觉编码器的权重。

下载完成之后,pretrained文件夹下的路径结构。下载速度如果比较慢,可以参考教程

├── License_Seed-Story.txt                                                                                                                                                                                                           
├── Llama-2-7b-hf                                                                                                                                                                                                                    
│   ├── LICENSE.txt                                                                                                                                                                                                                  
│   ├── README.md                                                                                                                                                                                                                    
│   ├── Responsible-Use-Guide.pdf                                                                                                                                                                                                    
│   ├── USE_POLICY.md                                                                                                                                                                                                                
│   ├── config.json                                                                                                                                                                                                                  
│   ├── generation_config.json                                                                                                                                                                                                       
│   ├── model-00001-of-00002.safetensors                                                                                                                                                                                             
│   ├── model-00002-of-00002.safetensors                                                                                                                                                                                             
│   ├── model.safetensors.index.json                                                                                                                                                                                                 
│   ├── pytorch_model-00001-of-00002.bin                                                                                                                                                                                             
│   ├── pytorch_model-00002-of-00002.bin                                                                                                                                                                                             
│   ├── pytorch_model.bin.index.json                                                                                                                                                                                                 
│   ├── special_tokens_map.json                                                                                                                                                                                                      
│   ├── tokenizer.json                                                                                                                                                                                                               
│   ├── tokenizer.model                                                                                                                                                                                                              
│   └── tokenizer_config.json                                                                                                                                                                                                        
├── Qwen-VL-Chat                                                                                                                                                                                                                     
│   ├── README.md                                                                                                                                                                                                                    
│   ├── SimSun.ttf                                                                                                                                                                                                                   
│   ├── config.json                                                                                                                                                                                                                  
│   ├── configuration_qwen.py                                                                                                                                                                                                        
│   ├── generation_config.json                                                                                                                                                                                                       
│   ├── modeling_qwen.py                                                                                                                                                                                                             
│   ├── pytorch_model-00001-of-00010.bin                                                                                                                                                                                             
│   ├── pytorch_model-00002-of-00010.bin                                                                                                                                                                                             
│   ├── pytorch_model-00003-of-00010.bin                                                                                                                                                                                             
│   ├── pytorch_model-00004-of-00010.bin                                                                                                                                                                                             
│   ├── pytorch_model-00005-of-00010.bin                                                                                                                                                                                             
│   ├── pytorch_model-00006-of-00010.bin                                                                                                                                                                                             
│   ├── pytorch_model-00007-of-00010.bin                                                                                                                                                                                             
│   ├── pytorch_model-00008-of-00010.bin                                                                                                                                                                                             
│   ├── pytorch_model-00009-of-00010.bin                                                                                                                                                                                             
│   ├── pytorch_model-00010-of-00010.bin                                                                                                                                                                                             
│   ├── pytorch_model.bin.index.json                                                                                                                                                                                                 
│   ├── qwen.tiktoken                                                                                                                                                                                                                
│   ├── qwen_generation_utils.py                                                                                                                                                                                                     
│   ├── tokenization_qwen.py                                                                                                                                                                                                         
│   ├── tokenizer_config.json                                                                                                                                                                                                        
│   └── visual.py                                                                                                                                                                                                                    
├── README.md                                                                                                                                                                                                                        
├── assets                                                                                                                                                                                                                           
│   ├── dataset.jpg                                                                                                                                                                                                                  
│   ├── pipeline.jpg                                                                                                                                                                                                                 
│   ├── teaser.jpg                                                                                                                                                                                                                   
│   └── thumbnail.jpg                                                                                                                                                                                                                
├── cvlm_llama2_tokenizer                                                                                                                                                                                                            
│   ├── added_tokens.json                                                                                                                                                                                                            
│   ├── special_tokens_map.json                                                                                                                                                                                                      
│   ├── tokenizer.model                                                                                                                                                                                                              
│   └── tokenizer_config.json                                                                                                                                                                                                        
├── detokenizer                                                                                                                                                                                                                      
│   ├── detokenizer_george_adapted                                                                                                                                                                                                   
│   │   └── checkpoint-4000                                                                                                                                                                                                          
│   │       └── pytorch_model.bin                                                                                                                                                                                                    
│   └── detokenizer_pretrained                                                                                                                                                                                                       
│       └── checkpoint-55000                                                                                                                                                                                                         
│           └── pytorch_model.bin                                                                                                                                                                                                    
├── seed_story                                                                                                                                                                                                                       
│   └── george_sft                                                                                                                                                                                                                   
│       └── pytorch_model.bin                                                                                                                                                                                                        
├── seedx                                                                                                                                                                                                                            
│   └── checkpoint-30000                                                                                                                                                                                                             
│       └── pytorch_model.bin                                                                                                                                                                                                        
├── stable-diffusion-xl-base-1.0                                                                                                                                                                                                     
│   ├── 01.png                                                                                                                                                                                                                       
│   ├── LICENSE.md                                                                                                                                                                                                                   
│   ├── README.md                                                                                                                                                                                                                    
│   ├── comparison.png                                                                                                                                                                                                               
│   ├── model_index.json                                                                                                                                                                                                             
│   ├── pipeline.png                                                                                                                                                                                                                 
│   ├── scheduler                                                                                                                                                                                                                    
│   │   └── scheduler_config.json                                                                                                                                                                                                    
│   ├── sd_xl_base_1.0.safetensors                                                                                                                                                                                                   
│   ├── sd_xl_base_1.0_0.9vae.safetensors                                                                                                                                                                                            
│   ├── sd_xl_offset_example-lora_1.0.safetensors                                                                                                                                                                                    
│   ├── text_encoder                                                                                                                                                                                                                 
│   │   ├── config.json                                                                                                                                                                                                              
│   │   ├── flax_model.msgpack                                                                                                                                                                                                       
│   │   ├── model.fp16.safetensors                                                                                                                                                                                                   
│   │   ├── model.onnx                                                                                                                                                                                                               
│   │   ├── model.safetensors                                                                                                                                                                                                        
│   │   ├── openvino_model.bin                                                                                                                                                                                                       
│   │   └── openvino_model.xml                                                                                                                                                                                                       
│   ├── text_encoder_2                                                                                                                                                                                                               
│   │   ├── config.json                                                                                                                                                                                                              
│   │   ├── flax_model.msgpack                                                                                                                                                                                                       
│   │   ├── model.fp16.safetensors                                                                                                                                                                                                   
│   │   ├── model.onnx                                                                                                                                                                                                               
│   │   ├── model.onnx_data                                                                                                                                                                                                          
│   │   ├── model.safetensors                                                                                                                                                                                                        
│   │   ├── openvino_model.bin                                                                                                                                                                                                       
│   │   └── openvino_model.xml                                                                                                                                                                                                       
│   ├── tokenizer                                                                                                                                                                                                                    
│   │   ├── merges.txt                                                                                                                                                                                                               
│   │   ├── special_tokens_map.json                                                                                                                                                                                                  
│   │   ├── tokenizer_config.json                                                                                                                                                                                                    
│   │   └── vocab.json                                                                                                                                                                                                               
│   ├── tokenizer_2                                                                                                                                                                                                                  
│   │   ├── merges.txt                                                                                                                                                                                                               
│   │   ├── special_tokens_map.json                                                                                                                                                                                                  
│   │   ├── tokenizer_config.json                                                                                                                                                                                                    
│   │   └── vocab.json                                                                                                                                                                                                               
│   ├── unet                                                                                                                                                                                                                         
│   │   ├── config.json                                                                                                                                                                                                              
│   │   ├── diffusion_flax_model.msgpack                                                                                                                                                                                             
│   │   ├── diffusion_pytorch_model.fp16.safetensors                                                                                                                                                                                 
│   │   ├── diffusion_pytorch_model.safetensors                                                                                                                                                                                      
│   │   ├── model.onnx                                                                                                                                                                                                               
│   │   ├── model.onnx_data                                                                                                                                                                                                          
│   │   ├── openvino_model.bin                                                                                                                                                                                                       
│   │   └── openvino_model.xml                                                                                                                                                                                                       
│   ├── vae                                                                                                                                                                                                                          
│   │   ├── config.json                                                                                                                                                                                                              
│   │   ├── diffusion_flax_model.msgpack                                                                                                                                                                                             
│   │   ├── diffusion_pytorch_model.fp16.safetensors                                                                                                                                                                                 
│   │   └── diffusion_pytorch_model.safetensors                                                                                                                                                                                      
│   ├── vae_1_0                                                                                                                                                                                                                      
│   │   ├── config.json                                                                                                                                                                                                              
│   │   ├── diffusion_pytorch_model.fp16.safetensors                                                                                                                                                                                 
│   │   └── diffusion_pytorch_model.safetensors                                                                                                                                                                                      
│   ├── vae_decoder                                                                                                                                                                                                                  
│   │   ├── config.json                                                                                                                                                                                                              
│   │   ├── model.onnx                                                                                                                                                                                                               
│   │   ├── openvino_model.bin                                                                                                                                                                                                       
│   │   └── openvino_model.xml                                                                                                                                                                                                       
│   └── vae_encoder                                                                                                                                                                                                                  
│       ├── config.json                                                                                                                                                                                                              
│       ├── model.onnx                                                                                                                                                                                                               
│       ├── openvino_model.bin                                                                                                                                                                                                       
│       └── openvino_model.xml                                                                                                                                                                                                       
└── visual_tokenizer                                                                                                                                                                                                                 
    └── qwen_vit_G.pt

推理使用


python3 src/inference/gen_george.py

python3 src/inference/vis_george_sink.py

运行成功之后生成的文件在 output 路径当中,效果如图

image.png

image.png