MO809A - Tópicos em Computação Distribuída
Organização da Disciplina - Aprendizado Distribuído
A disciplina será composta por aulas teóricas e laboratórios práticos para aplicação do conteúdo aprendido. O conteúdo previsto para a disciplina inclui:
- Introdução a Sistemas Distribuídos, Arquiteturas e Comunicação, Métricas de Avaliação
- TensorFlow, Keras e PyTorch, Treinamento de Modelos, Modelos com Múltiplas Entradas, Functional API, Treinamentos Personalizados
- Treinamento de Modelos em Paralelo e Grafo Computacional
- Split-Learning
- Federated Learning Centralizado e Decentralizado
- Fine-tuning Federado de LLMs
- Agentes LLM
- Estudo de Caso: Mobilidade, Segurança e Privacidade de Dados, Unlearning, outros.
Critério de Avaliação
A avaliação será realizada através de atividades e um projeto final. Dessa forma, a Média das Atividades pode ser calculada da seguinte forma: onde \(MA\) é a média das atividades, \(|A|\) é a quantidade de atividades incluindo trabalhos práticos e seminários, e \(a_i\) é a nota do aluno na atividade \(i\). O projeto final irá compor 70% da nota final do aluno, assim a Nota Final (\(NF\)) pode ser calculada da seguinte forma: onde \(MA\) é a média do aluno nas atividades, \(NP\) é a nota do aluno na apresentação do projeto final. As datas dos seminários serão definidas no decorrer do semestre com disponibilização de um cronograma prévio.
O conceito final da nota do aluno seguirá a seguinte regra. Caso a \(NF\) for maior ou igual a 8.5 o aluno terá conceito \(A\). Por outro lado, caso \(NF\) seja inferior a \(8.5\) e maior que \(7.0\), o aluno terá conceito \(B\). Da mesma forma, caso \(NF\) seja inferior a \(7.0\) e superior a \(5.0\) o aluno terá conceito \(C\). Por fim, caso \(NF\) seja menor que \(5.0\), o aluno terá conceito \(D\). As regras para o conceito da \(NF\) é apresentado a seguir:
Projeto Final
O projeto final da disciplina será composto por duas entregas principais: uma apresentação oral e um relatório técnico em formato de artigo. O objetivo é permitir que os alunos demonstrem a compreensão dos conceitos abordados na disciplina por meio do desenvolvimento de uma proposta prática ou experimental que explore um problema relevante, apresentando sua motivação, justificativa, metodologia e resultados alcançados.
Apresentação
A apresentação do projeto final deverá ter duração entre 20 e 25 minutos. Durante esse tempo, vocês deverão expor de forma clara, objetiva e estruturada os principais aspectos do trabalho desenvolvido. A apresentação deve abordar não apenas o funcionamento do projeto, mas também o raciocínio que levou à sua concepção, as decisões de implementação e a análise dos resultados. É importante que a exposição demonstre tanto o domínio técnico quanto a compreensão do problema e das soluções propostas.
Durante a apresentação, devem ser respondidas as seguintes perguntas orientadoras:
- Qual problema seu projeto endereça? - Contextualize a situação ou necessidade que motivou o desenvolvimento do trabalho.
- Existem trabalhos relacionados à sua proposta? Como eles atacam o problema? - Cite e descreva brevemente soluções existentes, identificando seus pontos fortes e limitações.
- Qual o objetivo do seu projeto? - Especifique o propósito principal e os resultados esperados.
- Qual é a sua proposta? - Explique a ideia central, o diferencial em relação a outras abordagens e o escopo do trabalho.
- Como foi desenvolvido? - Detalhe o processo de implementação, ferramentas utilizadas, arquitetura do sistema, experimentos realizados, entre outros aspectos relevantes.
- Como foi avaliado? Quais métricas foram consideradas? - Descreva o método de avaliação adotado (testes, experimentos, validações, etc.) e as métricas utilizadas para medir o desempenho ou a efetividade da proposta.
- Quais os resultados obtidos? - Apresente dados quantitativos e/ou qualitativos, destacando os principais achados.
- Quais as limitações encontradas? - Discuta eventuais dificuldades, restrições ou pontos que poderiam ser aprimorados em trabalhos futuros.
Tip
É recomendável na apresentação o uso de demonstrações práticas, gráficos e tabelas para apoiar a exposição. Ao final, serão realizadas fazer perguntas e comentários sobre o trabalho apresentado.
Relatório
O relatório técnico deverá ser redigido em formato de artigo científico, utilizando obrigatoriamente o Template de Conferência da SBC. O documento deve apresentar uma versão detalhada do conteúdo exposto na apresentação, seguindo uma estrutura lógica e coerente.
A organização sugerida para o relatório é a seguinte:
- Introdução – Apresentação do tema, problema, motivação e objetivos do trabalho.
- Background – Conceitos teóricos e fundamentos necessários para a compreensão do projeto.
- Trabalhos Relacionados – Análise comparativa de soluções semelhantes existentes na literatura ou no mercado.
- Proposta – Descrição da solução proposta, suas características principais e diferenciais.
- Metodologia – Detalhamento das etapas de desenvolvimento, ferramentas, métodos e métricas empregadas.
- Resultados – Apresentação dos dados obtidos e discussão crítica sobre os mesmos.
- Conclusão – Síntese dos resultados, contribuições do trabalho e sugestões de continuidade ou aprimoramento.
- Referências – Lista completa das obras e fontes utilizadas, conforme o formato exigido pela SBC.
Warning
A entrega do relatório e dos slides utilizados na apresentação deve ser realizada até o dia 30/11 por meio do Google Classroom. A não entrega dentro do prazo implicará na perda de pontuação referente ao projeto final.
Bibliografia
- Tanenbaum, Andrew S, Van Steen, Maarten. Distributed systems: principles and paradigms. Pearson/Prentice Hall. 4th Ed.
- Coulouris, G, Dollimore, J., Kindberg, T. Distributed Systems: concepts and design. 4th Ed.
- Laurence Moroney. AI and Machine Learning for Coders: A Programmer's Guide to Artificial Intelligence. O'Reilly, 2020
- Kairouz, Peter, et al. Advances and open problems in federated learning. Foundations and trends® in machine learning 14.1–2 (2021): 1-210.
- Beutel, Daniel J., et al. Flower: A friendly federated learning research framework, 2020.