MysteryObstacle/Lambert

GitHub: MysteryObstacle/Lambert

基于BERT架构的加密流量分类微调模型,通过改进注意力机制提升对未知数据集的分类效果。

Stars: 17 | Forks: 0

# Lambert🐣 ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/c522f9211a071216.svg) `注:` 本代码基于 [UER-py](https://github.com/dbiir/UER-py) 和 [ET-BERT](https://github.com/linwhitehat/ET-BERT) ## 1. 简介 Fine-tuning 是基于预训练方法的重要组成部分。 LAMBERT 是一种新颖的 Fine-tuning 模型,它利用其独特的注意力机制来改善序列损失。 这种改进在未经预训练的数据集上尤为明显。 ## 2. 准备工作 ### 2.1 克隆仓库 ``` git clone https://github.com/MysteryObstacle/Lambert.git cd Lambert ``` ### 2.2 创建新的 conda 环境 ``` conda create -n LAMBERT python=3.8.16 conda activate LAMBERT ``` ### 2.3 安装 Pytorch ``` pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu121 ``` ### 2.4 安装其他依赖 ``` pip install -r requirements.txt ``` ### 2.5 配置环境变量 如果你使用的是 Linux,可以这样做: ``` export PYTHON PATH="${PYTHONPATH}:./" ``` 如果你使用的是 Windows,可以手动将 lambert 的根目录路径添加到 python 环境变量中。 ## 3. 数据集 ### 3.1 原始数据集 | 数据集 | 数据包 | 标签 | |------------------|--------|-------| | ISCX-VPN-Service | 60000 | 12 | | ISCX-VPN-App | 77163 | 17 | | USTC-TFC | 97115 | 20 | | CSTNET-TLS1.3 | 581709 | 120 | 1. [ISCX-VPN](https://drive.google.com/drive/folders/1is609sosAdqf9YJAfwr72hBqM4OeNuZq?usp=sharing)(包含 ISCX-VPN-Service 和 ISCX-VPN-App) 2. [USTC-TFC](https://drive.google.com/file/d/1F09zxln9iFg2HWoqc6m4LKFhYK7cDQv_/view?usp=sharing) 3. [CSTNET-TLS1.3](https://drive.google.com/drive/folders/1is609sosAdqf9YJAfwr72hBqM4OeNuZq?usp=sharing) 4. 或者你也可以准备自己的数据集。 ### 3.2 处理后的数据集 `注:` 原始流量数据需要进行预处理,预处理部分与 [ET-BERT](https://github.com/linwhitehat/ET-BERT) 一致 将数据处理好放入 datasets 文件夹后,文件树示例如下: ``` ├─iscx-app │ └─packet │ └─nolabel_test_dataset.tsv │ └─test_dataset.tsv │ └─train_dataset.tsv │ └─valid_dataset.tsv ├─iscx-service │ └─packet │ └─nolabel_test_dataset.tsv │ └─test_dataset.tsv │ └─train_dataset.tsv │ └─valid_dataset.tsv └─ustc-tfc │ └─packet │ └─nolabel_test_dataset.tsv │ └─test_dataset.tsv │ └─train_dataset.tsv │ └─valid_dataset.tsv └─cstnet-tls1.3 └─packet └─nolabel_test_dataset.tsv └─test_dataset.tsv └─train_dataset.tsv └─valid_dataset.tsv ``` ## 3. 使用方法 ### 3.1 预训练 ``` python pre-training/pretrain.py --dataset_path dataset.pt --vocab_path models/encryptd_vocab.txt \ --output_model_path models/pre-trained_model.bin \ --world_size 8 --gpu_ranks 0 1 2 3 4 5 6 7 \ --total_steps 500000 --save_checkpoint_steps 10000 --batch_size 32 \ --embedding word_pos_seg --encoder transformer --mask fully_visible --target bert ``` ### 3.2 Fine-tuning ``` python fine-tuning/lambert.py \ --pretrained_model_path models/pre-trained_model.bin \ --output_model_path output/lambert/lambert.bin \ --evaluate_output_path output/lambert/lambert.txt \ --vocab_path models/encryptd_vocab.txt \ --train_path datasets/ustc-tfc/packet/train_dataset.tsv \ --dev_path datasets/ustc-tfc/packet/valid_dataset.tsv \ --test_path datasets/ustc-tfc/packet/test_dataset.tsv \ --epochs_num 20 --batch_size 32 --embedding word_pos_seg \ --encoder transformer --mask fully_visible \ --seq_length 128 --learning_rate 2e-5 ``` ### 3.3 推理 ``` python inference/infer.py \ --classifier_file fine-tuning/lambert.py \ --classifier_name Lambert \ --load_model_path output/lambert/lambert.bin \ --test_path datasets/ustc-tfc/packet/test_dataset.tsv \ --prediction_path output/lambert/infer.tsv \ --vocab_path models/encryptd_vocab.txt \ --embedding word_pos_seg --encoder transformer --mask fully_visible ```
标签:Apex, BERT, ET-BERT, Google搜索, IP 地址批量处理, LAMBERT, PyTorch, TLS 1.3流量分析, Transformer, UER-py, Vectored Exception Handling, VPN流量识别, 入侵防御系统, 凭据扫描, 加密流量分类, 威胁猎捕, 微调, 恶意流量检测, 机器学习, 注意力机制, 流量识别, 深度学习, 网络安全, 网络流量分析, 逆向工具, 隐私保护, 预训练模型