TrafficFormer 针对流量数据的高效预训练模型

今天为大家介绍一篇清华大学徐恪教授和李琦老师团队针对流量数据的预训练模型工作《TrafficFormer: An Efficient Pre-trained Model for Traffic Data》,第一作者是周广猛博士。该工作已经被国际网络安全四大顶级会议之一的 IEEE Symposium on Security and Privacy 2025 录用。

文章链接:

http://www.thucsnet.com/wp-content/papers/guangmeng_sp2025.pdf

TrafficLLM开源代码和数据集链接:

https://github.com/ZGC-LLM-Safety/TrafficLLM

TrafficFormer: An Efficient Pre-trained Model for Traffic Data

Guangmeng Zhou, Xiongwen Guo, Zhuotao Liu, Tong Li, Qi Li and Ke Xu

网络流量数据具有较强的领域知识,这使得流量数据的标记非常困难,而缺乏带标注流量数据制约了智能流量分析的准确性。作为解决带标注数据稀缺问题的一种方式,预训练模型技术已经在视觉和语言领域证明了其有效性。但是在网络领域,预训练模型的探索才刚刚开始。本文提出了针对网络流量的预训练模型TrafficFormer以提升流量检测和协议理解的准确率。具体地,在预训练阶段提出了更细粒度的预训练任务增强对流量数据的表示能力,在微调阶段提出利用字段随机初始化特性实现流量数据增强的方法。此外,除了评估流量预训练模型对网络主体的行为识别外,本文还提出了多个协议理解任务来评估预训练模型对协议交互逻辑的理解。TrafficFormer在六个流量分类任务上取得了最优的表现,并且在协议理解任务上显著优于最新的预训练流量模型。

01

研究背景

流量数据是网络协议交互产生的数据,其一方面包含了相应协议的交互逻辑信息,另一方面也蕴含了交互主体的行为信息,比如使用不同的APP、浏览不同的网页表现出的流量行为是不同的。对于流量的分析和识别对于网络安全以及网络管理是非常重要的。流量分析识别工作早期主要依赖于专家知识,通过特征工程构建专家特征,然后输入机器学习模型进行学习。这些方法取得了比较好的效果,但无论是机器学习方法还是深度学习方法,大量的带标注数据是模型取得优越效果的关键。不同于传统的文本、图片、声音数据,流量数据标注的门槛和难度更高。标注流量数据需要标注人员具备网络协议知识,同时对具体场景(比如某种网络攻击的原理)比较熟悉。此外,流量产生的速度非常快,数据量非常庞大,而且行为模式随时间也在不断变化,依赖人工标注是不现实的。预训练模型技术是一种解决带标注数据稀缺问题的方式,其包括预训练和微调两个阶段。预训练阶段基于无标注数据采用自监督的方式学习一般知识,微调阶段基于带标注数据采用监督学习方式学习特定任务知识。相比于文本、图片数据,流量数据的体量更加庞大,而且行为模式复杂,因此将预训练模型技术应用到流量分析识别任务中是非常适合的。

02

研究动机

之前的研究工作多关注流量数据表示上,将流量数据转化为视觉领域或自然语言领域的输入形式,进而直接应用相关领域预训练技术。PERT通过bigram方式将16进制数据包内容转化为字;ET-BERT将连续相同方向的数据包看作一个句子,从而沿用自然语言领域预训练技术;YaTC将每条流处理为一张图片,从而沿用视觉领域预训练技术。这些工作忽视了对流量数据的特点分析及针对性设计。

流量数据的三个特点为:

  1. 流量数据是一种序列数据。流量中的数据包具有显著的先后关系。

  2. 数据包的方向和顺序是流量数据的重要语义。流量是通信双方执行网络协议产生的,输入单元具有方向性。而且数据包的顺序需要满足协议交互逻辑,不符合顺序的数据包会被认为是无效的。

  3. 流量数据的数据包头部是结构化的,而且具有很强的信息冗余。

针对上述难点,TrafficFormer在预训练阶段保留了自然语言领域中的遮蔽建模预训练任务MLM学习输入单元的序列关系,设计了同源-同向-同流多分类预训练任务SODF挖掘输入单元的方向和顺序信息;在微调阶段设计了保持流量语义的流量数据增强方法RIFA使模型减少对不相关信息的依赖,快速定位到有价值信息。

03

论文工作:TrafficFormer

TrafficFormer整体框架如图所示,总体上包含预训练和微调两个阶段。预训练阶段的任务为遮蔽burst建模和同源-同向-同流多分类任务,训练完的模型主体可以迁移到下游的各个任务,比如恶意软件识别、网站指纹识别以及新提出的协议交互理解任务等。

3.1 预训练阶段

遮蔽burst建模任务和传统的遮蔽语言建模类似,都是遮蔽输入中的某些token,让模型进行预测,根据实际token和预测token计算损失。

在这里插入图片描述

