淘宝图片服务器的学习

  一、淘宝网的困境

  对于淘宝网这样的大型电子商务网站,对于图片服务的要求特别的高。而且对于卖家来说,图片远胜于文字描述,因此卖家也格外看重图片的显示质量、访问速度等问题。根据淘宝网的流量分析,整个淘宝网流量中,图片的访问流量会占到90%以上,而主站的网页则占到不到10%。同时大量的图片需要根据不同的应用位置,生成不同大小规格的缩略图。考虑到多种不同的应用场景以及改版的可能性,一张原图有可能需要生成20多个不同尺寸规格的缩略图。

  淘宝整体图片存储系统容量1800TB(1.8PB),已经占用空间990TB(约1PB)。保存的图片文件数量达到286亿多个,这些图片文件包括根据原图生成的缩略图。平均图片大小是17.45K;8K以下图片占图片数总量的61%,占存储容量的11%。对于如此大规模的小文件存储与读取需要频繁的寻道和换道,在大量高并发访问量的情况下,非常容易造成读取延迟。

  2007年之前淘宝采用NetApp公司的文件存储系统。至2006年, NetApp公司最高端的产品也不能满足淘宝存储的要求。首先是商用的存储系统没有对小文件存储和读取的环境进行有针对性的优化;其次,文件数量大,网络存储设备无法支撑;另外,整个系统所连接的服务器也越来越多,网络连接数已经到达了网络存储设备的极限。此外,商用存储系统扩容成本高,10T的存储容量需要几百万,而且存在单点故障,容灾和安全性无法得到很好的保证。

  二、淘宝网自主开发的目的
  1. 商用软件很难满足大规模系统的应用需求,无论存储还是CDN还是负载均衡,因为在厂商实验室端,很难实现如此大的数据规模测试。
  2. 研发过程中,将开源和自主开发相结合,会有更好的可控性,系统出问题了,完全可以从底层解决问题,系统扩展性也更高。
  3. 在一定规模效应基础上,研发的投入都是值得的。当规模超过交叉点后自主研发才能收到较好的经济效果。实际上淘宝网的规模已经远远超过了交叉点。
  4. 自主研发的系统可在软件和硬件多个层次不断的优化。
  三、淘宝TFS的介绍

1、 TFS 1.0版本

  从2006年开始,淘宝网决定自己开发一套针对海量小文件存储难题的文件系统,用于解决自身图片存储的难题。到2007年6月,TFS(淘宝文件系统,Taobao File System)正式上线运营。在生产环境中应用的集群规模达到了200台PC Server(146G*6 SAS 15K Raid5),文件数量达到上亿级别;系统部署存储容量: 140 TB;实际使用存储容量: 50 TB;单台支持随机IOPS 200+,流量3MBps。

tfs-1

  图为淘宝集群文件系统TFS 1.0第一版的逻辑架构:集群由一对Name Server和多台Data Server构成,Name Server的两台服务器互为双机,就是集群文件系统中管理节点的概念。

  • 每个Data Server运行在一台普通的Linux主机上
  • 以block文件的形式存放数据文件(一般64M一个block)
  • block存多份保证数据安全
  • 利用ext3文件系统存放数据文件
  • 磁盘raid5做数据冗余
  • 文件名内置元数据信息,用户自己保存TFS文件名与实际文件的对照关系–使得元数据量特别小。

  TFS最大的特点就是将一部分元数据隐藏到图片的保存文件名上,大大简化了元数据,消除了管理节点对整体系统性能的制约,这一理念和目前业界流行的“对象存储”较为类似。传统的集群系统里面元数据只有1份,通常由管理节点来管理,因而很容易成为瓶颈。而对于淘宝网的用户来说,图片文件究竟用什么名字来保存实际上用户并不关心,因此TFS在设计规划上考虑在图片的保存文件名上暗藏了一些元数据信息,例如图片的大小、时间、访问频次等等信息,包括所在的逻辑块号。而在元数据上,实际上保存的信息很少,因此元数据结构非常简单。仅仅只需要一个fileID,能够准确定位文件在什么地方。由于大量的文件信息都隐藏在文件名中,整个系统完全抛弃了传统的目录树结构,因为目录树开销最大。拿掉后,整个集群的高可扩展性极大提高。

