Skip to main content

Minute 17

· One min read

Método

Remoto

Duração

9:00 - 10:00

Supervisores presentes

  • Rafael Teixeira
  • Rafael Direito ✔️

Membros presentes

  • Rodrigo Abreu ✔️
  • Eduardo Lopes ✔️
  • João Neto ✔️
  • Hugo Ribeiro ✔️
  • Jorge Domingues ✔️

Assuntos discutidos

  • Powerpoint MS4

Resumo

Powepoint

Slide 2

NWDAF is a core component

Slide 3

15s neste slide.

Slide 4 e 5

Ok

Slide 6,7,8,9

Ok

Slide 10

Dizer que fizemos aquele da duvida

Slide 11

  • Separar as main functionalities do projeto com o caso de uso.
  • Meter a implementação do caso de uso no slide a seguir.
  • Meter APIs do caso de uso do core 5G

Slide 12

  • Alterar a parte do software pago no nProbe.
  • Cortar o ultimo topico

Meter um slide de learned lessons. Falar do 3Gpp e o facto e ter limitações na parte de ML

Notas

  • Ajustes ao powerpoint e preparar apresentação.

Ficheiros relacionados

Minute 16

· One min read

Método

Remoto

Duração

9:00 - 10:00

Supervisores presentes

  • Rafael Teixeira
  • Rafael Direito (remoto) ✔️

Membros presentes

  • Rodrigo Abreu ✔️
  • Eduardo Lopes ✔️
  • João Neto
  • Hugo Ribeiro ✔️
  • Jorge Domingues ✔️

Assuntos discutidos

  • Poster
  • Video Promocional
  • Demo

Resumo

Poster

  • Muito texto na primeira parte.
  • Separar o caso de uso implementado dos objetivos concretos.
  • Falar mais individualmente daquilo que os componentes fazem.
  • No Validation, apresentar o que foi feito no caso de uso e resultados.

Video

  • Bom no geral.
  • Mostra demasiado a parte de MLOps.
  • Mostrar mais parte das integração com o 5G, assim como foi feito para MLOps.

Demo

  • Mostrar fluxo de dados na pipeline.
  • Mostrar as APIs com Webhooks.
  • Mostrar o chronograf.
  • Mostrar Dashboard.

Notas

  • Ajustes ao poster e video promocional.
  • Fazer a demo.

Ficheiros relacionados

Minute 15

· One min read

Método

Remoto

Duração

16:15 - 16:50

Supervisores presentes

  • Rafael Teixeira
  • Rafael Direito (remoto) ✔️

Membros presentes

  • Rodrigo Abreu ✔️
  • Eduardo Lopes ✔️
  • João Neto ✔️
  • Hugo Ribeiro ✔️
  • Jorge Domingues ✔️

Assuntos discutidos

  • Deployment em Kubernetes
  • Video Promocional
  • Demo

Resumo

Deployment em Kubernetes?

  • Docker compose analisado.
  • Não faz grande diferença para nós e é complexa a implementação por termos muitos volumes.
  • Fica para future work.
  • Deixamos tudo pronto para ser implementado.

Video

  • Mostrar o script atual como exemplo.
  • Realçar o resto das coisas: MLOPs pipeline, Estatisticas dos modelos pelas APIs, standards do 3Gpp. Continuous Delivery e Deployment.

Demo

  • Mostrar dashboard do Chronograf.
  • Observability: graficos com a evolução dos modelos, pagina html a mostrar os dados a aumentar.
  • Ilustrar as APIs a funcionar com o Webhook.
  • Mostrar pacotes de rede traduzidos para json numa interface web.

Notas

  • Desenvolver as interfaces web
  • Melhorar script do video promocional
  • Acabar os ultimos fixes ao codigo ASAP

Ficheiros relacionados

Minute 14

· 2 min read

Método

Presencial

Duração

9:00 - 10:00

Supervisores presentes

  • Rafael Teixeira ✔️
  • Rafael Direito (remoto) ✔️

Membros presentes

  • Rodrigo Abreu ✔️
  • Eduardo Lopes ✔️
  • João Neto (remoto) ✔️
  • Hugo Ribeiro (remoto) ✔️
  • Jorge Domingues ✔️

