[{"content":"","permalink":"https://ceppi.si/projects/llm-watermarking-research/","summary":"Ongoing research into watermarking schemes for LLM-generated text.","title":"LLM watermarking"},{"content":"Watermarking is a way to mark the output of a language model so it can be identified later: a signal embedded in the text itself, invisible to a casual reader, detectable by anyone with the right key. It matters for content integrity: knowing whether a piece of text was generated by an AI.\nThe most widely studied class of watermarks works at generation time. At each step, the model\u0026rsquo;s vocabulary is split into two halves: a \u0026ldquo;green list\u0026rdquo; and a \u0026ldquo;red list\u0026rdquo;. Tokens from the green list are upweighted, so they get picked more frequently. A text is later detected as watermarked by measuring whether green tokens appear more often than chance. Simple, principled, and it works .\nThe standard way to assign tokens to lists was a random shuffle of the vocabulary, followed by a split at the midpoint. This guarantees a perfectly balanced partition: exactly half the tokens are green, half are red. Correct, and well understood. But also inherently sequential and memory-intensive.\nThe crucial insight in this work is both simple and effective. A perfectly balanced partition is not actually necessary. What the detection test needs is not that the split is exact, but that it is exact in expectation: each token should have an equal probability of landing on either side. If that holds, token after token the statistical behaviour converges to exactly what you would get with a perfect split.\nSo the question becomes: how do you assign each token to a list independently, with equal probability, cheaply, and in parallel? Coin flips. One Bernoulli trial per token, no communication between tokens, no intermediate allocations, trivially parallelisable and distributable without communication on multiple GPUs as modern LLM deployment often requires. Membership assignment reduces to a single comparison per token against a counter-based RNG: O(1), stateless, and embarrassingly parallel.\nWe prove analytically that the detection statistic\u0026rsquo;s null distribution is unchanged, and verify empirically that detection power and text quality are unaffected. The cost drops dramatically.\nThe method, Stateless Bernoulli Watermarking (SBW), is faster than anything comparable: over 6000x faster than KGW \u0026rsquo;s self-salt scheme and 2x faster than SynthID at full-vocabulary watermarking, with less than 1% end-to-end generation overhead at all batch sizes. Along the way, we found something unexpected: the choice of hash function, a detail everyone had treated as an implementation footnote, turns out to be a meaningful axis for watermark quality. A GPU-native Jenkins hash improves null calibration by 1.8x and produces more diverse text.\nThis work was accepted at EMNLP 2026 (main conference), co-authored with Ignacio Sanchez.\nPaper: Flip, Don\u0026rsquo;t Shuffle: Watermarking LLMs at the Speed of Inference (Ceppi and Sanchez, 2026) Code and data: github.com/si-mon-jinn/flip-dont-shuffle Tools: sbw · waterpipe ","permalink":"https://ceppi.si/projects/llm-watermarking/","summary":"A statistical first-principles insight improved the efficiency of LLM output watermarking, replacing a slow shuffle with a fast parallel per-token operation. Accepted at EMNLP 2026.","title":"Flip, Don't Shuffle: Watermarking LLMs at the Speed of Inference"},{"content":"SBW is the reference implementation of Stateless Bernoulli Watermarking, the scheme introduced in Flip, Don\u0026rsquo;t Shuffle: Watermarking LLMs at the Speed of Inference . It is published on PyPI and designed to be used both as a research tool and in production inference pipelines.\nSBW ships as two packages. sbw is the core library: model-agnostic and inference-engine-agnostic, it implements the classes for watermark application and detection without assumptions about how the model is served. vllm-sbw is a vLLM logits processor that injects the watermark at generation time, with near-zero overhead and full compatibility with vLLM\u0026rsquo;s CUDAGraph optimisations.\npip install sbw # core library pip install vllm-sbw # generation via vLLM Usage instructions and vLLM integration examples are in the repository README .\nThe design priorities are speed and correctness. Membership assignment is O(1) per token: a single comparison against a counter-based RNG, no intermediate allocations, and the detection test is a standard z-score with provably correct null calibration. The Philox PRNG and a GPU-native Jenkins hash are used for the pseudorandom function, with hash function choice exposed as a configurable axis1.\nThe code is open source. Check it out on GitHub. Links: GitHub · PyPI (sbw) · PyPI (vllm-sbw) · Paper Hash function choice matters more than you might expect. Check the paper .\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","permalink":"https://ceppi.si/projects/sbw/","summary":"Python library implementing Stateless Bernoulli Watermarking for LLMs. GPU-native, near-zero inference overhead, with vLLM integration.","title":"SBW: Stateless Bernoulli Watermarking"},{"content":"waterpipe is an evaluation pipeline for LLM watermark research. It handles the full experimental workflow: generating watermarked and non-watermarked text via an OpenAI-compatible API, running detection, computing quality metrics, and testing robustness against a range of attacks.\npip install llm-waterpipe Usage instructions and configuration examples are in the repository README .\nAn experiment is defined by a JSON configuration file specifying the model endpoint, dataset, watermark parameters, and which stages to run. The pipeline then executes them in order and writes structured outputs to the experiment directory: generations, detection results, metrics, attack results, and aggregated statistics. Stages can be run independently, which makes iterating on specific parts of an experiment fast.\nSupported attacks include truncation, word deletion and reordering, character-level perturbations, synonym substitution, paraphrasing via LLM, and masked language model substitution. Quality metrics cover perplexity, BERTScore, and lexical diversity.\nwaterpipe was built for the Flip, Don\u0026rsquo;t Shuffle: Watermarking LLMs at the Speed of Inference experiments and is actively used in ongoing research beyond that paper.\nThe code is open source. Check it out on GitHub. Links: GitHub · PyPI · Paper ","permalink":"https://ceppi.si/projects/waterpipe/","summary":"Evaluation pipeline for LLM watermark research: generation, detection, quality metrics, and robustness testing against attacks.","title":"waterpipe: LLM watermark evaluation pipeline"},{"content":"","permalink":"https://ceppi.si/projects/forensic-analysis/","summary":"AI-enhanced forensic investigation techniques for criminal investigations at the JRC.","title":"AI-assisted forensic analysis"},{"content":"My PhD at the Università degli Studi di Milano (2024) focused on a specific and poorly understood corner of star formation: what happens to the gas disc around a young star when that star is not alone. Most stars form in multiple systems: binaries, triples, higher-order hierarchies. The discs around them behave very differently from the idealised single-star case. At the time, most research treated every system with more than two stars as an effective binary, both analytically and in simulations. My work showed that assumption to fail in systematic and predictable ways.\nThe central question across my three papers was: how do these discs align, precess, and distribute mass? And what can we infer from observing them about the initial conditions of these systems and their natal regions: the orbital eccentricities, the mutual inclinations, at the moment of birth?\nKey results:\nIdentified for the first time the accretion trends in hierarchical triple systems and showed how they deviate from the binary case in predictable ways (MNRAS 2022 ) Derived an analytical criterion for when accretion discs can reach a polar (perpendicular) alignment in triple or multiple stellar systems, extending prior binary-only theory (MNRAS 2023 ) Developed a statistical method to constrain the initial distributions of orbital eccentricity and disc misalignment across a stellar population by measuring the polar disc fraction (A\u0026amp;A 2024 ) Links: Thesis (UniMI) · ORCID · ADS ","permalink":"https://ceppi.si/projects/phd-disc-dynamics/","summary":"PhD research on how accretion discs evolve in multiple star systems: how they align, how mass flows, and what this tells us about the origins of planets and stars.","title":"Disc dynamics in hierarchical stellar systems"},{"content":"","permalink":"https://ceppi.si/projects/agentic-systems/","summary":"Research into agentic workflow languages and human-agent collaboration protocols at the JRC.","title":"Agentic workflows and co-agent systems"},{"content":"Researching is the thing I do. While the field changed a couple of times, I found that the first-principles approach I\u0026rsquo;ve grown into over time transfers well, as long as the problem is challenging and at the frontier.\nI currently work as a researcher at the Joint Research Centre , the European Commission\u0026rsquo;s science service. The work sits at an intersection I value: serious AI research, and a direct contribution to the European Union project. It spans LLM watermarking, AI-enhanced forensic investigation, and agentic systems. More on the projects page .\nI did a PhD in astrophysics at the Università degli Studi di Milano, studying the dynamics of protoplanetary discs around binary and triple star systems. The work was a mix I grew to love: pen and paper first, building analytical intuition about why a disc should precess, misalign, or snap into a polar orbit , and then large-scale numerical simulations to stress-test that intuition, discover what the theory missed, and go back to understand what the numbers were actually saying. I spent a lot of time with Phantom (a widely used SPH code for astrophysical fluid dynamics), running simulations on HPC clusters and chasing the interplay between accretion , alignment , and orbital architecture across hierarchical stellar systems. That cycle, theory, experiment, interpretation, back to theory, is the way I approach most problems nowadays.\nSPH simulation of a polar disc in the T CrA hierarchical triple system (Rigliaco, Gratton, Ceppi et al. 2023).\nIt also made the move to CINECA a natural one, after the PhD. Italy\u0026rsquo;s main supercomputing centre was a place where HPC was not a tool in service of a specific science, but the subject itself. I worked on infrastructure and contributed to a large-scale seismic imaging software used in industrial settings, solving the elastic wave equation in anisotropic media (a Tectonophysics exam I had taken years earlier turned out not to be wasted after all) at a scale where every design decision has a cost, and where squeezing precision down to fit memory constraints is not a hack but an engineering art (yes, 5-bit floats are a thing, and yes, they matter). When you work alongside engineers who describe mapping a PDE solver onto GPU hardware as \u0026ldquo;the most beautiful thing in the world, after mom and wife\u0026rdquo; (L.F., and he meant it), you cannot help but be infected by the same virus.\nThe move to AI emerged on its own. During my PhD I had been experimenting with machine learning on the side, out of genuine curiosity. When I started studying language modeling more seriously, I found Bengio et al. 2003 , one of the founding papers of neural language models, through a lecture by A. Karpathy. The paper opens by referencing kernel density estimation : the same family of methods that underpins SPH . In a period of transition between worlds, from academia to industry, from astrophysics to HPC to something new, that recognition felt like a welcome. I followed the thread, and I\u0026rsquo;m still following it today.\n","permalink":"https://ceppi.si/about/","summary":"AI researcher at the European Commission\u0026rsquo;s Joint Research Centre, working on LLM watermarking, agentic systems, and AI-enhanced forensic analysis.","title":"About"}]