2、 TFS 1.3版本

  到2009年6月,TFS 1.3版本上线,集群规模大大扩展,部署到淘宝的图片生产系统上,整个系统已经从原有200台PC服务器扩增至440台PC Server(300G*12 SAS 15K RPM) + 30台PC Server (600G*12 SAS 15K RPM)。支持文件数量也扩容至百亿级别;系统部署存储容量:1800TB(1.8PB);当前实际存储容量:995TB;单台Data Server支持随机IOPS 900+,流量15MB+;目前Name Server运行的物理内存是217MB(服务器使用千兆网卡)。

tfs-2

  图为TFS1.3版本的逻辑结构图,在TFS1.3版本中,淘宝网的软件工作组重点改善了心跳和同步的性能,最新版本的心跳和同步在几秒钟之内就可完成切换,同时进行了一些新的优化:包括元数据存内存上,清理磁盘空间,性能上也做了优化,包括:

  • 完全扁平化的数据组织结构,抛弃了传统文件系统的目录结构。
  • 在块设备基础上建立自有的文件系统,减少EXT3等文件系统数据碎片带来的性能损耗
  • 单进程管理单块磁盘的方式,摒除RAID5机制
  • 带有HA机制的中央控制节点,在安全稳定和性能复杂度之间取得平衡。
  • 尽量缩减元数据大小,将元数据全部加载入内存,提升访问速度。
  • 跨机架和IDC的负载均衡和冗余安全策略。
  • 完全平滑扩容。

  TFS主要的性能参数不是IO吞吐量,而是单台PCServer提供随机读写IOPS。由于硬件型号不同,很难给出一个参考值来说明性能。但基本上可以达到单块磁盘随机IOPS理论最大值的60%左右,整机的输出随盘数增加而线性增加。

3、 TFS 2.0版本

  TFS 2.0(下面简称TFS,目前已经开源)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用在淘宝各项应用中。它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。同时扁平化的数据组织结构,可将文件名映射到文件的物理地址,简化了文件的访问流程,一定程度上为TFS提供了良好的读写性能。

tfs-3-1

  一个TFS集群由两个!NameServer节点(一主一备)和多个!DataServer节点组成。这些服务程序都是作为一个用户级的程序运行在普通Linux机器上的。在TFS中,将大量的小文件(实际数据文件)合并成为一个大文件,这个大文件称为块(Block), 每个Block拥有在集群内唯一的编号(Block Id), Block Id在!NameServer在创建Block的时候分配, !NameServer维护block与!DataServer的关系。Block中的实际数据都存储在!DataServer上。而一台!DataServer服务器一般会有多个独立!DataServer进程存在,每个进程负责管理一个挂载点,这个挂载点一般是一个独立磁盘上的文件目录,以降低单个磁盘损坏带来的影响。正常情况下,一个块会在!DataServer上存在,主!NameServer负责Block的创建,删除,复制,均衡,整理, !NameServer不负责实际数据的读写,实际数据的读写由!DataServer完成。

  • !NameServer主要功能是: 管理维护Block和!DataServer相关信息,包括!DataServer加入,退出, 心跳信息, block和!DataServer的对应关系建立,解除。
  • !DataServer主要功能是: 负责实际数据的存储和读写。

  同时为了考虑容灾,!NameServer采用了HA结构,即两台机器互为热备,同时运行,一台为主,一台为备,主机绑定到对外vip,提供服务;当主机器宕机后,迅速将vip绑定至备份!NameServer,将其切换为主机,对外提供服务。图中的HeartAgent就完成了此功能。

  TFS的块大小可以通过配置项来决定,通常使用的块大小为64M。TFS的设计目标是海量小文件的存储,所以每个块中会存储许多不同的小文件。!DataServer进程会给Block中的每个文件分配一个ID(File ID,该ID在每个Block中唯一),并将每个文件在Block中的信息存放在和Block对应的Index文件中。这个Index文件一般都会全部load在内存,除非出现!DataServer服务器内存和集群中所存放文件平均大小不匹配的情况。

  另外,还可以部署一个对等的TFS集群,作为当前集群的辅集群。辅集群不提供来自应用的写入,只接受来自主集群的写入。当前主集群的每个数据变更操作都会重放至辅集群。辅集群也可以提供对外的读,并且在主集群出现故障的时候,可以接管主集群的工作。

  平滑扩容

  原有TFS集群运行一定时间后,集群容量不足,此时需要对TFS集群扩容。由于DataServer与NameServer之间使用心跳机制通信,如果系统扩容,只需要将相应数量的新!DataServer服务器部署好应用程序后启动即可。这些!DataServer服务器会向!NameServer进行心跳汇报。!NameServer会根据!DataServer容量的比率和!DataServer的负载决定新数据写往哪台!DataServer的服务器。根据写入策略,容量较小,负载较轻的服务器新数据写入的概率会比较高。同时,在集群负载比较轻的时候,!NameServer会对!DataServer上的Block进行均衡,使所有!DataServer的容量尽早达到均衡。

  进行均衡计划时,首先计算每台机器应拥有的blocks平均数量,然后将机器划分为两堆,一堆是超过平均数量的,作为移动源;一类是低于平均数量的,作为移动目的。

  移动目的的选择:首先一个block的移动的源和目的,应该保持在同一网段内,也就是要与另外的block不同网段;另外,在作为目的的一定机器内,优先选择同机器的源到目的之间移动,也就是同台!DataServer服务器中的不同!DataServer进程。
