返回顶部

大模型开源生态与硬件选型

大模型时代的 Github: Hugging Face

 Hugging Face 是什么?

Hugging Face 是一家2016年成立的总部位于纽约的 AI 初创公司。 最早是一家开发聊天机器人的企业。他们的目标是使用聊天机器人为无聊的年轻人解闷。当然,这样的创意虽然看起来很好,但显然并没有做得很大。

HuggingFace 转型契机:主要来源于它在NLP领域的贡献。在Bert发布不久之后,他们贡献了一个基于Pytorch的Bert预训练模型,即pytorch-pretrained-bert。

Hugging Face Transformers

https://github.com/huggingface/transformers

Hugging Face 在 GitHub上维护了一 个庞大的开源社区,提供了丰富的机 器学习(ML)工具和模型,其中最 著名的项目是Transformers。 Transformers:先进的机器学习库, 提供了基于TensorFlow、PyTorch、 JAX实现的各种SOTA模型和工具

 Hugging Face 开源社区

Hugging Face 公司提供了一个面向机器学习和数据科学的开源社区。它包含超过300,000个模型、50,000个数据集和100,000个 名为Spaces的Demo Apps :

https://huggingface.co/docs

  • HF Models: 用户可以在这里共享、下载和部署预训练模型。此外,他们还提供了Inference API,使开发者能够轻松地使用 这些模型进行自然语言处理任务,无需深入了解模型的内部工作原理。 

  • HF Datasets:针对机器学习和大语言模型的各类任务,提供了一个分享和交流数据集的平台,便于缺少数据的开发者和用户 快速启动项目。 

  • HF Spaces: Hugging Face通过提供AI计算资源来实现盈利。他们提供 AutoTrain、Spaces和Inference Endpoints等服务, 用于将模型集成到实际应用中。

  • HF Docs: 除了开源项目和商业产品,Hugging Face 还积极参与教育和研究社区,为学生、研究人员和开发者提供教程、 文档和资源,以帮助他们更好地理解和应用ML和LLM技术。

HF Open LLM Leaderboard (大模型天梯榜)

 

https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard/tree/main

Open LLM Leaderboard使用 Eleuther A I语言模型评估工具对模型进行了4个关键基准测试,这是一个统一的框架,用于在 大量不同的评估任务上测试生成式语言模型。

  • AI2推理挑战(25-shot)- 一组小学科学问题。

  • HellaSwag(10-shot)- 这是一个常识推理测试,对人类来说很容易(约95%),但对SOTA模型来说具有挑战性。 

  • MMLU(5-shot)- 这是一个测量文本模型多任务准确性的测试。该测试涵盖57个任务,包括初等数学、美国历史、计算 机科学、法律等等。 

  • TruthfulQA(0-shot)- 这是一个衡量模型倾向于复制在线常见谬误的测试。(注意:Harness中的TruthfulQA实际上是一 个6-shots任务,在启动时即使将few-shot示例数量设置为0,也会自动添加6个示例。)

对于所有这些评估,得分越高越好。 Open LLM Leaderboard 选择了这些基准作为它们在0-shot和few-shot环境下涵盖了各 种推理和广泛知识领域。

显卡选型推荐指南

 GPU vs 显卡

GPU(图形处理单元) :计算机内部的硬件组件,用于处理图形和图像相关的任务。

主要功 能:

  • 处理图形渲染,包括游戏、视频和动画。

  • 加速通用计算,如深度学习、科学模拟等。

  • 高度并行处理,适用于大规模数据处理和处理密集型任务。

显卡 :包含一个或多个GPU芯片的硬件设备,通常用于图形渲染和计算任务。 主流显卡的显 示芯片主要由NVIDIA(英伟达)和AMD(超威半导体 )两大厂商制造,通常将采用NVIDIA显示 芯片的显卡称为N卡,而将采用AMD显示芯片的显卡称为A卡

