您的位置:首页 > 健康 > 美食 > 点击最多的网站_服务公司小说_百度图片搜索_网络广告营销的概念

点击最多的网站_服务公司小说_百度图片搜索_网络广告营销的概念

2024/12/23 6:25:19 来源:https://blog.csdn.net/lipeng08/article/details/140593108  浏览:    关键词:点击最多的网站_服务公司小说_百度图片搜索_网络广告营销的概念
点击最多的网站_服务公司小说_百度图片搜索_网络广告营销的概念

背景

一直想真正了解大模型对硬件资源的需求,于是准备详细看一篇视频,将核心要点总结记录下。本文内容参考视频:保姆级教程:6小时掌握开源大模型本地部署到微调,感谢up主

训练成本

  • 训练 > 微调 > 推理
  • 训练GPT3.5: 1000块80G的A100,训练1个月
    • GP3训练一次:200w到1200w美元
  • 推理:9块80G的A100

对GPU的要求高,对CPU和存储的要求不高
在这里插入图片描述

ChatGLM-6B
少量对话的时
在这里插入图片描述
多轮对话,单机多卡

  • 3090双卡 和 4090单卡价格差不多
    在这里插入图片描述
    A100、A800,H100,H800等对比图
    在这里插入图片描述
    从架构上
  • V100: 2017年 伏特 GPU第6代
  • A100: 2020年 安培 GPU第8代
  • H100: 2022年 赫伯 GPU第9代
  • A100是上一代V100的6倍:在跑 AI 模型时,如果用 PyTorch 框架,相比上一代 V100 芯片,A100 在 BERT 模型的训练上性能提升 6 倍,BERT 推断时性能提升 7 倍。
  • H100是V100的6倍:与上一代 A100 相比,采用 Hopper 的 FP8 Tensor Core 的新 Transformer 引擎使大型语言模型的 AI 训练速度提升 9 倍,AI 推理速度提升 30 倍。针对用于基因组学和蛋白质测序的 Smith-Waterman 算法,Hopper 的新 DPX 指令可将其处理速度提升 7 倍。
  • A800是A100的阉割版本,降低了NVlink带宽,影响不大
  • H800是H100的阉割版本,影响不大

GPU选择

大模型阶段GPU型号

有双精度:不能用4090
训练:不能用4090
微调:最好A100,或者4090多卡
推理:4090,性价比优于A100

4090笔记本:16G显存
4090台式机:24G显存
3090台式机:24G显存,性能是4090的一半
3080台式机:12G显存

单卡:4090 vs A100系列

  • 训练:大模型的参数依赖多卡,参数存储以及GPU通信,对内存容量,内存带宽,通信带宽都是强需,4090不适合
  • 推理:只需要单个模型,4090单卡可行
  • 4090价格是A100的1/100,其计算能力和A100差不多
    在这里插入图片描述
    单卡4090 vs 双卡3090,建议双卡3090
  • 价格差不多
  • 总算力和单张4090持平,显存多了一倍到48GB
  • 双卡流水线效果更好(?)

实验室配置

  • 10w预算:4张4090
  • 20-30w预算:8张4090,或者两张A100 80G
  • 预算不限:8卡 A100
  • 双卡GPU升级路线:3090 -> 4090 -> A100 40G -> A100 80G
  • 一定要买涡轮版,不能买风扇卡,涡轮卡尺寸和高度低,便于多卡

组装机

  • CPU有超频需求,上水冷;否则上风冷
  • 2*3090 搭配 i7-13700
  • 主板:Intel Z系列(高端),B系列(中端),A系列(低端,不要考虑)
  • 硬盘:接口SATA or M.2,建议M.2;协议类型:SATA协议(最高600MB/s),NVME协议(速度快 4GB/s),至少选择PCI-e 4.0
  • 内存:是显存容量的2倍
  • 电源:主要关注功耗,(CPU+GPU)*2,例如 65w CPU加125w GPU,电源一般400w;双GPU卡至少1000w,四GPU卡 1600w
  • 机箱:机箱的长度高出显卡的长度至少30mm

最强算力 H200

  • 显存 141GB,显存带宽 4.8TB/s(相比于A100 3.35TB/s)
  • 内存带宽1.15TB/s 如何理解

个人配置-多卡

GPU: 3090双卡,涡轮版;共48G显存;
CPU:AMD 5900X;12核24线程;
存储: 64GB内存+2T SSD 数据盘;
电源: 1600W单电源;
主板:华硕ROG X570-E;服务级PCE,支持双卡PCIE;
机箱: ROG太阳神601, ATX全塔式大机箱,便于大功率下散热;

租用服务器

平台推荐

在这里插入图片描述

付费GPU在这里插入图片描述

在这里插入图片描述

视频中采用的Windows和Linux双系统,本人更喜欢WSL

安装cuda

cuda driver和cuda runtime API

