草庐IT

ChatGPT对算力存在双重影响

闵海兰 2023-12-15 原文

ChatGPT作为近几个月持续的热点话题,热度不减的背后,是人工智能内容自动生成技术算力需求的水涨船高。一方面,ChatGPT带动了算力需求增长,另一方面,ChatGPT又对算力支撑提出了更高的要求。

有数据显示,ChatGPT一次模型训练需要的总算力消耗是3640PF-days,耗资约1200万美元,且在运营过程中也需要相当大的开销。根据国盛证券报告,以ChatGPT在1月的独立访客平均数1300万计算,其对应芯片需求为3万多片英伟达A100 GPU,大概需要的算力成本为8亿美元,每天的电费成本在5万美元左右。ChatGPT获得微软130亿美元的投资,是其高算力投入背后的信心支撑。正是有了科技巨头微软从资金、未来市场,到算力基础设施(Azure云)的全方位支持,OpenAI才能够以独立创业企业的身份,完成如此巨大的工程。算力要求和参数量级紧密相关,参数量级也是当前衡量大模型训练质量的一个重要参考。参数量越大,模型越智能,随之而来的开销也就越大。这一点形成了GPT类型高门槛的特点。GPT-3之前的版本是开源的,其他创业者比较容易以此为基础开展新的研发工作。从GPT-4开始,OpenAI开放API以字节流量收费。不论是应用开发,还是在此基础上进行二次模型开发,都存在较高门槛。

比较有趣的事情是Meta公司的LLaMA源代码泄露。由此出现了所谓的“羊驼家族”(“Llama”可译为“羊驼”)大模型,希望获得开源资源的开发者可以在GPT-3之外获得一个新的选择。

“大模型”对算力的高度依赖至少造成两个重大影响。

一是这已经不是“草根”创业的游戏,也不是以往互联网创业“Copy To China”的游戏,而是“真刀真枪”的核心能力大比拼,从资金、技术到企业战略定力的全方位考核。在传统工业时代,中国从加工业开始,逐渐向高价值的核心技术研发攀升,但实际上距离欧美最先进水平还有一定距离。特别是在材料科学等需要长时间技术积累的类目上,差距依然很大。

进入数字时代,中国产业界的共识变为直接从核心技术研发开始。

美国与中国的科技依存度减弱已成趋势。虽然现在只是芯片行业受到掣肘, 但是如果“大模型”发展成为生产要素,我们也一定会遇到同样的问题。因此,中国必须拥有自己的“大模型”核心技术。中国科技企业看到这样的必然性,对“大模型”进行大投入也成为趋势。

中小科技企业在没有能力开发原生“大模型”的情况下,可以利用GPT-3或者LLaMA的开源模型进行开发或二次开发,形成自己的“大模型”。应用开发企业很少会开发原生“大模型”,除非对其应用的销售市场有极高的信心,否则将屈服于巨大的算力成本压力,转而支付API使用费,利用现成模型开发相关应用。

二是“东数西算”建设恰逢其时,可能迎来大商机。

西部地区“绿电”资源丰富,在“东数西算”整体规划下,西部枢纽主要承担备份存储的工作;东部地区在智慧城市、产业互联网和互联网服务中的即时计算工作,则放在东部地区的枢纽解决。“大模型”对算力要求巨大,东部IDC大规模占用算力资源,有三大缺点:成本高(东部电费高)、排放高(东部绿电比例小)、挤占低时延需求应用的算力资源,这为西部的算力中心创造了新的商机。

一方面,将“大模型”的训练计算放在西部地区的IDC,对当地的通信网络性能提升有更高要求。海量数据的吞吐是一个需要解决的问题,但解决这个问题的成本远远小于IDC使用费差异。

另一方面,科技公司巨头都提出了自己的ESG(环境社会责任)目标,碳排放是其中最重要的指标。“大模型”、大算力,运行就会产生大量的碳排放,对“绿色算力”的需求也就越迫切。

