Propinas UE (2025/2026)
3000.00 €Plano de Estudos para 2025/2026
| Unidades curriculares | Créditos | |
|---|---|---|
| 1º Ano | ||
|
Fundamentos de Aprendizagem Profunda
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Aprendizagem Profunda para Visão por Computador
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Tópicos Avançados de Aprendizagem Profunda
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Inteligência Artificial na Sociedade
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Tópicos em Robótica Inteligente
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Computação Gráfica de Alto Desempenho
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Modelos de Linguagem Generativos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Engenharia de Modelos Inteligentes
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Otimização Computacional
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Fundamentos de Aprendizagem Profunda
No final desta UC, cada estudante deverá ser capaz de:
OA1: Compreender os princípios fundamentais da aprendizagem profunda e reconhecer as diferenças face à aprendizagem automática tradicional, relacionando-os com problemas reais.
OA2: Identificar e explicar as principais camadas, técnicas e arquiteturas de redes profundas, compreendendo a sua adequação a diferentes tipos de dados e desafios.
OA3: Aplicar, de forma orientada, frameworks como Keras e PyTorch para implementar modelos de aprendizagem profunda, desde a preparação dos dados até ao treino e inferência.
OA4: Ajustar e avaliar o desempenho dos modelos, interpretando métricas, analisando resultados e propondo melhorias.
OA5: Resolver problemas reais, colaborando com outros estudantes em estudos de caso e projetos, desenvolvendo competências analíticas, comunicacionais e de trabalho em equipa.
CP1: Introdução à aprendizagem profunda: conceitos chave, histórico, distinção face à aprendizagem automática tradicional.
CP2: Camadas convolucionais, densas, recorrentes, normalização, dropout, funções de ativação e técnicas de regularização.
CP3: Seleção e aplicação de técnicas adequadas aos diferentes tipos de dados tais como imagens 2D/3D, sequências temporais univariadas e multivariadas.
CP4: Introdução prática às frameworks TensorFlow, Keras e PyTorch, desenvolvimento de modelos simples e análise dos resultados.
CP5: Arquiteturas pré-existentes (e.g., ResNet, VGG, U-Net) e o seu reuso, transferência de aprendizagem e fine-tuning de modelos pré-treinados.
CP6: Métricas de desempenho, interpretação de resultados, identificação de estrangulamentos, propostas de otimização e ajuste fino.
CP7: Exploração de casos de estudo reais, desde a definição do desafio, modelação de dados, implementação e treino do modelo, até à análise crítica e apresentação dos resultados.
Esta UC, pelo seu carácter prático, segue o modelo de Avaliação ao Longo do Semestre (previsto em RGACC), sem exame final, e possui a seguinte composição:
- 2 Quizzes (20%):
Ao longo do semestre serão disponibilizados vários quizzes online de curta duração, para serem realizados individualmente.
Realizados individualmente, visam aferir a compreensão dos conteúdos teóricos e práticos à medida que são introduzidos, permitindo um feedback rápido e contínuo.
Não será exigida nota mínima nos quizzes, mas a sua realização contribui para a consolidação das aprendizagens.
- Mini-Projeto (30%):
Neste mini-projeto realizado em grupos, o estudante desenvolve uma aplicação simples de aprendizagem profunda, desde a preparação dos dados até à primeira versão funcional do modelo.
São avaliadas a capacidade de implementação, a clareza do código e a correta utilização das ferramentas abordadas.
- Projeto Final (50%):
O Projeto Final, realizado em grupo, é mais complexo e requer a integração de camadas, arquiteturas e técnicas avançadas.
Valoriza-se a otimização do modelo, a análise crítica de resultados e a capacidade de propor melhorias.
Este projeto permite consolidar todas as competências adquiridas.
Para obter aprovação na UC, o estudante deverá alcançar uma nota final mínima de 10 valores, resultante da soma ponderada dos quizzes (20%), do Mini-Projeto (30%) e do Projeto Final (50%).
Cada componente de avaliação (quizzes, mini-projeto e projeto final) possuí uma nota mínima de 8,5 valores.
É exigida uma nota mínima de 10 valores na classificação final.
Se o estudante não obtiver aprovação à UC, será considerado como Reprovado.
Um estudante é considerado como Reprovado caso não atinja aprovação com a Avaliação ao Longo do Semestre (quizzes + projeto) desta UC.
A melhoria de nota poderá ser obtida no ano letivo seguinte, repetindo as componentes de avaliação, em conformidade com o regulamento em vigor.
A 1ª Época e 2ª Época poderão ser utilizadas para realização de momentos de avaliação.
A presença nas sessões síncronas não é obrigatória.
Para além do RGACC, o estudante deve consultar o Regulamento de Estudantes com Estatuto Especial (REEE) e o Código de Conduta Académica (CCA).
"1. Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. 2. Godoy, D. V. (2022). Deep learning with PyTorch step-by-step: A beginner’s guide: Volume I: Fundamentals. 3. Chollet, F. (2021). Deep Learning with Python (2.ª ed.). Manning.
1. Stevens, J., Antiga, L., & Viebranz, T. (2020). Deep Learning with PyTorch. Manning. 2. Patterson, J., & Gibson, A. (2017). Deep Learning: A Practitioner’s Approach. O’Reilly."
Aprendizagem Profunda para Visão por Computador
No final da UC, cada estudante deverá ser capaz de:
OA1: Representar imagens em diferentes espaços de cor e no domínio da frequência.
OA2: Aplicar operações típicas de processamento de imagem.
OA3: Extrair características de baixo nível de imagens.
OA4: Implementar sistemas de aprendizagem automática para classificação de imagens usando algoritmos clássicos.
OA5: Identificar e Explicar a arquitetura de redes neuronais convolucionais (CNN) e compreender o seu funcionamento.
OA6: Resolver problemas de classificação de imagens de complexidade média usando CNNs.
OA7: Aplicar metodologias de transferência de conhecimento e ajuste de CNNs pré-treinadas.
OA8: Utilizar algoritmos de aprendizagem profunda para identificar objetos em imagens.
OA9: Identificar e Descrever algoritmos de aprendizagem profunda para geração automática de conteúdos multimédia.
OA10: Manipular imagens com OpenCV e desenvolver aplicações com TensorFlow.
OA11: Demonstrar exemplos de aplicações de visão por computador.
CP1: Representação de imagens.
CP2: Operações de imagem.
CP3: Extração de características de imagens.
CP4: Introdução à aprendizagem automática.
CP5: Redes neuronais artificiais.
CP6: Arquitetura e funcionamento de redes neuronais convolucionais (CNNs).
CP7: Aprendizagem por transferência.
CP8: Arquiteturas de CNNs para deteção e identificação de objetos.
CP9: Arquiteturas de redes para geração automática de conteúdos multimédia.
CP10: Desenvolvimento de aplicações práticas de visão por computador e aprendizagem automática.
A avaliação será feita ao longo do semestre, sendo feita através de dois trabalhos de grupo valendo cada um 40% da nota final e um quizz realizado individualmente, com a ponderação de 20%.
Cada uma das componentes de avaliação tem nota mínima de 8 valores e a aprovação na UC requer uma nota final mínima de 10 valores.
Os trabalhos estão sujeitos a uma discussão oral. A discussão oral poderá impor um limite à nota dos trabalhos caso o desempenho demonstrado pelo(a) estudante esteja abaixo da qualidade dos trabalhos entregues, podendo inclusivamente reprovar caso o desempenho demonstrado não seja considerado suficiente.
Dado o caráter prático da UC não há lugar a avaliação por exame.
Melhoria de nota só pode ser feita repetindo o processo de avaliação no ano seguinte.
"Feature Extraction and Image Processing for Computer Vision, 4th Edition, M. Nixon e Alberto Aguado, Academic Press, 2019 Deep Learning, I. Goodsfellow, Y. Bengio e A. Courville, MIT Press, 2016 Learning OpenCV 4 with Python 3, 3rd Edition, Joseph Howse, Joe Minichino, Packt Publishing, 2020 Tutoriais e documentação das bibliotecas OpenCV e Tensorflow
Tópicos Avançados de Aprendizagem Profunda
No final da UC, cada estudante deverá ser capaz de:
OA1: Compreender o funcionamento e as capacidades das Redes Adversárias Generativas (GANs), incluindo as suas arquiteturas e principais desafios.
OA2: Conceber e implementar soluções com GANs, abrangendo a definição de arquiteturas, o treino e a análise de aplicações práticas.
OA3: Entender os conceitos fundamentais da Aprendizagem por Reforço Profundo e aplicar algoritmos (p. ex. DQN, PPO, AlphaZero) em ambientes simulados.
OA4: Modelar e analisar séries temporais com redes neuronais avançadas, como LSTMs, GRUs e transformadores, adequando-as às particularidades de dados sequenciais.
OA5: Explorar e implementar algoritmos genéticos/evolucionários profundos em contextos de otimização, avaliando a sua aplicabilidade prática.
OA6: Desenvolver projetos práticos que integrem múltiplas técnicas avançadas, adaptando-as a cenários reais ou simulados, incentivando o trabalho colaborativo e a capacidade de investigação.
CP1: Conceitos e fundamentos de GANs, arquiteturas base (DCGAN, WGAN), processo de treino (gerador vs. discriminador), desafios e aplicações práticas (geração de imagens, dados sintéticos).
CP2: Revisão de conceitos de aprendizagem por reforço, algoritmos fundamentais (DQN, PPO, AlphaZero), ambientes simulados, exploração vs. exploitação.
CP3: Análise de séries temporais com redes neuronais: LSTMs, GRUs e transformadores para dados sequenciais, particularidades de modelação temporal (sazonalidade, tendência), avaliação de previsões e estratégias de melhoria.
CP4: Princípios de algoritmos evolutivos profundos, operadores genéticos, estratégias de adaptação, casos de uso em otimização de hiperparâmetros.
CP5: Interpretação de modelos avançados, técnicas de explicabilidade e equidade para promover a transparência e a robustez em modelos profundos.
CP6: Desenvolvimento de projetos práticos em áreas como saúde, banca, finanças ou IoT, integrando múltiplas técnicas avançadas.
A avaliação segue o modelo de Avaliação ao Longo do Semestre (previsto no RGACC) a 100% por projeto/trabalhos práticos, sem exame final, promovendo o envolvimento contínuo do estudante. As componentes de avaliação são:
- Três Mini-trabalhos (20% cada)
Ao longo do semestre, cada mini-trabalho incide sobre um tópico específico:
-- Criação de uma GAN simples, com foco na definição da arquitetura e no treino do gerador e do -discriminador.
-- Modelo de Aprendizagem por Reforço Profundo, incluindo a escolha do algoritmo (DQN, PPO, etc.) e a validação do treino num ambiente simulado.
-- Modelação de Séries Temporais, utilizando LSTMs, GRUs ou transformadores, avaliando a sua capacidade de previsão em dados sequenciais.
Em cada mini-trabalho, avaliam-se a implementação prática, a capacidade de análise dos resultados, a clareza do código e a correta utilização das bibliotecas.
Os mini-trabalhos poderão ser realizados individualmente ou em grupos.
Não há nota mínima em cada mini-trabalho, mas o conjunto representa 60% da nota final.
- Projeto Final (40%)
Num trabalho de maior envergadura, os estudantes podem integrar um ou mais tópicos dos mini-trabalhos (GANs, Aprendizagem por Reforço, Séries Temporais, Algoritmia Genética/Evolucionária Profunda), ou explorar um cenário diferente que exija a combinação de técnicas avançadas. Valorizam-se a otimização do modelo, a análise crítica de resultados, a formulação de melhorias e a capacidade de justificar as escolhas técnicas realizadas. Neste projeto, é exigida a entrega de um relatório técnico e uma apresentação (online) para defesa dos métodos e conclusões, permitindo aferir as competências de comunicação e domínio do tema.
O projeto final deverá ser realizado em grupos.
A nota final resulta da soma ponderada dos três mini-trabalhos (20% cada) e do projeto final (40%).
Para aprovação, é necessário obter pelo menos 10 valores na classificação final.
Caso o estudante não atinja esta classificação, é considerado Reprovado.
A melhoria de nota pode ser obtida no ano letivo seguinte, repetindo as componentes de avaliação em conformidade com o regulamento vigente.
As avaliações podem ocorrer na 1.ª Época e na 2.ª Época, não havendo exame final complementar.
A presença nas sessões síncronas não é obrigatória, mas fortemente recomendada pela riqueza das discussões e pelo feedback imediato sobre os progressos individuais e coletivos.
Recomenda-se ainda a leitura do Regulamento de Estudantes com Estatuto Especial (REEE) e do Código de Conduta Académica (CCA).
Inteligência Artificial na Sociedade
No final da UC, os estudantes deverão ser capazes de:
OA1: Conhecer normas, leis e considerações éticas, sociais, de privacidade e de governação relacionadas com a prática profissional em IA.
OA2: Discutir criticamente o impacto social da IA e as questões profissionais associadas à sua implementação em sistemas inteligentes, avaliando o impacto da delegação de decisões em máquinas e as implicações em equidade, parcialidade, transparência, responsabilidade e explicabilidade.
OA3: Justificar e avaliar estudos de caso e trabalhos de colegas, desenvolvendo competências de análise crítica e capacidade de argumentação.
OA4: Comunicar eficazmente com diferentes audiências, através de relatórios técnicos escritos, apresentações visuais e orais, demonstrando clareza e rigor na transmissão de ideias.
OA5: Aplicar princípios de investigação e práticas profissionais responsáveis e éticas em IA, escolhendo métodos apropriados para analisar, teorizar e justificar conclusões.
CP1: Breve história da IA: enquadramento histórico, evolução de métodos, tendências e contextos socioeconómicos.
CP2: Como funciona a IA: fundamentos técnicos, abordagens de aprendizagem automática e sistemas inteligentes.
CP3: Viés, Ética, Equidade, Privacidade, Robustez e Confiança: análise crítica das implicações sociais, profissionais e legais.
CP4: Quadros legais e regulamentares: normas, leis nacionais e internacionais, órgãos reguladores e padrões de cumprimento.
CP5: IA no presente: estudos de caso em domínios diversos (saúde, transportes, educação, segurança, media).
CP6: Abordagens para tornar modelos e decisões mais transparentes - XAI, Explainable AI.
CP7: IA do futuro: tópicos emergentes, prospectiva, cenários de impacto social e técnico, participação pública e responsabilização.
A avaliação, seguindo o previsto em RGACC, recorre à tipologia de avaliação ao longo do semestre, e possui a seguinte composição:
(a) [30%] Trabalho de grupo em workshops:
- Desenvolvimento de um caso de estudo prático, apresentado e discutido em ambiente online (fóruns ou sessões síncronas).
(b) [20%] Avaliar individualmente o resultado do trabalho submetido em (d)
(c) [30%] Duas atividades c/ avaliação online individuais (quizzes)
(d) [20%] Documento de síntese do estudo de caso (realizado em grupo)
Exige nota mínima de 8 valores nas quatro componentes.
Para aprovação, o estudante deve obter nota final ≥ 10 valores. Caso contrário, o estudante é reprovado.
A não aprovação ao longo do semestre permite a opção por avaliação por exame final. O exame incidirá sobre todos os conteúdos abordados (teóricos e práticos), sendo constituído por uma prova escrita e, se necessário, uma prova oral complementar para esclarecimento de dúvidas. O exame final possui uma ponderação de 100%.
A admissão ao exame é possível para quem não atingiu aprovação na tipologia de avaliação ao longo do semestre ou optou por este regime de avaliação, nos termos do RGACC.
A melhoria de nota poderá ser obtida repetindo o exame final na época seguinte, conforme regulamento.
A presença nas sessões síncronas não é obrigatória, mas recomendada, pela oportunidade de interação direta e feedback imediato.
Para além do RGACC, o estudante deve consultar o Regulamento de Estudantes com Estatuto Especial (REEE) e o Código de Conduta Académica (CCA).
"1. T. Miller. Explanation in artificial intelligence: Insights from the social sciences. Artificial Intelligence, 267, 1–38, 2019. 2. C. Molnar. Interpretable machine learning. A Guide for Making Black Box Models Explainable, 2019. https://christophm.github.io/interpretable-ml-book/. 3. A. Holzinger, P. Kieseberg, E. Weippl & A Min Tjoa. Current Advances, Trends and Challenges of Machine Learning and Knowledge Extraction: From Machine Learning to Explainable AI. Springer Lecture Notes in Computer Science LNCS 11015. Cham: Springer, pp. 1-8, 2018. 4. S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach. Pearson, Upper Saddle River, NJ, 2009."
"1. ALLEA The European Code of Conduct for Research Integrity, European Union, URL: https://allea.org/code-of-conduct/ 2. Artificial intelligence Act, URL: https://www.europarl.europa.eu/RegData/etudes/BRIE/2021/698792/EPRS_BRI(2021)698792_EN.pdf"
Tópicos em Robótica Inteligente
No final da UC, o estudante deverá ser capaz de:
OA1: Entender os conceitos fundamentais de robótica inteligente e as suas principais aplicações em sistemas autónomos.
OA2: Implementar algoritmos de navegação para robôs em ambientes simulados, utilizando o Robot Operating System (ROS).
OA3: Estudar métodos de percepção e interpretação sensorial que possibilitem a criação de representações precisas do ambiente, bem como o desenvolvimento de técnicas para localização de robôs móveis e aplicação de métodos SLAM.
OA4: Treinar modelos de aprendizagem profunda em robôs para tarefas como reconhecimento de objetos e tomada de decisão, e melhorar a precisão e adaptação de robôs em tarefas de navegação em tempo real.
OA5: Investigar métodos de interação homem-robô, com foco na comunicação intuitiva e na colaboração em ambientes partilhados.
OA6: Projetar e testar um sistema robótico com integração de diferentes tipos de sensores para realizar tarefas autónomas de mapeamento e localização.
CP1: Fundamentos de Robótica Inteligente, definição, conceitos básicos e aplicações; Principais componentes de um sistema robótico inteligente e tipos de robôs autónomos; Tecnologias emergentes em robótica e inteligência artificial.
CP2: Introdução ao ROS; Navegação em ambientes simulados; Implementação prática de algoritmos de navegação utilizando simulações.
CP3: Percepção e Interpretação Sensorial em Robótica; Tipos de sensores utilizados; Métodos de aquisição e processamento de dados sensoriais; Introdução ao SLAM.
CP4: Aprendizagem supervisionada, evolutiva, por reforço e aprendizagem profunda para robótica. Aplicações para reconhecimento de objetos, navegação e tomada de decisões autónomas.
CP5: Interação Homem-Robô e Colaboração: Fundamentos, interfaces de comunicação, feedback e controle.
Métodos de comunicação intuitiva; Robôs colaborativos (cobots).
CP6: Projeto e Teste de Sistemas Robóticos Integrados
A avaliação desta UC segue o modelo de avaliação ao longo do semestre, privilegiando-se o acompanhamento regular do progresso dos estudantes, bem como o desenvolvimento de um projeto final que consolida os conhecimentos e competências adquiridos.
Possuí a seguinte composição
- 4 Desafios Semanais (40%):
Ao longo do semestre, serão propostos desafios semanais baseados em mini-projetos, a submeter na plataforma de e-learning, que visam avaliar a compreensão e a aplicação dos tópicos abordados.
Cada desafio será corrigido com feedback formativo, permitindo ao estudante melhorar continuamente a sua compreensão dos conteúdos.
A média final de todos os desafios semanais terá de ser igual ou superior a 9,5 valores. Caso contrário, o estudante será considerado reprovado nesta componente.
Os desafios semanais poderão ser realizados individualmente ou em grupos.
- Projeto Final (60%):
O projeto final, realizado em grupos, consiste no desenvolvimento de um sistema robótico integrado.
Os estudantes deverão conceber e implementar uma solução coerente, preparar um relatório técnico que descreva a abordagem, as metodologias utilizadas, os resultados obtidos e as dificuldades encontradas, e realizar uma apresentação oral (online) do trabalho, justificando as opções adotadas e discutindo melhorias potenciais.
O projeto final tem uma nota mínima de 9,5 valores.
Em conformidade com o RGACC, o estudante pode optar pela avaliação por exame (na 1ª época, 2ª época ou época especial).
Nesta modalidade, o projeto final passa a valer 100% da nota, substituindo os desafios semanais.
O projeto deverá seguir as mesmas diretrizes, incluindo relatório técnico e apresentação oral, aplicando-se igualmente a nota mínima de 9,5 valores para aprovação.
Para aprovação na UC, o estudante deverá obter uma nota final mínima de 10 valores, considerando a ponderação dos desafios semanais (40%) e do projeto final (60%).
Caso não obtenha aprovação, será considerado reprovado.
A presença nas sessões síncronas não é obrigatória.
Para além do RGACC, o estudante deve consultar o Regulamento de Estudantes com Estatuto Especial (REEE) e o Código de Conduta Académica (CCA).
"1. Thrun, S., Burgard, W.,, Fox, D. (2005). Probabilistic robotics. Cambridge, Mass.: MIT Press. ISBN: 0262201623 9780262201629 2. Chernova, S., & Thomaz, A. L. (2014). Robot learning from human teachers. Springer. 3. Craig, 1955. (1986). Introduction to robotics : mechanics & control / John J. Craig.. Reading, Mass.: Addison-Wesley Pub. Co.,. ISBN: 0201103265
Computação Gráfica de Alto Desempenho
No final desta UC, cada estudante deverá ser capaz de:
OA1: Explicar a arquitetura e os princípios fundamentais da computação paralela em GPU
OA2: Diferenciar as várias abordagens de programação paralela e selecionar as técnicas mais adequadas para otimizar o desempenho das aplicações computacionais em GPU.
OA3: Implementar kernels CUDA personalizados, utilizando a framework Numba
OA4: Demonstrar capacidade de análise de desempenho, detetando e corrigindo estrangulamentos computacionais e problemas de ocupação, comunicação e latência de memória.
OA5: Aplicar o cuDNN para acelerar operações de aprendizagem profunda, integrando as rotinas otimizadas da biblioteca em fluxos de trabalho de treino e inferência de redes neuronais convolucionais.
OA6: Desenvolver soluções completas que combinam computação gráfica, processamento paralelo e algoritmos de aprendizagem profunda, consolidando competências técnicas e de raciocínio crítico na abordagem de problemas complexos.
CP1: Introdução à computação paralela e à arquitetura CUDA, conceitos de paralelização de tarefas, estrutura de blocos e threads, hierarquia de memória em GPU
CP2: Desenvolvimento de kernels em CUDA, modelação de grids, otimização do acesso à memória global, partilhada e constante, técnicas de coalescência de memória.
CP3: Compilação para GPU utilizando o Numba, paralelização de ambientes com recurso à GPU.
CP4: Perfis de execução, identificação de estrangulamentos computacionais, ajuste de parâmetros de grid e bloco, estratégias de redução do uso de memória global.
CP5: Introdução ao cuDNN: Principais rotinas e funcionalidades, integração com estruturas de dados e frameworks de aprendizagem profunda
CP6: Casos de estudo e aplicações práticas, simulação e treino de redes neuronais convolucionais
Esta UC, por ter uma natureza bastante prática e de aplicação, segue o modelo de de Avaliação ao Longo do Semestre (prevista em RGACC), não contemplando exame final.
A avaliação desta UC tem a seguinte composição:
- 2 Quizzes (20%):
Ao longo do semestre serão disponibilizados dois quizzes de curta duração, realizados individualmente na plataforma de e-learning.
- Projeto Final (80%):
O projeto final consiste no desenvolvimento de um trabalho prático que agrega os conhecimentos e competências adquiridos ao longo do semestre, onde poderá haver participação de organizações externas / empresas no desafio proposto.
Este projeto será desenvolvido ao longo do semestre e será acompanhado por tutorias individuais ou em grupo, de modo a garantir o seguimento contínuo e o feedback formativo.
A avaliação do Projeto Final (80%) será faseada da seguinte forma:
-- 1ª Tutoria (20%): Nesta fase, o estudante apresenta o planeamento inicial do projeto, incluindo a definição do problema e os objetivos a atingir com o projeto.
-- 2ª Tutoria (20%): Nesta segunda fase, o foco centra-se no progresso técnico do projeto. O estudante deverá demonstrar o código parcial já desenvolvido, apresentar testes parciais de desempenho e discutir as primeiras estratégias de otimização. Espera-se uma melhoria contínua do trabalho, beneficiando do feedback do docente.
-- Tutoria Final (40%): Na última fase, o estudante apresenta a versão final do projeto, incluindo todo o código funcional, a análise detalhada de desempenho, a discussão sobre resultados obtidos, as dificuldades enfrentadas e as soluções adotadas. É também avaliada a capacidade de análise crítica, a clareza da comunicação e a relevância dos resultados.
O conjunto das três tutorias (1ª, 2ª e Final) totaliza 80% da avaliação, e cada tutoria possui uma nota mínima de 8,5 valores.
Para obter aprovação na UC, o estudante deverá alcançar uma nota final mínima de 10 valores, resultante da soma ponderada dos quizzes (20%) e do projeto final (80%).
Os quizzes, realizados individualmente, visam aferir a compreensão dos conteúdos teóricos e práticos à medida que são introduzidos, permitindo um feedback rápido e contínuo. Não será exigida nota mínima nos quizzes, mas a sua realização contribui para a consolidação das aprendizagens e tem um peso de 20% na nota final.
Um estudante é considerado como Reprovado caso não atinja aprovação com a Avaliação ao Longo do Semestre desta UC.
A melhoria de nota poderá ser obtida no ano letivo seguinte, repetindo as componentes de avaliação, em conformidade com o regulamento em vigor.
A 1ª Época e 2ª Época poderão ser utilizadas para realização de momentos de avaliação.
A presença nas sessões síncronas não é obrigatória.
Para além do RGACC, recomenda-se a leitura de outros documentos de referência para o processo de avaliação, tais como o Regulamento de Estudantes com Estatuto Especial (REEE) e o Código de Conduta Académica (CCA).
"1. Tuomanen, B. (2018). Hands-On GPU Programming with Python and CUDA: Explore high-performance parallel computing with CUDA. Packt Publishing. 2. 1. Kirk, D. B., & Hwu, W.-M. W. (2016). Programming Massively Parallel Processors: A Hands-on Approach 3. Storti, D., & Yurtoglu, M. (2016). CUDA for engineers: An introduction to high-performance parallel computing (1st ed.). Addison-Wesley Professional.
4. Wilt, N. (2013). The CUDA Handbook: A comprehensive guide to GPU programming (1st ed.). Pearson Education. 5. Cook, S. (2013). CUDA Programming: A Developer’s Guide to Parallel Computing with GPUs. Morgan Kaufmann. 6. Sanders, J., & Kandrot, E. (2011). CUDA by Example: An Introduction to General-Purpose GPU Programming. Addison-Wesley."
Modelos de Linguagem Generativos
No final da UC, cada estudante deverá ser capaz de:
OA1. Compreender os fundamentos teóricos dos modelos de linguagem generativos (LLMs) e da arquitetura Transformer.
OA2. Explorar técnicas de treino e ajuste para a personalização de LLMs.
OA3. Implementar, treinar, testar e validar LLMs utilizando bibliotecas como Hugging Face e PyTorch.
OA4. Aplicar LLMs a tarefas práticas do Processamento Computacional da Língua (PCL) como o reconhecimento de entidades nomeadas, a análise de sentimento, a geração de texto, a sumarização e a tradução.
OA5. Avaliar o desempenho dos modelos em tarefas de PCL utilizando métricas e benchmarks adequados.
OA6. Melhorar o desempenho dos LLMs através da utilização de técnicas de Geração Aumentada por Recuperação de Informação (RAG, Retrieval-Augmented Generation).
OA7. Aplicar modelos de linguagem multimodais e compreender os seus usos principais, como analisar o conteúdo de imagens, identificar objetos específicos e criar legendas automáticas.
CP1. Conceitos fundamentais dos LLMs e da arquitetura Transformer, incluindo mecanismos de atenção e codificação posicional.
CP2. Aplicação prática de LLMs usando ferramentas como Hugging Face e PyTorch para a criação e otimização de modelos.
CP3. Métodos de treino e ajuste de modelos para personalização para diferentes contextos.
CP4. Implementação de soluções para tarefas como reconhecimento de entidades nomeadas, análise de sentimento, geração de texto, sumarização e tradução.
CP5. Métricas apropriadas para avaliar o desempenho dos modelos em tarefas de PCL.
CP6. Modelos de Geração Aumentada por Recuperação de Informação (RAG, Retrieval-Augmented Generation) para melhorar o desempenho dos LLMs.
CP7. Modelos de linguagem multimodais e exploração de tarefas como classificação de imagens, deteção de objetos e descrição de conteúdos.
Nesta UC apenas é possível obter aprovação por avaliação ao longo do semestre, não sendo contemplada a modalidade de avaliação por exame. A avaliação consiste em 2 componentes:
1. Trabalhos de grupo realizados ao longo do semestre:
- Apresentação de um artigo científico (5%).
- Ajuste de um LLM para um domínio específico (10%).
- Desenvolvimento de um estudo de caso com correta avaliação do modelo (40%).
- Criação de um modelo para aprimorar o LLM desenvolvido no trabalho 2 (25%).
2. Teste de avaliação (20%).
A média dos trabalhos de grupo e do teste de avaliação exige uma nota mínima de 9,5 valores.
Melhoria de nota só pode ser feita repetindo o processo de avaliação no ano seguinte.
A presença nas sessões síncronas não é obrigatória.
"Dan Jurafsky and James H. Martin. Speech and Language Processing (2024 pre-release) (https://web.stanford.edu/~jurafsky/slpdraft/) Ian Goodfellow, Yoshua Bengio, and Aaron Courville. Deep Learning (https://www.deeplearningbook.org/) Delip Rao and Brian McMahan. Natural Language Processing with PyTorch Lewis Tunstall, Leandro von Werra, and Thomas Wolf. Natural Language Processing with Transformers (https://transformersbook.com/)
Engenharia de Modelos Inteligentes
No final da UC, cada estudante deverá ser capaz de:
OA1: Explicar os princípios fundamentais de MLOps, contextualizando-os no ciclo de vida de desenvolvimento e operacionalização de modelos de ML.
OA2: Utilizar frameworks e ferramentas de MLOps para acompanhar experimentos, gerir pipelines de ML e automatizar processos de treino e entrega contínua.
OA3: Conceber e implementar pipelines end-to-end, envolvendo Data Engineering Pipelines, ML Pipelines e ML Workflows, aplicando práticas de CI/CD adequadas a sistemas de ML.
OA4: Adotar o CRISP-ML(Q) como guia metodológico, garantindo a qualidade, monitorização, validação e a documentação dos modelos ao longo de todo o ciclo de desenvolvimento.
OA5: Desenhar e implementar estratégias de Model Serving, deployment e monitorização de modelos em produção.
OA6: Trabalhar de forma colaborativa, integrando princípios de MLOps e boas práticas de engenharia de software para garantir a integração eficaz entre equipas multidisciplinares.
CP1: Introdução ao conceito de MLOps, comparação com DevOps, relevância e benefícios no contexto da aprendizagem automática.
CP2: Frameworks e ferramentas de MLOps para gestão de workflows, pipelines, versionamento de dados e modelos.
CP3: Integração Contínua (CI) e Entrega Contínua (CD) para ML; Testes automatizados, auditoria e monitorização das pipelines.
CP4: Conceção de Sistemas ML end-to-end; Data Engineering, ML Model Engineering e Model Deployment
CP5: Padrões de Model Serving e estratégias de deployment: A/B testing, canary releases, rolling updates, infraestruturas elásticas e escaláveis.
CP6: Metodologia CRISP-ML(Q): Fases, tarefas, qualidade e governança de dados e modelos, documentação e melhoria contínua de modelos em produção.
Esta UC, por ter uma natureza prática e aplicada, segue um modelo de Avaliação ao Longo do Semestre (previsto no RGACC), não contemplando exame final.
A avaliação incidirá sobre a compreensão teórica, a capacidade de aplicação prática e a integração dos conceitos de MLOps em projetos reais.
A avaliação é composta por:
- 2 Quizzes (20%):
Ao longo do semestre serão disponibilizados quizzes online de curta duração, destinados a aferir a compreensão dos conceitos fundamentais de MLOps
Não é exigida nota mínima, mas os quizzes contribuem para a consolidação das aprendizagens e fornecem feedback imediato sobre o nível de entendimento dos estudantes.
Os quizzes deverão ser realizados de forma individual.
- Mini-Projeto 1 (30%):
Neste mini-projeto, os estudantes aplicarão os conhecimentos iniciais, implementando um pipeline de ML simples, incluindo recolha e preparação de dados, treino de modelos e experimentação.
O mini-projeto 1 poderá ser realizado individualmente ou em grupos.
Nota mínima exigida: 8,5 valores.
- Mini-Projeto 2 (50%):
Este segundo mini-projeto é mais abrangente e integrado, desafiando os estudantes a criar um pipeline end-to-end, implementando CI/CD, deployment do modelo e monitorização em produção.
Terão de demonstrar competências na utilização de frameworks de MLOps, aplicar o CRISP-ML(Q) e implementar estratégias de Model Serving, garantindo a escalabilidade e a qualidade contínua do sistema.
Será realizada uma apresentação oral (online) do projeto, incluindo discussão dos resultados, justificando as opções técnicas e abordando possíveis melhorias.
O mini-projeto 2 deverá ser realizado em grupos.
Nota mínima exigida: 9,5 valores.
A nota final resulta da soma ponderada dos quizzes (20%), do Mini-Projeto 1 (30%) e do Mini-Projeto 2 (50%).
Para aprovação, o estudante deverá obter uma classificação final mínima de 10 valores.
Caso não obtenha aprovação, será considerado Reprovado.
A melhoria de nota pode ser obtida no ano letivo seguinte, de acordo com o regulamento em vigor.
Em conformidade com o RGACC, o estudante pode optar por avaliação por exame, incidindo num projeto único (100%) a apresentar e defender oralmente, seguindo as mesmas diretrizes.
A presença nas sessões síncronas não é obrigatória, mas é altamente recomendada, dada a natureza aplicada da UC e a importância do feedback contínuo.
Para além do RGACC, recomenda-se a consulta do Regulamento de Estudantes com Estatuto Especial (REEE) e do Código de Conduta Académica (CCA).
"1. Washizaki, H., Prikladnicki, R., et al. (2022). MLOps Engineering at Scale. O’Reilly. 2. Zweig, K. (2023). Effective MLOps. Manning. 3. Villela, J. A., et al. (2022). Kubeflow Operations Guide. O’Reilly. 4. Lakshmanan, V., Robinson, C., & Munn, M. (2020). Machine Learning Design Patterns: Solutions to Common Challenges in Data Preparation, Model Building, and MLOps. O’Reilly. "
"1. Amershi, S., et al. (2019). Software Engineering for Machine Learning: A Case Study. IEEE/ACM Joint Conference on SE 2. Shevat, A. (2020). Designing ML-Powered Applications: ML Design Patterns for Developer Teams. O’Reilly."
Otimização Computacional
No final da UC, cada estudante deverá ser capaz de:
OA1: Explicar os princípios fundamentais dos métodos numéricos clássicos de otimização no contexto da IA.
OA2: Implementar e adaptar metaheurísticas para resolver problemas complexos em IA.
OA3: Aplicar métodos de descida do gradiente no treino de redes neuronais profundas, ajustando hiperparâmetros e analisando gráficos de convergência.
OA4: Selecionar e justificar a escolha de funções custo adequadas a diferentes tarefas de IA, avaliando o seu impacto no desempenho do modelo.
OA5: Avaliar e comparar criticamente o desempenho dos métodos de otimização utilizados, justificando as decisões tomadas e propondo melhorias.
OA6: Integrar e adaptar as estratégias de otimização escolhidas, considerando restrições práticas (tempo, recursos, escalabilidade) e critérios de robustez, para obter soluções adequadas às necessidades do problema.
CP1: Métodos numéricos clássicos, derivadas e gradientes, otimização livre e condicionada, introdução à análise de convergência.
CP2: Metaheurísticas de Arrefecimento Simulado, Pesquisa Tabu, Algoritmos Evolucionários; aplicações a problemas complexos (seleção de modelos, ajuste de hiperparâmetros, procura de ótimos globais).
CP3: Descida do gradiente (SGD, Momentum, Adagrad, Adam); implementação em redes neuronais profundas; análise de gráficos de convergência e estabilidade dos processos de treino e validação.
CP4: Funções perda / custo em Deep Learning: impacto na convergência, capacidade de generalização e robustez do modelo.
CP5: Comparação de métodos, critérios de paragem, escalabilidade, análise de resultados, propostas de melhoria e discussão de casos práticos.
Esta UC, por ter uma natureza bastante prática e de aplicação, segue o modelo de de Avaliação ao Longo do Semestre (prevista em RGACC), pelo que esta UC não contempla exame final.
A avaliação desta UC tem a seguinte composição:
- 2 Quizzes (10% cada, total 20%):
Quizzes online individuais, curtos, distribuídos ao longo do semestre, para aferir a compreensão teórica dos conceitos de otimização, metaheurísticas, métodos de descida do gradiente e funções custo. Não existe nota mínima nos quizzes, mas a realização contribui para consolidar conhecimentos e fornecer feedback imediato ao estudante.
- Projeto Final (80%):
O projeto final, realizado em grupos, é desenvolvido em duas fases (tutorias), refletindo a abordagem PBL (Project-Based Learning):
-- 1ª Tutoria (20%):
Entrega de um plano de trabalho, identificando o problema de otimização em IA, as técnicas a utilizar, bem como os critérios de avaliação e métricas de convergência.
-- 2ª Tutoria (60%):
Entrega e defesa online do projeto completo, incluindo código, resultados experimentais, análise crítica do desempenho, comparação de métodos e propostas de melhoria.
É exigida nota mínima de 9,5 valores no conjunto do projeto final.
A nota final resulta da soma ponderada dos quizzes (20%) e do projeto final (80%).
Para aprovação, é necessário obter pelo menos 10 valores.
Caso o estudante não obtenha aprovação, poderá repetir a UC no ano letivo seguinte, conforme o regulamento.
A melhoria de nota poderá ser obtida no ano letivo seguinte, repetindo as componentes de avaliação, em conformidade com o regulamento em vigor.
A 1ª Época e 2ª Época poderão ser utilizadas para realização de momentos de avaliação.
A presença nos momentos síncronos não é obrigatória, mas recomendada, dada a oportunidade de interação e feedback imediato.
Para além do RGACC, o estudante deve consultar o Regulamento de Estudantes com Estatuto Especial (REEE) e o Código de Conduta Académica (CCA).
"1. Sra, Suvrit, Sebastian Nowozin, and Stephen J. Wright, eds., Optimization for machine learning, Mit Press, 2012. 2. Dréo, Johann, et al., Metaheuristics for hard optimization: methods and case studies, Springer Science \& Business Media, 2006. 3. Postek, Krzysztof and Zocca, Alessandro and Gromicho, Joaquim and Kantor, Jeffrey, Hands-On Mathematical Optimization with AMPL in Python, 2024. https://ampl.com/mo-book 4. Dive into DeepLearning, Chapter 11, Optimization algorithms, https://d2l.ai/chapter_optimization/"
"J. A. E. Andersson, J. Gillis, G. Horn, J. B. Rawlings and Moritz Diehl, CasADi -- A software framework for nonlinear optimization and optimal control, Mathematical Programming Computation, vol. 11, no. 1, pp. 1--36, 2019. https://doi.org/10.1007/s12532-018-0139-4, https://web.casadi.org/"