1.赛题介绍
本次任务:天池Better Synth多模态大模型数据合成挑战赛。
在当下大数据、大模型时代,大数据是驱动大模型的能源。当前大模型的训练数据绝大部分来源于互联网上的信息,但随着大模型尺寸与性能逐渐提升,互联网上的海量数据也将逐渐使用殆尽,并且对于多模态大模型来说,这些海量资源在获取后,也需要极大的额外处理和人力标注才可以达到可用于训练大模型的水准。因此,如何借助已有的强大的大模型,在有限的计算资源下为新的模型训练流程高效合成优质的训练数据成为了一个新兴的值得关注的问题。“Better Synth”是 Data-Juicer for LLMs 系列赛的第四场比赛,不仅为数据工程师和机器学习专家提供了展示能力的舞台,更是引领多模态大模型的开源共享发展。
2.相关知识点
多模态大模型是指能够处理多种类型数据(如文本、图像、音频等)的大型预训练模型。这些模型通常使用深度学习技术构建,并在大量的多模态数据上进行训练,以便它们能够理解和生成跨不同模式的内容。
数据处理:数据收集、数据清洗、数据预处理。
模型训练:选择模型架构、超参数调整、监控训练过程。
3.baseline指南
这次的赛题比较难,划分为时间很长,跑一趟完整的训练需要4小时,试错成本很高。需要的资源比较多,环境配置比较容易出问题。
温馨提示:由于baseline运行需求,我们需要
-
额外扩充磁盘空间,至少需要增加50G,需0.1元每小时,
-
在后面的模型训练和评测阶段,需要跑大概3小时,至少需要100G+以上的内存,需要至少购置阿里云188G内存的GPU规格,大概需要15元每小时。
这个成本很高,自行配置环境,可能会有各种各样的问题,我自己跑通baseline大概花了70多,后面的学习预计还要更多的,所以最近也在研究如何薅羊毛。受限于时间关系,还没开始研究。
花了大概一天时间,把baseline跑通,后面的学习再去继续研究代码,精进上分。
baseline流程:
首先我们下载各种库和数据:
git clone https://www.modelscope.cn/datasets/Datawhale/better_synth_challenge_baseline.git
下载多模态base模型及数据集 & 相关依赖软件:
-
安装必要工具
apt update
apt install axel zip file
pip install modelscope
2.下载模型和相关数据集:
cd better_synth_challenge_baseline
bash download.sh ###大概需要50分钟
下载BLIP图片描述模型:
python download_blip.py
# 如果是在autoDL上,需要修改download_blip.py文件,将下载路径对应修改为
# cache_dir='/root/autodl-tmp/better_synth_challenge_baseline/models'
数据处理与合成:
这里需要先修改实例配置,修改为188G内存的GPU规格(费钱,大概15块一小时)
-
先关闭实例
-
按照下图选中对应规格,
-
然后确定、启动即可
然后运行如下代码进行数据处理与合成:
dj-process --config solution/image_captioning.yaml
执行模型训练 & 推理测评:
cd better_synth_challenge_baseline/toolkit
git clone https://github.com/modelscope/data-juicer.git
bash train_mgm_2b_stage_1.sh ### 大概需要3小时
打包构建符合提交要求的zip文件:
better_synth_root_dir=/mnt/workspace/
cd submit
cp -r ${better_synth_root_dir}/better_synth_challenge_baseline/solution .
cp -r ${better_synth_root_dir}/better_synth_challenge_baseline/output/eval_results output/
cp -r ${better_synth_root_dir}/better_synth_challenge_baseline/output/train.sh output/
cp ${better_synth_root_dir}/better_synth_challenge_baseline/output/training_dirs/MGM-2B-Finetune-*/finetuning.log output/training_dirs/MGM-2B-Finetune-image_recaption/
cp ${better_synth_root_dir}/better_synth_challenge_baseline/output/training_dirs/MGM-2B-Pretrain-*/pretrain.log output/training_dirs/MGM-2B-Pretrain-image_recaption/
zip -r submit.zip solution output
4.问题解决和结果展示
说说我在跑代码的过程中遇到问题:
1)提交后,文件评测失败,这个后来重新跑了,训练时候就没训练完,其实问题还是第二个问题;
2)cuda out of memory。报错如下:
解决方案:通过修改batch_size,把batch_size改小,从4改到2,解决。
不过这里要注意一下:
batch_size由4改到2的同时,需要把STEPS扩大两倍,确保二者乘积不变,要不会报错。
3)结果展示
花了一天时间,70大洋,最终分数如下,也算是对自己的一点慰藉。薅羊毛的渴望越来越强烈。。。后面准备再去整整,研究研究。
后续一周的学习中,继续努力进阶。。。
喜欢的小伙伴,点赞收藏关注吧。