摘要

【原文翻译】

基于机器学习(ML)的网络流量分析已被广泛用于威胁检测。然而,此类方法在不同任务和未见数据上的泛化能力非常有限。大语言模型(LLMs)以其强大的泛化能力著称,并在多个领域展现出优异的性能。但由于网络流量具有显著不同的特性,其在流量分析领域的应用受到限制。为解决这一问题,本文提出 TrafficLLM,它引入了一个双阶段微调框架,旨在从异构的原始流量数据中学习通用的流量表示。该框架采用流量领域分词双阶段调优流程可扩展适配,帮助LLM在动态流量分析任务(如广泛的流量检测与流量生成下游任务)中释放其泛化能力。我们在10个不同场景和229种流量类型上对TrafficLLM进行了评估。TrafficLLM取得了0.9875和0.9483的F1分数,其检测和生成性能分别比现有方法提升最高80.12%33.92%。它在未见流量类型上也表现出强大的泛化能力,性能提升18.6%。我们进一步在真实场景中评估了TrafficLLM。结果证实,TrafficLLM易于扩展,并在企业网络流量上实现了准确的检测性能。

索引术语——大语言模型,网络流量分析,入侵检测系统

【个人注解】
(1)流量领域分词是为大语言模型定制一部“流量词典”。它将原始的网络字节流,智能切割成模型能理解的标准化“词元”,从而让LLM获得了阅读流量数据的基础能力。
(2)双阶段调优流程采用“先懂任务,再学模式”的分步训练法。第一阶段让LLM通过文本指令理解安全任务;第二阶段再输入流量数据,让它学习具体的流量模式,从而高效掌握跨任务的分析能力。
(3)可扩展适配是一种“插件化”更新机制。它通过冻结大模型主体、仅训练轻量级适配模块的方式,让系统能以极低的成本快速学习新威胁或适应新环境,实现模型的低成本持续进化。

一、介绍

【原文翻译】

网络流量是互联网的基石,承载着网络内所有的交互与传输。然而,随着网络技术的发展,攻击者可以利用网络流量进行各种恶意活动,例如钓鱼攻击[1]、恶意软件活动[2]、网络攻击[3]以及漏洞利用[4]。众多企业已经认识到分析流量数据对于检测威胁、调查事件和监控环境的重要性[5][6]。这促进了许多复杂网络流量分析器和安全信息与事件管理解决方案的发展,例如思科安全网络分析[7]和 Rapid7 InsightIDR[8]。现有工作在许多任务上取得了重大进展,例如加密应用分类[9]、网站指纹识别[10]和恶意流量检测[11]。

近年来,基于机器学习的方法[12]-[14]因其对不同流量模式的强大表征学习能力而被提出。尽管潜力巨大,但基于机器学习的方法仍存在以下局限,导致现有模型泛化能力低下:
(i)跨任务泛化能力差。在流量分析的各个子领域,现有方法通常使用人工设计的特征和监督标签来学习,并为特定任务开发复杂的ML模型[15][16]。这些特定于任务的模型由于使用了专门的人工特征或模型设计,很难在不同任务间共享。要覆盖各种任务,开发成本会相当高昂。
(ii)对未见数据泛化能力差。基于ML的方法因其无法有效处理未见数据而广受批评[11]。这些模型通常被迫在高质量的标注数据集中学习已知模式。当面临概念漂移[17]和零日攻击[18]等涉及未见数据的场景时,由于泛化能力低,ML模型往往表现不佳。

因此,开发一个更通用的模型以增强ML模型在不同任务和数据分布间的泛化能力至关重要[16][19]。近期,大语言模型[20]-[24]在许多复杂任务中展现出卓越性能[25]。得益于其模式挖掘、对未见数据的泛化能力以及跨任务的可重现性,LLM可以在各种下游任务中释放显著能力[26],这激发了一些高层观点去开发用于网络流量分析的专用大模型。例如,可以利用LLM的模式挖掘和推理能力来学习流量数据中IP属性、标志位、时间戳和数据报长度背后的通用表征。此外,LLM的泛化能力使其能够适应不同的网络环境和攻击场景。因此,LLM可以作为一种更强大的ML模型,提供具有强大泛化能力的流量表征。

然而,将LLM用于网络流量分析并非易事。
首先,流量数据包含大量用于模式学习的异构元信息(即数据包和流中的协议字段),这与自然语言有显著不同。这种与纯文本的输入模态差距使得原生LLM 难以处理流量数据 [21][23],这进一步阻碍了LLM泛化到不同网络场景的流量数据。
其次,不同的下游任务涉及不同的领域知识和流量模式(例如僵尸网络流量和Tor网络流量)。联合学习多类型的任务特定指令语义和流量数据可能会混淆LLM,导致跨任务的泛化能力差[19][27]。
第三,流量领域经常面临应用更新和攻击变化等环境漂移[3]。然而,由于模型规模庞大,LLM的适应过程极其耗时。为适应新环境而更新模型的高昂成本使得LLM在现实场景中不切实际。

【个人注解】
(1)对于异构元信息,deepseek的解释如下:

什么是 “异构元信息” ?简单来说,它就是网络数据包中那些描述自身、但格式千差万别的“身份信息”和“状态信息”。
我们可以把一个网络数据包想象成一个快递包裹:
包裹里的货物:相当于数据包的有效载荷,可能是加密的网页内容、一段聊天消息或文件数据。这部分通常是看不懂的密文。
包裹面上的快递单:这就是元信息。它告诉系统这个包裹从哪里来、到哪里去、是什么类型、优先级如何。

关键就在于,这张“快递单”(元信息)是高度混杂的:
1)类型杂:包含纯文本(如协议类型HTTP)、整数(如端口号443)、二进制标志位(如TCP的SYN)、浮点数(如精确到微秒的时间戳)。
2)结构不一:有固定长度的字段(如IP地址的4个数字),也有可变长的字段。
3)语义依赖上下文:数字80在一种语境下代表“HTTP服务端口”,在另一种语境下可能代表“包长度”。

这与LLM熟悉的、语法规则相对统一的自然语言(纯文本)截然不同。把这样一本由数字、代码和缩写写成的“天书”直接塞给只读过“文学典籍”的LLM,它自然会一头雾水,根本无法进行有效的模式学习。这正是TrafficLLM提出要设计 “流量领域分词” 这一核心技术的根本原因——为LLM量身打造一本能翻译“流量语言”的词典。