主要作用:

  •  将GPU集成到计算机中,通过接口(如PCIe)连接到主板。 

  • 提供图形输出接口,如HDMI、DisplayPort,使显示器能够显示图像。 

  • 可以有不同的物理尺寸和散热解决方案,适应各种计算机类型和用途。

GPU与显卡关系:

  • GPU是显卡的核心组件,决定了计算性能。

  • 显卡则是将GPU与必要的接口、散热、电源管理等元件集成在一起的硬件设备。

GPU Core vs AMD CU

显卡虽然是一大块卡,但它真正执行运算的部分只是一枚和 CPU 一样大小的芯片——显卡核心;显卡 PCB 上其他组件,都是 为它提供电源、通信、存储功能的。

这个小芯片承担着与 CPU 不同的定位和功能,芯片设计思路也完全不同。这就导致,我们谈论 GPU 时,所说的 Core,完全不 是 CPU 上那个意思。

作为辅助 CPU 执行计算的周边器件,它不需要承担那些系统管理、调度的功能,完全专注于使用(大量的)小核心并行化地执 行基础运算(通常都有数千个核心同时执行)。—— GPU Core 小而且多,这是我们的初步印象。

AMD 倾向于简化整个模型,用 CU 来讨论他们的显卡核心数量。Compute Unit 指的是一组执行运算的元件的集群(cluster) ,它里面有大量更小的计算单元。

由于技术路线和优势不同,AMD 更在乎自己的总线技术(例如 Infinity Cache)和集群结构,自然也倾向于以 CU 数量来讨论 显卡性能。CU 不会具体对应到计算单元的数量,而只是跟缓存、总线结构有关。

CU 在概念上更接近 Nvidia 的 SM。所以千万不要拿 A 卡的 CU 与 N 卡的 CUDA Core 相比,是两个完全错位的概念

CUDA Core

N 卡上,经常提到的概念是 CUDA Core。英伟达倾向于用最小的运算单元表示自己的运算能力,CUDA Core 指的是一 个执行基础运算的处理元件。最早的时候,这个「基础组件」类似于 CPU 中负责各种数值计算的那个 core,能做很多 通用运算

但后来就不一样了,例如整型计算和浮点型计算单元的数量不一样了。CUDA Core 不再能 1:1 地对应上这些小运算单 元。它的定义就开始变化:有时2个 CUDA Core 才能凑出1个整型运算单元。

所以 CUDA Core 的定义其实是复杂而且变化的。你不能单纯用 CUDA Core 的数量来跨代际比较显卡性能(因为它在两 代显卡中的定义都不同)。

由于 CUDA Core 根本就是为了方便商业营销而创造的概念,英伟达喜欢将其称为「用于营销目的」的核心。 随着架构的更替,经过一代又一代的演变。

现在 Ampere 架构上所说的 CUDA Core(的数量),对应的其实是 FP32 计算单元(的数量)

Nvidia A100

Ampere 架构最强显卡 A100 的内部架构:

128 个 SM(Streaming Multiprocessor,流式多处理器),密密麻麻地排布在中间蓝色的 L2 Cache 两侧。

关注 SM 这个概念,它在 N 卡架构中非常重要,N 卡的多核并行化就是靠平行布置大量的 SM 来实现的。

 流式多处理器内部结构

 Tensor Core (这是判断GPU最重要的一个指标 还有SM

机器学习、神经网络的时代到来了。在这种应用场景 下,矩阵运算的计算量非常大……那就干脆……再来 个 Tensor Core,专门算矩阵

Tensor Core 有着专门设计的硬件结构,可以把整个矩 阵都载入寄存器中批量运算,有十几倍的效率提升。 这简直是机器学习神器——自 Volta 架构发布以来,奠 定了 N 卡在机器学习领域的江湖地位。

Volta 以来的每一代架构,除了制程上的进步,Nvidia 也不遗余力地更新着他们的 Tensor Core:

 N 卡架构变迁

 显卡性能天梯榜

https://topic.expreview.com/GPU/

 

posted @ 2023-10-29 21:59  Crazymagic  阅读(155)  评论(0编辑  收藏  举报