Assuntos discutidos

  • Implementação dos algoritmos de ML
  • APIs 5G

Resumo

ML

  • deixar algumas coisas que temos conhecimento
  • fazer plot da accuracy do modelo ao longo do tempo
  • graficos é uma boa solução para mostrar o nosso trabalho
  • fazer hiperparameterização
  • dar trigger ao retraining quando se deteta um novo ataque.
  • temos de dar numeros que impressionem para vender o nosso trabalho.
  • ilustrar complexidade

APIs 5G

  • subscrever um modelo deployed e fazia alerta para uma api externa
  • usar webhooks para simplificar
  • focar no re-training e ignorar a parte de monitoring
  • Implementar API para treino por pedido para permitir que o operador de rede consiga analisar a evolução dos modelos com a mudança dos dados
  • API recente, logo os seus esquemas são limitados relativamente aos dados q ela permite expor
  • Esta API dá valor ao trabalho porque aproxima a nossa parte de ML a aquilo q realmente se verifica nas especificações (TS) da NWDAF

Notas

  • Esta reunião teve uma primeira parte com o orientador Rafael Teixeira presencialmente, com todos os elementos do grupo presentes (uns remotamente e outros presencialmente). Segunda parte da reunião foi remotamente com o orientador Rafael Direito mais focada na área de 5G e apenas os seguintes elementos do grupo estiveram presentes: Rodrigo, Eduardo e Jorge.
  • Atualizar arquitetura.
  • Preparar o checkpoint 3.

Ficheiros relacionados

  • Arquitetura atualizada

alt text

Minute 13

· 3 min read

Método

Presencial

Duração

14:00 - 15:00

Supervisores presentes

  • Rafael Teixeira ✔️
  • Rafael Direito ✔️

Membros presentes

  • Rodrigo Abreu ✔️
  • Eduardo Lopes ✔️
  • João Neto ✔️
  • Hugo Ribeiro ✔️
  • Jorge Domingues ✔️

Assuntos discutidos

  • APIs 5G
  • Implementação dos algoritmos de ML

Resumo

ML

  • Pull periodico
  • Meter ML Training a consumir do topico dos dados processados
  • trigger do retraining
  • dividir dados "stratified split"
  • Model as a Service
  • Guardar em memória a performance do modelo.

APIs 5G

  • Equilibrar a velocidade de consumo dos pacotes, é importante não abrandar o 5G.
  • Meter a parte de ML integrada com o 5G.
  • Conseguir decidir qual modelo treinar pelas apis, obter os resultados de cada um e escolher o modelo certo de acordo com os dados.
  • Usar só o que precisamos do payload.
  • Identificar falhas das especificações.
  • Analisar melhor as 3 APIs de ML (provision, training e monitor)
  • Analisar os esquemas das APIs, uma vez q são recentes, estes podem ser um pouco incompletos
  • Documentar todas as alterações feitas nos esquemas utilizados ("crítica construtiva" para melhorar as TS)
  • Testar bem as APIs para garantir que não introduzem atraso na rede 5G

Análise do Abstract para o students@deti

Notas

Ficheiros Relacionados

  • Logo para o students@deti Logo

  • students@deti abstract

Modern networks have evolved from static infrastructures into dynamic, intelligent, and adaptive systems. 5G and Beyond 5G networks need to handle large volumes of data, support a wide variety of applications, and ensure high reliability and low latency. However, increased data flow can degrade network performance, and usage spikes may compromise service quality. Additionally, technical challenges such as high latency and packet loss affect data transmission, while physically expanding infrastructure requires large investment. To address these challenges, this work proposes the development of a scalable and modular MLOps pipeline capable of integrating machine learning and automation to optimize networks. The system will be designed to identify patterns within the network, facilitating adaptive optimization and automated decision-making. Our case study focuses on anomaly detection, a critical function for maintaining optimal network performance and security. By leveraging machine learning models within the MLOps pipeline, the system can identify nine types of attacks amidst benign traffic. This approach minimizes service disruptions, enhances reliability, and supports the network’s capacity to self-heal and adapt to varying conditions, ensuring consistent quality of service across diverse and demanding applications.

Minute 12

· 2 min read

Método

Presencial

Duração

9:00 - 10:00

Supervisores presentes

  • Rafael Teixeira ✔️
  • Rafael Direito ✔️

