ChatGPT软件技术栈解密

Posted NineData

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ChatGPT软件技术栈解密相关的知识,希望对你有一定的参考价值。

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 发布,不过已经在招聘 iosandroid 工程师,应该快了。

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大解密:带您探讨机器学习背后的秘密利用与发展

这篇文章,将带着各位认识机器学习,以及带着各位解密 ChatGPT 的背后究竟是以什么原理运作、能够有什么利用的方式或用途。 此外,也会带各位认识ChatGPT与其他相关技术的区别、未来的影响,甚至可能会面临的机遇与挑战。

一、什么是机器学习?

机器学习是一种基于数据的人工智能技术,通过对大量数据进行分析和学习,让计算机能够自动进行决策或预测。 机器学习的基本思想是从过去的经验中学习,通过对大量样本的分析,从中发现规律和模式,并且将这些知识应用于未来的预测和决策中。

机器学习技术可以分为监督式学习、非监督式学习和强化学习。 在监督式学习中,算法通过对已知的数据进行标记,从而学习出一个可以对未知数据进行预测的模型。 在非监督式学习中,算法通过对数据进行分类、聚类等操作,从而发现数据中的隐藏结构和模式。 在强化学习中,算法通过与环境的交互,从环境中学习如何选择最优的行动,以实现某个目标。

机器学习技术已经广泛应用于许多领域,如图像识别、语音识别、自然语言处理、推荐系统、金融风险控制等。 随着数据量的不断增加和计算能力的提升,机器学习技术的应用前景仍然十分广阔。

二、ChatGPT 的运作原理

ChatGPT是一个基于机器学习技术的自然语言处理模型,它的运作原理是通过大量的文本数据训练出一个深度神经网络模型,从而实现自然语言的生成和理解。 具体来说,当用户输入一段文本时,ChatGPT会通过自然语言处理算法将其转化为数据形式,然后通过模型进行计算和学习,最终生成相应的回答。

其运作原理主要包括下列几个方面:

  1. 预训练
    ChatGPT 是一个预训练的模型,它的核心是使用海量的文本数据进行无监督的预训练。 这些文本数据包含了各种不同主题和形式的语言,例如维基百科、网页文本、小说等。 透过这些数据的学习,可以让 ChatGPT 学习到自然语言的结构和规则,从而提高对语言的理解和生成能力。

  2. 转移学习
    ChatGPT 使用转移学习的方法,将预训练模型转移到不同的任务中,从而进一步提高其在特定任务上的表现。 例如,当需要进行问答任务时, ChatGPT 可以通过微调预训练模型,让其更好地理解问题和生成答案。

  3. Transformer 模型
    ChatGPT 的核心是 Transformer 模型,它是一种基于自注意力机制的深度学习模型,可以对长文本进行高效的处理和理解。 Transformer 模型主要包含了 Encoder 和 Decoder 两部分,Encoder 用于将输入文本转化为特征矢量, Decoder 用于从特征矢量中生成输出文本。

  4. Beam Search 算法
    ChatGPT 在生成文本時使用了 Beam Search 算法,該算法可以生成多個候選答案,從中選擇概率最高的答案。透過 Beam Search 算法, ChatGPT 可以生成更加流暢、自然的文本,提高了其生成文本的質量。

三、ChatGPT 生活利用

ChatGPT 的应用非常广泛,可以用于自然语言处理、翻译、问答、智能客服等领域。 例如,在智能客服领域中,ChatGPT可以通过对话模拟和分析,帮助企业更好地了解用户需求,提供更好的产品和服务。

1、自然语言处理

自然语言处理是指计算机通过对人类语言的理解和生成,实现自动处理和分析文本的技术。 ChatGPT 作为一个自然语言处理技术,可以理解和生成自然语言,并通过对语言的结构和含义进行分析,提高文本处理和分析的准确度。

2、翻译

在翻译方面,ChatGPT可以通过分析不同语言之间的语言结构和表达方式,将一种语言翻译成另一种语言,提高翻译质量和准确度。

3、自动回复

而在自动回复方面, ChatGPT 可以自动产生回答,提高问答系统的效率和准确度。

四、ChatGPT vs 其他相关技术

与其他类似技术相比, ChatGPT 的区别在于它是一个基于深度学习的模型,通过大量的文本数据训练出来,具有更好的自主学习能力和适应能力。 ChatGPT在自然语言生成方面表现出色,可以生成具有情感和人性化的回答,进一步提高了用户体验。

并且,ChatGPT针对有害内容(例如性、宗教、政治、种族等)议题,都做到了良好的过滤机制,这点是许多其他 AI 模型无法达到的。

五、ChatGPT 的未来

1、未来发展

ChatGPT的出现将对未来产生重要的影响。 上文亦提到它可以应用于多个领域,进一步提高了机器学习技术的应用价值和广泛性。 ChatGPT 的出现也意味着未来人类和机器之间的交互将更加自然和流畅,将改变人们的生活方式和工作方式。

2、职业取代

AI 的发展,让一个议题渐渐浮出台面,那就是「某种职业是否会被 AI 取代?」 ,这边和各位介绍几种在 ChatGPT 的发展下,最有可能被 AI 取代的职业:

3、客服人员

ChatGPT 可以替代人工客服,自动回答客户的问题。 尤其是对于一些重复性高、标准答案明确的问题,ChatGPT的效率和精确度都远高于人工客服。

4、翻译人员

ChatGPT 可以实现自然语言翻译,未来可能会取代一些翻译人员的工作。 尤其是对于一些日常性、常规性的翻译工作, ChatGPT 的效率和精确度也远高于人工翻译。

5、语言学家

ChatGPT 可以通过学习大量的语言数据,自动理解和生成自然语言,未来可能会在某些程度上取代一些语言学家的工作。
随着 ChatGPT 技术的不断发展和完善,它将可能取代一些需要进行自然语言处理的职业,但反面来说,同时也将创造出更多的职业机会和发展空间。

6、机遇与挑战

机器学习技术的发展为人们带来了许多机遇,例如可以通过自动化减少重复性工作、提高工作效率等。 同时,这些技术也带来了挑战,例如用户数据的隐私保护、人工智能监管等问题需要得到重视和解决。

ChatGPT 曾经传出为了让语言模型能够更明确的辨识敏感内容,聘用低薪员工来进行人工判读、训练,这导致了伦理相关的争议。 后续若是ChatGPT或有其他语言模型的发展,都应该慎重考虑这一点的问题。

六、结语

这篇文章和各位介绍了机器学习、 ChatGPT 的原理,以及对于现在和未来的相关内容介绍。 笔者在ChatGPT推出前,也甚少接触甚至探讨人工智能的领域,写这篇文章时,也常常遇到不理解的内容,查阅了不少资料才写出这篇文章。

期望这篇文章能够让大家更加认识机器学习、 ChatGPT 的技术与未来,感谢您的阅读!

以上是关于ChatGPT软件技术栈解密的主要内容,如果未能解决你的问题,请参考以下文章

ChatGPT大解密:带您探讨机器学习背后的秘密利用与发展

解开ChatGPT邪恶的封印,手把手解密这个ChatGPT顶级玩法

中国版ChatGPT高潮即将到来,解密ChatGPT底层网络架构

微信小程序 | 基于ChatGPT实现电影推荐小程序

让最近爆火的ChatGPT来谈谈,作为一个技术人该如何写好一篇技术博文

让最近爆火的ChatGPT来谈谈,作为一个技术人该如何写好一篇技术博文