记录一下复现论文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
conda activate SpikeGPT

然后用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

安装的时候报错了

image-20230722102232403

conda试了后,conda install deepspeed,也不行。

网上查了一个安装方式

pip install transformers[deepspeed]

还是那个错,网上查了一下

image-20230722103014784

设置一下环境变量试试

屏幕截图 2023-07-22 105535

报错!!!好消息是报错变了

image-20230722105444097

github看了一下,意思大概是这个库原本是在linux上的,在window上的支持还不是很好

image-20230722103953254

正确安装方法

网上查到一篇win10成功安装的博客,按照博客的说法

首先安装必要组件

image-20230722122822936先把官方的开源的代码下载下来,解压(要用管理员权限)后

用管理员权限打开cmd,切换到解压的目录,在命令行输入

build_win.bat

image-20230722121606679

慢慢改错吧,先解决一个报错最多的

error: attribute "nodiscard" does not take arguments

下载数据集

作者提供数据集Enwik8下载地址