Membros presentes

  • Rodrigo Abreu ✔️
  • Eduardo Lopes ✔️
  • João Neto ✔️
  • Hugo Ribeiro ✔️
  • Jorge Domingues ✔️

Assuntos discutidos

  • APIs 5G
  • Implementação dos algoritmos de ML

Resumo

APIs 5G

  • NWDAF é mais que o coletor. Não fazer nada com eles é estranho.
  • O santard não te deve impedir.
  • Solução para a implementação a ser discutida durante a semana.
  • Não temos API no core 5G, é um dashboard.
  • Usar de forma programática é impossível.
  • Ver APIs do 5G versão alfa.
  • Deixar estar o nProbe.
  • Essas APIs vão dar para fazer a manutenção dos modelos.

ML

  • o mesmo topico do consumer do clickhouse é o do ml inference
  • Estamos com bons resultados nos modelos.
  • Não precisamos de Deep NN (por enquanto não temos justificação para a usar) -> pode não ser necessário usar Keras
  • Parar de fazer cold start ou separar o docker de forma a deixar a correr até ao processor e o resto estar separado
  • API para fazer post do pickle do melhor modelo (do training para o inference)
  • Modelo classificativo deve treinar só com os dados de ataques.
  • muito dificil construir um modelo que distingue entre ataque e não ataque e qual o tipo de ataque
  • modelo mais eficiente em inferência do que em treino

Notas

  • Mostrar nova arquitetura ao orientador Rafael Direito.
  • Preparar o checkpoint 2.

Ficheiros Relacionados

Minute 10

· 4 min read

Método

Presencial

Duração

10:00 - 11:00

Supervisores presentes

  • Rafael Teixeira ✔️
  • Rafael Direito ✔️

Membros presentes

  • Rodrigo Abreu ✔️
  • Eduardo Lopes ✔️
  • João Neto ✔️
  • Hugo Ribeiro ✔️
  • Jorge Domingues ✔️

Assuntos discutidos

  • APIs 5G
  • Componente de Machine Learning

Resumo

APIs 5G

  • No data relay, temos de comunicar com o NRF para ir buscar um URL para saber onde fazer post dos dados (exposição default da NWDAF)
  • Temos de nos registar no NRF
  • Inicialmente fazer isto de forma automatica ao dar up à pipeline
  • Ver NEF para ir buscar os dados
  • Na resposta chega ter o IP e a port da NF instance
  • Ser compliant é passar em testes unitários e de integração.
  • Escolher o que nós queremos do payload e usar

ML

  • Ter um modelo, dar deployment e avaliá-lo.
  • Escolher features, escolher modelo e submeter modelo.
  • Usar diretamente o csv para termos logo muitos dados.
  • Primeiro testes unitários, depois testes de integração.

Balancear dados de treino.

  • SMOTE

  • Gerar dados artificiais negativos para balancear ou cortam positivos.

  • Alterar a pipeline para mandar dados mais rapidamente.

  • Teste com o groundtruth é no ML Training.

  • Para validar o eval é só no modelo em deployment.

  • .corr_metrics no pandas -> indica a relação das features entre si.

  • correlação 0 entre features é mau -> não conseguimos retirar relação.

  • em princípio não precisaremos de mais do que aqueles modelos classificativos (Random Forest, XGBoosting, NN).

Model Testing Report:

  • PRECISION: Quantidade de instâncias positivas que de facto são positivas.
  • São muito usados na saúde porque não geram tantos falsos positivos
  • F1: Medida que vamos considerar (balanceada).
  • O que se usa hoje em dia é MCC -> Mas vamos usar F1 Score.
  • Não vamos usar accuracy -> extremamente biased principalmente no nosso caso.
  • Mudar de classificativo para binário para simplificar. Ver só se é ataque ou não ataque.
  • Quando conseguirmos ter o binário em condições -> Passar para classificativo.
  • weighted avg -> avg de acordo com as classes.
  • macro avg -> desconsidera qualquer peso.

Notas

  • Próxima reunião: 30/04 14:00h

Ficheiros Relacionados

Exemplo de um relatório de testes dos modelos.

