axinc-ai / ailia-models

The collection of pre-trained, state-of-the-art AI models for ailia SDK
2.04k stars 325 forks source link

Implement falcon-adapter-network-packet #1426

Closed ooe1123 closed 7 months ago

ooe1123 commented 7 months ago

https://github.com/axinc-ai/ailia-models/issues/1396 のPRです。

tagsの推論までのみ。

kyakuno commented 7 months ago

モデルをアップロードしました。 https://storage.googleapis.com/ailia-models/falcon-adapter-network-packet/CORPUS.txt

kyakuno commented 7 months ago

network_attack_detection -> network_intrusion_detectionに変更。

kyakuno commented 7 months ago

TODO

kyakuno commented 7 months ago

@ooe1123 学習に使用されているデータセットから、攻撃パケットのhexを取得して、攻撃として検知するかを確認したいと考えていまして、使用しているデータセットの調査と、hexの作成をお願いしても良いでしょうか?

kyakuno commented 7 months ago

負荷が高いのはコーパスのEmbeddingの計算のようなので、実装いただいたようにsave_vectorでコーパスのEmbeddingを保存しておけば、高速化はできそうですね。 パケットのEmbeddingと、コーパスのテキストのEmbeddingとの距離計算がなぜ成立するのかというのは気になるところで、テキストと画像のEmbeddingの距離が近くなるように学習されているCLIPのように、パケットと該当するテキストのEmbeddingの距離が近くなるように学習されているんですかね。

kyakuno commented 7 months ago

アルゴリズムの論文は下記にありました。 https://github.com/rdpahalavan/PADEC/blob/main/Thesis/Thesis.pdf

kyakuno commented 7 months ago

Finetuningのコードは下記で、24クラス分類問題を解いているようです。ここからパケットデータが抽出できるといいのですが。 https://github.com/rdpahalavan/PADEC/blob/main/Code/Finetuning_Models.ipynb

{'Analysis': 0,
 'Backdoor': 1,
 'Bot': 2,
 'DDoS': 3,
 'DoS': 4,
 'DoS GoldenEye': 5,
 'DoS Hulk': 6,
 'DoS SlowHTTPTest': 7,
 'DoS Slowloris': 8,
 'Exploits': 9,
 'FTP Patator': 10,
 'Fuzzers': 11,
 'Generic': 12,
 'Heartbleed': 13,
 'Infiltration': 14,
 'Normal': 15,
 'Port Scan': 16,
 'Reconnaissance': 17,
 'SSH Patator': 18,
 'Shellcode': 19,
 'Web Attack - Brute Force': 20,
 'Web Attack - SQL Injection': 21,
 'Web Attack - XSS': 22,
 'Worms': 23}
kyakuno commented 7 months ago

タグのテキスト生成をしないのであれば、モデル名をbert-network-packet-flow-header-payloadにして、24クラス分類問題を解くサンプルにした方が見通しが良さそうですね。 https://huggingface.co/rdpahalavan/bert-network-packet-flow-header-payload

kyakuno commented 7 months ago

@ooe1123 方針変更ですみません。Falconはエクスポートしない方向性なので、下記の方針で対応をお願いしても良いでしょうか?

kyakuno commented 7 months ago

@ooe1123 テストデータは下記だとどうでしょうか? https://huggingface.co/datasets/rdpahalavan/network-packet-flow-header-payload?row=0

kyakuno commented 7 months ago

bert-network-packet-flow-header-payloadはリポジトリを分けることになりましたので、こちらは単独でマージさせていただきます。

kyakuno commented 7 months ago

FP16だと結果が変化したので無効化。ailiaは1.2.10以降でOK。