暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

你的 LLM 训练需要多少 GPU?

慢慢学 AIGC 2024-05-28
31

点击下方卡片,关注“慢慢学AIGC

由 DALL·E 3 生成,提示词:A detailed image of an NVIDIA Tesla V100 GPU system, showing 16 fully connected Tesla V100 32GB GPUs with a total of 0.5 TB high-bandwidth memory for complex deep learning models. The system is depicted in a modular, exploded view with each component separated to show internal details. The background is black, and the image is clean and professional, with no watermarks or additional text.

图形处理单元(GPU)


由于能够加速并行计算,GPU 是 LLM 训练的基石。现代深度学习框架(如 TensorFlow 和 PyTorch)利用 GPU 执行神经网络训练所需的矩阵乘法和其他操作。在选择 GPU 时,内存容量(VRAM)、内存带宽和处理能力(以 CUDA 核心计)是至关重要的因素。像 NVIDIA 的 Tesla 系列或 GeForce RTX 系列这样的高端 GPU 通常被用于 LLM 训练。GPU 越强大,训练过程就越快。

数据中心 GPU 选项


以下是一些全球最强大的数据中心级 GPU,通常用于构建大规模 GPU 基础设施。

NVIDIA Tesla A100

A100 基于张量核心并利用了多实例 GPU(MIG)技术。它是为高性能计算(HPC)、机器学习和数据分析等工作负载而设计的。

Tesla A100 旨在可扩展性(最多数千个单元),可以分割为七个 GPU 实例用于不同大小的工作负载。A100 提供高达 624 万亿次(每秒浮点运算)的性能,拥有 40GB 内存、1555 GB 带宽和 600GB/s 互连。

NVIDIA Tesla V100

V100 GPU 也基于张量核心,为机器学习、深度学习和 HPC 等应用设计。它使用 NVIDIA Volta 技术来加速深度学习工作负载中常见的张量操作。Tesla V100 提供高达 149 万亿次的性能,以及 32 GB 内存和 4096 位内存总线。  

NVIDIA Tesla P100

Tesla P100 GPU 基于专门为 HPC 和机器学习设计的 NVIDIA Pascal 架构。P100 提供高达 21 万亿次的性能,16 GB 内存和 4,096位内存总线。

NVIDIA Tesla K80 

K80 GPU 采用 NVIDIA Kepler 架构,可加速数据分析和科学计算。它包含 GPU Boost™ 技术和 4992 个 NVIDIA CUDA 核心。Tesla K80 提供高达 8.73 万亿次的性能,480 GB 内存带宽和 24GB GDDR5 内存。

Google TPU

Google 提供了稍有不同的张量处理单元(TPU),这些是专门基于芯片或云端的应用专用集成电路(ASIC),支持深度学习。这些 TPU 专门为与 TensorFlow 一起使用而设计,只能在 Google Cloud 平台上找到。

Google TPU 提供高达 420 万亿次的性能,高带宽内存(HBM)为 128 GB。您还可以找到具有超过 100 万亿亿次性能、32 TB HBM 和 2D 环形网状网络的 Pod 版本。

商用 GPU 只有 16 GB 24 GB GPU 内存,即使是最先进的 NVIDIA A100 和 V100 GPU 每台设备也只有 40 GB 80 GB GPU 内存。 

如何计算LLM训练所需的A100 GPU数量?


训练所需的 A100(80G)GPU 数量 = ((tokens * epochs * model_size * 13.3) hours)


如何计算 LLM 推理所需的 A100 GPU 数量?


推理所需的 A100(80G)GPU 数量 = (output_tokens throughput * qpm 60)

模型内存计算器


此工具将帮助您计算在 Hugging Face Hub 上托管的大型模型进行训练和推理需要多少 vRAM。

https://huggingface.co/docs/accelerate/main/en/usage_guides/model_size_estimator

不同GPU性能对比


https://developer.nvidia.com/hpc-application-performance 

https://lambdalabs.com/gpu-benchmarks

https://huggingface.co/docs/transformers/perf_train_gpu_one#anatomy-of-models-memory


有效分布式 LLM 训练的最佳实践


在 LLM 训练中实现有效分布式系统的最佳实践如下:

  • 选择合适的框架:使用为分布式训练设计的框架,如 TensorFlow 或PyTorch。这些框架提供了工具和 API,简化了分布式训练策略的实现。

  • 优化通信:通过使用诸如梯度累加后再更新模型或使用梯度压缩等技术来减少在节点之间交换的数据量,从而最小化通信开销。

  • 实验不同批量大小:为分布式训练找到最佳批量大小至关重要。批量过小可能会导致通信开销增加,而批量过大可能会导致内存约束。

  • 监控和调优:定期监控分布式训练设置的性能。调整超参数、分区策略和通信设置以优化性能。  

  • 备份和恢复:实施定期模型检查点和高效恢复机制,以防万一发生故障。这确保训练可以从上次检查点继续,而不必从头开始。

分布式 LLM 训练的挑战


尽管分布式系统为加速 LLM 训练提供了显著优势,但它们也带来了必须解决的挑战:

  • 通信开销:在分布式系统中,节点间的通信可能成为瓶颈。在聚合梯度或交换模型更新时,花费在通信上的时间会影响整体加速效果。

  • 同步复杂性:在模型并行场景中,协调来自多台机器的更新可能会很复杂。确保模型的不同部分正确同步需要仔细设计。

  • 故障处理:分布式系统带来了单个节点发生故障的可能性。需要健壮的机制来处理故障并恢复训练进度。  

  • 资源管理:跨多台计算机高效管理资源(包括 CPU 和 GPU)需要复杂的资源分配和调度策略。

参考资料


https://docs.nvidia.com/deeplearning/performance/dl-performance-gpu-background/index.html

https://medium.com/@dzmitrybahdanau/the-flops-calculus-of-language-model-training-3b19c1f025e4

https://huggingface.co/docs/accelerate/main/en/concept_guides/training_tpu

https://towardsdatascience.com/how-to-build-a-multi-gpu-system-for-deep-learning-in-2023-e5bbb905d935

https://blog.eleuther.ai/transformer-math/

https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/#When_do_I_need_11_GB_of_Memory  

https://lambdalabs.com/gpu-benchmarks


点击下方卡片,关注“慢慢学AIGC


文章转载自慢慢学 AIGC,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论