2025-04-22 00:13:51,510 - INFO - Model training complete.
2025-04-22 00:20:06,972 - INFO - Starting the ML pipeline...
2025-04-22 00:20:06,972 - INFO - Fetching new training data from ClickHouse...
2025-04-22 00:20:07,024 - INFO - Fetched 8210 rows and 46 columns
2025-04-22 00:20:07,024 - INFO - Preprocessing data...
2025-04-22 00:20:07,030 - INFO - Attack labels encoded: [' Fuzzers ', ' Reconnaissance ', 'Benign', 'DoS', 'Exploits', 'Generic']
2025-04-22 00:20:07,031 - INFO - Rows with Label = 1: 39
2025-04-22 00:20:07,031 - INFO - Final dataset shape after preprocessing: (8210, 43)
2025-04-22 00:20:07,031 - INFO - Training and comparing classifiers...
2025-04-22 00:20:07,034 - INFO - Training Random Forest...
2025-04-22 00:20:07,299 - INFO -
--- Classification Report: Random Forest ---
2025-04-22 00:20:07,303 - INFO -
precision recall f1-score support

1 0.00 0.00 0.00 1
2 1.00 1.00 1.00 1636
4 1.00 0.20 0.33 5

accuracy 1.00 1642
macro avg 0.67 0.40 0.44 1642
weighted avg 1.00 1.00 1.00 1642

2025-04-22 00:20:07,303 - INFO - Training Gradient Boosting...
2025-04-22 00:20:14,447 - INFO -
--- Classification Report: Gradient Boosting ---
2025-04-22 00:20:14,451 - INFO -
precision recall f1-score support

0 0.00 0.00 0.00 0
1 0.00 0.00 0.00 1
2 1.00 1.00 1.00 1636
4 1.00 0.40 0.57 5

accuracy 1.00 1642
macro avg 0.50 0.35 0.39 1642
weighted avg 1.00 1.00 1.00 1642

2025-04-22 00:20:14,451 - INFO - Training MLP (Neural Network)...
2025-04-22 00:20:14,639 - INFO -
--- Classification Report: MLP (Neural Network) ---
2025-04-22 00:20:14,644 - INFO -
precision recall f1-score support

1 0.00 0.00 0.00 1
2 1.00 1.00 1.00 1636
4 0.00 0.00 0.00 5

accuracy 1.00 1642
macro avg 0.33 0.33 0.33 1642
weighted avg 0.99 1.00 0.99 1642

2025-04-22 00:20:14,645 - INFO - Model training complete.

Minute 9

· One min read

Método

Presencial

Duração

9:00 - 10:00

Supervisores presentes

  • Rafael Teixeira ✔️
  • Rafael Direito ✔️

Membros presentes

  • Rodrigo Abreu ✔️
  • Eduardo Lopes ✔️
  • João Neto ✔️
  • Hugo Ribeiro ✔️
  • Jorge Domingues ✔️

Assuntos discutidos

  • Chronograf
  • ML
  • 5G INtegration
  • Novos horários de reuniões

Resumo

  • duvidas no chronograph
  • conexão entre o chronograf e um influx
  • Pipline sem ML a funcionar e depois focar no resto
  • Malta da integração com o 5g se não estiverem a fazer nada, podem começar.

ML

  • O ML vai ter de conseguir pedir dados por API ao Data Processor.

  • Ir buscar o dataset

  • Ver modelos para aplicar.

  • Quando eles fizerem as previsões.

  • Transformar num pickle.

  • Sempre que o modelo estiver pronto, mandar para o inference.

  • Divisão de features

5G Integration

  • Ver as APIs da release 18.

Planeamento das proximas reuniões durante a Pácoa e Semana Académica.

22/04 10h 28/04 ???

Notas

  • Acabar a pipeline o mais rápido possível, para conseguir passar à parte de ML.

Minute 8

· 2 min read

Método

Presencial

Duração

9:00 - 10:00

Supervisores presentes

  • Rafael Teixeira ✔️
  • Rafael Direito ✔️

Membros presentes

  • Rodrigo Abreu ✔️
  • Eduardo Lopes ✔️
  • João Neto ✔️
  • Hugo Ribeiro ✔️
  • Jorge Domingues ✔️

Assuntos discutidos

  • Apresentação MS3
  • Groundtruth
  • Estado da implementação
  • Próximos passos

Resumo

