深度学习环境搭建 cuda、模型量化bitsandbytes、git-lfs安装教程 windows、linux

cuda、cudann、conda安装教程

输入以下命令,查看 GPU 支持的最高 CUDA 版本。

nvidia-smi

cuda安装(cudatoolkit)

前往 Nvidia 的 CUDA 官网:CUDA Toolkit Archive | NVIDIA Developer 

CUDA Toolkit 11.8 Downloads | NVIDIA Developer

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

cudnn安装

linux

CUDA Toolkit Archive | NVIDIA Developer

下载下来后扔到服务器上:

cudnn-linux-x86_64-8.4.1.50_cuda10.2-archive.tar.xz

注意他是 xz 不是 gz 所以解压就是:

tar -xf cudnn-linux-x86_64-8.4.1.50_cuda10.2-archive.tar.xz

之前,是将 cudnn 的文件扔到 cuda 的路径就OK了,然而事实上,不一定放到cuda的路径,只要添加到 LD_LIBRARY_PATH 即可

扫描二维码关注公众号,回复: 17215765 查看本文章

解压之后,有目录cudnn-linux-x86_64-8.4.1.50_cuda10.2-archive,其下有 include 和 lib

将该路径添加到 LD_LIBRARY_PATH,给这个路径起一个名字:

放到配置文件里:

echo "export CUDNN_DIR=$(pwd)" >> /etc/profile
echo "export LD_LIBRARY_PATH=$CUDNN_DIR/lib:$LD_LIBRARY_PATH" >> /etc/profile

之后刷新一下环境变量:

source /etc/profile

刷新完看看是否正确添加:

echo $CUDNN_DIR
/root/cudnn-linux-x86_64-8.4.1.50_cuda10.2-archive

返回这个就OK

再看看 LD_LIBRARY_PATH 对不对

echo $LD_LIBRARY_PATH

torch安装

pip install torchaudio torch==2.0.0+cu118 torchvision ninja --force-reinstall --extra-index-url https://download.pytorch.org/whl/cu118

Start Locally | PyTorch

根据自己电脑和系统在网页上选择适配自己的选项。

  • 第一行是选择torch是否稳定版本,默认稳定版本。
  • 第二行是选择自己的系统,有linux,mac,windows。 
  • 第三行是在什么环境安装:有anacoda里面安装, cmd里面pip安装,在libtorch安装,或者源码安装。
  • 第四行是语言选择:提供了python和c++/java
  • 第五行是否选择用cuda gpu版本的,如果是就要去看自己cuda版本(自行谷歌,百度),我这里选择none,不用gpu,这样就是cpu版本的torch
  • 第六行是安装的命令直接复制即可,到选择相应的环境安装,用anaconda或者pip这两个环境居多。

还有一个要特别说明,一定要用64位的环境,不论是python IDE或者Anaconda都要安装64位的,否则你尝试网上各种方法都没用。(博主含泪的经验,花了大量时间,网上查遍方法,结果发现是位数问题,直接卸载了32位的anaconda,装了64位发现成功了),至于位数怎么看,如果安装的是系统python,直接在cmd命令里面输入python,前提是添加了系统环境变量给python才行。如下图我就是开始安装的32位,尝试了很多方法都失败。ana从打开始也是32位的。
 

bitsandbytes安装

window

魔改bitsandbytes库让他支持windows。

python -m pip install bitsandbytes --prefer-binary --extra-index-url=https://jllllll.github.io/bitsandbytes-windows-webui

安装window版本的bitsandbytes

或者

pip uninstall bitsandbytes
pip install bitsandbytes-windows

另一种选择https://github.com/acpopescu/bitsandbytes/releases/tag/v0.38.0-win0

linux

GitHub - TimDettmers/bitsandbytes: 8-bit CUDA functions for PyTorch

1.pip安装

pip install bitsandbytes

2.本地编译,选择自己的cuda版本

git clone https://github.com/timdettmers/bitsandbytes.git
cd bitsandbytes

# CUDA_VERSIONS in {110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 120}
# make argument in {cuda110, cuda11x, cuda12x}
# if you do not know what CUDA you have, try looking at the output of: python -m bitsandbytes
CUDA_VERSION=117 make cuda11x
python setup.py install