有关ChatGPT对算力存在双重影响的更多相关文章

  1. ruby-on-rails - 添加回形针新样式不影响旧上传的图像 - 2

    我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司

  2. ruby-on-rails - rspec - 如何检查方法是否存在? - 2

    我的模型有defself.empty_building//stuffend我怎样才能对这个现有的进行rspec?,已经尝试过:describe"empty_building"dosubject{Building.new}it{shouldrespond_to:empty_building}endbutgetting:Failure/Error:it{shouldrespond_to:empty_building}expected#torespondto:empty_building 最佳答案 你有一个类方法self.empty_bu

  3. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  4. ruby-on-rails - ActiveRecord 的 find_or_create* 方法是否存在根本性缺陷? - 2

    有几种方法:first_or_create_by、find_or_create_by等,它们的工作原理是:与数据库对话以尝试找到我们想要的东西如果我们找不到,就自己做保存到数据库显然,并发调用这些方法可能会使两个线程都找不到它们想要的东西,并且在第3步中一个线程会意外失败。似乎更好的解决方案是,创建或查找即:提前在您的数据库中创建合理的唯一性约束。如果你想保存一些东西,就保存它如果有效,那就太好了。如果它因为RecordNotUnique异常而无法工作,它已经存在,太好了,加载它那么在什么情况下我想使用Rails内置的东西而不是我自己的(看起来更可靠)create_or_find?

  5. .net - .NET 将如何影响 Python 和 Ruby 应用程序? - 2

    我很好奇.NET将如何影响Python和Ruby应用程序。用IronPython/IronRuby编写的应用程序是否会非常特定于.NET环境,以至于它们实际上将变得特定于平台?如果他们不使用任何.NET功能,那么IronPython/IronRuby相对于非.NET同类产品的优势是什么? 最佳答案 我不能说任何关于IronRuby的东西,但是大多数Python实现(如IronPython、Jython和PyPy)都试图尽可能忠实于CPython实现。不过,IronPython正在迅速成为这方面的佼佼者之一,并且在PlanetPyth

  6. ruby - 检查网络文件是否存在,而不下载它? - 2

    是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby​​不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案

  7. ruby-on-rails - 如果存在则更新,否则什么也不做? - 2

    当且仅当模型存在时,我才尝试更新模型的值。如果没有,我什么都不做。搜索似乎只返回更新或创建问题/答案,但我不想创建。我知道我可以用一个简单的方法来做到这一点:found=Model.find_by_id(id)iffoundupdatestuffend但是,我觉得有一种方法可以在一次调用中完成此操作,而无需分配任何临时本地值或执行if。如果记录不存在,我该如何编写一个Rails调用来更新记录而不出现嘈杂错误?最新的Rails3.x 最佳答案 您可以使用try在对find_by_id或where的结果调用update_attribut

  8. ruby - 如何使用 Ruby 检查域是否存在? - 2

    类似的东西:defdomain_exists?(domain)#performcheck#returntrue|falseendputs"valid!"ifdomain_exists?("example.com") 最佳答案 require'socket'defdomain_exists?(domain)beginSocket.gethostbyname(domain)rescueSocketErrorreturnfalseendtrueend 关于ruby-如何使用Ruby检查域是否存

  9. ruby-on-rails - 检查 Rails/Ruby 中对象是否存在的正确方法是什么? - 2

    我有很多模型和关系。由于这个事实,在View/Controller中有很多调用,看起来像这样:@object.something.with_something.value链的某些部分最终可能为零,这完全没问题。检查终端对象是否存在的正确/干净/快速的方法是什么?正在调用类似的东西:@object.something.with_something.valueifdefined?@object.something.with_something.value还可以吗? 最佳答案 在本地,您需要使用&&运算符(不是defined?),但这很快

  10. ruby - 如果键存在,向散列值添加一些东西? - 2

    我在Ruby中有一个哈希:hash=Hash.new里面有一些键值对,比如说:hash[1]="One"hash[2]="Two"如果散列包含键2,那么我想将“Bananas”添加到它的值中。如果散列没有键2,我想创建一个新的键值对2=>"Bananas"。我知道我可以通过首先使用has_key?检查散列是否具有key2来做到这一点,然后采取相应的行动。但这需要一个if语句和不止一行。那么是否有一种简单、优雅的单行代码可以实现这一目标? 最佳答案 这个有效:hash[2]=(hash[2]||'')+'Bananas'如果您希望所有

随机推荐