“烧钱”的大模型:初探成本拆解与推理优化方法

编者按:大模型的成本问题一直以来是大家重点关注的问题,本文重点讨论了训练大型语言模型(LLMs)需要的成本,并简要介绍什么是LLM以及一些用于优化大模型推理表现的技术。

虽然很难准确预测LLMs未来会怎么发展,但可以肯定,如果成本问题得到解决,LLM会成为我们生活中不可或缺的一部分!

以下是译文,Enjoy!

作者 | Dmytro Nikolaiev (Dimid)

编译 | 岳扬

在过去的一段时间,机器学习被认为是一门复杂的、只有少数人可以理解的专业技术。然而,随着机器学习相关的应用变得越来越强大,公众的兴趣也随之高涨,导致大量有关人工智能的内容涌现。直到2022年11月我们看到ChatGPT时,高潮出现了,并且在2023年3月的GPT-4发布时达到了第二波高潮,此时即使是原来对AI最怀疑的人也会对当下神经网络的能力感到惊讶。

人工智能受到了大量群众的关注,网络上出现了大量有关人工智能的内容。其中一些内容无疑是有价值的,但其中相当大一部分在传播恐惧和误导性信息,比如传播人工智能将取代所有人类工作或发现神经网络可以赚取巨额财富的秘密之类的内容。 因此,消除关于机器学习和大型语言模型(LLMs)的误解,提供有价值的内容来帮助人们更好地了解这些技术变得越来越重要。

本文旨在讨论当下机器学习领域中经常被忽视或误解的内容——训练大型语言模型需要的成本。同时,本文还将简要介绍什么是LLM以及一些可能用于优化大模型推理流程的技术。 通过全面的介绍,希望能说服读者这些技术并非凭空而来。了解数据规模和底层计算有助于我们更好地理解这些强大的工具。

大多数时候,本文将依据Meta AI最近发布的关于LLaMA的那篇论文[1],因为它清晰明了地展示了该团队用于训练这些模型的数据和计算量。本文将分成以下几个部分:

  • 首先,本文将简要介绍当下最新的LLM是什么;

  • 然后,本文将讨论训练这些模型的成本;

  • 最后,本文将简要介绍一些模型推理技术的优化方法。

随着深入大型语言模型的世界,您会发现它既非常简单,同时也非常复杂。

01 大型语言模型简介

在我们探讨与训练大型语言模型(LLM)有关的费用及成本之前,首先让我们简单地定义一下什么是语言模型。

2018-2019年发布的几个语言模型的参数数量

如今的LLM通常有几百亿到几千亿的参数

图1来自DistilBERT论文

简单来说,语言模型是一种被设计用于理解或生成人类自然语言的机器学习算法。 最近,语言生成模型变得越来越受欢迎,其中包括OpenAI开发的GPT模型系列:ChatGPT、GPT-4等(GPT是指Generative Pre-trained Transformer,这样命名为了表明它基于 Transformer 架构[2])。

还有一些虽然不太流行,但依然很重要的模型。比如GPT-3(175B) [3] 、BLOOM(176B) [4] 、Gopher(280B) [5] 、Chinchilla(70B) [6] 和LLaMA(65B) [7] ,其中B代表参数的数量,其中许多模型也有较少参数的版本。

一些流行的LLMs架构。图片由作者提供

目前没有关于ChatGPT特别是GPT-4参数数量的信息,但似乎它们大概是相近的。

这些模型通过使用大量的文本数据进行“训练”,使它们能够学习自然语言复杂的模式和结构。然而,它们在训练期间解决的任务非常简单:预测序列(sequence)中下一个单词(或token)。

这种模型被称为自回归模型,这意味着它使用过去的输出作为未来预测的输入,并逐步生成输出。可以在ChatGPT的输出样例中看到:

GhatGPT产生了回复

gif取自作者使用ChatGPT的过程