(2)环境漂移
概念漂移:正常的应用和行为更新了。比如微信新版本采用了新的通信方式,其流量模式变了。AI以前学的“微信流量长这样”的知识,现在就部分失效了。
数据漂移:网络流量的整体分布改变了。例如,疫情期间视频会议流量暴增,取代了大量网页浏览流量。AI没见过这么多这种类型的流量

【原文翻译】

为克服这些挑战,我们提出TrafficLLM,这是一个适用于所有开源LLM的双阶段微调框架,旨在从专家指令和原始流量数据中学习通用的流量表征,帮助LLM获取广泛的领域知识,以增强其在不同流量分析任务和未见场景中的泛化能力。TrafficLLM实现了三项核心设计:
(i)流量领域分词:为缓解流量与语言之间的输入模态差距,TrafficLLM配备了流量领域分词机制来扩展LLM的原生分词器。这有助于LLM泛化到不同类型的流量数据,并通过减少词元长度来提高效率。
(ii)双阶段调优流程:TrafficLLM实现了双阶段调优流程,以结合文本和流量数据进行多模态学习。该流程帮助LLM准确理解安全专家的指令文本,并在不同的下游任务中实现有效的流量模式学习,从而形成跨任务的通用表征。
(iii)基于参数高效微调的可扩展适配:为促进LLM对新环境的泛化,TrafficLLM采用参数高效微调技术实现可扩展适配[28]。EA-PEFT将不同的流量表征能力拆分到多个PEFT模型中,这有助于TrafficLLM保留现有能力,并在新的网络环境中升级模型。

我们构建了TrafficLLM原型,旨在十个下游任务上实现通用的流量表征,其支持对不同应用(例如移动应用、网站和恶意软件)、协议(例如HTTP、TLS1.3和DoH)、网络环境(例如VPN、Tor和僵尸网络)以及威胁(例如网络攻击和APT攻击)的流量分析。TrafficLLM为两个关键能力(即流量检测和流量生成能力)构建了通用表征,以协助流量分析师的日常攻击检测和红队工作,相比现有ML方法,性能分别提升了5.90%-80.12%和3.07%-33.92%。我们进一步在未见环境和真实场景中评估了TrafficLLM。与现有ML模型相比,TrafficLLM表现出更强的泛化能力。

贡献。我们的贡献如下:
我们开发了TrafficLLM,这是一个结合广泛专家指令和原始流量数据进行学习的双阶段微调框架,它帮助LLM从领域知识中获得通用的流量表征,从而在多样化的流量分析任务中实现强大的泛化能力。
我们通过三项核心技术构建TrafficLLM,以克服在流量领域使用LLM的挑战。TrafficLLM采用流量领域分词来缓解模态差距并泛化到异构数据,采用双阶段调优流程进行跨不同任务的多模态学习,并采用EA-PEFT来实现对新环境的泛化。
我们构建了首个用于未来研究的大规模流量领域LLM适配数据集。据我们所知,我们收集了迄今为止流量领域最大的LLM调优数据集,其中包含约40万个样本,由专家和AI助手监督的指令文本和流量数据组成。
我们在各种下游任务上进行了广泛的实验,以证明TrafficLLM的优越性。与15种最先进的流量检测或生成方法相比,TrafficLLM通过通用表征实现了更好的性能。此外,TrafficLLM在未见数据和真实场景中表现出强大的泛化能力。

网站演示和数据集。我们在 https://github.com/ZGC-LLM-Safety/TrafficLLM 提供了TrafficLLM的演示、源代码和所有调优数据集。

二、问题陈述与威胁模型

A. 问题陈述

表1:
在这里插入图片描述
【原文翻译】

对现有大语言模型(LLMs)的调研:我们调查了现有LLMs在网络流量分析方面的能力。由于处理流量数据的困难,我们尚未在业界见到用于网络流量分析的基础模型的部署。截至2024年12月,我们在表I中汇总了当前主流LLMs的模型能力。
尽管现有LLMs初步具备了网络安全领域的某些知识[26],但由于缺乏处理流量的能力,它们中的大多数无法完成流量分析任务。大多数LLM缺乏从流量数据学习中获得洞察的能力,它们只能对基本指令做出不准确的结论性回应。
为了克服这一问题,近年来出现了如 ET-BERT [16] 和 PERT [34] 等一系列工作,它们利用预训练语言模型(PLMs)[26] 处理流量数据,旨在构建有效的流量检测和生成能力。然而,这些方法存在以下不足:
开发成本高:这些方法主要采用预训练技术[37],具有较高的训练时间和资源成本。与微调相比,它们无法继承现有LLMs的能力,实用性较低。
模型规模有限:这些模型的参数量通常小于10亿。严格来说,它们不属于大语言模型的范畴[26]。这些模型可能会失去LLMs所具备的、小模型中无法体现的、具有强大泛化能力的惊人涌现能力[38]。
应用场景狭窄:这些工作仅在流量数据集上进行训练。它们在处理自然语言方面存在不足,导致无法遵循指令执行复杂的流量分析任务[39],对用户门槛要求较高。
能力存在缺陷:这些方法在流量检测和生成方面有短板。它们不具备检测未见数据的泛化能力[11]。此外,它们只能生成数据包和流的五元组信息,实际用途非常有限[35][36]。

【个人注解】

(1)预训练技术
在AI领域,预训练 指的是:在一个超大规模、无标注(或弱标注)的通用数据集上,以某种自监督学习任务(如预测被遮挡的词、预测下一句)来训练模型,使其学习到数据中通用的、基础的特征、模式和知识表示。

ET-BERT/PERT的预训练:在流量数据上,从零开始训练一个领域基础模型。
LLaMA/GPT的预训练:在海量互联网文本上,从零开始训练一个通用人工智能基础模型。

(2)涌现
在人工智能领域,“涌现”特指当模型参数规模超过某个临界点时,模型表现出的一种“质变”。它并非通过设计或针对性训练获得,而是从海量数据和庞大计算中自发产生的、令人意外的复杂能力。例如,一个主要训练来预测下一个词的大语言模型,可能会突然展现出解题、编程、逻辑推理甚至理解幽默等它从未被明确教过的能力。这就像简单的神经元通过巨量连接后产生了“智能”,因此论文强调,参数较小的领域模型(如ET-BERT)无法具备这种强大的、泛化的“涌现能力”,而这正是大语言模型的核心优势。

