从零开始训练一个大语言模型需要多少天?

一,前言

在AI领域,训练一个大型语言模型(LLM)是一个耗时且复杂的过程。几乎每个做大型语言模型(LLM)训练的人都会被问到:“从零开始,训练大语言模型需要多久和花多少钱?”虽然网上有很多关于训练技巧和模型评估的文章,但很少有直接告诉你如何估算训练时间和成本的。

前面分享了一些关于大模型/本地知识库的安装部署方法,无需编写代码,即可使用Ollama+AnythingLLM搭建企业私有知识库,或者,三步完成Llama3.2在算力魔方的INT4量化和部署...

本篇文章就教你一个简单的方法,帮你快速估算基于大语言模型权重大小、数据量以及可用GPU算力训练大语言模型所需的时间和成本。

二,估算方法

训练模型时,处理数据和更新模型参数需要大量的计算,我们用浮点运算次数(FLOPs)来表示。首先,我们要估算处理一个token所需的FLOPs,包括前向传递和反向传递两个部分。

  • 前向传递:

每个token的前向传递涉及的加乘操作数大约为:

FLOPsforward = 2 x N²+2 x N x Dmodel

这里N表示模型的参数量,Dmodel是模型的维度。系数2来源于矩阵乘法中的累加操作。

  • 反向传递:

大约需要前向传递的两倍计算量,因为要计算权重和激活值的梯度。

FLOPsbackward =(2 x N²+2 x N x Dmodel)x 2

  • 所以,一个token总的计算量大概是前向传递的三倍。因此,每个训练token的浮点运算可以估算为:

FLOPstotal =(2 x N²+2 x N x Dmodel)x 3

三,GPU性能

现在大多数模型都是用GPU来训练的。不同的GPU有不同的性能,比如NVIDIA的H100、A100或V100。每个GPU的性能可以用每秒浮点运算次数(FLOPS)来衡量。不过,实际训练时,由于多GPU之间的通信等因素,实际性能可能达不到理论上的最高值。

GPU Model

Peak FLOPS (FP32)

H100

67 TFLOPS

A100

19.5 TFLOPS

V100

14 TFLOPS

一个重要的概念是模型FLOPS利用率(MFU),它反映了实际计算效率与理论最大值的比例。通常情况下,随着GPU数量的增加,MFU会下降。LLaMA 3的研究者们用16,000个GPU训练模型时,每个GPU的实际效率为380 teraflops,MFU为38%。

四,实际案例

1,l Llama 3 405B 参数模型

LLaMA 3.1(405B参数)是在15.6万亿token的数据集上训练的。训练这样一个规模的模型所需的总FLOPs可以通过以下方式计算:

  • 模型大小 N = 405B

  • 数据集大小 P = 15.6T

模型使用了16,000个H100 GPU进行训练。据了解,平均吞吐量为每个GPU 400 teraflops。这意味着训练基础设施可以提供的总吞吐量为:

TotalThroughput

= 400TFLOPs/GPU×16,000GPUs

= 6.4ExaFLOPs

最后,通过将所需的总FLOPs除以可用吞吐量,并将结果转换为天数(因为我们真正关心的是训练天数),我们可以得到训练时间。

3.8 x 1025FLOPs ÷ 6.4 x1018FLOPs/秒 = 61

2,成本估算

训练模型不仅耗时,还非常昂贵。以LLaMA 3.1为例,如果一个H100 GPU每小时的费用是2美元,那么用16,000个H100训练这个模型的总成本大约为2 x 24 x 61 x 16,000 = 46,848,000美元。

五,总结

训练大型语言模型是一项技术复杂且资金密集的任务。从零开始,把一个LLaMA 3.1(405B参数)的模型在15.6万亿token数据集上训练出来,大约需要花费61天(假设没有训练中断)和46,848,000美元(仅估算GPU租金、数据集制作费用和研发人力成本未计入),你算对了吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/912264.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

成大事者,不外传的心计

成大事者,不外传的心计: 1.男人要避开闺蜜众多的女人。 2.追求女生,不可过于主动,心急难以品尝到热豆腐的美味。 3.倘若这个人身边没什么朋友,那就要赶快远离。 4.让利,是拓展人脉资源的有效法门。 5.…

如何将数据从 AWS S3 导入到 Elastic Cloud - 第 3 部分:Elastic S3 连接器

作者:来自 Elastic Hemendra Singh Lodhi 了解将数据从 AWS S3 导入 Elastic Cloud 的不同选项。这次我们将重点介绍 Elastic S3 Connector。 这是多部分博客系列的第三部分,探讨了将数据从 AWS S3 导入 Elastic Cloud 的不同选项。 在本博客中&#xf…

产品经理如何使用项目管理软件推进复杂项目按时上线

前言 相信很多产品同学或多或少都有过这样的经历:平时没有听到任何项目延期风险,但到了计划时间却迟迟无法提测……评审时没有任何argue,提测后发现开发的功能不是自己想要的……费劲九牛二虎之力终于让项目上线了,然而发现成果达…

K8S node节点没有相应的pod镜像运行故障处理办法

查看从节点状态 kubectl describe node k8s-node1以下是报错提示 解决办法 需要处理node1节点上的磁盘空间,磁盘空间需要在85%内 处理后的状态 处理正常

11.9.2024刷华为

文章目录 HJ31 单词倒排HJ32 密码提取语法知识记录 傻逼OD题目又不全又要收费,看毛线,莫名奇妙 HW这叼机构别搁这儿害人得不得? 我觉得我刷完原来的题目 过一遍华为机考的ED卷出处,就行了 HJ31 单词倒排 游戏本做过了好像 HJ3…