你可以发现ChatGPT是逐步生成答案,而且生成的内容有时是不完整的单词片段(chunks),这些片段(chunks)被称为tokens。

在每一个步骤中,模型将前一个输出连接到当前输入上,然后继续生成,直到达到特殊的“序列结束(End of Sequence)”(EOS) token。为了简单起见,省略了提示任务(prompt task),将单词作为tokens,这个过程可以如下所示:

解释自回归模型的文本生成。图片由作者提供

这个简单的机制加上海量的数据(一个人的一生中可能无法阅读这么多数据)使模型能够生成连贯且上下文合适的文本,模拟人类的写作方式。

如果此处我们只谈论生成模型,为什么没有其他系列的模型呢?

原因很简单——文本生成任务是最难解决同时也是最让人类印象深刻的任务之一。ChatGPT在5天内就获得了100万用户[8],比之前其他任何应用都要快,而且这种势头还在继续保持[9]。

所谓的编码器encoders[10](BERT模型系列)可能不会太刺激人类,但它们也可以以人类的水平解决各种问题,并帮助完成文本分类[11]或命名实体识别(NER)[12]等任务。

我不会提供大语言模型可以做什么的具体例子,因为这已经在网络上遍地都是。最好的方法是自己试用ChatGPT,但也可以参考一些优秀的prompts,比如Awesome ChatGPT prompts。尽管大型语言模型具有惊人的能力,但它们目前还存在一些限制。其中最常见和最重要的包括:

  • 存在偏见和知识静态性: 由于LLM模型是在许多个来源的数据上进行训练的,它们会无意中学习并再现这些数据中存在的偏见。此外,它们具有知识静态性,无法在不重新训练的情况下实时适应新数据或更新知识。

  • 不能完全理解输入和存在虚假信息: 虽然LLM模型可以生成类似人类的文本,但它们并不总是完全理解输入的语境。而且,自回归生成输出文本的方式并不能避免模型产生谎言或无意义的内容。

  • 消耗太多资源: 训练LLM模型需要大量的计算资源,这导致训练成本和能源消耗都很高。这一因素可能会限制较小公司或个人研究者的LLM模型发展。

这些以及其他缺点都是AI研究界的热门讨论话题。值得一提的是,AI领域发展得如此之快,以至于几个月内很难预测哪些缺点或限制会被克服,但毫无疑问,新的缺点和限制将会出现。

早先的模型只是增加参数数量,但现在认为更好的做法是训练更小的模型,并花更长的时间给它们提供更多的数据。这样减小了模型的规模和后续使用模型的成本。

在大致了解LLM以后,让我们进入这篇文章的主要部分——估算训练大型语言模型的成本。

02 估算机器学习模型一般情况下的成本,特别是LLM成本

要估算训练大型语言模型的成本,必须考虑三个关键因素:

  • 数据

  • 计算资源

  • 以及架构(或算法本身)

现在让我们深入地探讨这三个方面,了解它们对训练成本的影响。

2.1 数据

LLMs需要大量数据来学习自然语言的模式和结构。估算数据的成本可能具有挑战性,因为公司通常使用其业务运营中长期积累的数据以及开源数据集。

此外,还要考虑到数据需要进行清洗、标记、组织和存储,考虑到LLM的规模,数据管理和处理成本会迅速增加,特别是考虑到这些任务所需的基础设施、工具和数据工程师时。

举个具体的例子,已知LLaMA使用了包含1.4万亿个token的训练数据集,总大小为4.6TB!

LLaMA模型的训练数据集,表1来自LLaMA论文

较小的模型(7B和13B)是使用了1T token训练的,而较大的模型(33B和65B)使用1.4T token的完整数据集。

LLaMA模型的training loss值随token数量的变化图,来自LLaMA论文

现在应该明白,当向大家宣传这些数据集多么庞大时,其实并没有夸张,也能理解为什么在十年前大模型还无法做到这一点。但是,计算资源方面的问题更加有趣。

2.2 计算资源