在这里插入图片描述

【原文翻译】

本文旨在利用LLM,通过强大的跨任务泛化能力来促进网络流量分析工作。给定涉及多样化领域知识的语言指令和包含多种类型良性或恶意流量的流量数据,期望在流量领域适配后的LLM能够凭借其在模式学习中的准确性和泛化能力,学习通用的流量表示。值得注意的是,所有工作都可以通过与这个通用模型的对话来完成,这降低了安全从业者的操作门槛和开发成本。然而,流量领域的特性为实现LLM在流量分析任务上的泛化带来了三大挑战。

挑战一:泛化到流量数据的异构输入。流量数据由数据包和流中的结构化元数据(如IP地址和端口)组成。然而,大多数LLM被视为处理纯文本的专用模型,这与流量数据存在巨大差异。在输入LLM之前,文本会使用标准分词器[21][23]转换成语言词元。这些分词器通常在大型文本语料库上使用如WordPiece和字节对编码(BPE)等分词算法进行训练,很少接触异构的流量数据。因此,LLM可能无法直接将流量数据转换为文本格式并用默认的分词方式加载。
举例来说,我们尝试让 Llama2-7B [23] 使用其原生分词器执行恶意软件流量检测任务(MTD, malware traffic detection)。首先,将流量信息拆分为输入并不有效。如图1(左)所示,默认分词器在处理TLS数据包中的元数据时会产生大量冗余信息,这可能会降低LLMs在实际流量分析工作中的效率。其次,转换后的词元在确保检测准确性方面表现不佳。如图1(中)所示,原生LLM在MTD任务上的性能并不突出(在USTC-TFC 2016数据集[40]上准确率仅为79.5%),这是因为不合适的分词方式错误地分割了关键特征,导致无法捕捉良性与恶意流量之间的显著模式差异。

挑战二:通过多模态学习实现跨不同任务的泛化。网络流量分析涵盖广泛的特定任务,包括检测和生成不同场景下的攻击流量。这涉及到指令中多样化的特定任务知识,以提示LLM执行不同的工作。此外,这些下游任务通常指向不同的网络环境,涉及从多种类型的流量元信息中学习到的表示(例如,加密应用分类中的包长度和网络攻击检测中的HTTP请求头部)。指令和流量模式的这些复杂性很容易使LLM在面对多模态学习时混淆[19][27]。如图1(右)所示,我们直接混合了三个流量检测任务(即MTD、EAC和WAD任务)的训练数据,并使用默认的调优策略训练Llama2。Llama2仅达到10.2%的平均准确率,这表明LLM难以通过多模态方式跨不同任务学习。

【个人注解】

在这里插入图片描述

【原文翻译】

挑战三:通过模型更新泛化到新环境。LLM的适配成本相当昂贵,因为它需要使用大量数据集训练大规模参数[20][21]。然而,许多流量分析任务通常需要更新模型的流量表示以应对动态场景,这些动态性源于应用版本更新(如概念漂移[17])和攻击方法变化(如APT攻击[42])。LLMs的高昂适配成本阻碍了在新场景下更新流量表示。如图2所示,我们测量了Llama2-7B在5块NVIDIA A100-80GB GPU上进行流量检测任务的适配开销。传统的重新训练方法消耗78.5GB的GPU内存和126.7小时来适应新环境(一个周期),这在现实的动态场景中是不可接受的。

在这里插入图片描述

B. 威胁模型

【原文翻译】

我们的目标是开发一种用于流量表示的LLM,可用于构建流量检测和生成方法,以取代可集成到现有复杂网络流量分析器(NTA)[7]和安全信息与事件管理(SIEM)系统[43]中的传统基于机器学习的方法。这些系统广泛部署在安全运营中心(SOCs)中,基于流量镜像和日志分析异常事件。

与现有基于机器学习的流量检测和生成研究[9][44]的威胁模型不同,TrafficLLM旨在开发基于LLM的模型以适应不同的任务,比特定的ML模型更具通用性。TrafficLLM可以直接由专家的指令驱动。它利用领域知识从原始流量中提取与任务相关的流量模式,从而实现通用的流量表示。

利用LLM的模式学习和泛化能力,我们开发TrafficLLM以构建集中式的流量分析解决方案,旨在实现以下目标:
攻击检测:TrafficLLM建立全面的流量检测能力,以处理和分析多样化的良性和恶意流量。通过学习各种异构流量数据,TrafficLLM可以从原始流量中提取通用的流量表示,以识别良性和恶意类别[9][45],或实现更细粒度的分类(例如,加密应用分类中的应用类型[16][41]和僵尸网络检测中的网络类型[46])。
攻击合成:在实际场景中缺乏高质量流量数据时,TrafficLLM可以生成攻击样本,以促进红队演练并增强基于网络的入侵检测系统(NIDS)的鲁棒性[47]。与现有基于机器学习的流量生成研究[35][36][44]不同,TrafficLLM基于LLM的强大记忆能力,可以生成范围广泛的目标流量(以.pcap格式)。它可以帮助安全从业者模拟流量攻击以评估系统漏洞,并通过数据增强构建健壮的入侵检测系统。

三、TrafficLLM 的设计

在这里插入图片描述

A. 整体框架

【原文翻译】

我们开发了 TrafficLLM,它通过一个双阶段微调框架,从多样化的流量领域指令文本和原始流量数据中捕获通用的流量表示,旨在释放LLM在各种流量分析任务中的强大泛化能力。TrafficLLM 克服了将LLM应用于流量分析的挑战。它通过使用大量专家指令和流量数据进行训练来构建领域知识。在专家指令的驱动下,TrafficLLM 能够自动从原始数据包和流中提取与任务相关的流量模式,形成跨不同任务的通用表示。我们在图3中展示了TrafficLLM的架构概览。

