草庐IT

关于GPT4,我们都知道什么?

robot_learner 2023-06-17 原文

人工智能原理与实践 全面涵盖人工智能和数据科学各个重要体系经典

北大出版社,人工智能原理与实践 人工智能和数据科学从入门到精通 详解机器学习深度学习算法原理

我们生活在一个AI激动人心的时代,你会不停看到各种新型模型的推出,它们彻底改变了 AI 领域。2022 年 7 月,OpenAI 推出了DALLE2,这是一种最先进的文本到图像模型。几周后,Stability.AI 推出了 DALLE-2 的开源版本,名为Stable Diffusion。这两种模型都很受欢迎,并且在质量和理解提示的能力方面都显示出可喜的结果。

前几个月,OpenAI 先后推出了一种名为Whisper的自动语音识别 (ASR) 模型。它在稳健性和准确性方面优于所有其他模型。

更加引燃市场的是最近chatGPT的推出,这是一种专门会对话优化的GPT模型。

从趋势来看,我们可以假设 OpenAI 将在未来几个月推出 GPT-4。市场对大型语言模型的需求很高,GPT-3 的流行已经证明人们期待 GPT-4 具有更好的准确性、计算优化、更低的偏差和更高的安全性。

尽管 OpenAI 对发布或功能保持沉默,但在这篇文章中,我们将根据 AI 趋势和 OpenAI 提供的信息对 GPT-4 做出一些假设和预测。此外,我们将学习大型语言模型及其应用。

什么是 GPT?
Generative Pre-trained Transformer (GPT) 是一种基于互联网可用数据训练的文本生成深度学习模型。它用于问答、文本摘要、机器翻译、分类、代码生成和对话 AI。

您可以通过在 Python技能轨道中学习深度学习来学习如何构建深度学习模型。您将探索深度学习的基础知识,了解 Tensorflow 和 Keras 框架,并使用 Keras 构建多个输入和输出模型。

GPT 模型有无穷无尽的应用,您甚至可以根据特定数据对其进行微调,以创造更好的结果。通过使用转换器,您将节省计算、时间和其他资源的成本。

GPT之前
在 GPT-1 之前,大多数自然语言处理 (NLP) 模型都是针对分类、翻译等特定任务进行训练的。它们都使用监督学习。这种类型的学习有两个问题:缺乏注释数据和无法概括任务。

GPT-1 transformer架构

GPT-1(117M参数)论文(Improving Language Understanding by Generative Pre-Training)发表于2018年,提出了一种生成语言模型,该模型在未标记数据上进行训练,并在分类和情感分析等特定下游任务上进行微调.

GPT-2

GPT-2(1.5B 参数)论文(Language Models are Unsupervised Multitask Learners)于 2019 年发表。它在具有更多模型参数的更大数据集上进行训练,以构建更强大的语言模型。GPT-2 使用任务调节、零样本学习和零短任务转移来提高模型性能。

GPT-3

GPT-3(175B参数)论文(Language Models are Few-Shot Learners)发表于2020年,该模型的参数比GPT-2多100倍。它在更大的数据集上进行了训练,以在下游任务上取得良好的效果。它以类人的故事写作、SQL 查询和 Python 脚本、语言翻译和摘要让世界感到惊讶。它使用上下文学习、少样本、单样本和零样本设置取得了最先进的结果。

GPT-4 有什么新功能?
在 AC10 线上见面会的问答环节中,OpenAI 的 CEO Sam Altman 证实了关于推出 GPT-4 模型的传闻。在本节中,我们将使用该信息并将其与当前趋势相结合来预测模型大小、最佳参数和计算、多模态、稀疏性和性能。

型号尺寸
根据 Altman 的说法,GPT-4 不会比 GPT-3 大很多。因此,我们可以假设它将有大约 175B-280B 个参数,类似于 Deepmind 的语言模型Gopher。

大型号Megatron NLG比GPT-3大三倍,参数530B,性能没有超过。紧随其后的较小型号达到了更高的性能水平。简单来说,大尺寸并不代表性能更高。

Altman 表示,他们正专注于让更小的模型表现更好。大型语言模型需要庞大的数据集、海量的计算资源和复杂的实现。对于许多公司来说,即使部署大型模型也变得不划算。

最优参数化
大型模型大多优化不足。训练模型的成本很高,公司必须在准确性和成本之间做出权衡。例如,尽管有错误,GPT-3 只训练了一次。由于无法承受的成本,研究人员无法执行超参数优化。

