Janus-1B评测
1.推理流程内存
Peak memory usage:图生文 4.69200 GB 文生图 4.12932 GB
Name Self CPU % Self CPU CPU total % CPU total CPU time avg Self CUDA Self CUDA % CUDA total CUDA time avg CPU Mem Self CPU Mem CUDA Mem Self CUDA Mem # of Calls Total KFLOPs
aten::cat 0.91% 98.379ms 2.04% 221.175ms 28.454us 74.031ms 12.28% 74.058ms 9.528us 0 b 0 b 9.81 Gb 9.81 Gb 7773 -- aten::empty 0.42% 45.704ms 0.46% 50.266ms 4.799us 0.000us 0.00% 0.000us 0.000us 408 b 408 b 1.05 Gb 1.05 Gb 10475 -- aten::linear 0.43% 46.487ms 14.61% 1.580s 117.473us 0.000us 0.00% 293.150ms 21.797us 0 b 0 b 984.90 Mb -4.00 Kb 13449 -- aten::mul 1.69% 182.922ms 2.80% 302.639ms 17.256us 67.651ms 11.22% 67.672ms 3.859us 0 b 0 b 871.87 Mb 871.86 Mb 17538 315352.990 aten::matmul 1.18% 127.979ms 7.95% 859.807ms 64.021us 0.000us 0.00% 289.369ms 21.546us 0 b 0 b 716.97 Mb -4.00 Kb 13430 -- aten::mm 2.58% 278.637ms 4.76% 515.049ms 38.578us 289.102ms 47.95% 289.128ms 21.656us 0 b 0 b 716.78 Mb 716.78 Mb 13351 1786639286.272 aten::empty_strided 0.58% 62.384ms 0.58% 62.384ms 6.152us 0.000us 0.00% 0.000us 0.000us 0 b 0 b 548.69 Mb 548.69 Mb 10140 -- aten::to 0.16% 17.315ms 2.03% 220.100ms 17.513us 0.000us 0.00% 31.304ms 2.491us 0 b 0 b 439.60 Mb 0 b 12568 -- aten::_to_copy 0.45% 48.661ms 1.87% 202.785ms 24.912us 0.000us 0.00% 31.304ms 3.846us 0 b 0 b 439.60 Mb 0 b 8140 -- aten::add 1.42% 153.706ms 2.05% 221.767ms 19.016us 29.418ms 4.88% 29.421ms 2.523us 0 b 0 b 340.53 Mb 340.53 Mb 11662 168724.661
Self CPU time total: 10.816s
Self CUDA time total: 602.915ms
2.量化模块
量化模块怎么实现的
量化模块的位置以及为啥在那里
量化模块在里面起到什么作用:在标记化方面,设计了离散标记化(如利用 VQ 系列方法)和连续标记化技术,通过不同的编码器和转换方法将多模态数据转化为标记
量化是将连续空间中的值映射到离散空间的过程,通常会得到一个小得多的表示空间。当需要对多模态信息进行离散表示时,它是默认操作。量化通常与自动编码器技术相结合,以减小潜在空间的大小。典型的例子包括VQ系列标记器如VQVAE[138]和VQGAN[112],它们本质上具有离散表示.离散化特征表示:模型通过 VectorQuantizer 将高维的连续特征(从卷积层和残差块中提取的特征)映射到一个离散的嵌入空间。在该结构中,embedding 初始化为 Embedding(16384, 8),这意味着有 16384 种可能的离散表示,每种表示的维度为 8。这可以有效降低特征的维度,减少计算复杂性。
特征提取:通过多个 ResnetBlock 和卷积层提取图像的高维特征。
特征量化:使用 VectorQuantizer 将提取的连续特征映射到离散的嵌入空间。
多模态对齐:在需要时,与其他模态(如文本)的特征进行对齐,以增强模型的多模态理解和生成能力。
2. 尝试使用8比特量化/4比特量化(可选)
借鉴残差量化修改我的训练流程
将简化的量化技术用到cat上—先聚类后线性量化
论文实验目标
探索训练效果到底适合样本数,特征数,还是数据分布有影响
数据来源 | 样本数 | 特征数 | 损失变化 | 均方误差 (MSE) | 参数设置 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
random_data.npy | 65000 | 2048 | 0.05 | 0.025 |
| |||||||||||
dataset_2.npy | 50000 | 1024 | 0.04 | 0.030 |
| |||||||||||
custom_data.npy | 80000 | 4096 | 0.03 | 0.020 |
|
表格说明
- 数据来源:使用的数据集文件名。
- 样本数:数据集中样本的数量。
- 特征数:每个样本的特征维度。
- 损失变化:表示训练过程中损失的变化值。
- 均方误差 (MSE):训练模型过程中计算的均方误差