TrafficLLM 设计了三个核心模块:
流量领域分词:为了克服自然语言与异构流量数据之间的模态差异,TrafficLLM 采用流量领域分词来处理流量检测和生成任务中的多样化输入,以进行表示学习。该机制通过在大型流量领域语料库上训练专门的分词模型,有效地扩展了LLM的原生分词器(详见第三部分B节)。
双阶段调优流程:TrafficLLM 设计了一个双阶段调优流程,以实现LLM在不同流量领域任务上的通用表示学习。该流程在不同阶段训练LLM理解指令并学习与任务相关的流量模式,基于TrafficLLM的领域知识为各种流量检测和生成任务学习流量表示(详见第三部分C节)。
基于参数高效微调的可扩展适配:为了使LLM能够泛化到新的流量环境,TrafficLLM 提出了一种基于参数高效微调的可扩展适配方法,以低开销更新模型参数。该技术将模型能力拆分到不同的PEFT模型中,有助于最小化因流量模式变化而产生的动态场景下的适配成本(详见第三部分D节)。

B. 流量领域分词

【原文翻译】

TrafficLLM 利用流量领域分词来编码流量分析任务的原始输入,使其对LLMs可学习。我们从原始流量中提取调优数据来训练专门的分词器,这有效地扩展了LLM的原生分词器。流量领域分词的原理是将自然语言和流量数据映射到同一特征空间,支持LLM接受异构流量数据以构建表示。

调优数据提取:为了帮助LLMs减少模态差异,并使它们能够处理跨不同任务的流量数据,TrafficLLM 直接从原始流量中提取训练数据以进行通用流量表示。使用原始流量的目的是释放TrafficLLM在不同场景下的泛化能力,这与严重依赖预定义特征的传统基于机器学习的方法不同。TrafficLLM 不是选择某些特征,而是利用数据包中的全部元信息,在没有人工指导的情况下学习重要特征。这有助于TrafficLLM在不同场景中获得强大的泛化能力。

为了促进LLMs获取领域知识以学习跨不同任务的流量表示,TrafficLLM 采用指令学习来构建调优数据模板,并使LLMs适应流量领域的语义空间。这些指令可以引导LLM自动提取流量数据中与任务相关的模式以构建表示。然后,我们利用 Tshark 提取不同数据包层中的协议字段。这些元信息被组织成包含字段名和对应值的配对(例如,tcp.srcport: 443)。为了标识流量数据的开始,我们在上下文中定义了一个指示符词元 <packet>。每个数据包数据都以这个特殊指示符开始,形成流数据。这种指令学习设计有助于LLM获取领域知识,以捕获对跨任务模式学习有价值的语义。最后,TrafficLLM 结合流量分析指令和提取的流量数据来构建调优数据。TrafficLLM调优数据的示例如下所示。

专用分词器训练:为了学习有效的流量领域分词,我们在大规模流量领域语料库上训练一个专用的分词器。该分词器基于 BPE 算法,通过从原始流量数据中学习来扩展词汇表。它旨在压缩序列长度,并提高LLM处理流量数据的效率。

【个人注解】
在这里插入图片描述

【原文翻译】

与主要在通用语料库上训练的原生LLM分词器相比,TrafficLLM 的分词器在流量数据上表现更好。例如,如图4所示,当处理TLS数据包时,ChatGLM2的默认分词器会错误地拆分字段名(例如,“checksum"和"tcp”),因为它们对流量领域语言的学习较少。相比之下,TrafficLLM的分词器可以根据字段名在训练数据中的出现频率来保留这些字段名指示符。它还可以存储常见的字段值(例如,窗口大小和标志位),帮助LLMs正确地学习数值元信息。此外,由于对流量数据进行了准确的分词,与ChatGLM2的1445.04平均词元长度相比,TrafficLLM 可以产生更短的数据包词元(平均长度为699.36)。这有助于TrafficLLM相比原生LLMs获得更快的包处理效率。

如图1(左)和(中)所示,与默认分词相比,TrafficLLM的分词在加载流量数据时更加有效和准确。该机制帮助TrafficLLM处理流量数据的效率提高了106%。通过使用流量领域分词,TrafficLLM在MTD任务上的性能也提升了17.4%

C. 双阶段调优管道

【原文翻译】

TrafficLLM 提出了一个双阶段调优管道,以帮助LLMs获取领域知识,在多样化的流量分析任务上实现通用的表示学习。该管道可以帮助LLMs在不同阶段获得两种能力:(i)理解与任务相关的自然语言,以确定应执行何种任务;(ii)学习跨不同任务的任务特定流量模式。在专家指令的指导下,TrafficLLM 能够从编码后的输入中自主提取任务特定的流量模式,构建跨不同任务的通用表示。

调优目标。TrafficLLM 旨在利用LLMs的模式挖掘和泛化能力来学习通用的流量表示。基于LLM来自深度Transformer架构的强大记忆能力,这些表示可以获取从元信息(如长度、方向和标志位)中学习到的独特流量模式。TrafficLLM 自动整合这些异构数据,并发现它们对不同任务的重要性(例如,长度对于加密流量分类至关重要,方向对于网站指纹识别至关重要)。TrafficLLM 使用这些通用表示来实现两个主流任务,即流量检测流量生成
流量检测:给定安全专家的指令 S = {s1, s2, ..., sm}(包含 m 个语言词元),以及描述流量元信息的流量数据 X = {x0, x1, ..., xn}(包含 n 个流量词元)。流量检测需要将与任务相关的指令 Si 和流量数据 Xi(流或数据包)作为 TrafficLLM 的输入 (Si, Xi)。然后,TrafficLLM 可以利用其参数 θ,在不同的流量检测任务(如MTD、WAD和BND任务)中识别流量的真实标签 yi ∈ Y = {y0, y1, ..., yc}
在这里插入图片描述
流量生成:流量生成可被视为流量检测任务的逆过程。其目的是输入生成指令 Si 以描述特定场景,以及待生成流量的流量类别 yi ∈ Y = {y0, y1, ..., yc}。TrafficLLM 可以生成一个满足指令要求的合成数据包 X̂i在这里插入图片描述

图4:
在这里插入图片描述
【原文翻译】

自然语言指令调优。在 TrafficLLM 双阶段调优的第一阶段,我们引入自然语言指令调优,将网络安全领域的专业任务描述文本注入到LLMs中。如图4所示,该管道迫使LLM理解安全专家的指令,并预测需要执行的任务名称 ϕ i \phi_i ϕi
在这里插入图片描述
其中 θ 1 θ_1 θ1是第一阶段的待训练参数。 ϕ i \phi_i ϕi 是要执行的下游任务名称。为了学习安全任务描述的上下文,我们遵循LLM的自回归目标函数来使模型收敛。给定人工指令 S i = s 1 , s 2 , . . . , s m Si={s_1,s_2, ..., s_m} Si=s1,s2,...,sm,TrafficLLM 计算词元 S i S_i Si的概率 P m P_m Pm以建模损失 J ( θ 1 ) J(θ_1) J(θ1)
在这里插入图片描述
其中 W s W_s Ws是用于任务理解的学习参数矩阵。 h i − 1 h_{i-1} hi1表示 TrafficLLM 在输入前 i − 1 i-1 i1个词元后编码的表示。自然语言指令调优技术在准确匹配指令文本与相应下游任务方面起着至关重要的作用,从而使LLMs能够利用其领域知识来理解不同的任务。

