ChatGPT软件技术栈解密

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: ChatGPT 点燃了通用AI浪潮,继农业革命、工业革命、计算机技术革命后,也将可能掀起 AI 技术革命。业界对 ChatGPT 的 AI 算法关注得比较多,但是 OpenAI 已经演变为服务数亿用户的平台服务。近3个月 ChatGPT 的 SLA 大约99%,也就是说平均每天大约有15分钟不可用,整体技术架构和可靠性也备受关注。ChatGPT 没有对外正式分享他们的技术架构,所以很难100%准确知道架构大图,本文尝试从以下:互联网公开信息(twitter、linkedIn等)、OpenAI 最新招聘岗位要求、OpenAI 几次故障报告、Github 代码、绘制了 ChatGPT 的技术架构。

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

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

OpenAI 网站近90天状态图.png

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

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

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

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

ChatGPT软件技术栈大图.png

1、云服务

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

OpenAI 使用了AWS云服务.png

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

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

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

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

2、数据库

ChatGPT 的核心业务数据保存在关系型数据库 PostgreSQL 中.png

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

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

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

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

Redis-py 在连接取消状态下会话错乱的 bug,CEO Sam Altman 也在 twitter 出来道歉。.png

另外还在招聘中希望懂 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 训练和部署服务架构还待挖掘。下图是来自网上陈巍博士分享的一张大模型典型架构图,供参考:

AI 训练和部署服务架构还待挖掘。下图是来自网上陈巍博士分享的一张大模型典型架构图.png

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

6、应用部署与监控运维

容器服务:Kubernetes

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

日志服务: Splunk

编程语言: Golang、Python

7、参考文档

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

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

  1. OpenAI 2023.2.20 故障分析报告:

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

  1. OpenAI开源Triton的Github地址:

https://github.com/openai/triton

  1. 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),免费使用,无需下载。

欢迎大家留言或者转载!

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
ChatGPT体验,能为后端开发做什么?
ChatGPT体验,能为后端开发做什么?
264 0
Apipost超高效的生产力工具(入门学习)
📝本篇分享Apipost,推荐给初学者,希望更多的人可以使用这个生产力工具,高效工作,快乐生活!
366 0
Apipost超高效的生产力工具(入门学习)
编写高效技术文档的艺术:C++项目实践指南
编写高效技术文档的艺术:C++项目实践指南
200 0
ChatGPT初学者最佳实践
2022年11月底,ChatGPT引爆了新一轮AI的革命,也让人们意识到AI真的能够大幅度提高人们的工作效率,甚至有人担心自己的工作会因为AI不保。这种居安思危的意识是正确的,但是正如锛凿斧锯的出现,并没有让木匠这个行业消失,而是让这个行业以更高效的方式工作。所以作为一种工具,我们应当对ChatGPT有一个正确认知,我们不要把自己定位成ChatGPT,而是要站在更为宏观的角度上,将自己定位成利用工具的人,才不会出现被AI淘汰的局面。 那么如何才能更好的利用chatGPT呢?为什么同时利用这种工具,有的人效率高,有的人却感觉没什么用呢?秘密就在如何写好提示词上,本文通过一些最佳实践,帮助大家更
211 0
ChatGPT 与软件架构 (2) - 基于 Obsidian 和 GPT 实现解决方案架构自动化
ChatGPT 与软件架构 (2) - 基于 Obsidian 和 GPT 实现解决方案架构自动化
240 0
|
10月前
|
前端小白如何开发新项目(速成版)
前端小白如何开发新项目(速成版)
130 0
还不懂如何与chatGPT高效交流?保姆级且全面的chatGPT提示词工程教程来啦!(二)进阶篇
这篇文章是chatGPT提示词工程的进阶教程,涵盖了加入鼓励词/行为词、拆分复杂需求、纠正反馈、使用英语提问、角色扮演、限定回答格式、多符咒结合以及参考其他人的提示词和使用提示词插件等技巧。
还不懂如何与chatGPT高效交流?保姆级且全面的chatGPT提示词工程教程来啦!(二)进阶篇
实现定制化 AutoGPT 实战
在前期学习基础上,本文指导如何运用AutoGPT完成如生成文件及查询信息并输出到文件等ChatGPT难以实现的任务。首先确保拥有稳定网络、已配置好的AutoGPT环境及可用token。
深入探索软件测试自动化:框架与实践
在快速演进的软件行业中,测试自动化已成为确保产品质量和加快上市速度的关键因素。本文将深入分析测试自动化框架的构建要点,探讨其在实际应用中的效益,以及实施过程中可能面临的挑战。通过对比手动测试与自动化测试的优势与局限,本文旨在为读者提供一套系统化的测试自动化实践指南,以支持更高效、可靠的软件开发周期。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等