作者简介:黄玉栋,北邮博士,研究方向时敏确定性网络与网络智能
当前,生成式人工智能被认为是21世纪最重要的技术突破之一,其为人类社会带来了工作范式的转变,极大地提高了人类生产力。比如,2022年12月ChatGPT横空出世,以火箭般的流行速度短短五天吸引了超过100万用户,两个月后月活用户达到1亿,其为代表的对话系统达到接近人类水平,不仅能帮助人类完成写邮件、写代码、撰写报告、生成图像、生成视频等工作,甚至在AlphaCode程序设计竞赛中击败了45.7%的程序员,通用人工智能被认为有望重塑或取代当前80%的人类工作。
2023年1月,生物界首次实现从零合成全新蛋白,2023年2月,Meta开源LlaMA模型,2023年3月,谷歌打造出PaLM-E具身智能机器人,此外,生成式人工智能已被全面用于分子结构预测、芯片设计、蛋白质生成、通信信道预测等生物、医疗、材料、机器人、信息科学领域。
那么,生成式人工智能可否用于网络领域?有哪些场景和关键技术?跟以前的智能有什么区别?前沿进展如何?怎么实现?这是大家关心和热议的话题。本文作为科普入门资料,将以通俗易懂的方式,以基于Transformer架构的大模型技术为主线,分析“网络大模型”的核心原理、关键技术、场景应用和发展趋势。
什么是网络大模型技术?
本文将适配网络领域的大模型技术称为“网络大模型“技术,即“Large Foundation Models for Networking”。其中,基础模型有很多种,比如Transformer,Diffusion Models, GAN,以及它们的衍生改进版本,不同基础模型服务于不同的模态(即输入数据)和任务场景。纵然模型千变万化,其本质却始终如一。本文将网络大模型的主要能力分为两种,第一种是基于世界知识的“预测”能力,第二种是泛化的序列“决策”能力。接下来首先介绍第一种能力。
基于世界知识的预测能力
什么是预测?
回顾一个经典的例子,给你三组数据,第一组x=1,y=1.05,第二组x=2,y=4.17, 第三组x=4,y=15.99,请猜一下x=3时,y应该等于多少。
人们通过分析,可以得出数据满足y=x*x的规律,因此x=3时,y大约等于9。这就是一个最简单的预测的过程,可以被描述为y=F(x),其中F是一个函数。但真实问题中很多输入输出关系是非线性的复杂映射,需要用海量数据来拟合,因此有了神经网络的概念,并用一个损失函数来最小化预测的误差。
比如例子中实际采集的数据是x=3时,y=9.01,那么输出9就存在一定的误差。一个神经网络模型包含输入层、隐藏层和输出层,训练的过程就是不断的输入x=3,让模型调整隐藏层计算权重去猜y=9.8,y=9.5,直到猜到了y=9,就认为模型学会了映射关系,训练停止。然后推理的过程就是输入x=3,模型直接输出y=9。
总结一下,本质上模型是用来预测输入数据和输出数据之间的非线性关系的,包括训练和推理两个步骤,有效数据量越多,模型的预测精度通常越高。其次,模型并不能脱离数据集“凭空产生结果”,要先在训练过程中通过已知的输入-输出对来学习,即监督学习。
此外,模型学习的是产生结果的概率,而非结果本身。虽然在示例中输入和输出只是简单的数字,但在实际应用中,输入输出可能是文本、图像、拓扑、视频等。针对不同的输入数据结构和特征,神经网络模型被不断改进,例如,用于图像处理的卷积神经网络(CNN)和用于处理拓扑的图神经网络(GNN)等,在此按下不表。
Transformer的基本原理
Transformer是一种在2017年被提出的广泛用于自然语言处理的神经网络结构,即用来预测词与词之间的映射关系。举个问答的例子,如下图所示,输入问题是“五月一日是什么节日?”我们希望输出回答是“五月一日是劳动节”。
那怎么让计算机理解语言和文字?首先,需要将每个词作为一个最小处理单元,即token,然后把这些token转换为向量,即embeddings。比如假设“月”字用向量[1,0,0,0]表示,“日”字用向量[0,1,0,0]表示。有了向量以后就可以进行矩阵运算,就可以被计算机所“理解”了。然后,Transformer里提出了一个attention注意力机制,用来计算一个输入文本序列中每个词与其他词的相关性,并通过位置编码来表明序列中词的位置信息,也就是先看一下前面几个词是“五月一日是”,然后开始猜下一个词概率最大可能是“劳”,再下一个词是“动”,再下一个词是“节”。
Transformer的结构优势在于具有特别好的可扩展性,比如以前的自然语言处理模型很难捕捉长距离依赖,也就是句子长了就丢失了上下文关系信息,再比如attention能够并行计算,大大提高了训练的速度。
此外,以前是每个任务都需要单独训练一个模型,而Transformer架构非常通用,能很好地适应机器翻译、文本生成、问答系统等各种任务,这使得模型可以轻松地扩展到更大规模,并实现“one model for all”的效果。
基于世界知识的“大”模型
如果故事到这里结束,Transformer仅仅只会停留在自然语言处理领域。然而接下来,OpenAI大力出奇迹,开启了大模型新纪元。试想一下,如果把所有已知的词都作为token,那世界知识能否被编码成能被计算机“理解”的词典?神经网络模型能否诞生出类似人脑的理解能力甚至超越人类的智能?2018年OpenAI发布了首个GPT(Generative Pre-trained Transformer)模型,并提出了无监督预训练+有监督微调的训练方法。
最开始GPT-1具有1.17亿个模型参数,预训练数据量约为5GB,到2020年,GPT-3的模型参数量达到了惊人的1750亿,预训练数据量增长到了45TB。在“大”模型背后,Scaling Law缩放法则指出,通过在更多数据上训练更大的模型,模型性能将不断提升。且模型达到一定的临界规模后,表现出了一些开发者最开始未能预测的、更复杂的能力特性,即“涌现”的能力。另外,GPT背后还有大量的工程考虑,比如基于任务的模型微调、提示词工程、人类意图对齐等等。
网络大模型
网络大模型的主要应用
现今,开源和闭源的基础大模型已经触手可及,将大模型适配网络应用的研究更是如火如荼。接下来,本文将从网络领域已有数据的角度把大模型应用分为六类,并简要分析前沿研究进展。
网络知识问答: 网络知识也属于世界知识,网络知识题库是很好的已有的高质量任务数据集,因此,一个直白的做法是,用多选题等方法对各种基础模型进行测评,查看其是否掌握、掌握了多少的网络领域知识,以及探讨如何通过微调、提示词等方法释放基础模型在网络领域的能力。
比如文献 ^[1]^ 中构建了包含一万条问答题的TeleQnA数据集来评估大语言模型对电信领域知识的掌握程度,文献 ^[2]^ 中,包含5732个多选题的NetEval数据集被用来评估比较了26种开源的大语言模型。此外,问答的能力还可被广泛用于运营商智能客服、以及网络从业人员的教育培训。
网络代码生成: 另一个直白的做法是用大模型来生成网络领域的工程代码,比如Python脚本以及linux命令行。此外,通过调用各种代码库,还能直接生成用于网络拓扑、网络算法等的基础代码。图是网络中十分标准的结构化数据,文献 ^[3]^ 中提出用大语言模型生成的代码分析和管理网络拓扑图,比如添加链路或者节点地址分类。文献 ^[4]^ 还提出了利用大语言模型来复现网络研究论文的代码的想法,并在小规模的实验中证明了可行性。
网络协议分析: 网络协议是网络设备研发和网络系统运行的基础,面对海量的错综复杂的RFC文档,亟需自动化的协议理解能力。然而,不同于普通的文本,协议中包含了规则、状态、通信流、数据流图、消息结构等协议实体,给模型推理的准确度带来很大的挑战。文献 ^[5]^ 利用zero-shot和few-shot等方法评估了GPT-3.5-turbo从RFC文档中提取有限状态机的能力。
此外,当前的协议设计流程极其缓慢,且涉及复杂的交互过程和配置参数,比如MAC协议,必须针对具体目的和场景进行定制,例如提高吞吐量、降低功耗、保证公平性等。特别是在异构网络部署场景下,每个无线接入网,例如5G-NR、Wi-Fi、蓝牙、Zigbee,甚至卫星接入网,都有自己的协议和属性,例如考虑容量、延迟、覆盖程度、安全性、功耗和成本等属性。考虑到未来网络更加复杂和多样化的设置,每个设备上也许能部署一个网络协议大模型,通过自适应环境来自动生成合适的协议,并将人类从繁重的协议设计工作中解放出来。
网络配置生成: 网络中有大量异构设备,例如交换机、路由器和中间件。由于厂商和设备型号各有不同,需要大量专业人员来学习设备手册和用户手册、收集合适的命令、验证配置模板、以及将模板参数映射到控制器数据库。在此过程中,即使是单个ACL配置错误也可能导致网络中断。
考虑到不断增长的异构云网络以及大量需要管理的计算和存储设备,统一的自然语言配置界面对于简化配置过程和实现自配置网络至关重要。异构的网络配置数据包括低级别的ACL规则、CLI命令行,以及封装的YANG Model、XML、JSON等数据格式规范,文献 ^[6]^ 中基于BERT模型实现了异构厂商设备的自动化管理,即直接从各类设备手册中学习并生成统一的网络配置数据模型。
网络流量生成: 网络流量集对于网络仿真、网络测量、攻击探测、异常流量检测、逆向协议解析等任务至关重要,然而常常真实的流量因为隐私问题无法获得,而手动构造的流量集(比如泊松分布)又在保真度和多样化方面有很大的欠缺。生成式AI具有很好的“泛化”能力,即能够学到已有数据分布并生成相似分布的数据,可以被用来生成具有不同特征(比如特定IP地址段、端口分布、不同协议类型、包大小分布、到达间隔、持续时间、流分布)的网络流量集,文献 ^[7],[8],[9]^ 分别基于Transformer,GAN,和Diffusion Models架构实现了上述目标。
网络诊断报告: 故障排查对于网络运营商来说是一项繁琐而繁重的工作。特别是在大规模广域网络中,需要跨地域的不同部门之间的协调,而网络用户仍会遭受突然的网络故障或性能下降,并面临数亿美元的经济损失。通过将大语言模型集成到网络诊断系统中,大语言模型能够根据网络状态信息生成故障报告,加速故障定位,并根据报告分析和历史运行数据给出合理的处理建议。
虽然网络系统中有大量的Log日志、操作记录和告警报错信息,但这些非结构化的数据很难被直接用于训练。最近,文献 ^[10]^ 设计了从用户到工作流(workflow)到数据的对话式网络诊断系统,能够将用户意图映射到工作模板,并从网络底层获取网络状态信息来填充模板作为诊断反馈答案。此外,产业界中也有比如Juniper提出了Marvis虚拟网络助手 ^[11]^ 来实现网络自动化运维管理。
网络大模型的关键技术
实现以上应用并非易事,从相关文献可以看到,由于网络领域存在区别于纯文本的规则、公式、协议、约束、数学、符号,直接使用基础模型效果往往差强人意,需要很多额外的工程工作。
首先,部分网络领域知识可能未被基础模型学到,容易导致模型产生“幻觉”,比如某些网络领域专有名词和协议规则,需要通过微调的方式,比如参数高效的部分微调方式和LoRA低秩矩阵,来增强模型对网络知识的理解。微调的哲学在于既要为模型引入网络领域知识,又要保留模型原本学到的世界知识。
其次,用户意图模糊会导致输入不准确,且许多网络任务很难用简单的语言进行表述,因此,需要基于提示词工程,比如zero-shot, few-shot, 思维链,以及RAG检索增强技术,来构合适的prompt和网络任务基准测试集;比如思维链可以鼓励大模型采用逐步的推理过程来将复杂的问题拆解为多个简单子问题,以及通过上传相关技术文档供模型检索来缩小任务范围并提高推理精度。除了推理精度和推理速度,为了量化网络大模型的能力,相关的网络任务层面的属性和指标,比如回答正确率,任务完成度,生成结果与最优结果之间的数学距离,也待被提出和研究。
另外,考虑到网络领域存在大量难以被直接用于训练的非结构化数据,引入Agent技术是一个当前的热门方向,即通过API等方式,将大语言模型与网络工具(仿真软件、监测系统、安全工具、控制器、求解器、搜索引擎)做集成,让网络大模型学会使用网络工具,弥补模型在规划、计算、求解等方面的短板,最终实现“网络具身智能”。更多技术细节可参考文献 ^[12]^ 。下一篇将介绍网络大模型的第二种能力,即泛化的序列“决策”能力。
全部0条评论
快来发表一下你的评论吧 !