一、为什么今天大家所期待的和当时 APP Store 出现时那样,AIGC 应用的蓬勃发展并没有出现?本质是 AI 的拐点还没有到。
第一个原因是大模型的理论研究还不够透彻,深度学习网络仍是一个黑盒。大家只是信仰 Scaling Law 会实现 AGI,不过这并不影响应用场景的落地。举个例子,历史上我们在没有研究透火的原理之前,其实已经用火来推动了人类的发展历程了。大模型发展至今,已经在代码工程、客服、信息搜索、设计等领域落地了大量生产场景。
第二个原因是算力限制和投入产出的考量。我不知道今天在场的多少家公司买了 GPU,在大模型上投入了多少费用,但是产出是否能带来足够的经济效益。好消息是各个云厂商大幅降低了大模型的训练和推理成本,很多公司的 ROI 就立马转正了。另外,AI Infra 在资源利用率、研发效率、业务稳定性上的成熟度远不如云原生的这套基础设施,也缺少开源、商业产品等带来的最佳实践。例如用 GPU 每次调用做一次搜索区间的成本更高,这些都对拐点的到来会产生影响。
第三个原因是合规性、价值观对齐、算法偏见和公平性等的约束。没有这些约束,大模型就会衍生出大量的社会问题、道德问题等。我们和做大模型落地的企业聊,好奇为什么你们在 AI 上落地了这么多场景,为啥外边看不到呢?原因就是要保证合规,放慢了应用上线的节奏。
二、大模型的四大技术驱动力,使得AI重塑软件成为可见的未来
驱动力1:万物皆可Embedding,泛化万物的通用机器智能表示
Embedding解决了文字、图片、声音、视频转化为一个可计算的token的问题,使得纯文本NLP快速演进到多模态大模型,对整个大模型和AI技术浪潮产生根本性的影响。
驱动力2:Transformer架构催生Scaling Law,统一了模型架构
过去经典模型没有通用性能力,解决的都是个性化问题,Transformer架构目前被证明是最有效的大模型架构,模型参数规模、数据规模、训练计算量的规模都会显著提升大模型的智力能力,它的演进是有确定性方向的。
驱动力3:从智能摩尔定律到场景摩尔定律,大模型成为通用生产力引擎
算力的演进,模型智力能力和模型场景泛化能力的演进,都符合摩尔定律,甚至在一定程度上,演进的速度超过了摩尔定律;就模型而言,解决的问题和适用的场景,随着时间就会自然获得,不需要在编程或者算法设计上做太多的处理。
驱动力4:LLM OS抽象了通用AI计算架构,使AI原生应用成为可能
LLM OS是以大模型为核心处理单元所构造的一种理论计算架构,业界基于此做了通用实现,证明了它有解决通用问题的能力。
三、云原生在人工智能领域的应用
云原生技术在人工智能领域得到了广泛应用,主要体现在以下几个方面:
数据处理:云原生技术可以实现大规模、高效的数据处理和存储,为人工智能技术提供了丰富的数据资源。
计算资源分配:云原生技术可以根据应用程序的需求动态地分配计算资源,实现应用程序的高效运行。
应用程序部署和管理:云原生技术可以实现应用程序的容器化和微服务架构,便于部署和管理。
四、AI与云原生的结合优势
随着科技的不断发展,AI与云原生的结合已经成为了一种趋势。这种结合具有多方面的优势,下面我们将详细介绍。
AI与云原生的结合能够满足大规模计算需求。AI训练和推理过程需要大量的计算资源,而云原生具有弹性伸缩的能力,可以根据需求自动增减计算资源。这使得AI模型能够在短时间内处理大量数据,提高模型的性能和准确性。
AI与云原生的结合能够实现AI模型的快速部署和更新。云原生架构中的容器化技术使得AI模型可以快速打包和部署,同时可以实现模型的快速更新和升级。这大大缩短了AI模型的部署和更新周期,提高了开发效率。
此外,AI与云原生的结合还提供了丰富的开发工具和服务。云原生平台提供了各种开发工具、框架和库,方便开发者构建和优化AI模型。这些工具和服务可以帮助开发者快速开发出高质量的AI模型,提高开发效率和质量。
AI与云原生的结合还具有高可用性和安全性。云原生平台具有高可用性和弹性伸缩的能力,可以保证AI模型的高可用性。同时,云原生平台还提供了安全机制,可以保护AI模型和数据的安全性。
五、kube-controller-manager 代码走读之 command
这里主要分析上面提到的 app.NewControllerManagerCommand() 这个函数和相关执行过程。这个函数是在 app 这个目录下的 controllermanager.go 这个文件中。
NewControllerManagerCommand 函数返回的是一个 cobra.Command 类型指针,里面主要的就是看 Run 这个方法,其它都是配置参数加载,解析,help 函数和使用函数注册。这个 Run 方法在后面执行 command.Execute() 的时候执行。Run 方法里面执行的还是一个 Run 函数,这个函数是在这个文件中定义的,这个函数也是 controller-manager 的主要函数,所有功能从此走起。
这个函数中首先做的是在多个 controller-manager 中进行选主,在 k8s 的所有组件中据说是除了 api-server 没有高可用外,其它的组件都利用 etcd 进行高可用了。所以 controller-manager 启动后首先也是进行选主,只有主服务才进行服务,其它状态的服务处在等待状态,等待争取主状态。选主之后主服务会启用正式的服务,代码如下,还是在 Run 函数中,Run 函数的最后代码就是这块了。