当有服务器故障或者下线退出时(单个集群内的不同网段机器不能同时退出),不影响TFS的服务。此时!NameServer会检测到备份数减少的Block,对这些Block重新进行数据复制。

  在创建复制计划时,一次要复制多个block, 每个block的复制源和目的都要尽可能的不同,并且保证每个block在不同的子网段内。因此采用轮换选择(roundrobin)算法,并结合加权平均。

  由于DataServer之间的通信是主要发生在数据写入转发的时候和数据复制的时候,集群扩容基本没有影响。假设一个Block为64M,数量级为1PB。那么NameServer上会有 1 * 1024 * 1024 * 1024 / 64 = 16.7M个block。假设每个Block的元数据大小为0.1K,则占用内存不到2G。

  存储机制

  在TFS中,将大量的小文件(实际用户文件)合并成为一个大文件,这个大文件称为块(Block)。TFS以Block的方式组织文件的存储。每一个Block在整个集群内拥有唯一的编号,这个编号是由NameServer进行分配的,而DataServer上实际存储了该Block。在!NameServer节点中存储了所有的Block的信息,一个Block存储于多个!DataServer中以保证数据的冗余。对于数据读写请求,均先由!NameServer选择合适的!DataServer节点返回给客户端,再在对应的!DataServer节点上进行数据操作。!NameServer需要维护Block信息列表,以及Block与!DataServer之间的映射关系,其存储的元数据结构如下:

tfs-3-2

  在!DataServer节点上,在挂载目录上会有很多物理块,物理块以文件的形式存在磁盘上,并在!DataServer部署前预先分配,以保证后续的访问速度和减少碎片产生。为了满足这个特性,!DataServer现一般在EXT4文件系统上运行。物理块分为主块和扩展块,一般主块的大小会远大于扩展块,使用扩展块是为了满足文件更新操作时文件大小的变化。每个Block在文件系统上以“主块+扩展块”的方式存储。每一个Block可能对应于多个物理块,其中包括一个主块,多个扩展块。

  在DataServer端,每个Block可能会有多个实际的物理文件组成:一个主Physical Block文件,N个扩展Physical Block文件和一个与该Block对应的索引文件。Block中的每个小文件会用一个block内唯一的fileid来标识。!DataServer会在启动的时候把自身所拥有的Block和对应的Index加载进来。

  容错机制

  集群容错。TFS可以配置主辅集群,一般主辅集群会存放在两个不同的机房。主集群提供所有功能,辅集群只提供读。主集群会把所有操作重放到辅集群。这样既提供了负载均衡,又可以在主集群机房出现异常的情况不会中断服务或者丢失数据。

  !NameServer容错。Namserver主要管理了!DataServer和Block之间的关系。如每个!DataServer拥有哪些Block,每个Block存放在哪些!DataServer上等。同时,!NameServer采用了HA结构,一主一备,主NameServer上的操作会重放至备NameServer。如果主NameServer出现问题,可以实时切换到备NameServer。另外!NameServer和!DataServer之间也会有定时的heartbeat,!DataServer会把自己拥有的Block发送给!NameServer。!NameServer会根据这些信息重建!DataServer和Block的关系。

  !DataServer容错。TFS采用Block存储多份的方式来实现!DataServer的容错。每一个Block会在TFS中存在多份,一般为3份,并且分布在不同网段的不同!DataServer上。对于每一个写入请求,必须在所有的Block写入成功才算成功。当出现磁盘损坏!DataServer宕机的时候,TFS启动复制流程,把备份数未达到最小备份数的Block尽快复制到其他DataServer上去。 TFS对每一个文件会记录校验crc,当客户端发现crc和文件内容不匹配时,会自动切换到一个好的block上读取。此后客户端将会实现自动修复单个文件损坏的情况。

  并发机制

  对于同一个文件来说,多个用户可以并发读。现有TFS并不支持并发写一个文件。一个文件只会有一个用户在写。这在TFS的设计里面对应着是一个block同时只能有一个写或者更新操作。

  TFS文件名的结构

  TFS的文件名由块号和文件号通过某种对应关系组成,最大长度为18字节。文件名固定以T开始,第二字节为该集群的编号(可以在配置项中指定,取值范围 1~9)。余下的字节由Block ID和File ID通过一定的编码方式得到。文件名由客户端程序进行编码和解码,它映射方式如下图:

