# gpt2 **Repository Path**: zozero/gpt2 ## Basic Information - **Project Name**: gpt2 - **Description**: 根据Andrej Karpathy写的gpt2,这个版本是和国外最大的区别是修改变量成为中文变量。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-19 - **Last Updated**: 2024-12-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: PyTorch, gpt2 ## README ## 一些学习领悟 其实也可以看得出来,人工智能是某种概率的阐述,因为我们无法找到无穷小,现阶段无法去断言是否真的存在无穷小。 在无穷小和无穷大的区间中,我们所认知的极大值和极小值真的就是极大值和极小值吗? 人工智能是符合人类的神经运动的,基于此,为了更多的可能我会先去学习其他人的知识,然后去探索发现,最后再学习到神经元中。 这就是所谓的思维方式的转变,这种转变在于学习到新的可能。 例如:在画布上,我们先看到一条直线,学会了画直线,然后看到了一条曲线,学会了画曲线。有一天我们看了颜色,突然感觉原来还可以用颜色来点缀画。 由此,这种大脑种想法上的改变,不断地促进着人类的进步。思维方式就是不断的学习新的可能,然后神经元不断地趋近结果,有些类似于被学习率控制的梯度下降过程。 但宇宙真的有学习或看到新的事物吗?或者说地球真的有学习或看到新的事物吗? 答案是没有,人类只不过是在不断探索人的外部和人的内部中不断地了解一些现存的事物。 那么什么才叫创造?什么才叫创新呢? ### 基于此,关于教育领域中的推论 学习某一事物时,重复的学习,毫无疑问会强化学习到的知识本身,但也会导致思维方式的固化,因为他们的神经元运行结果过于拟合这种可能,导致他们无法适应新的事物或可能。 也就是先学习的内容会影响到后学习的内容。如果印象太深也许就无法自拔,这大概就是指书呆子吧。 所以只要不是神经元衰亡的话,遗忘并没有我们想象中的那么糟糕。 【那么逆向推演一下,岂不是老年痴呆(阿尔兹海默症)是旧有连接正在崩坏、衰亡导致的,那么老年人是不是只要多接触新的,或者不断重复接触旧有的,就可以有新的连接或者加强现有的连接呢?】 人工智能中的学习率就像是我们对现实知识或所看到的相信程度,我们越是相信,那么我们对它这次的学习程度就越深,后续也会依葫画瓢。也许最终会导致太过于依赖而无法自拔,就像看到了表面现象就以为是一切,以为是最终的结果。 以上两者,一个是过于重复的问题,一个是关于步子大小的问题,但它们的结果也许会趋于相同。 所以要不断进步就得不断学习新的事物,新的可能。 所以人类依旧要去探索,要去发现,要去寻找“真”。 ## 项目完成 + 2024年11月20日,当前只能从预训练模型中读取并使用。 + 2024年11月21日,添加加了训练功能,大量的性能优化说明,但还没添加保存功能。增加了一层循环,训练时间大幅延长。 + 2024年11月22日,添加了多显卡训练,但只适合在linux系统下使用,不过你可以在Windows下安装wsl2的Ubuntu,当然,你也需要有多张显卡。 + 2024年11月22日,添加抱抱脸渠道下载数据的方式,并且载入进行训练。 + 2024年11月23日,添加保存功能,暂时完成了代码,但可能还有很多不足,请见谅。 ## 相关内容 + 论文下载网站:https://arxiv.org/ + 英文源码地址:https://github.com/openai/gpt-2 + gpt-2源码:https://github.com/openai/gpt-2/tree/master ### 可能需要能够访问外网 + 模型下载地址:https://huggingface.co/openai-community/gpt2 + 原作者视频讲解地址:https://www.youtube.com/watch?v=l8pRSuU81PU&t=920s + 原作者视频源码地址:https://github.com/karpathy/build-nanogpt/tree/master ### 查看显卡信息 ``` bash nvidia-smi ``` ## 关于数据集 + 需要访问外网,精品网页:大规模挖掘网络上最精细的文本数据[ FineWeb: decanting the web for the finest text data at scale](https://huggingface.co/spaces/HuggingFaceFW/blogpost-fineweb-v1) + 需要访问外网,[精品网页:教育](https://huggingface.co/datasets/HuggingFaceFW/fineweb-edu) ## 优化运行速度相关论文 + 闪光注意力:快速且内存高效的精确注意力机制与IO感知:[FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness](https://arxiv.org/abs/2205.14135) + 闪光注意力-2:通过更好的并行性和工作划分实现更快的注意力机制:[FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning](https://arxiv.org/abs/2307.08691) + 用于软最大的在线归一化计算:[Online normalizer calculation for softmax](https://arxiv.org/abs/1805.02867) + 计算统一设备架构(CUDA)中的内容大部分是按照2的幂次方来实现的,所以最好选择8、16、64、128这类的数字或者这些数字的倍数