定制化需求|一个人工智能大模型应用的算力成本有多高?

 人工智能的核心是算力。

fb0ce05624b5510b90a904472c91af7f.png

01

需要多少预算?

最近在学习大模型ChatGPT、ChatGLM,研究结合企业的应用场景,解决一些业务难点、痛点,不免涉及本地化部署、微调、训练、知识库文档数据提取等等方面的问题。‍‍‍‍

同时还需要对硬件成本进行一个大致的估算:这个项目需要得用多少GPU?硬件采购的费用预算多少?‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

要对硬件资源成本进行估算,一方面决定于项目的技术方案:是否需要训练,还是只做微调训练,或者只做文档提取;一方面决定于硬件的选型:选哪家的GPU产品。

02

算力需求

算力需求主要分为两部分,包括训练算力和推理算力

目前来说对训练算力需求非常高,ChatGPT的公开数据显示它的整个训练算力消耗非常大,达到了3640PF-days。

PF-days = 1 PetaFLOP/s 的效率运行一天。PetaFLOP,是衡量计算机性能的一个重要单位,1 PetaFLOP等于每秒钟进行1千万亿次的数学运算,这种速度大约是运算速度最快计算机的8倍。

换成比较好理解的说法,假如每秒计算一千万亿次,需要计算3640天。

换算成英伟达A100芯片,它单卡算力相当于0.6P的算力,理想情况下总共需要大概6000张,在考虑互联损失的情况下,需要一万张A100作为算力基础。

在A100芯片(一张A100官方售价是1万美元,而且对中国限售。英伟达销售到国内的是规避限售的相应型号减配版。)10万人民币/张的情况下,算力的硬件投资规模达到10亿人民币。

训练算力相关设备主要是英伟达的A100和H100,推理算力主要是英伟达T4卡。

有数据显示,ChatGPT在运营过程中也需要相当大的开销。

根据国盛证券报告,以ChatGPT在1月的独立访客平均数1300万计算,其对应芯片需求为3万多片A100 GPU,大概需要的算力成本为8亿美元,每天的电费成本在5万美元左右。

在实际生产场景中,芯片的运算速度也不等于先进的算力,芯片速度和算力之间还有一个软件层:“高性能GPU分布式训练框架“,‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

算力问题之所以成为制约人工智能的瓶颈,是因为当前大模型进入万亿参数时代,单体服务器算力有限,需要将大量服务器通过高性能网络相连,打造大规模算力集群。

高性能计算存在“木桶效应”,一旦计算、存储、网络任一环节出现瓶颈,就会导致运算速度严重下降。

bf8bbe85410c88c9f13e2cedaaa7822b.png

以腾讯云原生来架构模型训练的结构如下(腾讯云星星海自研服务器,搭载英伟达最新代次H800 GPU,服务器之间采用3.2T超高互联带宽):‍‍‍‍‍‍‍‍‍

7a079a3deef135740b336091b55c3657.png

一共四层架构:最底层是算力硬件资源;上一层是高性能的计算集群,主要起到灵活调度和计算资源分配的作用;中间一层是深度学习加速,作用提升计算的利用率,最上面才是机器学习,模型服务。

之前提到的国产大模型 ChatGLM2-6B 初体验,是使用华为的AI框架昇思MindSpore训练的。据官方信息透露,最开始130B(1300亿参数)大小数据集的训练过程中,华为框架团队一同协同改进框架,一共用了三个月。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

这也是为什么大模型迭代升级,一项重要的改进就是提升性能:性能提升571%,32K超长上下文,推理速度提升42%,允许商用,国产开源大模型推出了二代 ChatGLM2-6B,提升性能就是省钱。

03

有低成本的方案吗?‍‍

直接训练模型投入大,周期长,只有大厂玩家才能有实力介入。如果只是直接使用例如ChatGPT,ChatGLM这类预训练模型,进行微调,或者是知识库文档数据提取,只消耗推理算力,投入成本就要小很多。‍‍‍‍‍‍‍‍‍

参考海外最新研究《The Economics of Large Language Models》,可以有如下估计: 每个 token(1000 token 约等于 750 个单词)的训练成本通常约为 6N,而推理 成本约为 2N,其中 N 是 LLM (大语言模型)的参数数量。