训练过程的花费占据了LLM训练成本的很大一部分。训练大型语言模型需要大量计算资源,并且由于需要较强的并行处理能力,要使用功能强大的图形处理器(GPU)。NVIDIA每年都会推出新的GPU,其成本高达数十万美元。

如果使用云计算服务,训练这些模型的云计算服务成本可能也是惊人的,基本上需要几百万美元,特别是考虑到需要迭代各种配置。

回到LLaMA论文,文中说,他们使用了两千个GPU,每个GPU高达80 GB的显存,如此强大的计算能力来训练最大的65B模型也需要21天。

用于训练LLaMA模型的计算资源量,图片来自LLaMA论文

作者使用的NVIDIA A100 GPU是当下神经网络训练的常见选择。Google Cloud 平台提供此类 GPU 的费用是每小时3.93美元。

NVIDIA A100 GPU的价格

所以我们快速计算一下:

四百万美元的成本并不是每个研究人员都能负担得起的,对吧?而且这仅仅是运行一次的费用!这篇文章估计了GPT-3的训练成本[13],作者说需要 355 GPU-years 和 460 万美元的成本。

2.3 架构(和基础设施)

Architecture (and Infrastructure)

一流LLM的开发还需要熟练的研究人员和工程师设计合理的架构并正确配置训练过程。架构是模型的基础,能够决定它如何学习和生成文本。

需要具备各种计算机科学领域的专业知识,才能设计、实现和控制这些架构。负责发布和提供优秀项目成果的工程师和研究人员可以获得数十万美元的薪水。有一点需要我们注意,训练LLM所需的技术栈可能与“经典”机器学习工程师的技术栈有很大不同。

机器学习系统的基础设施,图来自论文《Hidden Technical Debt in Machine Learning Systems》[14]

训练LLM是一个非常困难和需要耗费很多资源的工程问题。 现在让我们简要讨论一些使LLM推理过程更有效和节省成本的方法。

03 优化语言模型的推理能力

3.1 我们是否真的需要优化?

推理(Inference)是指使用已经训练好的语言模型生成预测(predictions)或响应(responses)的过程,通常作为API或Web服务。鉴于LLM的巨量资源消耗特性,必须对其进行优化来实现高效的推理。

例如,GPT-3模型有1750亿个参数,相当于700GB的float32数字。激活也需要大约同样数量的内存,而且需要注意的是,我们说的是RAM。

如果不使用任何优化技术来进行预测(predictions),我们将需要16个 80GB 显存的A100 GPU!

有几种流行的技术可以帮助减少内存需求和模型延迟(model latency),包括模型并行、模型量化等等。

3.2 模型并行

模型并行[15]将单个模型的计算分布到多个GPU上,可用于训练和推理流程。将模型的层(layers)或参数(parameters)分割到多个设备上可以显著提高整体推理速度,并且在实践中经常使用。

3.3 模型量化

模型量化[16]涉及减少模型数值(如权重)的精度。通过将浮点数转换为较低精度的整数,模型量化可以在不实质性损失模型性能的情况下实现显著的内存节省和更快的计算速度。你是不是会有一个想法:使用float16浮点数代替float32,这样将内存量减少一半。事实证明,甚至可以将模型权重转换为int8也几乎不会损失精度。

3.4 其他技术

优化LLM的方法相关研究一直是一个活跃的研究领域,其他技术包括:

  • 知识蒸馏[17] - 训练一个较小的学生模型(student model)来模仿一个较大教师模型(teacher model)的行为;

  • 参数剪枝[18] - 从模型中删除冗余或不重要的参数,以减小模型的大小和计算资源要求;

  • 使用像ORT(ONNX Runtime) [19]这样的框架来通过算子融合(operator fusion)和常数折叠(constant folding)等技术来优化计算图(calculation graphs)。

总的来说,优化大型语言模型的推理是LLM部署的一个重要方面。通过应用各种优化技术,开发人员可以确保LLM不仅功能强大和准确,而且性价比高和具备可扩展性

