作者:韩松,单位:中国移动智慧家庭运营中心
随着互联网技术的发展,网络应用类型日益复杂,从Web、邮件等传统应用,发展到各类P2P应用、自定义业务协议等。识别网络流量中的应用协议类型成为网络管理中的一个重要问题。传统的模式匹配和特征提取方法在面对复杂应用协议时存在局限性。近年来,人工智能领域出现的大语言模型为应用协议识别带来新的契机。大语言模型通过预训练学习获得对语言的深刻理解,可以运用到对网络流量的语义分析中。
具体来说,大语言模型可以“读懂”网络流量中应用层的协议语义,判断HTTP、DNS等常见协议的格式,并可以对不常见协议进行anomaly detection。另外,大语言模型学习的知识可以帮助进行零样本和少样本学习,识别全新或样本稀少的应用协议。业界一些最新研究已经证明了大语言模型在应用协议识别中的效果。例如华为提出的ProtocolMate系统使用RoBERTa模型,实现了高达99.7%的准确率。另外基于BERT等模型的语义模糊方法,也表现出色。这些成果都表明了大语言模型的潜力。
Part 01● 应用协议识别是什么 ●
应用协议识别(Application Protocol Identification)指的是识别网络流量所使用的应用层协议的方法。互联网上的应用通信需要遵循某种应用层协议,比如HTTP协议用于网页浏览,DNS协议用于域名解析等。为了管理网络流量,需要能自动识别流量所使用的应用协议。
应用协议识别的主要方法包括:
- 基于端口的识别:通过判断特定端口号来识别协议,如80端口通常为HTTP。但有局限性。
- 模式匹配:通过查找协议特有的字节模式来匹配协议。
- 统计分析:提取流量统计特征,使用机器学习方法识别。
- 深度学习:使用LSTM、CNN等对流量进行端到端的深度学习,自动提取特征。
- 语法分析:解析应用层数据,判断遵循的协议语法。
- 语义分析:利用大语言模型分析应用层语义,识别协议含义。
应用协议识别对于网络流量监控、安全防护等都有重要作用。随着网络应用日益复杂,更智能高效的应用协议识别技术变得尤为重要。
Part 02● 大语言模型的特点 ●
大语言模型具有以下几个主要特点:(1)卓越的语义理解能力;(2)强大的迁移学习能力;(3)多样化的应用形式。
(1)卓越的语义理解能力
大语言模型通过预训练,可以深度理解语言的上下文和语义关系,对词汇、语法、常识都有很强的理解能力。这使其可以进行复杂的语义分析、文本生成等高难度语言处理任务。
(2)强大的迁移学习能力
大语言模型学到的语言知识具有很好的普适性,可以迁移至下游的不同任务中。即使下游任务数据不足,也可以取得不错的效果。这使大语言模型可以扩展到更多不同的应用领域。
(3)多样化的应用形式
大语言模型可以以不同的形式集成到实际应用中,如通过微调进行文本分类、句子匹配;用作Encoder来提取语义特征;生成回复文本等。这使其能够灵活地服务于不同的NLP应用。
Part 03 ● 大语言模型的数据结构 ●
大语言模型通过组合使用各种特殊的数据结构,模拟并实现了人类语言的关键能力。它使用词向量把词转换成数字编码,类似词典定义。注意力机制让词语之间进行交流,理解上下文,就像人类的语言交流。深层网络提取语义特征,残差连接传递信息,位置编码理解顺序,都增强了模型的语言理解能力。遮蔽语言模型进行自主学习,像人类通过阅读学习语言。数以亿计的参数帮助记忆知识。通过集成这些数据结构,大语言模型建立了一个像人脑一样的语言理解和生成系统。它不仅能学习语言知识,理解语义,还能应用语言进行创造性的生成。大语言模型的数据结构实现了它对语言的深刻理解,使其达到了接近人类的语言处理能力。
数据结构 | 作用 |
嵌入层(Embedding Layer) | 将词符号表示转换为稠密向量表示 |
多头注意力机制(Multi-Head Attention) | 允许模型同时关注文本不同位置信息 |
前馈全连接网络(Feed Forward Fully Connected Network) | 在多头注意力后进行语义特征提取 |
残差连接(Residual Connection) | 将前一层输出同当前层输出相加,缓解梯度消失 |
Layer Normalization | 加速深层网络训练,稳定训练过程 |
位置编码(Positional Encoding) | 为模型提供单词顺序信息 |
Mask机制 | 在预训练中屏蔽部分输入,实现自监督 |
权重参数矩阵(Weight Matrices) | 计算注意力分数、变换等,占用大量存储和计算 |
图1 大语言模型各模块说明
大语言模型的运行原理简要概括如下:
首先,大语言模型会将输入的文本序列转化为数字表示的词向量,就像一个词典将词语映射为向量。然后这些词向量被输入到由多层Transformer模块组成的编码器结构中。在每个Transformer模块内,通过多头注意力机制使词向量之间进行交互,计算出词与词之间的相关性,以此来学习文本的上下文语义信息。
接着,经过一个前馈全连接网络进行特征提取和表示变换。为了训练更深层的模型,还使用了残差连接、层规范化等技术。位置编码为模型加入了顺序信息。大量的参数支持复杂的语义计算。在预训练阶段,大语言模型通过自监督任务如遮蔽语言模型学到通用的语言知识。在微调阶段,加入监督学习特定下游任务。这样,大语言模型通过先获得泛化语言表示能力,再迁移到具体任务中,实现了对人类语言的建模和强大的语义理解与生成。它模拟人类获取语言知识然后应用的过程。
图2 大语言模型核心模块运行机制
各种数据源通过Kafka接入到数据平台层,数据平台讲明细数据存入数据存储层的ClickHouse中,明细数据的存活时间可以根据业务需求设置。同时可以根据业务报表查询的不同维度,利用ClickHouse的物化视图形成预聚合数据,提高数据查询效率。由数据服务层的定时任务周期性地从ClickHouse的预聚合数据中查询业务所需的展示数据,把展示数据存入MySQL。由数据服务层的报表服务向数据展示层提供查询服务,报表服务直接查询MySQL中的结果数据,保证了查询效率和并发性。
Part 04● 大语言模型在应用协议识别中的应用 ●
大语言模型具有强大的语言理解和建模能力,在应用协议识别等领域中展现出巨大的应用潜力。
下面将具体阐述大语言模型在应用协议识别任务中的运作机制和应用流程:
应用协议识别针对网络流量中的应用层协议报文,判断其所属的协议类别,是网络流量分析的关键环节。针对不同协议类型,可以进行定制化分析。相比基于规则的方法,基于大语言模型的协议识别具有更强的适应性和拓展性。
大语言模型在协议识别任务中的应用流程可以分成以下几个步骤:
(1)数据预处理,需要收集大规模的应用协议报文数据,如HTTP、DNS等,对报文数据进行清洗,提取纯净的协议语料。
(2)构建协议词表,将报文通过词表转换为数字id序列,方便模型处理。在获取处理后的数据集后,需要预训练语言模型以学习通用的协议语义特征。这里常用的预训练模型是BERT等变种。通过使用大量协议报文数据Fine-tune预训练模型,使其适应协议语言的模式,获得协议方面的先验知识。预训练时也会使用Mask等技巧增强模型对协议语义的建模能力。
(3)微调模型以适应具体的协议识别任务。这里将建立一个协议类别分类模型,使用协议报文及其类别标签进行监督训练。通过反向传播等技术迭代优化模型参数,使其逐步适应协议识别任务,输出精确的类别判断。
(4)部署微调模型。经过预训练和微调后,可以导出获得的协议识别模型,并集成到在线网络流量分析系统中。在线部署后,对实时网络流量进行抓取,提取协议报文,输入到导出的协议识别模型中,完成在线流量的智能协议分析。
整个流程充分利用了大语言模型支持的迁移学习范式。先通过自监督在大规模语料上学习通用语言表示,然后快速适应下游任务。相比独立训练,这种方法显著减少了人工特征工程,降低了对任务特定样本量的依赖。同时也增强了模型的泛化能力。
综上所述,依托预训练-微调框架,大语言模型可以高效适应协议识别等专业领域任务。它模拟人类语言学习过程,在大规模非标注语料上学习语义知识,然后迁移应用。这为解决更多特定领域的语言理解问题,提供了一个可靠的通用框架和技术路线。下图给出了采用AI大语言模型的协议识别方法相对于传统的基于域名规则的协议识别方法在准确率,识别精度和召回率上的效果提升。
各种数据源通过Kafka接入到数据平台层,数据平台讲明细数据存入数据存储层的ClickHouse中,明细数据的存活时间可以根据业务需求设置。同时可以根据业务报表查询的不同维度,利用ClickHouse的物化视图形成预聚合数据,提高数据查询效率。由数据服务层的定时任务周期性地从ClickHouse的预聚合数据中查询业务所需的展示数据,把展示数据存入MySQL。由数据服务层的报表服务向数据展示层提供查询服务,报表服务直接查询MySQL中的结果数据,保证了查询效率和并发性。
Part 05● 总结展望 ●
总结来说,大语言模型通过预训练-微调的框架,先在大规模协议语料上学习通用语义表示,然后迁移应用到具体的协议识别任务,实现了对网络流量的智能解析。相比规则方法,这种方式显著提高了模型的适应性和拓展性。
展望未来,大语言模型在应用协议识别领域还有多个方向的探索价值:(1) 构建更大规模的跨协议预训练语料库,增强模型对协议语言的理解能力。(2)尝试不同模型架构,如基于编码器-解码器的BART等,进一步提升建模效果。(3) 多任务学习框架,同时适配相关任务如协议语义解析,共享语义知识。(4) 在线增量学习机制,使deployed模型能随新协议更新迭代。(5) 模型压缩技术,部署轻量高效的协议识别引擎。(6) 可解释性和安全性等考量,增加模型判断的透明度和可控性。随着模型和数据规模的提升,大语言模型必将持续改进应用协议理解,在更广泛的网络分析任务中发挥关键作用。
参考:
【1】自然语言大模型介绍,2023年04月01日,
https://zhuanlan.zhihu.com/p/618786499(访问日期:2023年8月19日)
各种数据源通过Kafka接入到数据平台层,数据平台讲明细数据存入数据存储层的ClickHouse中,明细数据的存活时间可以根据业务需求设置。同时可以根据业务报表查询的不同维度,利用ClickHouse的物化视图形成预聚合数据,提高数据查询效率。由数据服务层的定时任务周期性地从ClickHouse的预聚合数据中查询业务所需的展示数据,把展示数据存入MySQL。由数据服务层的报表服务向数据展示层提供查询服务,报表服务直接查询MySQL中的结果数据,保证了查询效率和并发性。