【个人注解】
在这里插入图片描述

在这里插入图片描述

【原文翻译】

任务特定流量调优。我们提出的第二阶段是任务特定流量调优。在理解任务之后,我们迫使 TrafficLLM 学习下游任务下的流量模式。在此阶段,我们使用训练对 ( X i , y i ) (X_i, y_i) (Xi,yi) 对LLM进行微调,以建模流量检测任务 ϕ T D \phi_{TD} ϕTD和流量生成任务 ϕ T G \phi_{TG} ϕTG下的流量表示。对于特定的下游任务 ϕ i \phi_i ϕi,TrafficLLM 训练第二阶段参数 θ 2 θ_2 θ2 来预测流量标签 y i y_i yi 或生成合成流量 X ^ i X̂_i X^i
在这里插入图片描述
为了将异构流量数据的知识注入到LLMs中,TrafficLLM 通过使用损失函数 J ( θ 2 ) J(θ_2) J(θ2)学习流量数据包和流的上下文,来构建和更新流量数据 X i = x 1 , x 2 , . . . , x n X_i = {x_1, x_2, ..., x_n} Xi=x1,x2,...,xn 的表示:
在这里插入图片描述
其中 W l W_l Wl是用于流量表示学习的待训练参数矩阵。任务特定流量调优旨在使LLMs与不同场景(如VPN和Tor网络)下的各种流量数据对齐,从而使LLMs能够利用这些流量表示来完成多样化的下游任务。

如图1(右)所示,双阶段调优管道帮助 TrafficLLM 在 MTD、EAC 和 WAD 任务上实现了 95.0% 的平均准确率。由于在不同阶段分别学习了文本语义和任务特定的流量模式,TrafficLLM 的准确率比直接微调高出 84.8%

D. 基于PEFT的可扩展适配

为了实现LLM对新流量环境的泛化,TrafficLLM 采用了基于参数高效微调(PEFT)的可扩展适配,以高效地更新动态场景下的表示。EA-PEFT 的原理是将不同任务的流量表示能力拆分到各种附加参数中,支持 TrafficLLM 选择性地更新部分能力,从而实现在新环境中表示的快速更新。

使用PEFT进行流量领域适配。假设预训练LLM的参数为 θ L L M θ_{LLM} θLLM。为了适应新环境,传统的重新训练方法需要训练模型的全部参数,这意味着参数更新 Δ θ Δθ Δθ 等于 θ L L M θ_{LLM} θLLM,即 ∣ Δ θ ∣ = ∣ θ L L M ∣ |Δθ| = |θ_{LLM}| ∣Δθ=θLLM。然而,LLM庞大的参数量导致在新环境中重复训练的成本巨大。为解决这一限制,TrafficLLM 冻结 了LLM的参数,并通过调整额外参数来实现参数高效微调。在双阶段调优过程中,TrafficLLM 调整附加参数,分别构建用于任务理解的 θ P E F T 0 θ_{PEFT_0} θPEFT0 和用于任务特定流量学习的 θ P E F T φ i θ_PEFT_{φ_i} θPEFTφi
在这里插入图片描述
其中 θ P E F T 0 θ_{PEFT_0} θPEFT0 θ P E F T φ i θ_{PEFT_{φ_i}} θPEFTφi 是两个阶段的参数更新 Δ θ Δθ Δθ。该策略帮助 TrafficLLM 将自然语言处理能力和跨不同任务的流量模式学习能力封装到专门的PEFT模型中,这些模型由不同任务的指令触发。

在这里插入图片描述

使用PEFT模型进行可扩展适配。利用在流量领域适配期间训练的PEFT模型,TrafficLLM 采用 EA-PEFT 以一种可扩展的适配方式组织这些模型,这有助于 TrafficLLM 轻松适应新环境。图5展示了通过Python脚本实现的EA-PEFT工作流程概览。在EA-PEFT中,TrafficLLM 适配器允许灵活操作以更新旧模型或注册新任务。例如,当面对因客户端版本升级(如应用程序版本漂移)或攻击方法改变(如HTTP请求体变化)而引起的EAC和WAD任务中的流量更新时,适配器可以调用 Model_Update,通过提供新的EAC或WAD数据集来更新特定的PEFT模型。此外,TrafficLLM 可以轻松添加新的流量分析场景。适配器可以调度 Model_Insert 来训练新的PEFT模型,并将其插入到EA-PEFT框架中。基于此,TrafficLLM 凭借EA-PEFT的轻量级适配方案,能够轻松扩展到广泛的流量领域任务。

如图2所示,EA-PEFT技术帮助 TrafficLLM 在适应新的流量环境时,仅需训练 0.62% 的参数,这显著降低了适配成本,减少了 69.9% 的GPU内存占用和 88.8% 的训练时间。TrafficLLM 有效地缓解了重新训练方法的高昂适配成本,促进了在现实场景中部署更多的流量分析任务。

四、实验设置与实现

本节将介绍 TrafficLLM 的实验设置与实现细节,包括实现方案、数据集、基线方法和实验所用评估指标。

A. TrafficLLM 的实现

实验平台:我们在一台超级GPU服务器(super-SYS-420GP-TNR)上进行实验,该服务器配备 5 块 NVIDIA A100 80G GPU、Ubuntu 18.04.1(Linux 5.4.0)操作系统以及 1TB 内存。我们使用 PyTorch 2.0.1 构建 TrafficLLM 原型,并部署 Python 脚本以在 EA-PEFT 框架中集成 TrafficLLM 适配器和 PEFT 模型。在大多数实验中,我们采用 Llama2-7BChatGLM2-6B 作为基础大语言模型。我们选择 P-Tuning v2 作为 PEFT 方法。每个 PEFT 模型的存储大小约为 7.1MB。

