# Transformer4 **Repository Path**: wangpin-code/transformer4 ## Basic Information - **Project Name**: Transformer4 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-27 - **Last Updated**: 2025-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Transformer4 ## Tips 1. 总是进行可视化、和可视化分析,做充足的检验,很容易发现一些问题。比如softmax的dim取得对不对 ## 自注意力 ### heat map的形成与分析 如图所示,分别是模型初始化阶段生成的两张heat_map 图片。 同样是输入长度8,从而生成了8*8的head_map,但是明显第二张图片中注意力仅仅集中到了对角线位置。 且,第二张图片和第一张的区别是,第二张图片所使用的模型的dim更高。 其中原理可以引出一个定理:高维空间中, 向量普遍正交。 ![alt text](image_readme/heatmap1.png) ![alt text](image_readme/heatmap2.png) 但是为什么改用nn.Linear之后不会出现这种情况了?如图所示 ![alt text](image_readme/heatmap_with_init.png) nn.Linear并非随机初始化,而是有意的希望初始化的张量不要正交。 ## 历次总结 总结之前3次复现transformer并失败的经历,分析其问题,发现分别是以下几种情况: ### 第一次复现 首次复现,对整个架构的了解很浅,对torch的了解很浅,大部分使用ai完成代码,且没找到数据集,完全无法运行。 ### 第二次复现 对transformer整体架构有了一定的了解,但是不知道什么是teacher forcing,导致数据集构建十分困难 ### 第三次复现 最终发现训练结果很差,但是找不到原因 - 有一定程度的纯ai介入,这部分对于排错完全失灵 - 没有任何单元测试,对于模型的学习能力完全没有了解,导致最终出现了"能运行,没效果"的情况 - 可扩展性较差,不支持标准的掩码格式,这部分导致无法接入torch方法进行对比 ### 本次目标: - 取缔完全由ai完成的代码部分 - 执行单元测试,代码构建过程中检查是否可以训练 - 独立完成位置编码过程 - 完成必要的注意力可视化、位置编码可视化 - 为扩展留足位置