04 为什么 OpenAI 要开放ChatGPT给大众使用呢?

考虑到大语言模型训练和推理的高成本,人们可能会产生这样的疑问。虽然我们无法确定OpenAI的确切动机,但我们可以分析这一决定背后的好处和潜在战略原因。

首先,OpenAI 将目前最先进的LLM给大家使用,获得了极高的知名度。通过展示大型语言模型的实际应用效果,该公司吸引了投资者、客户和整个技术领域的关注

其次,OpenAI的使命就是围绕着人工智能的创造和发展。通过开放ChatGPT给大众访问,该公司可以被认为更接近实现其使命并为社会变革做好准备。开放如此强大的AI工具能够鼓励创新,推动人工智能研究领域继续向前发展。这种进步可以导致更高效的模型、更多元的应用程序和各种新解决方案的出现。不过,ChatGPT和GPT-4的架构都没有公开,但这是另一个需要讨论的话题。

虽然与训练和维护大型语言模型相关的成本无疑是巨大的,开放访问ChatGPT不仅增加了他们的知名度,证明了他们在人工智能领域的领导地位,还允许他们收集更多数据来训练更强大的模型。这种策略使他们能够持续推进他们的使命,并在某种程度上为人工智能和LLM技术的发展做出了卓越的贡献。

询问ChatGPT,为什么OpenAI要免费开放ChatGPT的使用权限

05 结论

正如本文所说的,训练大型语言模型的成本受到各种因素的影响,不仅包括昂贵的计算资源,还需要学习大数据管理和模型开发架构等领域的专业知识

如今的LLM普遍具有数十亿个参数,训练时用到数万亿个token,训练成本高达数百万美元。

希望现在您已经了解训练和推理大型语言模型的成本,以及它们的限制和陷阱。

自然语言处理领域已经从持续了数年的ImageNet时代 [20] 转变到生成模型的时代了。广泛应用和使用生成语言模型(generative language models)有希望彻底改变各行各业和我们生活的方方面面。虽然很难准确预测这些变化,但我们可以肯定,LLM肯定将对世界产生一定影响。

就我个人而言,我更喜欢训练 "更聪明"的模型,而不仅仅是 "更大"的模型。通过探索更优雅的方式来开发和部署LLM,可以扩展人工智能和NLP的边界,为更具有创新性的解决方案和该领域的光明未来打开大门。

END

参考资料

1.https://ai.facebook.com/blog/large-language-model-llama-meta-ai/

2.https://huggingface.co/course/chapter1/4

3.https://en.wikipedia.org/wiki/GPT-3

4.https://bigscience.huggingface.co/blog/bloom

5.https://www.deepmind.com/blog/language-modelling-at-scale-gopher-ethical-considerations-and-retrieval

6.https://arxiv.org/abs/2203.15556

7.https://ai.facebook.com/blog/large-language-model-llama-meta-ai/

8.https://twitter.com/gdb/status/1599683104142430208

9.https://www.reuters.com/technology/chatgpt-sets-record-fastest-growing-user-base-analyst-note-2023-02-01/

10.https://huggingface.co/course/chapter1/5

11.https://paperswithcode.com/task/text-classification

12.https://paperswithcode.com/task/named-entity-recognition-ner

13.https://lambdalabs.com/blog/demystifying-gpt-3

14.https://proceedings.neurips.cc/paper_files/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf

15.https://colossalai.org/docs/concepts/paradigms_of_parallelism/

16.https://huggingface.co/docs/optimum/concept_guides/quantization

17.https://neptune.ai/blog/knowledge-distillation

18.https://analyticsindiamag.com/a-beginners-guide-to-neural-network-pruning/

19.https://onnxruntime.ai/

20.https://thegradient.pub/nlp-imagenet/

本文经原作者授权,由Baihai IDP编译。如需转载译文,请联系获取授权。