CUDA提供了两种API,分别是运行时API(CUDA Runtime API)和驱动API(Driver API)

  • 驱动API(Driver API)的版本对应nvidia-smi显示的CUDA Driver结果(该NVIDIA驱动程序所支持的最高CUDA版本),它提供了更细粒度的控制,允许直接与 CUDA 驱动交互。它通常用于需要精细控制的高级应用。
  • 运行时API(CUDA Runtime API)对应于nvcc -V显示的结果,它是一种更高级别的抽象,旨在简化编程过程,它自动处理很多底层细节。大多数 CUDA 程序员使用。

通常情况下,当提到CUDA时,指的是CUDA Runtime版本。

如何查看cuda driver API版本(cuda driver版本)
  • linux使用命令nvidia-smi也可查看driver版本,538.18我安装的具体版本
  • windows环境可以使用nvdia control panel应用并查看系统信息,可以查看该driver版本
    在这里插入图片描述
如何查看cuda runtime API版本(cuda版本)
  • 使用命令nvidia-smi看到的CUDA Version,是指该NVIDIA驱动程序所支持的最高CUDA版本,下图显示的即为支持的最高CUDA版本为12.2,需要安装小于12.2版本的CUDA。
  • 使用nvcc -V可以查看当前安装的cuda版本,可以通过 显示的版本号是小于等于nvidia-smi所显示的cuda版本,这就是二者显示版本不一致的原因。
    在这里插入图片描述
    通过这里CUDA和Driver版本适配关系可以查看适应当前机器的driver版本配套的cuda版本。可以通过cuda tookit下载来下载相应的cuda tookit。 可参考这篇文章
    在这里插入图片描述

安装GPU版本的pytorch

在WSL命令行输入以下命令:

conda create --name pytorch_gpu python=3.11
conda activate pytorch_gpu
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch -c nvidia

测试GPU

import torchdef check_cuda_support():if torch.cuda.is_available():print(f"CUDA is available. Number of GPUs: {torch.cuda.device_count()}")print(f"Current CUDA device: {torch.cuda.current_device()}")print(f"CUDA device name: {torch.cuda.get_device_name(torch.cuda.current_device())}")else:print("CUDA is not available. PyTorch is running on CPU.")if __name__ == "__main__":check_cuda_support()

命令输出
在这里插入图片描述

测试下带宽性能:/usr/local/cuda/extras/demo_suite/bandwidthTest
在这里插入图片描述

在这里插入图片描述

WSL 安装ollama

参照网站提供的帮组:https://github.com/ollama/ollama

  • curl -fsSL https://ollama.com/install.sh | sh

下载hugging face ChatGLM数据集

使用命令git clone https://huggingface.co/THUDM/chatglm-6b进行下载,这个需要科学上网。可以启动windows cmd,然后参照文档代理设置来设置本地代理。命令列表如下:

# 在代码仓库下载目录中,启动windows cmd
set all_proxy=http://127.0.0.1:7890
git clone https://huggingface.co/THUDM/chatglm-6b

微调模型需要多少显存

全量微调

  • model权重
    1B参数,10亿参数,每个参数占用2B,则一共占用2GB
  • 梯度:和model权重类似,也是2GB
  • 优化器:比梯度大很多,以4倍估计,大约是8GB
  • Activation:暂时忽略不计
    常用的全量微调内存消耗约为模型权重的6倍。

高效微调

LoRA模式:base模型+Adapter 2.5%,此时消耗的内存为 2GB + 2.5% * 10GB,约为2.3GB
QLoRA模式:对model权重对2B进一步量化

qwen微调1.B 5GB内存

参考链接:基于qwen的法律大模型微调

下载代码

git clone https://github.com/QwenLM/Qwen.git

安装依赖

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements_web_demo.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

下载模型

git clone https://www.modelscope.cn/qwen/Qwen-1_8B-Chat.git
git clone https://www.modelscope.cn/qwen/Qwen1.5-1.8B-Chat-GPTQ-Int4.git

启动web界面并加载指定目录的模型

python web_demo.py --server-name 0.0.0.0 -c ../Qwen-1_8B-Chat
python web_demo.py --server-name 0.0.0.0 -c ../Qwen-1_8B-Chat --cpu-only

在这里插入图片描述

界面呈现,默认是8000端口

http://localhost:8000/

在这里插入图片描述

下载法律数据集

git clone https://www.modelscope.cn/datasets/Robin021/DISC-Law-SFT.git
选择数据文件,下载 DISC-Law-SFT-Triplet-released.jsonl

转换数据集

将json中的input/ouput条目转换为from user & from assistant的形式

安装微调依赖

pip install "peft<0.8.0" deepspeed  -i https://pypi.tuna.tsinghua.edu.cn/simple

设置model路径和data路径,启动微调

bash finetune/finetune_lora_single_gpu.sh

在这里插入图片描述

安装pip使用清华镜像加速

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com