超参数设置
数据预处理阶段:我们对每个类别进行数据采样,以避免数据不平衡问题。每个类别的最大流数量为 5,000。训练集、验证集和测试集的比例设为 8:1:1。
流量检测任务:我们遵循先前工作,对以太网层、IP地址和端口进行掩码处理,以避免敏感元信息带来的偏差。
训练阶段:训练步数设为 20,000;初始学习率为 2 × 10⁻²。生成任务的最大源长度和目标长度分别设为 128 和 3,072,而检测任务则设为 3,072 和 32。
推理阶段:在流量生成中,设置 top-p 为 0.70,温度为 0.90;在流量检测中,则设为 0.90 和 0.10。

B. 数据集与任务

为了全面评估 TrafficLLM 的有效性,我们收集了广泛的流量数据集和自然语言指令,用于模型适配和实验。

流量数据集:实验中使用的流量数据集详见表 III。我们使用 10 个不同场景的流量数据集,收集了约 40 万 条训练数据,以构建泛化能力:
跨任务泛化
* 流量检测:为了评估 TrafficLLM 在各种网络场景下的检测性能,我们选择了 8 个流量数据集来衡量其检测恶意和良性流量的能力。在恶意流量检测任务中,我们引入了恶意软件流量检测(USTC TFC 2016)、僵尸网络检测(ISCX Botnet 2014)、恶意 DoH 流量检测(CIC DoHBrw 2020)和 Web 攻击检测(CSIC 2010)任务。在细粒度良性流量检测中,我们采用了加密 VPN 流量检测(ISCX VPN 2016)、Tor 行为检测(ISCX Tor 2016)、加密应用分类(CSTNET 2023)和网站指纹识别(CW-100 2024)。我们使用流量检测指令、数据集中的流/数据包以及相应的标签来构建人工指令 Si、流量数据 Xi 和目标标签 yi
* 流量生成:为了实现流量生成能力,我们复用上述流量数据集。我们利用流量标签 yi 生成生成任务指令 Si,并采样数据包以形成合成数据包 X̂i
对未见数据的泛化:为了衡量 TrafficLLM 对未见流量数据的泛化能力,我们设置了概念漂移APT攻击检测场景,这两个场景在学术界备受关注。我们选择了 APP-53 2023 和 DAPT 2020 这两个代表性的开源数据集,它们包含用于评估的历史和未来阶段流量。

我们选择这些数据集旨在覆盖流量中的各种应用(如移动应用、网站、恶意软件)、协议(如 HTTP、QUIC、TLS1.3、DoH)、网络环境(如 VPN、Tor、僵尸网络)和攻击类型(如 Web 攻击、APT 攻击)。这确保了评估模型在不同场景下鲁棒性的多样性。

自然语言指令:自然语言数据集的详细信息见表 IV。为了构建作为 TrafficLLM 中人工指令的自然语言语料库,我们邀请安全专家和大学生为每个下游任务提供准确的任务描述。此外,为了增加上下文的多样性,我们使用 ChatGPT 通过提示工程重写这些专家指令,并基于人工标注移除相似的指令。每条指令至少被重写 20 次。最终,我们收集了约 1 万 条文本指令来构建训练数据。

C. 基线方法与评估指标

基线方法:为了比较 TrafficLLM 的性能,我们主要使用两类基线方法,包括基于机器学习的流量检测和生成方法。
基于机器学习的检测方法:我们使用跨不同任务的最先进流量检测方法作为基线,以评估 TrafficLLM 的流量检测能力。基线包括:(i)统计特征方法:AppScanner、CUMUL、BIND、k-指纹识别、FlowPrint;(ii)深度学习方法:FS-Net、深度指纹识别、Graph-DApp、TSCRNN、Deeppacket;(iii)预训练方法:PERT、ET-BERT。
基于机器学习的生成方法:为了评估流量生成性能,我们将 TrafficLLM 与最先进的基于机器学习的生成方法进行比较。基线包括:(i)基于 GAN 的 IP 头部轨迹生成算法:Netshare;(ii)基于条件 GAN 的数据增强方法:PacketCGAN;(iii)基于 CNN-GAN 的 IP 数据包生成器:PAC-GAN。请注意,基于规则的方法不在比较范围内,因为它们只能模拟网络特征,难以通过手动配置生成细粒度的数据包特征。

评估指标:我们使用以下指标评估 TrafficLLM:(i)精确率,(ii)召回率,(iii)F1 分数,(iv)准确率,(v)误报率,(vi)宏观平均 ROC 曲线下面积,(vii)Jensen-Shannon 散度。请注意,JSD 和误报率越低,表示保真度越高。

五、评估

本节评估 TrafficLLM 在不同场景下的泛化能力,包括各种检测与生成任务、未见场景以及真实世界环境。

A. 在检测任务上的泛化能力

我们首先评估 TrafficLLM 能否在不同场景下达到稳健的检测性能,并分析其流量检测泛化能力的原因。

在不同任务上的泛化:表 V 和表 VI 展示了 TrafficLLM 在 10 个数据集上针对各种流量检测任务的性能。结果表明,TrafficLLM 能够对所有 229 种流量类型进行分类,F1 分数介于 0.9320 至 0.9960 之间。相比所有基线方法,TrafficLLM 最多取得了 80.12% 的性能提升。像 PERT 和 ET-BERT 这样的预训练方法也取得了可接受的结果,平均 F1 分数分别为 0.8128 和 0.9324,这是因为它们相较于先前工作,额外将预训练数据集的流量字节输入模型。然而,由于 TrafficLLM 利用了 LLM 的模式挖掘和泛化能力,其在 F1 分数指标上最多优于 PERT 和 ET-BERT 9.63%

此外,由于不同检测场景之间存在差异,大多数工作在跨任务共享模型时泛化能力较差(例如,FlowPrint 的 F1 分数范围在 0.2254 到 0.7015 之间,方差为 3.396%)。结果表明,以往的基于机器学习的方法由于依赖于人工设计的特征和预定义的模型结构,通常表现出较低的泛化能力。例如,Deeppacket 在 EVD 任务(ISCX VPN 2016)上取得了 0.9503 的 F1 分数,但在 EAC 任务(CSTNET 2023)上仅获得 0.3890 的 F1 分数。相反,TrafficLLM 以 0.9875 的平均 F1 分数和 0.018% 的方差优于现有方法,而预训练模型 ET-BERT 的平均 F1 分数为 0.9324,方差为 0.151%。

