Project Icon

UltraFastBERT

指数级加速的BERT语言模型训练与推理方案

UltraFastBERT是一个开源项目,旨在通过创新的快速前馈(FFF)层设计实现BERT语言模型的指数级加速。项目提供了完整的训练代码,以及在CPU、PyTorch和CUDA平台上的高效实现。包含训练文件夹、各平台基准测试代码,以及UltraFastBERT-1x11-long模型的配置和权重,可通过HuggingFace轻松加载使用。研究人员可以方便地复现结果,并进一步探索该突破性技术在自然语言处理领域的广泛应用潜力。

UltraFastBERT

论文"指数级加速语言建模"的代码仓库

https://arxiv.org/abs/2311.10770

组织结构

  1. training文件夹包含2023年10月初克隆的crammedBERT仓库。进行了一些新的配置和小修改,以启用FFF的使用。提供了一个掩码实现(即一个FFF实现,它不提供速度优势,但通过掩码模拟选择性激活神经元),用于训练和下游微调。

  2. benchmark_cpu文件夹包含使用Intel MKL 2023.2.0实现的FFF推理加速CPU版本,以及传统FF层的基准DMM实现的C++代码。

  3. benchmark_pytorch文件夹包含FF和FFF推理的"原生融合"和"PyTorch BMM"实现的C++代码。

  4. benchmark_cuda文件夹包含FF和FFF的"朴素CUDA"实现的C++/CUDA内核代码。

从权重复现结果

UltraFastBERT-1x11-long的配置和权重可在HuggingFace上找到:

https://huggingface.co/pbelcak/UltraFastBERT-1x11-long

这些文件是使用training/load_local_model.py并设置impl.push_to_huggingface_hub=True生成并上传的。

UltraFastBERT-1x11-long作为一个模型,是我们对crammedBERT设置的小扩展的实例。 你可以直接进入training目录,按照crammedBERT README中给出的步骤使用HuggingFace的AutoTokenizerAutoModelForMaskedLM,不同之处在于你要使用UltraFastBERT-1x11-long,而不是crammedBERT。

快速入门

  1. 创建一个新的Python/conda环境,或者使用一个没有安装原始cramming项目任何版本的环境。如果你不小心使用了原始cramming仓库代码,而不是本项目/training文件夹中提供的代码,transformers会警告你有一些额外的权重(FFF权重)和一些缺失的权重(原始crammedBERT期望的FF权重)。

  2. cd ./training

  3. pip install .

  4. 创建minimal_example.py

  5. 粘贴以下代码

import cramming
from transformers import AutoModelForMaskedLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("pbelcak/UltraFastBERT-1x11-long")
model = AutoModelForMaskedLM.from_pretrained("pbelcak/UltraFastBERT-1x11-long")

text = "用你想要的任何文本替换我。"
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
  1. 运行python minimal_example.py

从头复现结果

  1. 要复现我们的训练和微调结果,直接进入training文件夹,按照那里的README指示操作。

  2. 要复现我们的CPU速度基准测试结果,进入benchmark_cpu。如果你使用Windows,编译和运行代码最简单的方法可能是使用带有Intel oneAPI扩展的Visual Studio 2022 Community。另一种选择是直接使用Intel编译器(更多信息请参考Intel oneAPI"入门"网站)。

  3. benchmark_pytorch的结果可以通过在该文件夹中运行python main.py来复现。这些运行的结果会自动保存到SQLite results.db文件中,便于查看。

  4. benchmark_cuda需要CUDA工具包。安装后,在扩展文件夹中使用python setup.py install将完成CUDA代码编译,并准备一个可导入的模块。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号