复现论文SpikeGPT Generative Pre-trained Language Model with Spiking Neural Networks
记录一下复现论文SpikeGPT: Generative Pre-trained Language Model with Spiking Neural Networks的过程,论文给出了项目的GitHub地址。此博客是边跑边写边改的,尽量把顺序合理化,让人可以少走一些弯路
论文概述
利用工具,可以大概对此篇论文有如下了解
这篇文章介绍了SpikeGPT,这是一种基于脉冲神经网络(SNNs)的生成式语言模型。SNNs利用稀疏、事件驱动的激活方式来减少计算复杂性,提高能源效率,因此在深度学习领域有很大的潜力。虽然SNNs在计算机视觉任务上取得了成功,但在语言生成方面仍然有待进一步探索,因为它们的训练过程相对复杂。文章的作者们对Transformer模块进行了修改,消除了多头自注意力带来的二次计算复杂度,并引入循环计算,实现了逐词计算,同时保留了长程依赖关系。结果得到的SpikeGPT模型在语言生成任务上表现出竞争力,同时能耗仅为传统人工神经网络(ANNs)的五分之一。该模型还是迄今为止最大的反向传播训练的功能性SNN模型,拥有多达2.6亿个参数。这项工作为在自然语言处理任务中有效训练大规模SNNs并将Transformer架构与SNNs结合起来实现高性能和能源效率开辟了新的潜力。 |
配置环境
新建环境
新建一个Conda
环境
conda create -n SpikeGPT python=3.8 |
然后用pycharm
打开此项目,并切换到刚刚新建的环境
接下来就是安装环境了,由于作者没有提供具体包的版本,只能根据缺啥安装啥的原则,有什么问题之后再慢慢改
安装accelerate
pip install accelerate |
在安装accelerate
的时候,自动给我装了一个torch2.0.1版本的,这个后面管,只要这个torch版本大于10.0.0就行
安装Pytorch
根据我的CUDA
版本,安装了如下的torch
,具体安装细节可以参考这篇博客
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 |
安装matplotlib
pip install matplotlib |
安装tqdm
pip install tqdm |
安装transformers
pip install transformers |
安装deepspeed
错误安装方法
pip install deepspeed |
安装的时候报错了
换conda
试了后,conda install deepspeed
,也不行。
网上查了一个安装方式
pip install transformers[deepspeed] |
还是那个错,网上查了一下
设置一下环境变量试试
报错!!!好消息是报错变了
去github
看了一下,意思大概是这个库原本是在linux
上的,在window
上的支持还不是很好
正确安装方法
网上查到一篇win10成功安装的博客,按照博客的说法
首先安装必要组件
先把官方的开源的代码下载下来,解压(要用管理员权限)后
用管理员权限打开cmd,切换到解压的目录,在命令行输入
build_win.bat |
慢慢改错吧,先解决一个报错最多的
error: attribute "nodiscard" does not take arguments |
下载数据集
作者提供数据集Enwik8
下载地址
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ruvikm!