tfs-3-3

  TFS客户程序在读文件的时候通过将文件名转换为BlockID和FileID信息,然后可以在!NameServer取得该块所在!DataServer信息(如果客户端有该Block与!DataServere的缓存,则直接从缓存中取),然后与!DataServer进行读取操作。

  四、图片服务器部署与缓存

  下图为淘宝网整体系统的拓扑图结构。整个系统就像一个庞大的服务器一样,有处理单元、缓存单元和存储单元。前面已经详细介绍过了后台的TFS集群文件存储系统,在TFS前端,还部署着200多台图片文件服务器,用Apatch实现,用于生成缩略图的运算。

  根据淘宝网的缩略图生成规则,缩略图都是实时生成的。这样做的好处有两点:一是为了避免后端图片服务器上存储的图片数量过多,大大节约后台存储空间的需求,淘宝网计算,采用实时生成缩略图的模式比提前全部生成好缩略图的模式节约90%的存储空间,也就是说,存储空间只需要后一种模式的10%;二是,缩略图可根据需要实时生成出来,更为灵活。

tfs-4-4

  淘宝网图片存储与处理系统全局拓扑,图片服务器前端还有一级和二级缓存服务器,尽量让图片在缓存中命中,最大程度的避免图片热点,实际上后端到达TFS的流量已经非常离散和平均。

  图片文件服务器的前端则是一级缓存和二级缓存,前面还有全局负载均衡的设置,解决图片的访问热点问题。图片的访问热点一定存在,重要的是,让图片尽量在缓存中命中。目前淘宝网在各个运营商的中心点设有二级缓存,整体系统中心店设有一级缓存,加上全局负载均衡,传递到后端TFS的流量就已经非常均衡和分散了,对前端的响应性能也大大提高。

  根据淘宝的缓存策略,大部分图片都尽量在缓存中命中,如果缓存中无法命中,则会在本地服务器上查找是否存有原图,并根据原图生成缩略图,如果都没有命中,则会考虑去后台TFS集群文件存储系统上调取,因此,最终反馈到TFS集群文件存储系统上的流量已经被大大优化了。

  淘宝网将图片处理与缓存编写成基于Nginx的模块(Nginx-tfs),淘宝认为Nginx是目前性能最高的HTTP服务器(用户空间),代码清晰,模块化非常好。淘宝使用GraphicsMagick进行图片处理,采用了面向小对象的缓存文件系统,前端有LVS+Haproxy将原图和其所有缩略图请求都调度到同一台Image Server。

  文件定位上,内存用hash算法做索引,最多一次读盘。写盘方式则采用Append方式写,并采用了淘汰策略FIFO,主要考虑降低硬盘的写操作,没有必要进一步提高Cache命中率,因为Image Server和TFS在同一个数据中心,读盘效率还是非常高的。

转载于:https://www.cnblogs.com/icestone10/p/3250650.html

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

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

相关文章

用ChatGPT/midjourney生成创意营销图片素材,产品图、虚拟主播、终端店铺图

