Minicurso 1: Processamento confidencial de dados de sensores na nuvem (Terça-Feira, 13/10, 09:00-12:15)
Resumo: Este minicurso apresenta como ferramentas de computação confidencial podem ser usadas para o desenvolvimento de aplicações que processam dados potencialmente sensíveis de aplicações de Internet das Coisas na nuvem. Para o processamento confidencial, nosso minicurso usará tanto o SDK (Software Development Kit) para SGX da Intel (para novas aplicações e serviços) como uma plataforma de execução, SCONE (ideal para execução de aplicações existentes). Para disseminação de dados de Internet das Coisas, nós utilizaremos Apache Kafka e para a orquestração de aplicações, usaremos Kubernetes. Os conceitos apresentados aqui serão ilustrados através de uma aplicação distribuída de processamento de dados de consumo de energia elétrica.
Detalhes das atividades práticas do minicurso:
As práticas previstas no minicurso "Processamento confidencial de dados de sensores na nuvem" são baseadas tanto no Software Development Kit (SDK) da própria Intel quanto com o SCONE, um conjunto de ferramentas para execução de aplicações existentes. Exemplos de atividades são as seguintes:
Aplicações para entendimento de código seguindo as duas abordagens de desenvolvimento;
Aplicações que usam atestação de código e provisionamento seguro de segredos;
Aplicações confidenciais que usam um Apache Kafka para comunicação.
Os procedimentos apresentados foram validados em Ubuntu 18.04, mas devem funcionar também em 20.04. Um número limitado de VMs estará disponível para os participantes, elas serão alocadas na ordem de chegada dos participantes. Os participantes que desejarem executar os procedimentos em suas próprias máquinas podem verificar a compatibilidade usando os passos abaixo (mais detalhes em https://git.lsd.ufcg.edu.br/lsd-sbseg-2020/alo-mundo-scone)
Instale o driver do Intel SGX (https://sconedocs.github.io/sgxinstall/). Sua interface com o Intel SGX é disponibilizada através de um dispositivo em /dev/. Aqui, assumimos /dev/isgx.
Para verificar se seu ambiente é capaz de executar esse tutorial, execute uma aplicação de teste. $ docker run -dt --rm --name las --device /dev/isgx -p 18766:18766 sconecuratedimages/kubernetes:las >/dev/null $ docker run -it --rm --device /dev/isgx -e SCONE_CAS_ADDR=scone-cas.cf -e SCONE_LAS_ADDR=172.17.0.1 -e SCONE_CONFIG_ID=test-environment/test clenimar/test-scone-environment:v0.1 Ambiente apto a rodar SCONE apps!
Limpe seu ambiente antes de prosseguir: docker stop las >/dev/null
Minicurso 2: Processamento de Linguagem Natural para Identificação de Notícias Falsas em Redes Sociais: Ferramentas, Tendências e Desafios (Terça-Feira, 13/10, 13:15-16:30)
Resumo: A disseminação epidêmica de notícias falsas (fake news) é um efeito colateral da expansão do uso de redes sociais como meio de circulação de notícias, em contraste às mídias tradicionais de comunicação massiva, como jornal, revista, rádio e televisão. A ineficiência humana para distinção entre fatos verídicos e falsos expõe as notícias falsas como uma ameaça à verdade lógica, à democracia, ao jornalismo e à credibilidade nas instituições de governo. Este capítulo apresenta métodos de pré-processamento de dados em linguagem natural, vetorização, redução de dimensionalidade, aprendizado de máquina e avaliação da qualidade de recuperação de informação. Ao final do capítulo é apresentada uma demonstração prática do processo de identificação de notícias falsas, desde a coleta e processamento textual de notícias de mídias sociais até a aplicação algoritmos de classificação.
A atividade prática prevê o desenvolvimento de um script na linguagem Python, que demonstra o processo de identificação de notícias falsas no Twitter. A atividade inclui as etapas de: coleta de notícias falsas e verdadeiras, empregando o web scraping através da API do Twitter; tratamento textual e vetorização do conteúdo das notícias, utilizando processamento de linguagem natural juntamente com técnicas de representação vetorial de textos; aplicação eficiente de algoritmos de detecção, alcançado pela incorporação de técnicas de redução de dimensionalidade; e avaliação da eficiência e qualidade da detecção, tendo como parâmetros as métricas de recuperação de informação. As atividades práticas deste minicurso serão realizadas no google colab (https://colab.research.google.com/)
Minicurso 3: Privacidade do Usuário em Aprendizado Colaborativo: Federated Learning, da Teoria à Prática (Sexta-Feira, 16/10, 13:30-16:30)
A atividade prática consiste no desenvolvimento de uma aplicação prática visando uma simulação de um ambiente federado em Python. O roteiro da aplicação utiliza a biblioteca TensorFlow para a criação dos modelos locais e global. Nessa simulação será implementado o algoritmo de aprendizado federado FedAvg, que é o algoritmo mais utilizado em aprendizado federado. O FedAvg também é muito utilizado como baseline em propostas de novos algoritmos. Na simulação, é utilizado o clássico conjunto de dados MNIST para classificação de imagem. Na atividade prática, será utilizado o ambiente em nuvem Google Colab para a execução e demonstração do código fonte.
Resumo: O número crescente de dispositivos de Internet das Coisas representa uma fonte de dados ininterrupta a espera da execução de mecanismos de aprendizado de máquina. Contudo, a presença de dados pessoais e a dificuldade em garantir a privacidade dos usuários dificultam a extração de conhecimento perante restrições recentes como a Lei Geral de Proteção de Dados Pessoais. Assim, este capítulo apresenta o paradigma de Aprendizado Federado (Federated Learning), que permite a execução colaborativa de modelos de aprendizado em dados locais e posterior agregação em um modelo global centralizado. O capítulo foca em apresentar os princípios, as aplicações, assim como os desafios e os ataques ao aprendizado federado, através de uma abordagem prático-teórica com foco na privacidade dos usuários.