将 Int8 推理与 HuggingFace 转换器结合使用

from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
  'decapoda-research/llama-7b-hf,
  device_map='auto',
  load_in_8bit=True,
  max_memory=f'{int(torch.cuda.mem_get_info()[0]/1024**3)-2}GB')

int4

from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfig
from transformers import AutoModelForCausalLM, BitsAndBytesConfig

# quantization configuration for NF4 (4 bits)
quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type='nf4',
    bnb_4bit_compute_dtype=torch.bfloat16
)
。。。。。。
model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen-7B-Chat",
    quantization_config=quantization_config,
    device_map="auto",
    trust_remote_code=True
).eval()

int4效果,12G显卡可以带动

from transformers import AutoModelForCausalLM, BitsAndBytesConfig, AutoTokenizer

# quantization configuration for NF4 (4 bits)
quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type='nf4',
    bnb_4bit_compute_dtype=torch.bfloat16
)

# quantization configuration for Int8 (8 bits)
# quantization_config = BitsAndBytesConfig(load_in_8bit=True)
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-7B-Chat", trust_remote_code=True)

model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen-7B-Chat",
    device_map="cuda:0",
    quantization_config=quantization_config,
    trust_remote_code=True,
).eval()

response, history = model.chat(tokenizer, "你好", history=None)
print(response)
response, history = model.chat(tokenizer, "给我讲一个年轻人奋斗创业最终取得成功的故事。", history=history)
print(response)
你好!很高兴为你提供帮助。
这是一个关于一个年轻人奋斗创业最终取得成功的故事。

这个年轻人叫做李明,他来自一个普通的家庭。他从小就对商业感兴趣,梦想着有一天能够成为一名成功的企业家。然而,他的家庭条件并不富裕,他需要通过自己的努力来实现自己的梦想。

李明在大学期间就开始创业,他成立了一家电子商务公司。一开始,公司的发展并不顺利,面临着很多困难和挑战。但是,李明并没有放弃,他坚定地相信自己的梦想,并且不断地努力工作。

他不断地学习和探索,寻找新的商机和创意。他也不断地与人交流和合作,寻求帮助和支持。最终,他的公司开始逐渐发展壮大,获得了越来越多的客户和投资者。

经过几年的努力,李明的公司已经成为了一家成功的电子商务企业。他的创业经历也激励了很多人,让他们相信只要努力奋斗,就能够实现自己的梦想。

这个故事告诉我们,创业并不是一件容易的事情,需要付出大量的努力和时间。但是,只要我们相信自己,不断努力工作,就一定能够取得成功。

pyopenjtalk 安装

ModuleNotFoundError: No module named 'pyopenjtalk'

pip install pyopenjtalk --no-build-isolation

其他量化方式

model = model.quantize(4).cuda()

git-lfs安装

一,git-lfs简介
git-lfs是一种GIT扩展,通常用于大型文件进行版本控制和管理,LFS全称为Large File Storage,它允许Git用户存储和管理大型二进制文件,而不会将其直接存储在Git仓库中,而是将其存储在外部的对象存储中。通过使用 git-lfs,用户可以避免将大型二进制文件存储在Git仓库中,从而提高Git仓库的性能和可维护性。
使用 git-lfs 需要先安装该扩展,然后在Git仓库中配置相应的LFS追踪规则,以指定哪些文件应该使用LFS进行管理。一旦配置完成,Git用户就可以像管理其他代码文件一样管理大型二进制文件。在执行Git操作时, git-lfs会自动处理LFS追踪的大型二进制文件,从而确保这些文件可以被正确地上传、下载和版本控制。

二,安装

apt-get update  # 更新安装包列表
apt-get install git  # 安装git
apt-get install git-lfs  # 安装git-lfs
git lfs install  # 初始化


 

参考资料

GitHub - jllllll/bitsandbytes-windows-webui: Windows compile of bitsandbytes for use in text-generation-webui.

GitHub - Keith-Hon/bitsandbytes-windows: 8-bit CUDA functions for PyTorch in Windows 10

猜你喜欢

转载自blog.csdn.net/m0_61634551/article/details/132373081