基于数据的人工智能需要多少台计算机?
——一个程序员的视角
(水木首发)
标注计算机。基于数据的人工智能,模型效果与可以使用的数据息息相关。有的学者指出,若干年内互联网上的语料可能就要用完了。另外一个问题则是许多问题只能来源于“专业通行解释”,这些垂直的语料内容要么来自仿真生成,要么来自标注,如此等等。当前,数据标注的信息,公众的知情权似乎还没得到贯彻,且很多时候论文、项目的评价,片面依赖“开源数据集”,这实际上并不是真正的开放、真实。数据标注未能严格进入实践视域,实际上数据标注并不是随着神经网络兴起的,如视频审查、机械性能优化,都已经使用数据标注技术多年。数据标注实际上是现实跨入虚拟的重要路径。复杂的数据标注可以通过标注软件来开展,使得标注工程师可以更有效能。数据标注的结果可以以json,xml甚至txt等格式展现。数据标注软件安装在标注计算机上。
训练计算机。基于数据的人工智能,不妨说就是神经网络,最终产出为一个大型的数据文件——模型参数文件。训练计算机具有充足的算力,可以以标注好的数据为输入,通过训练框架、训练工具、训练程序、训练脚本等手段,执行机器学习软件过程。这个过程并不是直接就让机器学会,因为现代的计算机通常操作系统和应用程序分离,模型参数文件的使用可以由单独的应用程序来启动,实时地加载,所以同一台计算机可以使用不同的模型。机器学习使用标注好的数据,输入到模型架构。模型架构本身不是单个计算机进程示例,但许多模型架构已经规定了模型的输出机理。从最优化的观点来看,训练的过程实际上是寻找最优参数集合,而使得模型的输出具有最好的效果的过程,当前这最著名的即是基于反向传播算法,即根据输出的结果的优劣反推神经网络的各个层,从而调整神经网络的参数。训练技术的关键是寻找最优参数集合,并将这些参数集合固定下来,通常地,这其中还包括了自动化的程序,因为基于神经网络、反向传播、梯度下降等等,这些是有一般的程序的。更新的技术则是寻找参数的方法有所不同,这可能更有技术性(不代表结果必然更优)。训练与模型的架构的联系是很紧密的,因为架构决定了训练过程中的具体的参数的形态;另一方面,也可以认为他们是无关的,因为这种联系一定程度上是静态的。训练的过程可能还有拓展和和变更。训练需要的技术栈、工具链、理论,安装在训练计算机上,而且有开源的产品。通过训练计算机,输入标注好的数据,输出模型参数文件和配套件。
推理计算机。推理计算机是真正运行“模型参数”的地方。模型参数文件一定程度上是神经网络的“密码子”,而推理程序将“用户输入”,基于“密码子”,得到“输出”。不同的模型架构,推理程序可能不同,但也大多与模型架构密切相关。推理程序需要真正被运行,他是一个操作系统的进程或线程。推理程序可能也具有文件形态的形式,但必须被加载。推理计算机一定程度上已经不知道模型参数文件上如何产生的,他只是根据这“密码子”,根据用户输入,得出输出。推理程序是自动化的脚本或程序。他可以理解用户的输出,他根据训练计算机产生的参数文件,和其他的一些可能的设置,产生输出,也有开源的产品。推理程序安装在推理计算机上,而且必须已经被运行。否则,推理计算机不能做出推理,无法响应。
网关计算机。网关计算机是请求的中转站。用户的输入经过网关计算机,然后传递给推理计算机。推理计算机的输出,也经由网关计算机,传递给用户。这里的网络不一定是tcp或ip,但网关计算机需要具备和推理计算机交互的通道。推理计算机不必然和用户保持直接连接,但网关计算机必须能和用户连接,能和推理计算机交互。在实务中,这些交互可以通过简单的socket通信,rpc通信,分布式技术,或者别的什么方式来建立。网关计算机必须安装可以接收用户请求、转发处理推理计算机的结果、返回输出结果给用户的软件,这些软件也有开源的,或者可以人工编写,Python脚本,Java服务器程序,如此等等。网关计算机一旦崩溃,用户即感觉到服务不可用,虽然推力计算机可能还在正常工作,但用户已经感觉不到数据上的交互。
客户端计算机。或称用户计算机。使用者,通过操作用户计算机,进一步地,使用用户计算机的程序,和网关计算机交互,从而使用模型的推理和对话能力。用户可能是一个运行着的脚本,一个自动化程序,这个程序也必须在计算机上已经加载。浏览器是常用的客户端,但更准确地来说,浏览器可以加载、运行很多不同的网页,这些网页通常是由网关计算机发出的,虽然他们在用户的设备上运行。另一类常见的客户端程序例如手机APP,厂商将相关功能完成了开发,打包为应用程序,使用者安装即可使用。不同的使用者,使用的是可能只是同一个版本的程序,但这些程序体现为运行在不同的设备上的进程、线程。
标注计算机、训练计算机、推理计算机、网关计算机、客户端计算机,这是一个完整的服务体系。在实务中,可能同一台计算机承担多个角色,例如推理计算机和网关计算机可能是同一台,因为推理程序和网关程序已经深度耦合,也没有切分的必要性,又例如网关计算机和用户计算机可能也是同一台计算机,因为这只是单机上客户端程序与服务器程序交互,如此等等。另一方面,通过分布式技术,一台计算机的角色可能需要一个甚至多个机群去承担,因为单台计算机的算力有限,更多的计算机可以提高同时服务更多用户的能力(假如需求量无限大),即使每台计算机都已经装备最好的推理显卡。
总的来说,基于数据的人工智能需要多少台计算机?这个答案可能是很多台,几台,或者只需要一台。一定程度上,核心的还是算法、方法、软件、解决方案、服务,等等,但场景、算力甚至用户,无疑还是重要的资源。
※ 修改:·darkk 于 Nov 28 09:43:14 2025 修改本文·[FROM: 223.104.195.*]
※ 来源:·水木社区
http://www.mysmth.net·[FROM: 223.104.195.*]
修改:darkk FROM 223.104.195.*
FROM 223.104.195.*