原文链接

https://towardsdatascience.com/behind-the-millions-estimating-the-scale-of-large-language-models-97bd7287fb6b

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Cloud 优惠最后 1 天!

大家好,我是栈长。 关注了一段时间公众号的小伙伴都知道,栈长的 Spring Cloud 微服务课程每月都会给小伙伴搞一波活动。 61活动来了,很多小伙伴都在等 61 的活动,这次活动,福利全新升级,千万不要错过&#…

微信公众号文章是否违规怎么检测?

在写文章的时候,会遇到以下3种情况: 1、你所编辑的图文消息可能含有敏感内容,你可以继续保存或发布该图文消息(发布等待时长约3-4小时),若保存或发布后,经核实含有敏感内容的,将可能…

如何发现并分析APP个人信息收集是否违规?

移动互联网的发展以及智能终端的兴起,手机已然成为了我们生活中不可或缺的“日用品”,各种手机APP开启霸屏模式,例如常见的支付APP、聊天APP、金融APP、交通APP等,这些APP虽然给我们生活带来了便利,但是其收集的用户信…

新闻稿的制作流程:从确定新闻稿目的到将其分发给媒体

对于任何希望向媒体和公众传达具有新闻价值的信息的组织来说,新闻稿都是必不可少的工具。精心制作的新闻稿可以帮助您宣传您的业务、产品或服务,并可以产生有价值的媒体报道。在本文中,我们将指导您完成新闻稿的制作过程,从确定新…

如何写新闻稿?写好新闻稿的技巧与步骤

新闻稿是传递新闻事件和信息的重要手段,是传媒工作中不可或缺的一部分。写好一篇新闻稿可以让受众了解更多信息,进一步提高他们的关注度。以下是一些写好新闻稿的技巧和步骤,帮助你有效地传达新闻。 1、确定新闻的核心信息 在开始写新闻稿之前…

怎么向新闻媒体投稿?新闻稿投稿渠道哪个比较好

在互联网众多媒体网站中,各大小中新闻媒体网站都拥有一定的权威性和知名度,作为网 媒,这些新闻网站相比纸类报刊更容易被大众网民接触,甚至有不少人还想联系网站将新闻或 者软文投放上去。当然了,如果是个人联系媒体…

国际学校入学考试MAP语法测试题真题讲解

本月,贝赛思各校区举行了四月的入学考试,部分校区采取了线上评估模式,而4月考试流程形式题型均与3月大同小异。 非常多的家庭会选择在中学阶段转入贝赛思,并且对国际学校了解的家长肯定对MAP测试不陌生,MAP测试既作为…

高考题改成IB试题,会是什么样子?

从2019年浙江高考语文卷的一篇现代文阅读说起的,振语看过了这道题和推文作者的解读后,一时兴起,就想着能不能把它改成一道IB考题,顺带着也把这篇选文细读评点了一番。 (一)高考试题再现: 这道高…

AI开始卷高考了,英语已被卷到134分??

文 | 天于刀刀 AI 真的太卷了!不但模型之间互相卷,现在直接开始和人类学生一起卷高考了! 近期,来自 CMU 两位学者提出的重构预训练模型(reStructured Pre-training, RST)在只有 GPT-3 十六分之一参数量的情…

第一试卷网(网站)

首先,站内涵盖了有语文,数学,英语,物理,化学,政治,历史,地理,生物等等的试卷,从小学到高三的都有非常的全面。 点开需要的试卷,显示资源还是比较新…

【CSDN|每日一练】小股炒股

目录 运行结果题目描述输入描述:输出描述:示例代码结语运行结果 题目描述 已知n天后的股票行情,现在已有的本金是m, 规定只能入手一次股票和抛售一次股票。 最大收益是? 输入描述: 第一行输入整数n,m。(1<=n<=1000,1<=m<=10000) 第二行输入n个整数表示某…

5 月编程语言榜:C 再度暴涨,Scala 成功上位