营销素材对应的关键词库(3个): 元素、风格、AI绘画工具midjourney 提问模板: 第一步,先预设场景,询问应该包含的关键词范围 假设你是一位世界一流水平的设计师,你想要使用AI绘画工具midjourn…

仿淘宝的详情页图片切换

鼠标放在小图片上&#xff0c;上面的大图会切换到相应的图片 html代码&#xff1a; css代码&#xff1a; js代码&#xff1a; 完整代码&#xff1a; <!DOCTYPE html><html lang"en"> <head> <meta charset"utf-8"> …

html css js肝撸淘宝官网代码(淘宝web端官网页面+部分js功能实现)

大家好&#xff0c;我是梅巴哥er。本篇是我写的一个练习&#xff0c;淘宝首页。用html, css, js写的。交互功能只写了一部分&#xff0c;仅供学习参考。如想下载源码&#xff0c;请移步https://github.com/guozi007a/taobao-homepage.git我传到github上了。在这个页面点Code选项…

ChatGPT对于普通人有什么机会和影响?

ChatGPT爆火“出圈”&#xff0c;短短三个月里&#xff0c;势如破竹。 月活已经达到1亿&#xff0c;什么概念呢&#xff1f;Tiktok在海外达到1亿月活用了将近9个月时间&#xff0c;Instagram用了大约2年半&#xff0c;就连比尔盖茨都表示“Web3没那么重要&#xff0c;元宇宙没…

ChatGPT爆火,真有那么神?

近来&#xff0c;人工智能聊天机器人ChatGPT实火。上线仅仅2个月&#xff0c;ChatGPT的活跃用户就突破一亿&#xff0c;曾创下无数增长奇迹的TikTok都望尘莫及。连比尔盖茨都没忍住承认&#xff1a;ChatGPT出现的意义&#xff0c;不亚于互联网和个人电脑的诞生。 ChatGPT真有那…

震惊!火爆全网的ChatGPT背后使用的数据库居然是……

摘要&#xff1a;ChatGPT承认了自己背后使用的数据库是Cassandra。 OpenAI最近发布的AI驱动的智能聊天机器人ChatGPT在互联网上掀起了一阵风暴&#xff0c;热衷于尝试这一新AI成果的网民不在少数。ChatGPT针对网友广泛的问题提供了非常有针对性的回答&#xff0c;其不可思议的能…

赛狐ERP率先引入ChatGPT 一键生成优质Listing

最近被火遍全球的ChatGPT刷屏了&#xff0c;作为以人工智能技术驱动的自然语言处理工具&#xff0c;它正在用一种新的方式改变着我们的工作和生活。为了更好地赋能卖家&#xff0c;赛狐ERP研发团队快速响应市场需求&#xff0c;率先引入了ChatGPT技术&#xff0c;基于亚马逊畅销…

谷歌推出PaLM-E,能超越ChatGPT么?

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 ChatGPT的横空出世&#xff0c;打的老牌科技巨头谷歌措手不及。在OpenAI微软的双重压力下&#xff0c;自赋“红码”的谷歌亮出“大招”。 近日&#xff0c;谷歌和柏林工业大学的团队重磅推出史上最大的视觉语言模型——PaLM…

“文心一言”和“ChatGPT”两者有何差距?

如果说现阶段火遍全球应用是什么&#xff0c;绝大多数人会脱口而出——ChatGPT。当然最近我们国内版也出来了&#xff0c;就是百度的“文心一言”&#xff0c;文心一言和ChatGPT都是当下以语言模型为核心的人工智能平台&#xff0c;这两者对比之下有何不一样呢&#xff1f;下面…

ChatGPT+Midjourney

一键部署属于你的ChatGPTMidjourney网页&#xff0c;目前已实现&#xff1a; 1.imagin 想象 2.upscale 放大 3.variation 变幻 4.describe 识图 5.blend 混图 6.垫图 开源地址&#xff1a;https://github.com/Licoy/ChatGPT-Midjourney 欢迎大家访问&#xff1a;http://…

ChatGPT 的议论文究竟写的怎么样?111 位高中教师告诉你答案

