Event Report - PyCon Italy 2026

The event: https://2026.pycon.it/en

Location: Savoia Hotel Regency, Bologna (Italy)

Participants: Giuseppe Barbieri, Mirko Ferrati, Paolo Gentili, Juan Luis Cano Rodriguez

[Authored by Giuseppe Barbieri, reposted here with his permission]

What’s better than living less than an hour away from your colleagues and attending a conference together? Doing it again!

For the second year in a row, we gathered in Bologna for PyCon Italy 2026 and this time, we went international. With our Juan Luis Cano Rodriguez joining the local crew, we officially turned our conference trip into a cross-border team reunion.

Once again, the event did not disappoint. From top-tier talks to seamless organization, it was the perfect environment for us to connect as a team, network with the broader community, and dive into how global developers are pushing the boundaries of Python.

Here is a roundup of our favorite sessions from this year, along with links to the official pages so you can dive into the details!

The Keynotes

Open-source Multimodal AI

This keynote explored the shift from LLMs to VLMs (Vision Language Models) like Llava and SmolVLM. Merve from Hugging Face discussed how these models handle object detection and segmentation, emphasizing that while we have inference control, fine-tuning depends heavily on hardware. We also saw how Meta’s SAM3 can act as a tool for models like Gemma4.

From “Fast Enough” to “Fast by Design”: The Evolution of CPython Performance

Diego walked us through the evolution of CPython performance. Since version 3.6, Python has become “optimizable by design,” adapting to modern CPU features like cache locality. Highlights included the introduction of the JIT compiler in 3.13 and the ongoing efforts to remove the GIL without sacrificing single-threaded performance.

Stop Being a Generalist: The Small Model Revolution

Friday’s closing keynote emphasized the power of small, specialized models over large generalist ones. It touched on architecture-based specialization and pruning techniques, drawing a parallel to human career specialization; though noting that human creativity and emotion remain uniquely un-optimizable.

Talks and Sessions

Hacking an AI brain - Frankenstein experiments with Language Models

This session provided an in-depth exploration of the internal mechanics of large language models, specifically focusing on activation layers and mechanistic interpretability. Researchers used psychological techniques to induce deception in models, studying internal activation patterns to identify causal relationships between prompts and model behavior. The speaker demonstrated custom Python code for visualizing activation layers and causal interventions. Key concepts included the “emergent misalignment” theory and research by Owain Evans.

Why LLM evaluation is hard, and how to do it anyway

This talk addressed the complexities of evaluating LLMs and proposed a multi-faceted approach to measuring performance beyond standard benchmarks. Evaluation strategies discussed included qualitative metrics (domain-specific and context-heavy), generic NLP metrics, and code-based assertions. The use of LLM-based assertions as runtime guardrails or unit tests was explored, noting the challenges of non-determinism. The methodology involves creating scenarios that cover edge cases, malicious inputs, and sensitive topics. The importance of Subject Matter Expert (SME) evaluation and structured data labeling guidelines was emphasized, with techniques like “LLM as a judge” and synthetic query generation for dataset creation being showcased.

Quanto è veloce GPU/CPU per AI/ML? Pipeline riproducibile per benchmark in locale.

The speaker presented a reproducible pipeline for benchmarking the local performance of small language models (SLMs) ranging from 3B to 35B parameters. The focus was on measuring speed (tokens per second) rather than just accuracy, utilizing a local setup with Ollama and an RTX 5060 Ti. An open-source infrastructure was developed to collect benchmarks from the community, featuring a dedicated database and frontend. The dashboard can be visited at https://ai-ml-gpu-bench.streamlit.app/.

How to mix conda and pip without causing “environmental” damage

The conda ecosystem played an instrumental role in the past decade to democratize Python for data science and machine learning, which then paved the way to the current dominance in the language in Deep Learning and LLMs. And yet, pip and conda don’t mix very well, which is still a problem to this day. In this presentation, Mahe Iram Khan gave an overview of the kind of issues that users can find when trying to use both toolchains, and the new solutions the conda community has been working on, like conda-pypi.

Suona il tuo codice: generare musica da file Python

This creative session showcased the use of Python for musical composition, utilizing line length and indentation as parameters for sound generation. The speaker used LSDJ software to transform Python code into music, essentially creating a “musical linter,” and the demonstration included a live performance using a Nintendo DS.

How to make music with Python in 2026

There was no shortage of talks related to music and sound. In this one Moisés Guimarães, already well known in the Python community for his performances, explained how to use FoxDot and some of its downstream forks to do live coding, a form of algorithmic music that is composed live in front of the audience and that evolves continuously over time, usually at events called algoraves. Moisés made clear that the Python ecosystem is lagging with respect to some of the more modern alternatives, but made an enjoyable and inspiring presentation regardless.

Agents reporting for duty! An (in)complete guide to LLM agents and their limits.

This guide detailed the evolution of LLM agents, focusing on agentic patterns suitable for production environments. Three primary agentic patterns were proposed: Reflection (feedback loops), Iteration, and Multi-Agent (simulated debates among experts). The session covered ReAct (Reasoning and Acting) workflows where tools are added dynamically, though output fragility remains a concern. Multi-agent constraints include rapid growth of conversation history and context window limits. Tools for evaluation were highlighted such as the DeepEval framework.

Stop asking me how long it will take

