Si segnalano alcune opportunità di tirocinio/tesi presso Almaviva, sui temi riportati di seguito. Per informazioni, contattare il prof. Simon Pietro Romano (Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.).
Titolo: "Confronto tra reti di apprendimento automatico convenzionali e convoluzionali per applicazioni finanziarie"
Abstract: Questa tesi mira a valutare le prestazioni di reti neurali convoluzionali (CNN) e reti neurali artificiali (KAN) in scenari finanziari specifici, come la previsione dei prezzi delle azioni o l'analisi del rischio. Verranno implementate e testate diverse architetture di rete su dataset finanziari reali, analizzando parametri come accuratezza, velocità di elaborazione e robustezza. Saranno inoltre esplorate librerie come TensorFlow, Keras e PyTorch per la realizzazione dei modelli.
Passi:
- Revisione della letteratura su applicazioni di CNN e KAN in finanza
- Selezione e preparazione dei dataset finanziari (yfinance)
- Implementazione di modelli CNN e KAN per i casi d'uso scelti
- Confronto delle prestazioni dei modelli in termini di accuratezza, efficienza e interpretabilità
- Analisi dei risultati e identificazione dei punti di forza e debolezza di ciascuna approccio
Titolo: "Addestramento di un Language Model su misura per applicazioni finanziarie"
Abstract: Questa tesi si concentrerà sulla progettazione e l'addestramento di un Language Model su larga scala (LLM) per risolvere problemi specifici in ambito finanziario o per affrontare sfide tecnologiche come la comprensione del codice. Partendo da architetture di LLM open-source, come GPT-3 o BERT, verrà personalizzato e adattato il modello per migliorarne le prestazioni su compiti quali la generazione di testi finanziari, l'analisi di report aziendali o il miglioramento della comprensione del codice. Verranno esplorate tecniche di fine-tuning, apprendimento continuo e strategie di addestramento per ottenere un LLM altamente specializzato.
Passi:
- Revisione della letteratura sui LLM e le loro applicazioni in finanza e IT
- Selezione di un'architettura di LLM open-source adatta (https://github.com/rasbt/LLMs-from-scratch - https://www.amazon.com/gp/product/1633437167)
- Raccolta e preprocessamento di dataset finanziari o di codice sorgente
- Addestramento del LLM utilizzando tecniche di fine-tuning e apprendimento continuo
- Valutazione delle prestazioni del LLM personalizzato su compiti specifici
- Analisi dei risultati e identificazione di potenziali miglioramenti
Titolo: "Esplorazione di LLM senza self-attention per la generazione automatica di test Junit"
Abstract: Questa tesi si concentrerà sull'utilizzo di Language Model senza meccanismi di self-attention, come Falcon-Mamba, per generare automaticamente test Junit a partire dalla comprensione del codice sorgente. Questi modelli alternativi alla tradizionale architettura Transformer potrebbero offrire vantaggi in termini di efficienza e scalabilità, particolarmente utili per risolvere problemi tecnici come la copertura dei test. Verranno implementati e testati diversi approcci per l'integrazione di questi LLM nella pipeline di sviluppo software, valutandone l'accuratezza, la leggibilità e l'utilità pratica.
Passi:
- Revisione della letteratura su LLM senza self-attention e generazione di test automatici
- Selezione e preparazione di dataset di codice sorgente e test Junit
- Implementazione di modelli Falcon-Mamba e altri LLM senza self-attention
- Sviluppo di tecniche per l'integrazione dei LLM nella generazione di test Junit
- Valutazione delle prestazioni dei modelli in termini di copertura, leggibilità e facilità di utilizzo
- Analisi dei risultati e identificazione di potenziali miglioramenti
Titolo: "Chatbot intelligente basato su web scraping e database a grafo"
Abstract: Questa tesi si concentrerà sulla realizzazione di un chatbot avanzato in grado di interagire con gli utenti fornendo informazioni pertinenti su un sito web specifico. Il chatbot utilizzerà lo strumento Scrapy per estrarre dati dal sito web, che verranno quindi archiviati in un database a grafo Neo4j. Sarà inoltre integrato un modello di linguaggio naturale, come quello di OpenAI, per consentire agli utenti di porre domande in linguaggio naturale e ricevere risposte basate sui dati estratti. Il progetto mira a dimostrare come l'integrazione di tecnologie di web scraping, database a grafo e Language Model possa portare allo sviluppo di chatbot intelligenti e altamente personalizzati.
Passi:
- Revisione della letteratura su chatbot, web scraping e database a grafo
- Selezione del sito web da utilizzare come caso di studio
- Implementazione dello strumento Scrapy per l'estrazione dei dati dal sito
- Progettazione e implementazione del database a grafo Neo4j per l'archiviazione dei dati
- Integrazione di un modello di linguaggio naturale, come OpenAI, per l'interazione del chatbot
- Sviluppo dell'interfaccia utente e dei meccanismi di domanda/risposta del chatbot
- Valutazione delle prestazioni e dell'utilità della chatbot sviluppato
Titolo: "Utilizzo di modelli di Intelligenza Artificiale Generativa per il refactoring di codice legacy verso un'architettura a microservizi"
Abstract: Questa tesi esplora l'applicazione di modelli di Intelligenza Artificiale Generativa (GEN AI) per automatizzare il processo di trasformazione del codice legacy da un approccio procedurale a un'architettura software ben progettata, come l'architettura a microservizi. I modelli GEN AI verranno addestrati per identificare i vari concern all'interno del codice sorgente esistente, come la logica di business, l'accesso ai dati e i requisiti non funzionali. Sulla base di questa analisi, verrà quindi implementato un processo di refactoring automatizzato per riorganizzare il codice in un'architettura a microservizi, garantendo una migliore separazione delle responsabilità, scalabilità e manutenibilità.
Passi:
- Revisione della letteratura sull'utilizzo di GEN AI per l'analisi e il refactoring del codice
- Selezione di un caso di studio di codice legacy da trasformare
- Addestramento di modelli GEN AI per l'identificazione dei concern nel codice sorgente
- Sviluppo di algoritmi di refactoring basati sui concern identificati per ottenere un'architettura a microservizi
- Implementazione del processo automatizzato di trasformazione del codice
- Valutazione dei limiti, delle prestazioni e della qualità del codice generato rispetto all'approccio manuale
Titolo: "Utilizzo di Language Model su larga scala per l'automazione dei processi decisionali basati su Architettura Decision Record (ADR)"
Abstract: Questa tesi esplora l'integrazione di Language Model su larga scala (LLM) all'interno di un processo di supporto alle decisioni basato sull'Architettura Decision Record (ADR). L'ADR è un approccio di progettazione dell'architettura software che consente di documentare e tracciare le decisioni chiave prese durante lo sviluppo di un sistema. Combinando LLM con i principi dell'ADR, questa tesi mira a sviluppare un sistema che possa automatizzare l'identificazione dei fattori chiave da considerare per una determinata decisione, generare alternative di soluzioni e valutarne i pro e i contro, nonché fornire raccomandazioni basate sulle migliori pratiche. Ciò potrebbe portare a un processo decisionale più efficiente, documentato e coerente nell'ambito dello sviluppo di sistemi software complessi.
Passi:
- Revisione della letteratura sull'utilizzo di LLM per il supporto alle decisioni e sull'Architettura Decision Record
- Definizione di un caso d'uso significativo per l'integrazione di LLM e ADR
- Raccolta di dataset di documenti ADR e dati contestuali pertinenti
- Addestramento di LLM per l'analisi di documenti ADR e la generazione di alternative decisionali
- Sviluppo di un sistema che combini LLM e principi ADR per il supporto alle decisioni
- Valutazione dell'efficacia del sistema sviluppato attraverso casi di studio e feedback degli utenti
- Analisi dei risultati e identificazione di potenziali miglioramenti o estensioni del sistema