草庐IT

ChatGPT软件技术栈解密

NineData 2024-01-22 原文

ChatGPT 点燃了通用AI浪潮,继农业革命、工业革命、计算机技术革命后,也将可能掀起 AI 技术革命。

业界对 ChatGPT 的 AI 算法关注得比较多,但是 OpenAI 已经演变为服务数亿用户的平台服务。近3个月 ChatGPT 的 SLA 大约99%,也就是说平均每天大约有15分钟不可用,整体技术架构和可靠性也备受关注。

OpenAI 网站近90天状态图

 

OpenAI 网站近90天状态图(绿色表示可用,其它表示异常)

ChatGPT 没有对外正式分享他们的技术架构,所以很难100%准确知道架构大图,本文尝试从以下几个方面:

  • 互联网公开信息(twitter、linkedIn等)
  • OpenAI 最新招聘岗位要求
  • OpenAI 几次故障报告
  • Github 代码

绘制了 ChatGPT 的主要软件技术栈大图。

ChatGPT软件技术栈大图

 

1、云服务

OpenAI 是云时代的 AI 创业公司,所有业务都是架设在公有云上,在创业初期得到 AWS 的支持,下面这个对话是 OpenAI 截止2021年公开信息的回答:

OpenAI 使用了AWS云服务

 

OpenAI 截止2021年公开信息显示使用了AWS云服务

 

上面这段话来自 OpenAI 的官网早期文章介绍,可以看到曾使用了大量 AWS 服务。

近两年又得到微软巨额投资,并且明确了要由 Azure 提供服务。可以肯定 ChatGPT 是在转向以 Azure 为主的多云方案,AWS 服务会逐渐减少。

另外使用了 Terraform 多云管理服务来做云资源的管理。

2、数据库

 

首先问 ChatGPT 自己,基本上都没有明确的答案。不过从官网职位和故障报告可以得到比较准确的信息:

ChatGPT 的核心业务数据保存在关系型数据库 PostgreSQL 中,这个在官方网站有介绍,数亿用户的账号、AK和对话等信息都保存在这里。

2023.2.20号的故障报告也说明了主数据库 PostgreSQL 发生问题。并且提到使用了PgBouncer的连接池服务。

同时使用了 Redis 集群作为缓存服务,在2023.3.20 ChatGPT 爆出了安全漏洞,部分用户可以看到其他人的聊天记录,就是因为踩了 Redis-py 在连接取消状态下会话错乱的 bug,CEO Sam Altman 也在 twitter 出来道歉。

 另外还在招聘中希望懂 CosmosDB,这个目前还不确认用在什么场景,CosmosDB 是 Azure 推出的多模数据库,支持 MongoDB、Cassandra、PostgreSQL、Gremlin 等兼容性接口,是微软在 NoSQL 领域的旗舰产品。

之前 Patrick-McFadin (Cassandra Committer)在 LinkedIn 上提到 OpenAI 使用了 Cassandra,但最终讨论下来是 ChatGPT 自己胡说的,还不能确认是否真的使用了 Cassandra 或者是在 CosmosDB 中使用了 Cassandra 的 API。

另外CosmosDB也通过收购过来的Citus提供的分布式PostgreSQL的接口。不确认是否使用了Citus来完成分布式数据库架构。

ChatGPT 使用了 Snowflake 这个新一代的云原生数据仓库,并且使用了 Tableau 来做数据分析。支持多云部署的 Snowflake 对于业务从 AWS 到 Azure的跨云迁移是非常有利的。

3、前端

在Web前端方面,比较明确的是使用了 TypeScript 语言和 React 框架。

移动端目前 ChatGPT 还没有正式的 APP 发布,不过已经在招聘 iOS 和 Android 工程师,应该快了。

4、应用与服务编程语言

作为以 AI 为基础的科技公司,OpenAI 选择 Python 为核心语言,不管是 AI 岗位还是平台软件工程师岗位,都是需要精通 Python 语言。

平台服务选择 Python,使用了 Python 里比较流行的 Flask 框架,并使用了 OpenAPI 等组件。

5、AI 技术框架

AI 技术框架核心是 Pytorch,可能也使用了 Tensorflow。