This talk examined the science and psychology behind software estimation, highlighting why developers consistently struggle with accuracy. Research indicates that technical expertise often leads to less accurate “inside view” estimates, while “outside view” statistical models are more reliable. Counterintuitively, the more a developer thinks about a problem, the lower the perceived risk often becomes, leading to underestimates. The session concluded that while tracking data is essential for improvement, current models still cannot accurately predict software costs; developers should focus on listing risks and gains rather than precise dates.

Zero temperature Lie: why your deterministic LLM is still hallucinating randomness

Based on research into inference non-determinism, this talk debunked the myth that setting temperature to zero ensures perfectly deterministic outputs. Experiments showed that even with temperature 0 and a fixed seed, models produced different answers across runs due to floating-point precision issues in GPU operations. Issues such as “atomic add” and the order of parallel operations introduce tiny variations that propagate into significant differences in output. Non-determinism is further exacerbated by request batching, suggesting a need for batch-invariant kernels. If you are interested in knowing more about the topic, here is the full article: https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference

LLM on edge su dispositivi mobile con Flutter

This session focused on optimizing and deploying LLMs for mobile devices using the Flutter framework. Optimization techniques discussed included Mixture of Experts (MoE), attention mechanisms, distillation, and quantization. The talk introduced the Cactus framework, a runtime optimized for AI on ARM-based mobile devices, enabling offline and privacy-conscious SLM usage.

Less painful Open Source code contributions

The session explored the motivations and methodologies for contributing to open-source software, aiming to make the process less intimidating for new contributors. Contributors should assess project health and consult the CONTRIBUTING.md file and CLA requirements before starting. Effective strategies include finding community mentors and ensuring CI suites pass before submission. A key takeaway was to avoid over-reliance on AI-generated code to maintain project quality.

How Shazam Identifies Songs in 5 Seconds: Audio Fingerprinting with Python

This presentation detailed the technical evolution of Shazam and its core audio fingerprinting pipeline, implemented in Python. The process involves audio capture (44.1kHz, 16-bit mono), spectrogram generation via librosa, and the identification of a “constellation of peaks.” Fingerprints are stored in a hashed database, and matching is achieved by finding maximum hash alignment while accounting for environmental noise.

Walking through PEP 810: Lazy Imports

Scheduled for Python 3.15, PEP 810 addresses the performance overhead of imports by allowing modules to be loaded lazily at runtime. This feature is particularly beneficial for CLI tools and serverless environments where startup time is critical. Limitations include deferred ImportErrors and incompatibility with inline imports or try/except blocks.

Texture Mapping like it’s 1995: Abusing NumPy for 3D Software Rendering

The speaker demonstrated 1990s-style 3D software rendering, where every pixel is computed on a single-core CPU using NumPy for texture mapping. The session covered the mathematical foundations of triangulation and texture rasterization, with performance comparisons showcased between pure Python, PyPy, and NumPy.

State of In-Browser ML: WebAssembly, WebGPU, and the Modern Stack

This discussion examined the use of WebAssembly (WASM) and WebGPU as a portable stack for deploying Python ML models directly in the browser. Tools like Pyodide and PyScript enable in-browser execution, though challenges like 32-bit RAM limits and lack of raw socket support persist. WebGPU was highlighted for its superior performance over WebGL, supported by frameworks like ONNXRuntime.

Dai Pixel alle Pinze: Addestrare il robot SO-101 con RL, Sim-to-Real e LoRA

This talk detailed the experience of assembling and training the SO-101 robot from Hugging Face, highlighting the challenges of robotics software and hardware. The speaker addressed issues with calibration and the current limitations of AI models for physical robotics, noting that inference sensitivity to environmental factors like lighting and camera positioning remains a significant hurdle.

Datanomy: Understanding the Anatomy of Arrow and Parquet

Raúl Cumplido and Alenka Frim did a great job at dissecting the Apache Arrow in-memory and Apache Parquet storage formats. For that they used datanomy, a small new open source TUI that inspects the headers and data of Parquet and Arrow IPC files and presents the information in a visually appealing way.

Tutti a bordo delle Neural ODE!

A quite enjoyable presentation on Neural Ordinary Differential Equations, a family of deep neural networks that parameterize the derivative of the hidden state using a neural network instead of specifying a discrete sequence of hidden layers. The speaker did a gentle overview of the maths involved, and showed how these neural networks are much better at approximating real world phenomena, using predator-prey systems (Lotka-Volterra equations) as example.

Canonical’s contributions

Our colleague @astrojuanlu gave a 2 hour workshop titled “The year of [packaging your Python app for] the Linux Desktop”, in which he walked the audience through the process of creating a simple Python + Rust GUI application, packaging it with modern Python tools, and then creating Snaps, .debs, and other artifacts. The workshop was sold out and the room was packed - attendees were quite engaged and they asked quite sharp questions. It was an excellent chance to dispel some Snap myths - many people in the audience learned that snapd can be installed in most major Linux distributions other than Ubuntu!

He also used the opportunity to connect with members of the Italian Linux Society and give away some freshly minted stickers of Ubuntu and flavors, kindly provided by @ilvipero from the Community team.


And that’s a wrap! PyCon Italy delivered once again, spacing from AI to core Python and all the way to robotics. See you all next year for round three!

4 Likes