§01
Selected work
5 systems · shipped & measured
P.01
On-prem RAG for code generation
MSc project
CodeLlama-7B-Instruct
NF4 · 4-bit
CodeBERT embeddings
BM25 + Dense + RRF
KB ≈ 7,600
CodeBLEU 0.186 → 0.257 (+38%)
A retrieval-augmented generation pipeline for code, built to run entirely locally. Hybrid retrieval — sparse BM25 fused with dense CodeBERT embeddings via reciprocal-rank fusion — draws from a ~7,600-snippet knowledge base and conditions a 4-bit-quantised CodeLlama-7B-Instruct. Measured with CodeBLEU: 0.186 → 0.257, a 38% relative gain over the no-retrieval baseline.
RAGhybrid retrievalbitsandbytesquantisationevaluation
P.02
Encoder-only transformer on an STM32N6 NPU
MSc project
~4.56M params
INT8 per-channel
73 ms/token (cold)
7.16 MB flash
STM32N6570-DK
Deploying a transformer where there is barely room for one. An encoder-only ~4.56M-parameter model, quantised INT8 per-channel and compiled for the Neural-ART NPU on the STM32N6, running at 73 ms/token cold-start inside a 7.16 MB flash footprint. Built with Patrizio Acquadro.
Flash budget
▮▮▮▮▯▯▯▯
7.16 MB used
Precision
▮▮▯▯▯▯▯▯
INT8 · per-channel
Latency / token
▮▮▮▯▯▯▯▯
73 ms (cold-start)
TinyMLX-Cube-AITFLite INT8on-device inference
P.03
Vision-language web agent (WebVoyager)
MSc project
Qwen3-VL 8B/30B (local · Ollama)
DeepSeek-V3 (API)
grayscale Set-of-Mark
ResNet-18 router
GPT-4o baseline 62.7%
A vision-language browsing agent benchmarked on WebVoyager. Ran Qwen3-VL (8B and 30B) locally through Ollama and DeepSeek-V3 via OpenRouter, against a GPT-4o baseline at 62.7% task success. Co-developed a grayscale Set-of-Mark prompting variant (with Montico) and added a ResNet-18 page-type classifier that cut agent latency by 17%.
LLM agentsVLMSet-of-MarkbenchmarkingOllama
P.04
Constraint-aware HPO for TinyML
BSc thesis · STMicroelectronics
Keras Tuner (extended)
ROM / RAM / MACC budgets
MLPerf Tiny
X-Cube-AI
Bachelor's thesis at STMicroelectronics: a hyperparameter-optimisation layer extending Keras Tuner to respect hard ROM, RAM and MACC budgets on STM32 targets — so the search only ever proposes models that will actually fit and run. Cost estimators validated on three MLPerf Tiny tasks; end-to-end HPO demonstrated on two. Supervised by Davide Denaro.
AutoMLhardware-aware searchembeddedMLPerf Tiny
P.05
De-biasing ERA5 urban heat
GenHack 2025
Random Forest
ERA5 · UHI bias
bias −93%
RMSE −35%
GenHack 2025 (École Polytechnique · BNP Paribas · Kayrros). A Random Forest correcting ERA5's urban-heat-island temperature bias — roughly 93% reduction in systematic bias and 35% in RMSE. The dominant predictors turned out to be elevation, latitude and longitude rather than urban fraction, which reframed how the team read the error.
applied MLclimate datafeature analysis