对抗特征掩码的鲁棒性:为了理解 TrafficLLM 为何能在流量检测任务中保持这种泛化能力,我们在推理阶段随机掩码部分数据包元信息以测试检测性能。在图 6 中,结果表明即使有 15% 的特征缺失,TrafficLLM 仍能获得 0.9171 的宏观 AUC。然而,预训练模型 ET-BERT 和 PERT 的性能显著下降。例如,对于目标误报率 FPR = 1 × 10⁻¹,TrafficLLM 实现了 0.90 的检出率 TPR,而两个基线的 TPR 都低于 0.40。这种对抗特征缺失的鲁棒性源于从 LLM 继承的模式推理和泛化能力,而先前的工作不具备此能力。使用原始流量数据作为输入,TrafficLLM 不严重依赖部分特征。它受益于自动学习元信息对特定任务的重要性和关系以构建通用流量表示的能力,这有助于 TrafficLLM 在不同场景下释放强大的泛化能力。

B. 在生成任务上的泛化能力

我们评估 TrafficLLM 在不同场景下的生成能力,并分析生成流量的实用性。

分布度量:为了评估流量生成能力的性能,我们计算了真实数据包与合成数据包元信息分布之间的分布度量。图 7 展示了与 3 个基线方法相比,在五元组上的结果。我们发现 TrafficLLM 在缩小与真实分布差距方面最多比现有方法好 73.76%。对于不同类别的良性和恶意流量,TrafficLLM 实现了 0.0179 的平均 JSD,这比最先进的流量生成方法 NetShare 的 0.0295 平均 JSD 好 39.32%。为了进行更详细的分析,图 8 展示了源端口和数据包长度的累积分布函数。结果表明,现有的基于 GAN 的方法无法很好地捕捉分布。TrafficLLM 得益于参数规模带来的记忆优势,有助于还原原始流量数据的字段值。结果还表明,TrafficLLM 有效地学习了细粒度的流量表示,使其分布与真实情况保持一致。

合成样本的实用性:TrafficLLM 可以使用生成的元信息重建原始流量的数据包。此外,我们认为 TrafficLLM 的生成能力有两个有前景的应用:(i) 为安全测试生成数据包,(ii) 在少样本场景下构建分类器。首先,为了验证生成数据包的质量,我们使用真实数据集的 2k 条流量轨迹,基于多项朴素贝叶斯和 SGD 分类器构建一个稳健的集成模型,作为基于机器学习的 NIDS 原型。然后,我们使用合成轨迹测试该模型是否能识别这些数据包。在表 VII 中,我们发现 TrafficLLM 生成的数据包可以被真实世界分类器以 0.9483 的平均 F1 分数识别,这比最先进的方法 NetShare 好 4.68%。这意味着 TrafficLLM 可以以极高的置信度生成测试样本。为了衡量 TrafficLLM 的第二个应用,我们使用 2k 个生成的数据包构建分类器,并将真实数据包作为测试集。结果表明,在使用合成数据构建的分类器检测真实世界流量方面,TrafficLLM 在大多数指标上优于基线。TrafficLLM 可用于良性和恶意流量的数据增强,平均 F1 分数为 0.8739,比基线好 3.07%-33.92%

C. 对未见数据的泛化

与传统的基于机器学习的方法不同,TrafficLLM 的一个突出特性是其对未见数据的泛化能力。我们利用概念漂移和 APT 攻击数据集 [42],[55] 来设置未见数据检测场景进行评估。

时间和版本漂移:我们在概念漂移场景下评估 TrafficLLM,在该场景中,由于动态行为(例如应用更新),待检测的流量分布通常会随时间偏离原始训练数据。在此设置中,我们使用 APP-53 2023 数据集,其中包含 53 类移动应用流量及其经过 1 个月时间间隔和新应用版本更新后的漂移流量。我们在历史流量上训练 TrafficLLM,并在无漂移、1 个月时间间隔漂移和新应用版本漂移数据集上评估其泛化性能。在图 9 中,TrafficLLM 在面临概念漂移场景时有效地保持了检测性能。在时间和版本漂移下,其 F1 分数分别比基线高 4.3%-11.3%6.7%-18.6%。由于 TrafficLLM 继承了 LLM 的强大泛化能力,它能捕捉到漂移环境中的通用流量表示,这确保了检测未见漂移流量的鲁棒性。

APT攻击检测:接着,我们在 APT 攻击场景下评估 TrafficLLM,该场景中由于攻击者的动态行为变化,流量包含未见分布。我们使用 DAPT 2020 数据集 [42] 在分阶段 APT 攻击检测任务上评估它。在此设置中,对手在几天内进行包含侦察、立足点建立、横向移动和数据窃取的四阶段攻击。我们使用良性和阶段 1 的 APT 攻击流量训练 TrafficLLM,并在未来阶段的攻击上进行测试。如图 10 所示,结果表明 TrafficLLM 实现了 89.3% 的平均 F1 分数来检测未来阶段的攻击流量。尽管这些阶段的攻击流量差异极大(例如,阶段 1 攻击主要旨在利用攻击工具识别漏洞,而阶段 4 攻击包含使用 C&C 通道从受害者服务器下载文件的流量),但 TrafficLLM 的模式挖掘能力能够区分恶意流量与良性流量的表示。这种强大的异常检测能力帮助 TrafficLLM 在动态流量分布上相比三个基线方法实现了更好的泛化性能。

泛化能力评述:为了进一步分析为何 TrafficLLM 保持了传统基于机器学习的方法所不具备的这种泛化能力,我们研究了原生基础 LLM 和调优后的流量领域 PEFT 模型能力的影响。首先,我们随机初始化 LLM 的权重以移除预训练知识,并直接用流量数据集对其进行调优。我们重用 APP-53 2023 和 DAPT 2020 数据集的相同设置,并报告平均 F1 分数和误报率 FP。如图 11 所示,在没有预训练知识的情况下,TrafficLLM 的性能急剧下降。这是因为预训练知识通过海量语料(例如规划和计算)帮助 LLM 获得模式挖掘和推理能力,这对流量分析也至关重要。其次,我们通过移除 PEFT 模型来禁用流量领域知识,并直接在基础模型上测试。没有任何流量领域知识的指导,LLM 倾向于随机生成标签,使其无法胜任工作。然而,当使用 20% 的训练数据将部分流量领域知识注入 LLM 时,TrafficLLM 在未见流量数据上获得了巨大的性能提升。领域知识帮助 LLM 有效地激活对流量数据的泛化能力,在未见流量上构建通用流量表示。

