Skip to content

基于Denis Rothman的《大模型应用解决方案-Transformer架构的自然语言处理》,精简版 代码实现方向学习手册!

Notifications You must be signed in to change notification settings

phbst/transformer_llms_guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

:octocat:transformer架构的自然语言处理实战代码:octocat:

😊 项目介绍

基于Denis Rothman的《大模型应用解决方案-Transformer架构的自然语言处理》

⭐!精简版 代码实现方向学习手册!⭐

本项目是笔者在公司工作业余写的,所以更新不会很快。但会保证内容全面。

项目偏向于实战代码,理论部分不是很多,一般附有论文链接,有兴趣可以查略。


书籍信息:《基于GPT-3,ChatGPT,GPT-4等Transformer架构的自然语言处理 》

同时也可以关注huggingface的nlp course: HuggingFace NLP Course

😊 环境配置

搭建开发环境

安装 Python 依赖包

请使用 requirements.txt 文件进行 Python 依赖包安装:

pip install -r requirements.txt

关于 GPU 驱动和 CUDA 版本

通常,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      |
|=============================================================================|
+-----------------------------------------------------------------------------+

Transformers开发环境搭建

介绍

开发环境搭建包含几个部分

  • Miniconda
  • Jupyter Lab
  • Hugging Face Transformers,需要尝试多种模型时候,建议tensorflow和pytorch都安装
  • 其他依赖包

Miniconda

Miniconda 是一个 Python 环境管理工具,可以用来创建、管理多个 Python 环境。它是 Anaconda 的轻量级替代品,不包含任何 IDE 工具。 Miniconda可以从官网下载安装包。也可以从镜像网站下载:

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

Miniconda的配置文件存放在~/.condarc,可以参考文档手工修改,也可以使用conda config命令来修改。

  1. 为了加速包下载,可以配置使用国内的镜像源:
# 配置清华镜像
$ 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
  1. 加速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

Jupyter Lab 是一个交互式的开发环境,可以在浏览器中运行。它支持多种编程语言,包括 Python、R、Julia 等。 Jupyter Lab由conda-forge提供,请先配置镜像,然后使用以下命令安装:

(transformers) $ conda install jupyterlab

Hugging Face Transformers

Hugging Face Transformers 是一个基于 PyTorch 和 TensorFlow 的自然语言处理工具包,提供了大量预训练模型,可以用来完成多种 NLP 任务。Hugging Face Transformers 可以通过 conda 安装:

(transformers) $ conda install -c huggingface transformers

安装文档:Hugging Face Transformers

安装pytorch

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

😊 注意事项

请给我一点时间更新!

About

基于Denis Rothman的《大模型应用解决方案-Transformer架构的自然语言处理》,精简版 代码实现方向学习手册!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published