Optimus 项目介绍
Optimus 是首个预训练的大型变分自编码器(VAE)语言模型。这个项目的源码仓库包含了重现 EMNLP 2020 论文《Optimus: Organizing Sentences via Pre-trained Modeling of a Latent Space》所需的全部代码。
项目背景
Optimus 的核心是通过预训练建模将句子组织到一个紧凑且平滑的潜在空间中。这个潜在空间使得句子可以更好地进行组织和操作,尤其是在表示学习和句子生成方面都有很大的提升。
网络架构
Optimus 的网络架构由一个编码器和一个解码器组成。编码器用于表现学习,而解码器则专注于生成任务。这种架构使得句子能够在潜在空间中以预训练的方式被组织和操作,进而实现句子插值与类比等功能。
最新动态
- 2020年5月21日:发布了用于潜在空间操作的演示,包括句子插值和类比功能。
- 2020年5月20日:清理并发布了潜在空间操作的代码。
- 2020年5月13日:发布了语言模型的微调代码。
使用说明
使用此代码库来重现论文结果包含四个步骤:
- 环境依赖:从 Docker Hub 拉取必要的 Docker 镜像。
- 准备数据集:按照指导下载或准备数据。
- 模型训练:
- 在维基百科的句子上进行预训练。
- 进行语言模型的对比试验。
- 指导语言的生成。
- 低资源语言的理解。
- 结果收集与绘制:训练完成后使用 Python 脚本提取关键结果,并使用 IPython notebook 绘图。
数据准备
数据集的下载与准备需要按照文档中的说明进行,确保数据的正确性与完整性。
模型训练细节
- 预训练过程:主要在微软的内部计算集群 Philly 上进行,代码专为这种多节点多 GPU 训练环境而设计。
- 语言建模:使用维度为 32 的潜在模型,并在四个通用数据集上进行了一轮的微调。
- 指导性语言生成:在 SNLI 数据集上进行微调,以确保模型在潜在空间中的优越性能。
结果收集与可视化
训练完毕后,可通过 IPython notebook 提取并绘制结果,以便形象化地展示论文中的图表。
联络信息
如果有任何疑问,欢迎联络项目的主要贡献者 Chunyuan。
这个项目的代码和研究由 Chunyuan Li 和其团队在相关会议(EMNLP 2020)上发表,希望通过这一优质研究,为自然语言处理领域贡献新的思维与技术。