微软和 OpenAI 已经证明,如果他们用最佳超参数对 GPT-3 进行训练,则可以对其进行改进。在调查结果中,他们发现具有优化超参数的 6.7B GPT-3 模型与 13B GPT-3 模型一样提高了性能。

他们发现了新的参数化 (μP),即较小模型的最佳超参数与具有相同架构的较大模型的最佳超参数相同。它使研究人员能够以一小部分成本优化大型模型。

最佳计算
DeepMind 最近发现,训练令牌的数量对模型性能的影响与大小一样大。自 GPT-3 以来,他们通过训练Chinchilla一个 70B 模型证明了这一点,该模型比 Gopher 小四倍,比大型语言模型多四倍数据

我们可以安全地假设,对于计算优化模型,OpenAI 将增加 5 万亿个训练代币。这意味着它需要比 GPT-3 多 10-20 倍的 FLOPs 来训练模型并达到最小损失。

GPT-4 将是纯文本模型
在问答环节,Altman 表示 GPT-4 不会像 DALL-E 那样是多模式的。这将是一个纯文本模型。

这是为什么?与仅使用语言或仅使用视觉相比,很难构建良好的多模式。结合文本和视觉信息是一项具有挑战性的任务。这也意味着它们必须提供比 GPT-3 和 DALL-E 2 更好的性能。

因此,我们不会期待 GPT-4 有任何花哨的东西。

稀疏度
稀疏模型使用条件计算来降低计算成本。该模型可以轻松扩展超过 1 万亿个参数,而不会产生高昂的计算成本。它将帮助我们在较低的资源上训练大型语言模型。

但 GPT-4 不会使用稀疏模型。为什么?过去,OpenAI 一直依赖密集的语言模型,他们不会增加模型的大小。

人工智能对齐
GPT-4 将比 GPT-3 更加一致。OpenAI 正在努力解决 AI 对齐问题。他们希望语言模型遵循我们的意图并坚持我们的价值观。

他们通过训练 InstructGPT 迈出了第一步。它是一个 GPT-3 模型,根据人类反馈进行训练以遵循指令。人类评委认为该模型优于 GPT-3。无论语言基准如何。

GPT-4 发布日期
GPT-4 的发布日期仍未确定,我们可以假设该公司更多地关注其他技术,如文本到图像和语音识别。所以,你可能最快在几个月个月看到它。我们不能确定。可以肯定的是,下一个版本会解决旧版本的问题,呈现出更好的效果。

结论
GPT-4 将是一种纯文本的大型语言模型,在与 GPT-3 相似的大小上具有更好的性能。它还将更加符合人类的命令和价值观。

您可能会听到关于 GPT-4 的相互矛盾的消息,该消息包含 100 万亿个参数并且只关注代码生成。但他们在这一点上都是猜测。我们不知道的还有很多,而且 OpenAI 还没有透露任何关于发布日期、模型架构、大小和数据集的具体信息。

与 GPT-3 一样,GPT-4 将用于代码生成、文本摘要、语言翻译、分类、聊天机器人和语法校正等各种语言应用。新版本的模型将更安全、更少偏见、更准确、更一致。它还将具有成本效益和稳健性。

最后的话

AI日新月异,但是万丈高楼拔地起,离不开良好的基础。您是否有兴趣了解人工智能的原理和实践? 不要再观望! 我们关于 AI 原则和实践的书是任何想要深入了解 AI 世界的人的完美资源。 由该领域的领先专家撰写,这本综合指南涵盖了从机器学习的基础知识到构建智能系统的高级技术的所有内容。 无论您是初学者还是经验丰富的 AI 从业者,本书都能满足您的需求。 那为什么还要等? 立即下单,开始以一种易于访问、引人入胜且实用的方式学习 AI。

人工智能原理与实践 全面涵盖人工智能和数据科学各个重要体系经典

北大出版社,人工智能原理与实践 人工智能和数据科学从入门到精通 详解机器学习深度学习算法原理

有关关于GPT4,我们都知道什么?的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  3. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  4. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  5. ruby - 为什么 4.1%2 使用 Ruby 返回 0.0999999999999996?但是 4.2%2==0.2 - 2

    为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返

  6. ruby - ruby 中的 TOPLEVEL_BINDING 是什么? - 2

    它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput

  7. ruby - Infinity 和 NaN 的类型是什么? - 2

    我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串

  8. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  9. ruby - 为什么 SecureRandom.uuid 创建一个唯一的字符串? - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?

  10. ruby - 当使用::指定模块时,为什么 Ruby 不在更高范围内查找类? - 2

    我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or

随机推荐