&#xff08;点击上方公众号&#xff0c;可快速关注&#xff09; 转自&#xff1a;开源中国 TIOBE 刚刚发布了 5 月编程语言排行榜。Scala 经过长时间的沉淀&#xff0c;本月终于进入了 TIOBE 榜单的前 20 名。 Scala 是一种 JVM 上运行的函数式编程语言&#xff0c;可与 Java …

个人整体项目:今日诊股(今日指数)后端代码开发(day01)

&#xff08;当前开源个人项目正在开发&#xff0c;请关注个人项目专栏。需要源码请关注留言哦&#xff01;&#xff01;&#xff01;&#xff09; &#xff08;怀玉是一名一年的后端&#xff0c;前端目前不太精通&#xff0c;前端代码是直接写好的&#xff09; 首先我们先看一…

Python版股市情感分析源代码,提取投资者情绪,为决策提供参考

情绪与股市关系的研究由来已久&#xff0c;情绪是市场的一个重要影响因素已成为共识。 15年股灾时&#xff0c;亲历了一次交易灾难&#xff0c;眼见朋友的数千万在一周不到的时间内灰飞烟灭。那段时间市场的疯狂&#xff0c;让人深刻地明白&#xff1a;某些时候&#xff0c;股票…

干货全拿走-用Excel获取上证指数等50+股指行情及历史数据

一、 前言 二、 实现思路 三、 核心代码 四、 注意事项 一、前言 大数据时代&#xff0c;数据分析的价值愈发凸显&#xff0c;数据对于金融市场亦如是。现在越来越多的金融机构和个人借助专业的软件去做数据分析和获取数据&#xff0c;但是显然对于普通人来说&#xff0c;…

程序员能用大数据分析,用脚本测算股市的状况吗?

星期一的基金收益更新&#xff0c;没想到竟然… 8月2日的支付宝基金收益收益为2443元&#xff0c;今日收益为负值&#xff0c;上个星期暴跌4天&#xff0c;大盘很大大浮动。细看一下我的仓位&#xff0c;从上星期到现在都一直是这几个&#xff0c;没变过&#xff0c;医疗板块&a…

【Android】最新主流新闻app功能实现。仿网易,搜狐等新闻客户端实现展示

最新主流新闻app功能实现。仿网易,搜狐等新闻客户端 作者&#xff1a;程序员小冰 欢迎点击关注微博 (原创作品&#xff0c;转载请说明出处)先给大家看一下效果图&#xff1a; 这个项目总体来说虽然不是特别难&#xff0c;但是确实非常常用的功能。是业余时间自己写的一个小…

Safari 安装 Tampermonkey(油猴)插件

Safari 安装 Tampermonkey&#xff08;油猴&#xff09;插件 一、软件介绍 今天给大家推荐的一款”神器插件”叫 油猴&#xff0c;英文为Tampermonkey&#xff0c;是一款适用于Safari用户的脚本管理器&#xff0c;能够方便管理不同的脚本。虽然有些受支持的浏览器拥有原生的用…

使用Tampermonkey(油猴) 插件,重新实现了,百度搜索热点过滤功能

昨天晚上&#xff0c;花了点时间学习了Chrome插件的制作方法&#xff0c;并书写了《Chrome 百度搜索热点过滤插件 - 开源软件》这一文章&#xff0c;简单地介绍自己实现的百度搜索热点过滤神器的原理和使用方式&#xff0c;并进行了开源&#xff08;https://github.com/yaowenx…

Mac的Safari安装油猴插件(Tampermonkey)

Mac的Safari安装油猴插件&#xff08;Tampermonkey&#xff09; 官方的AppStore是没有油猴插件&#xff08;Tampermonkey&#xff09;的&#xff0c;官方插件不仅少&#xff0c;功能被阉割&#xff0c;相对弱小&#xff0c;还收费。嗯&#xff0c;这很苹果第三方拓展。 这是油…