D. 深入分析

跨不同 LLM 的适应性:为了验证 TrafficLLM 是否适用于不同的 LLM,除了 Llama2 和 ChatGLM2,我们采用额外的最先进 LLM 来构建 TrafficLLM,包括 Vicuna、Mistral 和 Gemma。如图 V-C 所示,结果表明 TrafficLLM 的框架可以轻松应用于所有开源的 LLM,并具有强大的性能。

LLM 参数规模的影响:在图 V-C 中,我们探讨了 LLM 参数规模对流量检测和生成性能的影响。尽管 Llama2-13B 和 ChatGLM2-12B 的参数规模几乎是其 7B 和 6B 版本的两倍,但这四种 LLM 取得了相似的性能。6B 模型足以在流量检测和生成任务上超越现有的基于机器学习的基线方法。

核心组件的有效性:为了验证 TrafficLLM 核心组件的有效性,我们通过移除流量领域分词器(-Tokenization)、用默认调优替换双阶段调优管道(- Dual-Stage)以及用全参数微调替换 EA-PEFT 方案(- EA-PEFT)构建了三个 TrafficLLM 变体。如图 13 所示,修改这些组件将在上述五个 LLM 中导致 7.2%-78.7% 的性能下降,以及 927.9% 的时间和 216.2% 的 GPU 内存开销增加,这表明了这些组件的重要性。

开销分析:我们研究了 TrafficLLM 在一块 NVIDIA A100-80GB GPU 上的计算开销。训练一个像 ChatGLM2-6B 这样的 6B 模型,更新一个新的 PEFT 模型(涉及在 50,000 个任务特定样本上进行 20,000 次训练步)需要 23GB GPU 内存14 小时训练时间。在推理阶段,加载 TrafficLLM 需要 13GB GPU 内存,生成一个预测标签或一个 1000 词元的合成数据包分别耗时约 0.2 秒10 秒。为了降低开销,考虑采用更小的 LLM 或使用压缩方法可能有助于加速适配。

E. 真实世界评估

为了评估在真实世界场景中的实用性,我们在一次 LLM 竞赛中向广大安全从业者开放了 TrafficLLM 的框架,并将 TrafficLLM 部署在一家顶级安全公司。

个人使用评估:为了调查 TrafficLLM 在科研中的有效性并从社区收集反馈,我们将 TrafficLLM 整合为一场全国性 LLM 竞赛的一个赛道。从 2023 年 11 月到 2024 年 3 月,该竞赛有来自约 200 家机构的 1,901 支团队和超过 3,000 名选手参与。我们联合了多所大学和互联网公司来开发竞赛平台。在该赛道中,选手必须使用 TrafficLLM 的框架配合自定义指令和流量数据来解决 MTD、BND 和 EVD 任务。每位选手可以训练自己的模型并在我们的在线评分系统中提交。竞赛结束后,我们统计了所有选手的分数。如图 V-E 所示,58% 的选手在本次竞赛中达到了 90% 以上的准确率。甚至有 24% 的选手模型表现优于 96% 的准确率。经过选手在竞赛期间的大量验证,TrafficLLM 被证明能够轻松适配 LLM 并具备强大的性能。

企业部署:我们将 TrafficLLM 部署在一家向数百家企业客户提供基于签名的 WAF 和 NIDS 服务的安全公司。这些服务由安全专家运营,通过服务背后的手动分析记录日常的恶意软件和 Web 攻击。他们通过匹配 WAF 规则或手动分析具有异常行为(例如包含攻击载荷)的流量日志来生成真实标签。我们重放了记录的包含 17,556 和 7,083 条恶意软件及 Web 攻击流量的流量,使用 TrafficLLM 进行 MTD 和 WAD 任务。如图 V-E 所示,在真实世界的 MTD 和 WAD 任务中,TrafficLLM 以 98.7%99.8% 的 F1 分数优于基线方法。与现有的基于机器学习的方法相比,TrafficLLM 有效地将误报率至少降低了 69%95%。这归因于 TrafficLLM 稳健的表示学习能力,能够区分良性和异常流量的模式,使 TrafficLLM 在真实世界场景中展现出强大的泛化能力。

六、相关工作

加密流量分类。加密流量分类是网络管理和安全监控的一项关键技术。由于无法直接检查加密数据包的内容,研究人员已转向各种机器学习算法来分析模式、时间戳、数据包大小和其他元数据以对流量进行分类。例如,Van 等人利用半监督方法对设备、证书和统计特征进行建模,用于移动应用指纹识别。Taylor 等人利用数据包大小训练随机森林流量分类器。Fu 等人利用流交互图来区分恶意行为和良性流量。近期的研究更侧重于使用预训练模型来提高模型泛化能力。例如,Lin 等人利用 BERT 构建预训练模型,用于多类型流量分类任务。然而,现有工作仅专注于处理流量数据。与这些工作不同,TrafficLLM 联合学习专家指令和原始流量数据,使其在各种流量分析任务中更加强大。

流量数据增强。数据增强已广泛应用于流量分析的少样本场景,以增加流量数据的数量和多样性。例如,Qing 等人利用特征空间中流量数据的分布来增强训练数据以进行模型训练。Jan 等人使用生成模型为僵尸网络检测生成带标签的数据集。先前的大量工作利用生成对抗网络(GANs)来合成流量中的元数据。与这些工作不同,TrafficLLM 能够基于流量表示学习,生成包含准确头部和合成载荷的完整数据包

七、结论

本文开发了一个强大的框架,使大语言模型能够以强大的泛化能力适应网络流量分析。TrafficLLM 采用了三项核心技术:用于处理指令和流量数据的流量领域分词、利用指令和原始流量数据学习通用流量表示的双阶段调优管道,以及为适应新场景而更新模型参数的EA-PEFT 技术。我们在 10 个开源数据集上评估了 TrafficLLM。大量实验表明,与现有的基于机器学习的模型相比,TrafficLLM 在不同任务和未见流量场景下均展现出卓越的泛化能力。我们开源了源代码和数据集以促进未来研究,并希望 TrafficLLM 能够成为流量分析领域更多大语言模型适配设计的基石。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