OpenAI 自己研发了面向 GPU 的算法框架 Triton,并且在 github 上开源了(
https://github.com/openai/triton),用于代替 NVIDIA 的 CUDA,目标是能更高效的开发机器学习算法。Triton 的编程语言使用了 c++和 python。

关于更细节的 AI 训练和部署服务架构还待挖掘。下图是来自网上陈巍博士分享的一张大模型典型架构图,供参考:

来源:https://zhuanlan.zhihu.com/p/611464068

6、应用部署与监控运维

容器服务:Kubernetes

监控与运维:Prometheues(招聘运维开发工程师提到需要懂PromQL)

日志服务:Splunk

编程语言:Golang、Python

7、参考文档

1. ChatGPT软件工程师岗位描述:

https://openai.com/careers/software-engineer-chatgpt

2. OpenAI 2023.2.20 故障分析报告:

https://status.openai.com/incidents/mq5jgswy45fr

3. OpenAI开源Triton的Github地址:

https://github.com/openai/triton

4. Patrick McFadin在Linkin上讨论ChatGPT是否使用了Cassandra:

https://www.linkedin.com/posts/patrick-mcfadin-53a8046_this-isnt-your-regular-chatgpt-post-so-activity-7031372446536515584-P8fg/?utm_source=share&utm_medium=member_desktop

8、最后

本文作者:叶正盛,NineData 程序员,玖章算术CEO,原阿里云资深技术专家。

NineData 官网:www.ninedata.cloud,提供企业级数据库 SQL 开发工具,数据复制、对比、备份等产品,并提供了类似ChatGPT的SQL服务(SQL AI Copilot),免费使用,无需下载。

欢迎大家留言或者转载!

有关ChatGPT软件技术栈解密的更多相关文章

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

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

  2. 区块链之加解密算法&数字证书 - 2

    目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非

  3. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  4. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  5. ruby - Ruby 中的单 block AES 解密 - 2

    我需要尝试一些AES片段。我有一些密文c和一个keyk。密文已使用AES-CBC加密,并在前面加上IV。不存在填充,纯文本的长度是16的倍数。所以我这样做:aes=OpenSSL::Cipher::Cipher.new("AES-128-CCB")aes.decryptaes.key=kaes.iv=c[0..15]aes.update(c[16..63])+aes.final它工作得很好。现在我需要手动执行CBC模式,所以我需要单个block的“普通”AES解密。我正在尝试这个:aes=OpenSSL::Cipher::Cipher.new("AES-128-ECB")aes.dec

  6. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

  7. ruby-on-rails - 我如何比较 'Bcrypt' Gem解密的密码和加密的密码 - 2

    我正在尝试对某些帖子的评论使用简单的身份验证。用户使用即时ID和密码输入评论我使用“bcrypt”gem将密码存储在数据库中。在comments_controller.rb中像这样@comment=Comment.new(comment_params)bcrypted_pwd=BCrypt::Password.create(@comment.user_pwd)@comment.user_pwd=bcrypted_pwd当用户想要删除他们的评论时,我使用data-confirm-modalgem来确认数据在这部分,我必须解密用户输入的密码以与数据库中的加密密码进行比较我怎样才能解密密码,

  8. ruby-on-rails - 用于门户的 Ruby 技术 - 2

    我刚刚看到whitehouse.gov正在使用drupal作为CMS和门户技术。drupal的优点之一似乎是很容易添加插件,而且编程最少,即重新发明轮子最少。这实际上正是Ruby-on-Rails的DRY理念。所以:drupal的缺点是什么?Rails或其他基于Ruby的技术有哪些不符合whitehouse.org(或其他CMS门户)门户技术的资格? 最佳答案 Whatarethedrawbacksofdrupal?对于Ruby和Rails,这确实是一个相当主观的问题。Drupal是一个可靠的内容管理选项,非常适合面向社区的站点。它

  9. iNFTnews | 周杰伦18年前未发布的作品Demo,藏在了区块链技术里 - 2

    当音乐碰上区块链技术,会擦出怎样的火花?或许周杰伦已经给了我们答案。8月29日下午,B站独家首发周杰伦限定珍藏Demo独家访谈VCR,周杰伦在VCR里分享了《晴天》《青花瓷》《搁浅》《爱在西元前》四首经典歌曲Demo背后的创作故事,并首次公布18年前未发布的神秘作品《纽约地铁》的Demo。在VCR中,方文山和杰威尔音乐提及到“多亏了区块链技术,现在我们可以将这些Demos,变成独一无二具有收藏价值的艺术品,这些Demos可以在薄盒(国内数藏平台)上听到。”如何将音乐与区块链技术相结合,薄盒方面称:“薄盒作为区块链技术服务方,打破传统对于区块链技术只能作为数字收藏的理解。聚焦于区块链技术赋能,在

  10. 网站日志分析软件--让网站日志分析工作变得更简单 - 2

    网站的日志分析,是seo优化不可忽视的一门功课,但网站越大,每天产生的日志就越大,大站一天都可以产生几个G的网站日志,如果光靠肉眼去分析,那可能看到猴年马月都看不完,因此借助网站日志分析工具去分析网站日志,那将会使网站日志分析工作变得更简单。下面推荐两款网站日志分析软件。第一款:逆火网站日志分析器逆火网站日志分析器是一款功能全面的网站服务器日志分析软件。通过分析网站的日志文件,不仅能够精准的知道网站的访问量、网站的访问来源,网站的广告点击,访客的地区统计,搜索引擎关键字查询等,还能够一次性分析多个网站的日志文件,让你轻松管理网站。逆火网站日志分析器下载地址:https://pan.baidu.

随机推荐