也就是说推理成本大约相当于训练成本的三分之一。‍‍

官方资料显示,ChatGLM2-6B 模型能运行起来的最低硬件要求:建议英伟达Tesla 显卡系列,NVIDIA A100 GPU,15G显存, 一般的 3090 GPU也差不多了。单这仅仅是模型进行正常推理的算力最低要求,并没有考虑使用用户数量。‍

要计算一个用户向ChatGPT、ChatGLM 这类大模型提问并获得回复所需的算力,我们需要考虑以下因素:模型规模(参数数量)、输入文本长度(问题长度)、输出文本长度(回复长度)、模型的计算复杂性

其他3个要素好理解,模型的计算复杂性是什么呢?模型计算复杂性指的是模型本身的复杂程度,它与模型维度(D)和模型层数(N)成正比。

一个问题需要消耗的算力,可以用以下公式进行粗略估算,FLOPs 浮点运算次数,用来衡量执行某个任务所需的计算量。‍

FLOPs ≈ L * D * N。

其中,L是用户问题的输入长度与模型回答的输出长度之和。

假设一个用户问ChatGPT一个50个字的问题,ChatGPT给出了1000字的回复。完成这样一次交互需要消耗的算力:

FLOPs ≈ L * D * N ≈ 1050 * 1280 * 96 ≈ 128,448,000

因此,当输入问题长度为50个词,输出回复长度为1000个词时,处理一个用户向ChatGPT提问并获得回复所需的算力约为128.45百万次浮点运算(FLOPs)。

还有一个细节问题:如果大模型回答不同类型的问题,只要问题长度和答案长度都一样,其消耗的算力都一样么?比如同样的问题和答案长度,写小说和做算术题这两类任务消耗的算力是否一样。

在理论上,只要输入问题长度和输出答案长度相同,处理不同类型问题所需的算力应该是相似的。

这是因为,无论问题类型如何,Transformer模型的计算复杂性主要取决于输入序列长度(L)、模型维度(D)和模型层数(N)。

不过,在实际应用中,根据问题的难度和特定上下文,某些任务可能需要更多的计算步骤来生成更准确的答案。

例如,在生成小说文本时,模型可能需要花费更多的计算资源来保持句子的连贯性、情感和文学风格。而在解决算术问题时,模型可能需要更多的计算资源来处理数学逻辑。

不过,从整体来看,两者之间的计算复杂性差异相对较小。

因此,在问题长度和答案长度相同的情况下,不同类型的任务(如写小说和解决算术问题)消耗的算力可能存在一定差异,但总体上应该相差不大。

解决了估算计算量的问题,我们来算算支持的硬件资源需要多少。‍‍‍‍‍‍

以英伟达A100 GPU 为例,每个GPU在 FP32 单精度效能(训练算力)具有19.5 TFLOPs,INT8 整数效能(推理算力)具有624TPS 的性能。假设需要在1秒内完成上面那个用户50字的问题请求(128.45 * 10^6FLOPs)。粗略估算所需的 GPU数量

GPU = FLOPs / (624 * 10^12 FLOPs/s) ≈ 128.45 * 10^6 / (624 * 10^12)

≈ 2.058 * 10^-7

假设使用系统的用户数量为1000人,每个人的每个请求在3秒内完成,那么一小时内的请求总数量为(3600/3) * 1000 = 1.2 * 10^6 次。‍‍‍

理论上,这样的系统用户规模,请求频次,推理算力需要支持的 GPU 数量:‍‍‍‍‍‍‍‍

GPU ≈ 2.058 * 10^-7 * 1.2 * 10^6 = 0.25。

‍‍‍‍‍‍

再考虑训练模型等中间层利用率,集群协调等算力上的消耗,假设这部分损耗20%算力,GPU 数量大约为0.387。‍‍‍‍‍‍‍‍‍‍‍

参考前面 A100的10万人民币的价格,大概是3.87万。‍‍‍‍‍‍‍‍‍‍

如果是国内项目落地,同时考虑 GPU 的硬件厂家的选型。目前市场上比较认可的是寒武纪,2021年发布的思元370,是训练和推理一体的产品,24TFLPOS(FP32)训练算力和256TOPS (INT8)推理算力‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

