GPT大模型实现图片生成
自主构建字体领域图片数据集,训练了一个由image tokenizer、GPT2以及GAN构成的多阶段AIGC大模型。项目亮点
包括:训练数据的快速清洗、多阶段生成式模型的具体设计、大模型的低成本训练及部署方法、后续演进的超大字符集
矢量字生成。
●训练数据集的清洗与整合:
通过对比学习、K-Means与Birch等聚类算法,实现了训练数据在特征空间上的清洗及聚类,快速过滤了错误数据,
同时解决了训练集数据分布不均匀等问题。
●大模型的多阶段训练:
阶段一:image tokenizer训练。训练离散自编码模型VQ-VAE,将图片转换为若干离散tokens,为下一阶段的gpt
训练奠定基础。训练技巧包括LPIPS、对抗网络训练、梯度截断、学习率的warm up、随机mask进行数据增强等。
阶段二:GPT训练。在第一阶段image tokenizer构建的离散隐空间上训练GPT模型,实现字体图片的生成。训练
技巧包括lightning框架下的分布式训练,fp16混合精度训练,梯度累积,deepspeed框架下的zero-1训练,AdamW的
weight decay等。
阶段三:训练GAN,改善大模型生成内容多样性弱、模型幻觉等问题。训练技巧包括标签反转、soft hinge loss、
自适应学习率,自主设计的skeleton loss及label loss等。
●模型量化与部署:
针对不同的硬件条件,采用了基于TensorRT的模型PTQ量化,以及基于Triton的模型编译及部署,利用docker及
conda实现环境隔离,最终推理速度提升2到3倍。
●大模型微调:
通过少量数据,微调GPT大模型,将可生成字符集范围由两万拓展到九万。并基于DiffVG、Laplacian算子以及
梯度下降法,实现了由像素字体图片引导的矢量字体生成算法。