几个月前以ChatGPT为首的内容生成式AI就已经火得不能再火了,然而,随着本周GPT-4和文心一言的发布,AI在国内外又“火上加火”了一次。
2023年3月14日,OpenAI发布了大型的多模态模型GPT-4。“GPT-4比以往任何版本更具创造性和协作性”,并且“有更广泛的常识和解决问题的能力,可以更准确地解决难题”。OpenAI的CEO山姆·阿尔特曼说:“这是我们迄今为止功能最强大的模型。”为了证明GPT-4的强大能力,演示者直接在纸上画了一个潦草的网页示意图,拍照发给GPT,并要求其按照这个布局写网页代码。几乎只需要数秒钟的时间,相应的代码就完成了生成。发布会还展示了一个GPT-4的使用场景,把程序运行出错的信息甚至错误信息截图提交给GPT-4,仅凭这部分图片信息,GPT-4都能自动查出错误。
2023年3月16日,百度发布了最新的大语言模型AI产品文心一言。首席技术官王海峰介绍,文心一言是新一代知识增强大语言模型,是在ERNIE及PLATO系列模型的基础上研发的。它使用有监督精调、人类反馈的强化学习、提示、知识增强、检索增强和对话增强六个模块来增强模型能力。其深度学习平台主要分为核心框架、基础模型库、端到端开发套件、工具与组件四个部分。文心语言大模型的基础层分为NLP大模型、CV大模型、跨模态大模型、生物计算大模型。但可惜的是,发布会上并没有现场演示环节,大众也不能直接使用该产品。
文心一言的发布会固然很多地方准备的还不完善,但确实是形势所迫。很多观点都认为,我们当前正处于一个AI爆发的前夜,无论是个人还是企业,似乎没有跟上这波AI浪潮就会被时代的步伐甩在身后。而很多硬件、云服务等产业链相关人士也急于了解AI这股浪潮,但却被复杂的技术术语、层出不穷的行业应用看花了双眼。在面对海量且无时无刻不在update的信息时,光凭人类大脑当然不能有AI那般的信息吸收和处理效率。如何能抽丝剥茧形成认知框架,辨别有用的信息,真正形成自己的洞见和判断是最重要的。
在笔者看来,这次的AI浪潮和之前的围棋对战、图像识别一样,都是底层模型出现了创新,与现实生活产生交集,引发广泛社会反应。这次的大语言模型与现实生活的交集是直接的一对一对话,人们体验感更强,引发的反响更加强烈。因此,想看清AI爆火背后的机会,真正形成自己的洞见和判断,最好的方法就是先牢牢抓住本次AI浪潮的核心:大语言模型。
大语言模型领域内的名词术语很多,看分析文字时,各概念间的逻辑关系也容易混淆。NLP领域在2013年主要采用的还是深度学习模型,其中的关键技术主要有二,一是大量的改进LSTM模型以及少量改进CNN模型为典型的特征抽取器,二是以encoder-decoder+Attention作为具体典型的总体技术框架。当时的主要目标是如何有效增加模型层或模型参数容量,也就是怎么在encoder decoder不断叠加更深的LSTM或CNN层。但之所以没有再延续,是因为具体任务的训练数据量有限和LSTM/CNN特征抽取器吸收和表达知识能力有限。2020年Transformer模型问世后,便逐步渗透到了NLP领域的方方面面。
Transformer问世后,让深度学习模型可以“自由吸收”数据中的知识。大语言模型突破了参数和算力限制,从此语言模型也进入参数越多,数据越大,模型效果越好的时代。Transformer分为两派:GPT和Bert。Bert模型和GPT模型都是预训练模型。预训练模型会预先接受海量的文本语料进行学习。学习的成果以模型参数的形式沉淀。模型参数的沉淀会对预训练模型关于词性、句法等方面的理解能力进行改进。简单来说,GPT,就是在一个超大语料基础上预训练出的大语言模型(LLM),采用从左到右进行填字概率预测的自回归语言模型,并基于prompting(提示)来适应不同领域的任务。在GPT2的时代,Bert表现更好,但是GPT通过“自然语言生成任务”,兼容了几乎所有NLP问题,等到GPT3发布后,迅速占据了“江湖老大”的位置。
打一个通俗易懂的比方,如果把整个AI行业比作一座写字楼的话,各个面向最终用户的具体应用就是一个个摆放不同设备的房间,面向不同行业的AI能力与各场景的训练数据集就是大楼的水电消防系统与基础装修,底层的模型就是盖楼用的原材料。原材料在短时间经历了多次升级,由粘土(机器学习)到砖石(深度学习)到普通混凝土(Transformer)到钢筋混凝土(GPT),目前已经能把写字楼盖到几十层了。建高楼的需求旺盛,必然会带动背后的搅拌机、起重机等土木行业的兴起,这部分对应的就是AI基建层的硬件、云服务。
随着ChatGPT这种大语言模型的训练数据和参数量呈指数增长,这些操作需要更多的计算资源和存储资源,这是导致大语言模型成本增加在原因。首先,是作为训练输入的训练样本,样本的数据量是非常庞大的,尤其是Midjourney这种需要图片训练的AI,需要PB级的样本数据。其次,是作为训练输出结果的参数模型:考虑到过去5年中模型参数呈指数增长,下一代大语言模型很可能是万亿参数模型,快速增长的模型需要足够的空间来存储。这么多存储空间从哪来?目前主流的解决方法是硬件存储阵列或分布式存储。传统硬件存储阵列可以保障每个逻辑卷的低延迟和高可用性,但存在水平可伸缩性差、成本高、可能形成许多“孤立的数据岛”的问题,从而使存储成本高,存储资源利用率低。一些传统分布式存储看起来可以解决上述问题,但通常部署复杂,且难以保证性能和稳定性。这个时候,就需要存储资源盘活系统(Storage Resource Reutilization System,SRRS)。
存储资源盘活系统是一个ZIP包。它可以轻松地安装在装有Linux操作系统的任何品牌、配置的物理服务器、裸金属服务器、虚拟机甚至容器实例上,向上层提供块存储服务。存储资源盘活系统与硬件驱动完全解耦,且支持硬件异构。存储资源盘活系统允许集群中的每个Linux操作系统实例具有不同的硬件配置,例如不同的CPU数量、不同的内存大小、不同的本地硬盘驱动器容量等。存储资源盘活系统会充分利用用户的全部资源来提供最好的性能,帮助用户进一步提高现有硬件资源的利用率。这对于硬件更新换代频率很快的AI领域来说是好消息:再也不用担心被淘汰的设备闲置了。
存储资源盘活系统作为一组用户态进程来运行,不依赖于任何特定版本的Linux内核或Linux发行版,不依赖或修改操作系统环境,不垄断整个硬盘驱动器,不干扰任何其他进程的执行。因此,存储资源盘活系统可以在同一个Linux操作系统实例中与其他应用程序并发运行,在不影响整体功耗的情况下大大提高了硬件利用率,也在一定程度上缓解了AI机房“耗电高”的痛点。存储资源盘活系统是高性能的。存储资源盘活系统采用分布式双控制器架构,像传统硬件存储阵列一样提供低延迟和高可用性,像传统分布式存储一样提供高可扩展性和高吞吐量。它可以轻松从3台服务器扩展到数千台服务器,并逐个从数千台服务器减少到3台服务器,上述过程中不会出现服务不可用的情况。对于AI行业中训练样本、模型参数的指数级增长,存储资源盘活系统可以自如应对。
iPhone作为开启了移动互联网的划时代产品,最大的成功之处在于它让手机成为了人类器官,并且让互联网从桌面走到了身边;其次,在于它出现的时机契合了硬件和软件技术的发展。以iPhone作类比,以GPT为首的大语言模型是调用算力和数据的终极方式,AGI(通用人工智能,也是OpenAI的终极愿景)允许AI从有限任务变成几乎能取代或协助人类的所有思考任务。可能这也是黄仁勋(NVIDIA创始人兼CEO)所说的,This is the iPhone moment of AI。面对AI的iPhone moment,我们需要更多SRRS这种基础建设来适配将来快速增长的算力与存储需求。
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
我主要使用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
我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
几个月前,我读了一篇关于rubygem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:
我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s
我正在编写一个简单的静态Rack应用程序。查看下面的config.ru代码:useRack::Static,:urls=>["/elements","/img","/pages","/users","/css","/js"],:root=>"archive"map'/'dorunProc.new{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=6400'},File.open('archive/splash.html',File::RDONLY)]}endmap'/pages/search.
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal