基于Denis Rothman的《大模型应用解决方案-Transformer架构的自然语言处理》
⭐!精简版 代码实现方向学习手册!⭐
本项目是笔者在公司工作业余写的,所以更新不会很快。但会保证内容全面。
项目偏向于实战代码,理论部分不是很多,一般附有论文链接,有兴趣可以查略。
书籍信息:《基于GPT-3,ChatGPT,GPT-4等Transformer架构的自然语言处理 》
同时也可以关注huggingface的nlp course: HuggingFace NLP Course
- Python v3.10+
- Python 环境管理 Miniconda
- Python 交互式开发环境 Jupyter Lab
- Hugging Face Transformers
- 音频处理工具包 ffmpeg
请使用 requirements.txt
文件进行 Python 依赖包安装:
pip install -r requirements.txt
通常,GPU 驱动和 CUDA 版本都是需要满足安装的 PyTorch 和 TensorFlow 版本。
大多数新发布的大语言模型使用了较新的 PyTorch v2.0+ 版本,Pytorch 官方认为 CUDA 最低版本是 11.8 以及匹配的 GPU 驱动版本。详情见Pytorch官方提供的 CUDA 最低版本要求回复。
简而言之,建议直接安装当前最新的 CUDA 12.3 版本,详情见 Nvidia 官方安装包。
安装完成后,使用 nvidia-smi
指令查看版本:
nvidia-smi
Fri Mar 1 11:16:55 2024
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 529.08 Driver Version: 529.08 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... WDDM | 00000000:01:00.0 Off | N/A |
| N/A 45C P8 6W / 30W | 0MiB / 4096MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
开发环境搭建包含几个部分
- Miniconda
- Jupyter Lab
- Hugging Face Transformers,需要尝试多种模型时候,建议tensorflow和pytorch都安装
- 其他依赖包
Miniconda 是一个 Python 环境管理工具,可以用来创建、管理多个 Python 环境。它是 Anaconda 的轻量级替代品,不包含任何 IDE 工具。 Miniconda可以从官网下载安装包。也可以从镜像网站下载:
# 下载 Miniconda 安装包
$ wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 也可以使用curl命令下载
$ curl -O https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 安装 Miniconda
$ bash Miniconda3-latest-Linux-x86_64.sh
安装过程中,需要回答一些问题,如安装路径、是否将 Miniconda 添加到环境变量等。安装完成后,需要重启终端,使环境变量生效。
可以使用以下命令来验证 Miniconda 是否安装成功:
$ conda --version
Miniconda的配置文件存放在~/.condarc,可以参考文档手工修改,也可以使用conda config命令来修改。
- 为了加速包下载,可以配置使用国内的镜像源:
# 配置清华镜像
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
$ conda config --set show_channel_urls yes
# 查看~/.condarc配置
$ conda config --show-sources
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
show_channel_urls: True
- 加速anaconda包的下载 可以使用mamba或micromamba来代替conda,这两个工具都是conda的替代品,会缓存包的版本信息,不需要在每次安装包的时候都去检查,这种可以有效提高conda-forge这种比较大的。安装mamba或micromamba的方法如下:
# 安装mamba
$ conda install -n base -c conda-forge mamba
# 安装micromamba
$ conda install -n base -c conda-forge micromamba
之后可以使用mamba或者micromamba命令代替conda命令。
# 创建虚拟环境,指定 Python 版本为 3.11
(base) $ conda create -n transformers python=3.11
# 激活 openai 环境
$ conda activate transformers
以下若无特殊说明,均在这里新建的openai环境中进行。
Jupyter Lab 是一个交互式的开发环境,可以在浏览器中运行。它支持多种编程语言,包括 Python、R、Julia 等。 Jupyter Lab由conda-forge提供,请先配置镜像,然后使用以下命令安装:
(transformers) $ conda install jupyterlab
Hugging Face Transformers 是一个基于 PyTorch 和 TensorFlow 的自然语言处理工具包,提供了大量预训练模型,可以用来完成多种 NLP 任务。Hugging Face Transformers 可以通过 conda 安装:
(transformers) $ conda install -c huggingface transformers
安装文档:Hugging Face Transformers
Transformers需要使用pytorch进行实际的模型推理,在前面已经配置了使用的pytorch和conda-forge镜像源,可以使用下命令安装和CUDA版本对应的Pytorch版本:
# Linux
# CUDA 11.8
(transformers) $ conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c nvidia
# CUDA 12.1
(transformers) $ conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c nvidia
# Mac
(transformers) $ conda install pytorch::pytorch torchvision torchaudio
安装文档:pytorch
在处理图像、音频等数据时,需要使用到其他的依赖包,包括:
- tqdm、iprogress 进度条
- ffmpeg、ffmpeg-python 音频处理工具
- pillow 图像处理工具
(transformers) $ conda install tqdm iprogress ffmpeg ffmpeg-python pillow