随着互联网的快速发展,大数据、人工智能、大模型等技术的兴起,大模型时代已经到来,也让后台工程面临着新的挑战和机遇:
下面我从一名后台开发工程师的角度,浅析一下在大模型时代下,后台工程技术将面临哪些变革、挑战和机遇。
过去 20 年里,后台工程技术在应用领域,取得了非凡的进步,这里总结一下成熟且活跃的后台架构技术:
这些技术亮点的出现和发展,极大地推动了互联网后台工程技术的进步和创新,为企业提供了更高效、可靠和安全的后台服务。
与此同时,也有一些技术亮点曾经红极一时,却因为政治因素或是实际落地的伦理问题,没有得到资本的青睐和大众认可,比如:低代码和无代码开发平台、区块链技术等。
要问最近 2 年里,什么是最炙手可热的技术话题,无疑是由 ChatGPT 掀起的 LLM 产业革命(Large Language Model:大语言模型)。
大语言模型是一种基于深度学习和自然语言处理技术的语言模型,可以理解和生成自然语言文本,应用于各种领域,如对话生成、文本摘要、机器翻译、情感分析等。
用陆奇的话讲,我们当前正处于一个新范式的拐点阶段;而在 2022 年到 2023 年,“模型”知识火遍社区,其中的代表便是 OpenAI 的技术创新。
过去几年时间,我听到太多诸如“GPT 将会替代程序员”、“AI 终究替代人类”等热点话题和争论了,但从技术实践上讲,大模型其实也是后台工程架构的一次最佳实践。
我们除了思考“复杂且遥远的人类社会危机”,同时也应该脚踏实地:作为技术工程师的我们,应该如何赶上大模型应用落地的这股东风呢?
我想从云计算架构和底层技术、LLM 工程化技术,浅谈一下,在大模型时代下的后台工程化技术发展。
云计算架构是指在云环境中构建和部署应用程序的方式和方法,云计算技术架构图如下所示:
云计算架构主要包括了:云计算各个组件和服务,以及云计算组件之间的关系和交互方式;最终目标是实现高可用性、可扩展性、灵活性和安全性,说白了:像使用电一样使用 IT。
LLM 通常需要大量的计算资源和存储空间来进行训练和推理,各大厂研发的大模型落地产品(比如:百度的文心一言、阿里的通义千问、腾讯的混元 AI 等)都是通过公有云完成部署。
云原生架构可以基于基础设施自建、IaaS、PaaS 或 SaaS 来构建和运行应用程序,如下图所示:
选择不同的部署架构,会影响应用程序的灵活性、定制性和管理复杂性,对大模型也是如此。
基础设施自建是一种云原生的方式,它允许组织自己构建和管理云基础设施,如下图所示:
基础设施自建可以提供更高的灵活性和定制性,但也需要组织自己负责基础设施的运维和管理,企业自行购买服务器、搭建网络、多环境部署应用、多环境部署大模型框架等等,这也导致了成本飚高。
因此,除非是政府国企的大模型私有化部署场景,否则一般不推荐企业自建基础设施。
随着云计算商业模式越来越趋于成熟,云计算行业规模不断扩大,主流的云计算厂家所拥有的数百万台服务器的规模,**他们决定将这部分资源变现,解决中小企业在自建基础设施的成本烦恼。
而由于**客户群多样性,云计算厂商得针对不同商业场景,去提供差异化的产品服务,这也决定了云计算需要更深层次的软硬件创新。
主流厂商是基于分层理念去提供云计算服务的,分层架构如下图所示:
一般来说,公有云或者混合云厂商提供了 IaaS 和 PaaS,中小型企业负责开发垂类业务应用,并通过基于 IaaS 与 PaaS 基础设施,进行 SaaS 部署;而这种合作模式,很可能也是未来 LLM 产业链的分工合作。
云计算架构的核心是软硬件资源的虚拟化技术,如下图所示:
主要包括了硬件、软件、存储和网络四部分的虚拟化技术:
LLM 是一种基于机器学习的模型,它通过大量的文本数据进行训练,从而学习到语言的规律和模式,并能够生成具有语法和语义正确性的文本,因此 LLM 训练过程也必然涉及到机器学习中的模型构建、参数优化等技术。
由于机器学习工具链不断丰富,SDLC(Software Development Life Cycle,软件开发生命周期)也补充了针对构建 ML 系统(机器学习)的一些新原则,所以产生了 MLOps 工程学科。
一旦在 LLM 领域花了足够多的时间,AI 研究员会意识到大模型本身的两点局限:
(1)它只有“脑子”没有“手臂”,无法在外部世界行动:**不论是搜索网页、调用 API 还是查找数据库,这些能力都无法被 OpenAI 的 API 提供;
(2)甚至它的“脑子”也不完美:**OpenAI 的训练数据截止至 2021 年,并且没有任何企业和个人的私有数据,这让模型只能根据自己的“记忆”回答问题,并且经常给出与事实相悖的答案。
解决办法就是:我们不仅仅要开发一个大模型,还要通过持续集成和反复训练,将源源不断的新知识告诉大模型,让大模型变得更加聪明,这就是 MLOps 的价值所在。
MLOps(Machine Learning Operations)是面向机器学习领域,为了提高机器学习落地效率的,涉及角色包括数据科学家和软件工程师。MLOps 的任务包括了:
基于数据+模型+代码,最终 MLOps 架构图如下所示:
DevOps 与 MLOps 的出现,都是为了提升效率。
DevOps 与 MLOps 的基本理念也是相同的,包括都是尽可能的自动化;对于提升实践的关键特点、关键做法也是相同的,其中系统的思考,尽快的反馈,持续的学习和改进,被称之为 DevOps 的 3 个方法论,在 MLOps 里面同样适用。
对于 DevOps 和 MLOps 来说,他们面向的对象、过程和触发方式是不一样的。
最近有一个新概念非常火:LLMOps(LargeLanguageModelOperations),它 MLOps 在大模型领域的特殊应用,包括了在生产中管理和部署 LLM 的一组最佳实践、工具和技术。
LLMOps 架构图如下所示:
目前,我们已经可以得出两个结论:
(1)综合大模型的落地场景,最优解决方案依旧是云计算部署
举例子:大模型训练效率十分依赖 GPU 的算力。假设有一个芯片算力验证场景,需要实测比对多种芯片在仿真训练测试的场景,这会导致算力需求高峰,由平时的几十台服务器,短期内要上涨到几千台服务器,那么云原生的弹性伸缩就能很好去定制这类测试环境配置。
(2)LLM 工程化技术包括以下方面:
此外,而让 LLMOps 理论变得可行的,关键就在于两个重磅技术:LangChain 和向量数据库。
必须还得提一嘴LangChain,它是让 LLMOps 顺利实施的重要法宝。
LangChain 是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序,是一个用于构建基于大型语言模型(LLM)的应用程序的库,也是第一个被广泛接受的 LLM 应用开发框架。
它提供了一套工具、组件和接口,可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和向量数据库。
LLM 是 LangChain 的基本组件。它实际上是围绕大型语言模型的封装,可以利用特定大型语言模型的功能和能力。
LLM 是 LangChain 中的基本单元,因此可以根据特定任务来链式调用 LLM,而链式调用也可以很简单。比如,可能需要读取用户输入,然后用它构建提示信息,接着用该提示信息生成响应。
提示是任何自然语言处理应用程序的核心。即使在 ChatGPT 会话中,答案的帮助程度也取决于提示信息。为此,LangChain 提供了可以用来格式化输入和执行其他实用功能的提示模板。
LangChain 的文档加载器和工具模块方便连接到数据源和计算源。
在某些任务中,调用的顺序通常不确定,下一步很可能取决于用户输入和先前步骤的响应。
对于这种类型的应用程序,LangChain 库提供了“代理程序”,可以根据沿途的输入采取动作,而不是固定的确定性顺序。
对于 LangChain,还有很多工程化的事情可以去优化,因为 LangChain 的各个组件都可以增强:
向量数据库因为 AI 大模型而火起来,而它也一直被认为是大模型的“海马体”或者“记忆海绵”,我们也将 VectorDB 称为大模型的黄金拍档,两者的整体关系架构图如下:
目前的大模型都是预训练模型,对于训练截止日之后发生的事情一无所知,原因有二:
向量数据库可以通过存储最新信息或者企业数据有效弥补了这些不足,让大模型突破在时间和空间上的限制,加速大模型落地行业场景。同时,通过向量数据的本地存储,还能够协助解决目前企业界最担忧的大模型泄露隐私的问题。
向量数据库是一种专门用于存储、 管理、查询、检索向量的数据库,简单理解就是在 AI 的世界中,处理的所有数据都是向量的形式。
比如,一只柯基就可以通过一个简单的三维向量去表示(毛发,鼻长,体积),最终在三维坐标下最终转化为毛发-短,鼻长-长,性格-小。
这种用向量将事物转为向量坐标的过程,就叫量化
向量数据库背后涉及众多的底层技术,向量数据库结构如下图所示:
其中主要包括:
向量索引是向量数据库的核心技术之一,它通过构建高效的索引结构来实现快速的向量检索。常见的向量索引包括 FLAT、HNSW、IVF 等。
向量相似度计算是向量数据库的另一个核心技术,它用于度量向量之间的相似度。常见的向量相似度计算方法包括余弦相似度、欧几里得距离等。
利用 Embedding 技术将高维度的数据(例如文字、图片、 音频)映射到低维度空间,即把图片、音频和文字转化为向量来表示,将这些向量存储起来就构成向量数据库。
下面举 3 个例子说明落地 LLM 的场景案例,供大家参考:
(1)问答知识库老旧的问题
向量数据库可以用于存储和管理大规模的文本向量数据,原始的长文本内容可以通过文本分割转换成文本段,再由 Embedding 模型生成对应的向量并存储在向量数据库中,从而构建起外部知识库。
(2)政府国企私有化部署大模型的场景
(3)降本增效场景
向量数据库还可以使用一些特殊的算法和数据结构,例如向量索引和相似度计算等,来提高 LLM 的查询精度和效率。
ChatGPT 在执行过程中,产生很多任务和状态数据,每个任务都会去思考。如果把思考的过程记下来,那是否能省很多钱了?
陆奇老师发表过演讲:大模型带来的新范式,就提到过新范式产业正在高速形成,新范式技术堆栈见下图:
这次新范式的产业扩散,开发者堆栈技术发展和开发者生态的形成,是至关重要的,历史上的生态发展一直是“得开发者得天下”。开发者工具、界面、开发者生态,永远是“兵家必争之地”。而未来随着 LLMOps 行业的发展,产业将划分为两部分:模型开发与应用开发。
模型开发有以下特点:
目前,大语言模型的用户,绝大部分都集中在云侧,而未来,每个用户都可能拥有自己的一个大模型,这个想法会让大模型在云边缘和端侧,都有机会出现新的商机和使用场景:
随着人工智能技术的不断发展,大语言模型在各个领域的应用越来越广泛,同时也引发了广泛的技术和社会问题。
知识产权冲突、社会伦理争议、个人隐私安全等问题;
非法网络数据爬虫更加有恃无恐,也引发了技术领域的思考:
如果往深处去思考,当程序员利用 Copilot(GitHub 和 OpenAI 合作开发的 AI 代码补全工具)进行 AI 编程时,大模型工具产生的代码片段最终被商业软件所应用,如果跟代码开源协议产生了冲突,这个锅究竟是工具背呢,还是开发者背,抑或是商业软件公司担责?
根据我国在 2023 年 07 月 13 日发布《生成式人工智能服务管理暂行办法》第四条规定:绿色、高效和安全成为大模型新的核心要素。
这意味着企业在开发和应用大模型时,需要注重以下方面:
以上是我从后台开发工程师,结合后台技术架构,对大模型技术栈的一点理解,另外也说说自己一些心得:
大模型时代下,后台部署落地面临的挑战,并且围绕3个热点话题展开讨论:MLOps、大模型开源框架LangChain 和向量数据库。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。