簡介
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 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
配置代理
vim .condarc (windows下必須是gbk編碼)
channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/- defaults
show_channel_urls: true
custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmsys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmenpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudsimpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pip
在配置完conda進行環境隔離后,除了使用conda去安裝依賴包之外,也可以使用python自帶的pip(會自動使用conda env下的pip)管理工具。
# pip install <package>[(==|>=)<version>] [-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