实战Transformers
# https://www.runpod.io/ Cloud GPUs environment runpod/pytorch:2.1.1-py3.10-cuda12.1.1-devel-ubuntu22.04
## pre-instsall.sh
# 安装 miniconda, PyTorch/CUDA 的 conda 环境
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
~/miniconda3/bin/conda init bash && source ~/miniconda3/bin/activate
conda config --set auto_activate_base false
conda create -n transformers python=3.10 -y
conda activate transformers
# conda environments:
conda env list
nvidia-smi
pip install transformers datasets evaluate peft accelerate gradio optimum sentencepiece bitsandbytes trl
pip install jupyterlab scikit-learn pandas matplotlib tensorboard nitk rouge optuna wandb
pip install torch torchvision
pip install jupyter ipykernel huggingface_hub
python -m ipykernel install --user --name transformers --display-name "conda & pytorch(transformers)"
### clone code
apt update
apt install git-lfs
cd /workspace
git lfs install
git clone https://github.com/zwong91/transformers.git
-
基础入门篇:Transformers入门,从环境安装到各个基础组件的介绍,包括Pipeline、Tokenizer、Model、Datasets、Evaluate、Trainer,并通过一个最基本的文本分类实例将各个模块进行串讲
-
实战演练篇:Transformers实战,通过丰富的实战案例对Transformers在NLP任务中的解决方案进行介绍,包括命名实体识别、机器阅读理解、多项选择、文本相似度、检索式对话机器人、掩码语言模型、因果语言模型、摘要生成、生成式对话机器人
-
高效微调篇:Transformers模型高效微调,以PEFT库为核心,介绍各种常用的参数高效微调方法的原理与实战,包括BitFit、Prompt-tuning、P-tuning、Prefix-Tuning、Lora和IA3
-
低精度训练篇:Transformers模型低精度训练,基于bitsandbytes库,进行模型的低精度训练,包括LlaMA2-7B和ChatGLM2-6B两个模型的多个不同精度训练的实战演练,包括半精度训练、8bit训练、4bit训练(QLoRA)
-
分布式训练篇:Transformers模型分布式训练,基于accelerate库讲解transformers模型的分布式训练解决方案,介绍分布式训练的基本原理以及accelerate库的基本使用方式,包括与Deepspeed框架的集成
-
对齐训练篇: ...
-
性能优化篇: ...
-
系统演示篇: ...
课程视频发布在B站与YouTube,代码与视频会逐步进行更新,目前课程主要更新在B站,YouTube后续会持续更新
-
01- 基础知识与环境安装
-
02 基础组件之 Pipeline |
-
03 基础组件之 Tokenizer
-
04 基础组件之 Model(上) 基本使用
-
04 基础组件之 Model(下) BERT文本分类代码实例
-
05 基础组件之 Datasets
-
06 基础组件之 Evaluate
-
07 基础组件之 Trainer
-
08 基于 Transformers的 NLP解决方案
-
09 实战演练之 命名实体识别
-
10 实战演练之 机器阅读理解(上,过长截断策略)
-
10 实战演练之 机器阅读理解(下,滑动窗口策略)
-
11 实战演练之 多项选择
-
12 实战演练之 文本相似度(上,基于交互策略)
-
12 实战演练之 文本相似度(下,基于匹配策略)
-
13 实战演练之 检索式对话机器人
-
14 实战演练之 预训练模型
-
15 实战演练篇之 文本摘要(上,基于T5模型)
-
15 实战演练篇之 文本摘要(下,基于GLM模型)
-
16 实战演练篇之 生成式对话机器人(基于Bloom)
-
17 参数高效微调与BitFit实战
-
18 Prompt-Tuning 原理与实战
-
19 P-Tuning 原理与实战
-
20 Prefix-Tuning 原理与实战
-
21 LoRA 原理与实战
-
22 IA3 原理与实战
-
23 PEFT 进阶操作
-
24 低精度训练与模型下载
-
25 半精度模型训练(上,基于LLaMA2的半精度模型训练)
-
25 半精度模型训练(下,基于ChatGLM3的半精度模型训练)
-
26 量化与8bit模型训练
-
27 4bit量化与QLoRA模型训练
-
28 分布式训练基础与环境配置
-
29 Data Parallel原理与应用
-
30 Distributed Data Parallel原理与应用
-
31 Accelerate 分布式训练入门
-
32 Accelerate 使用进阶(上)
-
32 Accelerate 使用进阶(下)