Powerpoint

  • Alterar última linha do SoA. -> Apontar a lacuna e o que nós vamos melhorar.
  • Arquitetura -> alterar a ligação do chronograph ao service register.
  • Alterar diagramando deployment -> Adicionar as novas coisas.
  • Alterar foto do pacote JSON -> Dividir em 2 para ficar readable e dar highlight a partes importantes.
  • Future work -> Falta falar de ML.
  • Demo -> mostrar interface, logs, containers e código.
  • Mostrar calendário atualizado (de forma dinâmica).

Geral

  • No processor fazer chunking.
  • Documentar tópicos do kafka.

Groundtruth

  • Match do timestamp com o timestamp do pacote.
  • Usar timestamp e ports para verificar o que estava a acontecer.
  • Fazer subset dos ataques.
  • Timestamps: start time é o inicio da flow e last time o fim. (uma flow inclui vários pacotes)
  • Carregar o CSV do groundtruth em memória.
  • Se der valores diferentes, não preocupar porque pode ter havido mudanças no código do nProbe.

ML

  • O modelo só treina quando tem dados suficientes.
  • Acumula dados num buffer e depois usa para treino.

Data Processor

  • Meter o pré-processamento das queries da BD do lado do Processor.

Notas

  • Acabar o powerpoint ASAP.
  • Atualizar Microsite com as coisas da MS3.

Ficheiros relacionados

  • Arquitetura do MVP Arquitetura do MVP

  • Arquitetura Final Architecture Diagram

Minute 7

· 3 min read

Método

Presencial

Duração

9:00 - 10:00

Supervisores presentes

  • Rafael Teixeira ✔️
  • Rafael Direito ❌

Membros presentes

  • Rodrigo Abreu ✔️
  • Eduardo Lopes ✔️
  • João Neto ✔️
  • Hugo Ribeiro ✔️
  • Jorge Domingues ✔️

Assuntos discutidos

  • Dúvidas e problemas na implementação.

Resumo

  • Nos dados, apresentar só se é ataque ou não é ataque -> tem mais accuracy.
  • Com base no csv gerado por eles conseguimos tirar os identificadores.
  • NUSW_NB15 groundtruth, com base neste conseguimos identificar qualquer um deles.
  • Conseguimos saber quanto cada ataque aconteceu.
  • Mesmo ip/porto de ataque: pode atacar ou não atacar, ou atacar de forma diferente. Ver os timestamps do ataque.
  • Filtrar por src ip e filtrar com o timestamp. Se não acontecer nada é não ataque.
  • Tudo o que estivar naquele csv é ataque. O que não estiver não é ataque.
  • Espetar este csv na bd e fazer queries à bd. Ou usar frameworks do python.
  • Treinar modelos é dados históricos.
  • Não temos groundtruth no live data.
  • Conjunto de dados históricos pré-carregados na bd.
  • O edu concluiu coisas da implementação.
  • nprobe funciona em batch.
  • Se ele funciona por conexão temos de ter a certeza que todas as comunicações já comunicaram.
  • Tem que se analisar o nprobe.
  • Os dados raw são mandados para a timeseries. Num dado momento o processor vais buscar à timeseries quando for preciso processar.
  • Usar o scapy.
  • A conversão dos dados (bytes dos pacotes) faz-se no Data Receiver. -> diminui o numero de conversões.
  • Meter em pcap no processor, se tiver de ser.
  • Quanto menos conversões melhor.
  • Ver o tamanho das batches que nós temos.
  • Normalização faz-se quando tivermos de carregar para o dataset de treino.
  • E vai depender de como estivermos a dividir o dataset.
  • Dependendo do algoritmo do modelo, usaremos diferentes tipos de normalização.
  • InfluxDB está indexado ao tempo e aproveitaremos para fazer queries com base nisto.
  • Data drift obriga o retraining e redployment e do modelo.
  • Dados de treino têm sempre ground truth, exceto se for unsupervised learning.

Depois do mvp:

  • Implementar os standards.
  • Service register não vai ser implementado, a menos que terminemos cedo.

Notas

  • Focar em ter um produto funcional no MVP.
  • Demo conta muito -> Ter um dashboard com métricas relevantes.
  • Estamos atrasados, acelerar nesta iteração.