ET-BERT中第二个预训练任务为同源burst预测任务,该任务本身比较简单,模型可以通过简单的一些字段,比如五元组就可以判断两个burst是否同源。此外该任务不能学习到数据包的方向和顺序信息。考虑到SBP任务存在的这些问题,我们提出了同源-同向-同流多分类任务。首先将流划分为多个burst,再将每个burst切分为两段,最后组合切分的burst构建不同的类别。上图展示了三条流的前三个burst的示意图,这些burst共组合形成5种类别。

  1. 类别1:一个正常的burst,切分后的两段burst中间添加[SEP]符号进行分隔。第一段burst中的段标识为1,第二段burst中的段标识为2。

  2. 类别2:同类别1类似,不同之处是将一个burst切分后的两段交换位置。

  3. 类别3:连续的两个burst,第一个burst之后添加[SEP]符号进行分隔。第一个burst中每个词的段标识为1,第二个burst中每个词段标识为2。

  4. 类别4:同类别3类似,不同之处是交换两个burst的位置。

  5. 类别5:随意组合两条流中的burst,burst之间添加[SEP]符号进行分隔。

类别1和类别2的目的是让模型学习到同一方向上数据包的顺序(同源),类别3和类别4的目的是让模型学习到数据包的方向信息(同向),类别5的目的是让模型学习到流的概念(同流)。

3.2 微调阶段

考虑到下游微调任务的数据量较少的问题,我们提出一种流量数据增强方法。网络协议中一些字段本身是随机初始化的,字段值本身没有任何含义,因此也对分类不造成任何影响。下表列举了常见协议中的随机初始化字段。

数据增强的具体方法是随机变化数据包中随机初始化的字段。同时考虑到字段的变化规律相比于字段值往往是更重要的,我们改变字段初始值后在后续数据包中保持其变化规律。数据增强后,模型可以不依赖于这些字段的值,更关注于值的变化或者其他字段,从而从大量的数据中快速提取有价值的信息,有助于模型快速发现分类边界。相比于基于深度学习的方法,TrafficFormer的方法直接修改原始数据,增强后的数据不改变原有语义。

04

实验结果

我们选择了三个不同来源的数据集进行预训练,包括ISCX-NonVPN(2016年)、CICMalAnal2017(2017年)、Browser数据集(2020年),总数据量在20GB左右。

4.1 流量分类任务

我们选择了六个数据集作为微调数据集,包括Cross-Platform(Android)、Cross-Platform(iOS)、ISCX-VPN(Service)、ISCX-VPN(App)、CSTNET-TLS 1.3、USTC-TFC,其中包括了应用指纹识别、服务类型识别、网站指纹识别、恶意软件识别四种具体微调任务。

TrafficFormer选择每条流的前5个数据包,每个数据包选取以太网数据层往后的64字节作为模型的输入。在RIFA的应用上,我们对IP标识号、TCP序列号、确认号随机变换。此外我们也通过随机变换的方式处理I P、端口号、TCP协议中的时间戳、TLS协议中的时间戳和SNI字段,避免产生分类的捷径。

在这里插入图片描述

从上表中可以看到,TrafficFormer在多个流量分类任务上都取得了最优的效果,这证明TrafficFormer能够更好地识别流量背后网络主体的不同行为。我们提出的RIFA数据增强方式在大多数的任务中都进一步提高了效果,F1值最多提升了10%。

4.2 协议理解任务

流量本身不仅体现了网络主体的行为信息,更基础的是蕴含了协议的交互信息。我们提出四种评估协议交互理解能力的任务,包括数据包方向判断、丢包检测、乱序检测、数据包预测。这些任务有助于更全面评估一个流量预训练模型的能力。

从上表结果可以看到,TrafficFormer在四个任务上都取得了综合最优的效果,这证明TrafficFormer能够更好地理解协议交互逻辑。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

### 使用大型语言模型(LLM)进行交通流量预测 在信息技术领域,利用大型语言模型(LLM)进行交通流量预测是一个新兴的研究方向。尽管 LLM 主要设计用于处理自然语言任务,但通过适当的数据预处理和技术调整,也可以应用于其他类型的序列数据预测问题。 #### 数据准备与特征工程 为了使 LLM 能够理解并有效预测交通流量模式,需要将原始交通数据转换成适合的语言表示形式。通常做法是将时间戳、车辆数量和其他相关变量编码为文本字符串或标记化的向量[^3]。例如: ```python import pandas as pd def preprocess_traffic_data(df): df['time'] = pd.to_datetime(df['timestamp']) df.set_index('time', inplace=True) # 将每小时车流情况转化为描述性的文本片段 traffic_descriptions = [] for index, row in df.iterrows(): desc = f"At {index}, there were approximately {int(row['vehicle_count'])} vehicles." traffic_descriptions.append(desc) return traffic_descriptions ``` #### 模型微调 一旦准备好合适的输入格式,就可以基于现有的预训练 LLM 进行迁移学习。具体来说,在包含历史交通状况的语料库上继续训练模型,使其能够捕捉到特定区域内的典型流动规律及其变化趋势。 #### 预测实现 完成上述准备工作之后,便可以通过给定的时间点来推断未来的交通状态。下面展示了一种简单的推理流程: ```python from transformers import pipeline # 假设已经加载了一个经过微调后的 LLM 实例 `model` predictor = pipeline(task="text-generation", model=model) future_time_point = "At 2023-10-07 8:00 AM" predicted_text = predictor(future_time_point)[0]['generated_text'] print(predicted_text) ``` 这种方法不仅限于文字输出;还可以配置生成器返回数值估计或其他结构化信息作为最终结果的一部分。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值