Colmap3.8 [CUDA]和[NO CUDA]版本

Colmap3.8 [CUDA]和[NO CUDA]版本的下载地址如下所示: 通过百度网盘分享的文件:colmap3.8 链接:https://pan.baidu.com/s/1kfbUqFI5N2t8Bx2MasFKXQ?pwd998n 提取码:998n 解压即可使用,运行时,点击下图…

sealos部署K8s,安装docker时master节点突然NotReady

1、集群正常运行中,在集群master-1上安装了dockerharbor,却发现master-1节点NotReady,使用的网络插件为 Cilium #安装docker和harbor(docker运行正常) rootmaster-1:/etc/apt# apt install docker-ce5:19.03.15~3-0~u…

NoETL自动化指标平台为数据分析提质增效,驱动业务决策

直觉判断往往来源于多年的经验和专业知识,能够在复杂和不确定的环境中快速做出决策反应。但这种方式普遍存在主观偏见,缺乏合理的科学依据,无法全面、客观、精准地评估和识别市场趋势与用户需求,从而造成决策失误,给业…

vscode的一些使用心得

问题1:/home目录空间有限 连接wsl或者remote的时候,会在另一端下载一个.vscode-server,vscode的插件都会安装进去,导致空间增加很多,可以选择更换这个文件的位置 参考:https://blog.csdn.net/weixin_4389…

《JavaEE进阶》----21.<基于Spring图书管理系统②(图书列表+删除图书+更改图书)>

PS: 开闭原则 定义和背景‌ ‌开闭原则(Open-Closed Principle, OCP)‌,也称为开放封闭原则,是面向对象设计中的一个基本原则。该原则强调软件中的模块、类或函数应该对扩展开放,对修改封闭。这意味着一个软…

Flutter错误: uses-sdk:minSdkVersion 16 cannot be smaller than version 21 declared

前言 今天要做蓝牙通信的功能,我使用了flutter_reactive_ble这个库,但是在运行的时候发现一下错误 Launching lib/main.dart on AQM AL10 in debug mode... /Users/macbook/Desktop/test/flutter/my_app/android/app/src/debug/AndroidManifest.xml Err…

【C++滑动窗口】1297. 子串的最大出现次数|1748

本文涉及的基础知识点 C算法:滑动窗口及双指针总结 固定长度滑动窗口 LeetCode1297. 子串的最大出现次数 给你一个字符串 s ,请你返回满足以下条件且出现次数最大的 任意 子串的出现次数: 子串中不同字母的数目必须小于等于 maxLetters 。…

信息宣传投稿栽跟头不可怕,关键是你要能再站起来

在繁忙的市郊,一家的事业基层单位,这里汇聚了各路英才,每个科室都有自己的专长。然而,有一项任务,让这些精英们头疼不已——单位信息宣传投稿。 起初,大家对这项任务并不以为然,以为不过是小菜一碟。李科长甚至开玩笑说:“不就是写篇文章,投个稿嘛,我们这些笔杆子还怕这个?”…

[极客大挑战 2019]PHP 1

[极客大挑战 2019]PHP 1 审题 猜测备份在www.zip中,输入下载文件。 知识点 反序列化 解题 查看代码 看到index.php中包含了class.php,直接看class.php中的代码 查看条件 当usernameadmin,password100时输出flag 构造反序列化 输入select中&#…

【初阶数据结构与算法】线性表之单链表的定义与实现

文章目录 一、单链表的概念与结构1.单链表的概念2.单链表的节点3.链表的性质 二、单链表的实现1.结构准备2.链表的打印和节点申请打印函数节点申请函数 3.链表的头插和尾插头插函数尾插函数 4.链表的头删和尾删头删函数尾删函数 5.查找指定节点6.指定节点位置的删除和插入删除指…

SCNU习题 总结与复习

1. P1:构建最大二叉树 【分治】 重点 构树函数需要注意的点; 前序遍历需要注意,本题的输出有点特点。若一个结点无左子,无右子就不再下去遍历; 其他情况都要下去遍历; 2. P2 寻找多数【分治】 没啥,注意…

代码随想录-栈和队列-用栈实现队列

问题描述 题目描述中有说不存在空栈的pop和peek,所以无需判断这个 解析 重点在于思路,代码白给。 要用栈实现队列,肯定是两个栈才可以。一个做入队操作,一个做出队操作。 首先入队简单,往栈里加就完事了。 出队复…

Scrapy框架:Python爬虫开发快速入门与初试

在众多编程语言中,Python以其简洁的语法和强大的库支持,成为了编写爬虫的首选语言。而在Python的爬虫库中,Scrapy框架无疑是其中的佼佼者。Scrapy是一个开源的、基于Python的爬虫框架,它提供了一套完整的工具和功能,使…

三菱QD77MS定位模块速度限制功能

“速度限制功能”是控制中的指令速度超过“速度限制值”的情况下,将指令速度限制在“速度限制值”的设置范围内的功能。 [1]速度限制功能与各控制的关系 速度限制功能”与各控制的关系如下所示。 [3]速度限制功能的设置方法 使用“速度限制功能”时,在如…

LeetCode【0002】两数相加

本文目录 1 中文题目2 求解思路2.1 基础解法: 递归解法2.2 最优解法:迭代法 3 题目总结 1 中文题目 给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请将两个数相…