同时百度也在 2021 年发布昆仑芯二代产品,搭载GDDR6高性显存,支持256TOPS(INT8)算力,和V100性能差不多,可以做训练和推理。不过都在百度云服务器上部署,多用于自家产品。

同样上面的系统需求:1000用户,每个请求3秒内完成,使用寒武纪的思元370,需要的GPU数量:‍‍‍‍‍‍‍‍‍‍‍‍‍

GPU ≈ 0.387 * 624 / 256 ≈ 0.943 ,接近一块GPU的数量,大约三倍左右。思元370目前市场报价 1.46万。

不过实际应用中,影响算力的因素可以说复杂得多,以上分析只是建立了一个简单的计算模型。仅限于用于项目立项阶段的费用评估,可以适当增加一些中间层级的消耗权重,给方案预算留出余地。‍‍‍‍‍‍‍‍‍‍‍‍‍

参考资料:

https://xueqiu.com/2524803655/246572538

https://www.qbitai.com/2023/04/46615.html

https://www.stcn.com/article/detail/841412.html

https://baijiahao.baidu.com/s?id=1763233924302503556

http://www.01ur.com/?m=home&c=View&a=index&aid=581

http://kuanfans.com/product/djsb-copy/1184.html

https://sunyan.substack.com/p/the-economics-of-large-language-models

往期热门文章推荐:

ChatLaw:北大团队智能法律助手,国产大模型成功应用普惠法律服务

为什么对ChatGPT、ChatGLM这样的大语言模型说“你是某某领域专家”,它的回答会有效得多?(二)

终于部署成功!GPU 云环境搭建 ChatGLM2-6B 坎坷路

拥抱未来,学习 AI 技能!关注我,免费领取 AI 学习资源。

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

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

相关文章

一键在线生成朋友圈转发点赞截图教程

1.我们首先打开朋友圈转发截图生成工具网站:https://oss.361s.cn/tool/pyq/ 2.输入自己的微信昵称,上传头像,撰写文本等等,自定义设置完成之后点击生成即可获得你想要的朋友圈截图。 3.点击保存即可完成全部流程。 本文转载自…

朋友圈转发截图生成工具HTML源码

正文: 朋友圈转发截图生成工具HTML源码,微信朋友圈截图模拟器源码,微信朋友圈装逼生成器大全,上传服务器即可使用,装逼必备,有条件的可以打包成AP。 下载方式: lanzou.com/iXBIb033ddgj

朋友圈转发截图生成工具源码

微信朋友圈截图模拟器源码,微信朋友圈装逼生成器大全,上传服务器即可使用!装逼必备!有条件的可以打包成APP 图片: 学习资料地址:朋友圈转发截图生成工具源码.zip - 蓝奏云

用itchat爬取朋友圈好友信息

用itchat爬取微信好友基本信息 Python有一个好玩的软件包itchat,提供了一个微信api接口,借此可以爬取朋友圈的一些基本信息,下面我们一起来玩玩吧。 import itchat import numpy as np import pandas as pd from collections import defaul…

微信转发指定的图文消息到朋友圈(JAVA版)

微信转发图文消息步骤 微信转发图文消息步骤 需求获取凭证 获取aceess_token获取jsapi_ticket缓存获取的jsapi_ticket代码 config接口注入权限 引入js文件微信权限注入接口 JS-SDK分享接口调用总结温馨提示 需求 当用户购买成功一样产品,为了使用户能够二次消费&a…

生成朋友圈转发点赞截图的小工具

当当当当!开工大吉! 新春虎年的第一个工作日,相信有不少的小伙伴跟TJ君一样,斗志满满的开始了新一年的工作之旅。 也肯定有不少的小伙伴还在休假,享受一年难得的相聚。 那么春节期间,大家都去了什么好玩的地…

微信截图不能截微信界面

有时候,大家用电脑微信快捷键 Alt A 时,不能截取 微信窗口 界面。 大家可能很迷茫,不要慌,so easy,一招搞定 1:点击微信聊天界面 小剪刀 2: 取消 截图时隐藏当前窗口 大功告成。

kafka消费指定每次最大消费消息数量 max.poll.records

一个属于new consumer的配置项,出现在0.10及其以上版本中。 #一次调用poll()操作时返回的最大记录数,默认值为500 spring.kafka.consumer.max-poll-records; Properties properties new Properties();properties.put("max.poll.records",2);…

