机器学习入门

简介

https://huggingface.co/是一个AI社区,类似于github的地位。它开源了许多机器学习需要的基础组件如:Transformers, Tokenizers等。
许多公司也在不断地往上面提交新的模型和数据集,利用它你可以获取以下内容:

  • Datasets : 数据集
  • Models : 预训练好的模型
  • Docs : 各种文档。

名词解释

名词 解释
NLP Natural Language Processing(自然语言处理)是一种人工智能技术,用于使计算机能够理解、解析和生成人类语言
计算图 在机器学习和深度学习中用于描述计算过程的图结构。它由节点(Node)和边(Edge)组成,节点表示计算操作(矩阵乘法、卷积、激活函数等),边表示数据流向(数据在节点之间的传递和依赖关系)。
动态图 在运行时动态构建和执行计算图的方式,可以在每个计算步骤中动态地定义、修改和执行计算节点。这 种方式使得模型的开发和调试更加灵活和直观,可以方便地使用控制流语句和条件语句,更容易进行动态的模型结构调整和组合
静态图 在编译时构建和优化计算图的方式,计算图的定义和执行是分离的,首先需要定义计算图的结构,然后通过编译和优化过程生成可执行的计算图
PyTorch 一个开源的深度学习框架,以动态图的方式进行计算图的构建和执行。它提供了丰富的工具和库,使得在Python环境中进行张量计算和构建神经网络更加简单和高效
TensorFlow 一个开源的深度学习框架,以静态图的方式进行计算图的构建和执行。它具有广泛的生态系统和强大的分布式计算支持,适用于大规模模型训练和部署
JAX 一个用于高性能数值计算和机器学习的开源库。它结合了NumPy的易用性和灵活性,以及XLA的自动加速能力。JAX支持自动微分和GPU加速,适合构建高性能的机器 学习模型
Transformers 一个在NLP领域中广泛使用的模型架构,用于处理文本相关的任务。提供API和工具,可轻松下载和训练训练模型,并支持PyTorch、TensorFlow和JAX之间的框架互操作性
conda 跨平台且支持多语言的软件包管理系统,它可以安装、更新和删除各种编程语言的软件包,并支持环境隔离
CUDA (Compute Unified Device Architecture)是一种并行计算平台和编程模型,由NVIDIA开发。它允许开发者使用NVIDIA GPU(图形 处理器)进行通用目的的并行计算。

环境安装

conda

conda用于对包进行环境管理,分为三个版本:

  • Anacoda : 用于科学计算,包含了Vonda、Python和超过150个可选软件包及其依赖项。
  • Miniconda : Anaconda 的轻量级版本,只包含了 Python 和 Conda,以及它们的依赖项
  • Conda : 只包含自身。

可以去国内镜像站下载: https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
或者去官网下载:https://docs.conda.io/projects/miniconda/en/latest/

使用文档:https://conda.io/projects/conda/en/latest/user-guide/getting-started.html
安装

# 去https://repo.anaconda.com/miniconda上查找匹配的python版本
wget https://repo.anaconda.com/miniconda/Miniconda3-py39_23.10.0-1-Linux-x86_64.sh
chmod +x Miniconda3-py39_23.10.0-1-Linux-x86_64.sh
./Miniconda3-py39_23.10.0-1-Linux-x86_64.sh -b -f -p <install director>

常用命令

conda --verison
conda update conda
where conda
# 查看环境
conda info --envs
# 创建myEnvName环境,并安装python包,如果不指定版本,则使用的是conda中的python版本
conda create --name myEnvName python=3.9
conda activate myEnvName 
conda deactivate
conda remove --name myEnvName --all

# 查找和安装软件包
conda search transformers
conda install transformers
conda list
# 查看conda配置
conda config --set show_channel_urls yes #生成配置文件
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --show channels
conda info | grep -i config
vim ~/.condarc
# 清理缓存(下载失败后需要)
conda clean --all
#清理镜像索引
conda clean -i

配置代理
vim .condarc (windows下必须是gbk编码)
清华源

channels:
  - defaults
show_channel_urls: true
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

阿里源
https://developer.aliyun.com/mirror/anaconda

channels:
  - defaults
show_channel_urls: true
default_channels:
  - http://mirrors.aliyun.com/anaconda/pkgs/main
  - http://mirrors.aliyun.com/anaconda/pkgs/r
  - http://mirrors.aliyun.com/anaconda/pkgs/msys2
custom_channels:
  conda-forge: http://mirrors.aliyun.com/anaconda/cloud
  msys2: http://mirrors.aliyun.com/anaconda/cloud
  bioconda: http://mirrors.aliyun.com/anaconda/cloud
  menpo: http://mirrors.aliyun.com/anaconda/cloud
  pytorch: http://mirrors.aliyun.com/anaconda/cloud
  simpleitk: http://mirrors.aliyun.com/anaconda/cloud
pip

在配置完conda进行环境隔离后,除了使用conda去安装依赖包之外,也可以使用python自带的pip(会自动使用conda env下的pip)管理工具。

# pip install [(==|>=)] [-i mirror url]
pip install transformers==4.30.2 -i https://mirrors.aliyun.com/pypi/simple/
# 一次下载文件中写的依赖,每个依赖占一行
pip install -r requirements.txt
常用工具

在线测试模型环境:https://colab.research.google.com/

# 查看gpu情况
nvidia-smi

下载模型

当你使用transforms的包进行引入模型时,它会去官网下载模型: https://huggingface.co/。

from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("THUDM/codegeex2-6b", trust_remote_code=True, cache_dir="/mnt/CodeGeeX2/model")
model = AutoModel.from_pretrained("THUDM/codegeex2-6b", trust_remote_code=True, device='cuda',  cache_dir="/mnt/CodeGeeX2/model")
model = model.eval()

上面的示例会自动取huggingface官网下载THUDM/codegeex2-6b这个模型,但是这个网站因为墙的原因在国内无法访问,可以考虑使用镜像去下载到指定位置

pip install -U huggingface_hub -i https://mirrors.aliyun.com/pypi/simple/
export HF_ENDPOINT=https://hf-mirror.com
# 下载THUDM/codegeex2-6b模型到本地目录:/mnt/data/CodeGeeX2/model
huggingface-cli download --resume-download --local-dir-use-symlinks False THUDM/codegeex2-6b --cache-dir /mnt/data/CodeGeeX2/model

更多使用帮助请参考:https://hf-mirror.com/

版本兼容

Torch与CUDA

去nvida(https://www.nvidia.com/Download/index.aspx)下载驱动的时候,选择完硬件会让你选择CUDA Toolkit版本。安装torch的时候,也需要选择cuda版本后,才能决定你的torch版本。
https://pytorch.org/get-started/previous-versions/
机器学习入门_第1张图片
机器学习入门_第2张图片

# 查看nvida信息,第一行会展示目前驱动对应的cuda版本。
nvidia-smi

你可能感兴趣的:(#,AI,机器学习,人工智能)