夕小瑶科技说 原创 作者 | 小戏、Python 在 OpenAI GPT-4 发布时发布的《GPT-4 Technical Report》中&#xff0c;其中很吸引人眼球的一部分是 GPT-4 应用于教育领域的出色表现&#xff0c;通过让 GPT-4 去完成美国的 AP 课程及考试&#xff0c;来评估 GPT-4 在多个学科中的性…

刚刚!ChatGPT演示即将上线王炸功能!不仅推出官方版AutoGPT,还能联网,支持处理Excel,发推购物一条龙!...

转载自量子位 OpenAI官方AutoGPT&#xff0c;要来了&#xff01; 就在AutoGPT项目破10万Star之际&#xff0c;OpenAI也放出重磅炸弹&#xff0c;由联合创始人格雷格布洛克曼&#xff08;Greg Brockman&#xff09;亲自现场演示了ChatGPT即将上线的新功能。 比如要一张这样有氛围…

【历史上的今天】7 月 10 日:iOS App Store 问世;台积电创始人出生;第一台被“越狱”的 iPhone

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 7 月 10 日&#xff0c;在 1856 年的今天&#xff0c;交流电的发明者尼古拉特斯拉&#xff08;Nikola Tesla&#xff09;出生。特斯拉被认为是电力商业化的重要…

沙龙|AI iPhone时刻来临!如何获得登上类ChatGPT的船票?

出品&#xff5c;网易科技数字星球 作者&#xff5c;袁宁 编辑&#xff5c;丁广胜 兴奋麻了&#xff01;还没从ChatGPT带来的震撼中回过神来&#xff0c;过去几天GPT-4、Microsoft 365 Copilot、Midjourney V5、Google PaLM API、文心一言相继引爆&#xff0c;互联网巨头纷纷抢…

来自 ChatGPT 的威胁?谷歌、百度纷纷入局,苹果被迫“开卷”

整理 | 朱珂欣 出品 | CSDN程序人生&#xff08;ID&#xff1a;coder_life&#xff09; 近年来&#xff0c;AIGC 应用可谓是多处开花&#xff0c;成为了科技巨头的“必争之地”。 随着 ChatGPT 在互联网上“高热不下”&#xff0c;除了拍案叫绝的聊天能力以及惊人的准确率备…

苹果 App Store 出现山寨ChatGPT;Anthropic宣布获得4.5亿美元C轮融资

&#x1f680; 中国互联网协会提醒公众警惕“AI换脸”的新骗局 中国互联网协会提醒公众警惕“AI换脸”的新骗局&#xff0c;不法分子利用AI技术通过声音合成、伪造面部表情等实施诈骗。 公众应加强个人信息安全与防范措施&#xff0c;如加强个人信息保护、防止信息泄露、安装…

论文阅读 A Survey of Large Language Models 3

文章目录 能力评估基础任务语言生成知识利用率复杂推理 高级能力评估人类对戏与外部环境的交互作用扩展能力范围 公共基准测试和经验分析评价基准对LLM的能力进行全面分析 结论和未来方向 能力评估 为了检验LLM的有效性和优越性&#xff0c;大量的任务和基准被用来进行实证评估…

【NLP】大模型综述来了!一文带你理清全球AI巨头的大模型进化史

夕小瑶科技说 原创 作者 | 小戏&#xff0c;Python 如果自己是一个大模型的小白&#xff0c;第一眼看到 GPT、PaLm、LLaMA 这些单词的怪异组合会作何感想&#xff1f;假如再往深里入门&#xff0c;又看到 BERT、BART、RoBERTa、ELMo 这些奇奇怪怪的词一个接一个蹦出来&#xf…

LLMs模型速览(GPTs、LaMDA、GLM/ChatGLM、PaLM/Flan-PaLM、BLOOM、LLaMA、Alpaca)

文章目录 一、 GPT系列1.1 GPTs&#xff08;OpenAI&#xff0c;2018——2020&#xff09;1.2 InstructGPT&#xff08;2022-3&#xff09;1.2.1 算法1.2.2 损失函数 1.3 ChatGPT&#xff08;2022.11.30&#xff09;1.4 ChatGPT plugin1.5 GPT-4&#xff08;2023.3.14&#xff0…

【人工智能】大模型综述 —— 一文带你理清全球AI巨头的大模型进化史

目录 导读 家谱树——大模型的前世今生 数据——大模型的力量源泉