项目简介
“Transformers-code”是一个为《手把手带你实战Transformers》课程设计的代码仓库。这个项目旨在通过实践教学,帮助学习者掌握如何使用Transformers库进行自然语言处理(NLP)任务,并提供相关的代码支持和示例。
代码依赖
为了确保代码的正常运行,项目中使用了以下技术栈:
- torch 版本2.2.1+cu118
- transformers 版本4.42.4
- peft 版本0.11.1
- datasets 版本2.20.0
- accelerate 版本0.32.1
- bitsandbytes 版本0.43.1
- faiss-cpu 版本1.7.4
- tensorboard 版本2.14.0
课程规划
课程分为多个部分,每个部分着重于Transformers的不同应用和技术实现。
基础入门篇
介绍Transformers的基础知识,从环境搭建到各个组件的解析。内容包括Pipeline、Tokenizer、Model、Datasets、Evaluate以及Trainer。最后结合一个简单的文本分类实例进行模块化讲解。
实战演练篇
通过一系列实战案例展示Transformers在各类NLP任务中的应用。这些任务包括命名实体识别、机器阅读理解、多项选择、文本相似度、检索式对话机器人、掩码语言模型、因果语言模型、摘要生成和生成式对话机器人。通过这些例子,学习者可以深入理解Transformers如何解决实际问题。
高效微调篇
以PEFT库为核心,探讨Transformers模型的高效微调方法。此部分讲解了各种参数微调技术的原理和实践,包括BitFit、Prompt-tuning、P-tuning、Prefix-Tuning、Lora和IA3,让学习者能够选择和应用合适的方法提升模型性能。
低精度训练篇
在bitsandbytes库的支持下,介绍如何进行Transformers模型的低精度训练。学习者将了解如何使用不同精度进行模型训练,此过程包括半精度训练,以及8bit和4bit量化的实战演练,涵盖LlaMA2-7B和ChatGLM2-6B等模型。
分布式训练篇
解释如何通过accelerate库实现Transformers模型的分布式训练。课程详细探讨分布式训练的基本原理和accelerate库的使用方式,包括与Deepspeed框架的集成,以便在训练大规模模型时提高效率。
课程发布及更新
课程视频主要发布在B站和YouTube上,并会根据更新的进度进行同步。目前,课程的主更新平台是B站。
课程已经在多个方面完成更新,如Transformers基础入门、实战演练、高效微调、低精度训练以及分布式训练。每个章节均附有视频免费供学习者观看,学习者可以根据需要选择合适的章节进行深入学习。
番外技能篇
附加内容涵盖使用Optuna自动调参来优化Transformers模型的介绍,帮助学习者深入掌握性能调优技术。
通过这个项目,学习者能够扎实掌握Transformers在NLP中的各种应用和技术实现,快速入门并能独立解决实际问题。