原版
从头开始用pytorch实现简单的Transformer。详细解释见:http://peterbloem.nl/blog/transformers。
限制
这里实现的模型旨在展示Transformer模型和自注意力的简单性。因此,它们无法扩展到像更大的Transformer那样。在那种情况下,你需要一些复杂化代码的技巧(详见博客文章)。
代码库中的所有模型都由单个堆叠的Transformer块组成(即没有编码器/解码器结构)。事实证明,这种简单的配置通常效果最好。
安装和使用
首先,下载或克隆代码库。然后,在包含setup.py的目录中,运行
pip install -e .
开关-e
确保当你编辑代码时,已安装的软件包也会随之更改。这意味着你可以,例如,向代码中添加打印语句以查看其工作原理。
然后,从同一目录中运行:
python experiments/classify.py
这将在IMDb数据集上运行一个简单的分类实验。
超参数通过命令行参数传递。默认值应该效果良好。分类数据会自动下载,维基百科数据已包含在代码库中。
要求
需要Python 3.6+版本。上述pip命令应安装所有必需的软件包。你还可能需要
pip install future
具体取决于Python的确切版本。
conda环境
environment.yml
文件描述了一个包含所有依赖关系的完整conda环境。在克隆或下载项目后,你可以按如下方式创建环境:
conda env create -f environment.yml --name former
conda activate former