Kafka 消费者读取数据

更多内容,前往 IT-BLOG 消费者不需要自行管理 offset(分组topic分区),系统通过 broker 将 offset 存放在本地。低版本通过 zk 自行管理。系统自行管理分区和副本情况。消费者断线后会自动根据上一次记录的 offset 去获取数据&…

Kafka消费异常处理

异常 org.apache.kafka.clients.consumer.CommitFailedException: Commit cannot be completed since the group has already rebalanced and assigned the partitions to another member. This means that the time between subsequent calls to poll() was longer than the …

账户系统,余额与体现

参考连接: https://blog.pingxx.com/2018/02/27/用户账户系统该怎么用?/ 账户体系的建立实际上是将结清算分开(即实时清算/定时结算)利于更复杂的支付业务(如分账/层级分润等): 建立账户体系时要根据业务需求考虑各种账户(如余额账户/冻结资金账户/红包账户(不能提现但是能…

微信支付成功,如何刷新用户当前页面的余额

本项目中,使用微信支付,支付成功后,弹出提示框,并且目的是改变当前用户的余额。。。我们在互动直播项目中发现 ,然而事情并没有那么简单。 代码如下: 我们知道,应该在appdelegate中调用微信支…

开源趣事~ 记给 OpenHarmony 提 PR 的那些事

大家好哇,许久不见,也感谢大家这么久一直以来的关注,也感谢在短视频盛行的今天,你们还能静下心来坚守文字的阵地。 说到这次的主题,参加鸿蒙项目的开源,也是小编第一次拥抱开源,就像是别人有困…

基于大规模边缘计算的千万级聊天室技术实践

在技术的迭代更新下,面对大型、超大型的直播场景,大规模边缘聊天室成为新热潮。 作者 | 张超 责编 | 王子彧 出品 | CSDN(ID:CSDNnews) 当前直播成为一种流行趋势,带货直播,网红带货&#…

JavaScript成功背后的四个关键人物!

前言:JavaScript能如此成功,至少有四位关键人物: 1. JavaScript作者Brendan Eich 2. JSLint,JSON作者Douglas Crockford 3. jQuery作者John Resig 4. Node.js作者Ryan Dahl。 Brendan Eich以及JavaScript的发明过程大家已经非常熟…

爬虫教程( 3 ) --- 手机 APP 数据抓取

1. Fiddler 设置 这是使用 fiddler 进行手机 app 的抓包,也可以使用 Charles,burpSuite 等。。。 电脑安装 Fiddler,手机 和 安装 fiddler 的电脑处于同一个网络里, 否则手机不能把 HTTP 发送到 Fiddler 的机器上来。 配置 Fiddle…

以某乎为实战案例,教你用Python爬取手机App数据

1 前言 最近爬取的数据都是网页端,今天来教大家如何爬取手机端app数据(本文以ios苹果手机为例,其实安卓跟ios差不多)! 本文将以『某乎』为实战案例,手把手教你从配置到代码一步一步的爬取App数据&#xff0…

利用Python爬虫抓取手机APP的传输数据

大多数APP里面返回的是json格式数据,或者一堆加密过的数据 。这里以超级课程表APP为例,抓取超级课程表里用户发的话题。 1、抓取APP数据包 表单: 表单中包括了用户名和密码,当然都是加密过了的,还有一个设备信息&am…

22. 听说你想要用爬虫采集我的手机号?哎 ~ 我展示用的是图片

本篇博客我们实现图片渲染手机号码案例,用于防止爬虫直接采集文字信息。 爬虫训练场 本案例实现的效果如下所示 文章目录 bootstrap5 实现名片样式卡片补充数据生成逻辑生成用户 5 个汉字的昵称调用头像 API,生成图片将手机号码生成图片bootstrap5 实现名片样式卡片 在 Boo…

一种解决Qobuz客户端一直转圈加载不出来的思路

先上图,Qobuz在Win10上的客户端是这样滴 之前是最高音质,换到最差音质还是加载不出来。可能是我网络的问题,但是代理节点是没问题的。然后我尝试了一下Qobuz的Web Player。 就是登录之后画红圈这个 秒开好吧,也不卡顿&#xff…