数据集的处理:将Storystream的数据集处理为可训练的格式
文章目录
- 一、数据集的介绍
- 二、目标数据集的格式
- 三、数据集的格式的转换
一、数据集的介绍
SEED-Story: Multimodal Long Story Generation with Large Language Model
SEED-Story github地址
我们要处理的数据集是SEEDStory这篇论文提出的StoryStream这个数据集里面的。
huggingface中StoryStream数据集的下载地址
StoryStream数据集
我们常用的故事可视化的数据的大小为128*128,图像的质量不是很好
本文提出的数据集的大小为854 * 480,数据的质量比较高
本数据集包含3个子数据集
三个子数据集分别为:Curious George、Rabbids Invasion(兔子入侵)、The Land Before Time(恐龙历险记)
Curious George
好奇的乔治
好奇的乔治是由马修·奥卡拉汉执导,弗兰克·维尔克、威尔·法瑞尔、德鲁·巴里摩尔担任主要配音的动画喜剧电影,于2006年2月10日在美国上映。该片讲述了充满好奇心的小猴子乔治离开丛林来到人类的世界,开始了一连串新奇冒险的故事
Rabbids Invasion
疯狂的兔子(兔子入侵)
The Land Before Time(恐龙历险记)
小脚板走天涯 The Land Before Time
故事发生在恐龙时代,一场大地震突然袭击了本来平和的土地,雷龙小脚板(加布里埃尔·达蒙 Gabriel Damon 配音)因为这场大地震不幸和家人失散了。通过苦苦的追寻,小脚板终于得知,自己要前往远在万里的恐龙乐园大林,只有在那里,他才能够和他的家人们团聚。就这样,年幼的小脚板踏上了旅途。
一路上,小脚板结识了很多和他经历一样的小恐龙们,目的地相同的他们结为了旅伴,互相鼓励帮衬着前进。在这场盛大的冒险途中,小脚板迅速的成长,学会了各种自我保护的生存技能,同时也体会到了友情的珍贵
二、目标数据集的格式
我们需要利用此数据集训练lora
那需要将数据集转化为以下格式
整个数据集包含以下三个文件夹,分别是:train、test、val
每个文件夹里面包含2个文件:image、json文件(用于记录乜咯图片对应的文本)
json文件中每行的数据是这样的
每行都是一个字典,每个字典里有两个key,分别为“file_name”和“text” ,分别记录了每张图片的文件名称,以及图片所对应的文本内容
{"file_name": "Pororo_ENGLISH1_1_ep001_004.png", "text": "Pororo found a round thing under the trees. Pororo feels curious. Pororo starts to sweep off the snow around it."}
{"file_name": "Pororo_ENGLISH1_1_ep001_007.png", "text": "The egg is hatched in Pororo's house. Green dinosaur Crong came out. Pororo gets surprised a little."}
{"file_name": "Pororo_ENGLISH1_1_ep001_010.png", "text": "Pororo stands outside on the area covered by snow with trees. Crong follows Pororo and say crong. Pororo got surprised. The sky is blue and clear."}
{"file_name": "Pororo_ENGLISH1_1_ep001_013.png", "text": "Poby Eddy and Loopy stay outside on the ice. Pororo look back Eddy Poby and Loopy. They are staying outside on the ice. Pororo is waving Pororo's hand."}
{"file_name": "Pororo_ENGLISH1_1_ep001_020.png", "text": "Pororo got surprised and ran away from Crong. Crong feels weird."}
{"file_name": "Pororo_ENGLISH1_1_ep001_021.png", "text": "Poby Eddy and Loopy are playing on the snow. Poby suddenly stopped with surprise. Eddy and Loopy also stopped."}
image文件夹里都是图片,我们需要把外面的json文件重命名为metadata.jsonl文件,然后放在这个文件夹里
对于图片的命名,我们对其中涉及的数字都转化为6为数字,从而避免后续对于读取图片时排序错误的问题
000000_keyframe_000008-000044-000025-000100.jpg
三、数据集的格式的转换
大量数据的文件解压
解决linux系统下(服务器)无法解压大文件压缩包(.zip
这里用的是x
7za x 文件名.zip
注意不要用e(会破坏目录结构)
a 向压缩包里添加文件或创建压缩包
(如向001.7z添加001.jpg,执行:7za a 001.7z 001.jpg;将001目录 打包执行:7za a 001.7z 001;)
d 从压缩里删除文件
(如将001.7z里的001.jpg删除,执行:7za d 001.7z 001.jpg)
l 列出压缩包里的文件
(如列出001.7z里的文件,执行:7za l 001.7z)
e 解压到当前目录,目录结构会被破坏
(如001.rar内有如下目录及文件123/456/789.html,执行:
7za e 001.rar,目录123和456及文件789.html都会存放在当前目录下。
x 以完整路径解压