Alonso Silva's Avatar

Alonso Silva

@alonsosilva

AI Researcher @ Nokia Bell Labs. Interested on Large Language Models (LLMs), Machine Learning and Data Analysis.

241
Followers
293
Following
88
Posts
19.08.2023
Joined
Posts Following

Latest posts by Alonso Silva @alonsosilva

Notebook Link

Pandas 3.0 was just released yesterday!! 🀘

And guess what? You can already play with it in Notebook.link.

I quickly built a Notebook.link link for you to play with it now:
notebook.link/@martinRenou...

23.01.2026 14:39 πŸ‘ 4 πŸ” 4 πŸ’¬ 0 πŸ“Œ 0

If you are (or know of) a Master's or PhD student looking for an internship, I am proposing the subject: 'Efficient Structured Generation with Grammar-Aware Sampling Techniques.' www.dropbox.com/scl/fi/7iwfg...
If you're passionate about structured generation, feel free to reach out!

23.01.2026 10:16 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Screenshot of Awesome LLM constrained decoding repo.

Screenshot of Awesome LLM constrained decoding repo.

Litelines got added to the Awesome LLM constrained decoding repo 😊
It’s great to share this space with more established libraries like Outlines, XGrammar, or Guidance.

Link to the Awesome LLM constrained repo:
github.com/Saibo-creato...

Link to litelines:
alonsosilvaallende.github.io/litelines/

23.01.2026 05:10 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
The following code:
```python
from fastlite import database, diagram
from graphviz import Source
from pathlib import Path
from fastcore.net import urlsave

url = 'https://github.com/lerocha/chinook-database/raw/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite’
path = Path('chinook.sqlite')
if not path.exists(): urlsave(url, path)
db = database("chinook.sqlite")
diagram(db.t)
```
displays the database diagram.

The following code: ```python from fastlite import database, diagram from graphviz import Source from pathlib import Path from fastcore.net import urlsave url = 'https://github.com/lerocha/chinook-database/raw/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite’ path = Path('chinook.sqlite') if not path.exists(): urlsave(url, path) db = database("chinook.sqlite") diagram(db.t) ``` displays the database diagram.

You can display SQLite database diagrams in @marimo.io using `fastlite` and `graphviz`.
Here is a basic molab notebook to play online:
molab.marimo.io/notebooks/nb...
Here is my merged PR πŸ™‚
github.com/marimo-team/...

19.01.2026 15:31 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
The following code:
```python
import graphviz

dot = graphviz.Digraph()
dot.edge("hello", "world")
dot.edge("hello", "name")
dot
```
 displays a graph with three nodes: 'hello', 'world',  'name', and two directed edges: from hello to world and from hello to name.

The following code: ```python import graphviz dot = graphviz.Digraph() dot.edge("hello", "world") dot.edge("hello", "name") dot ``` displays a graph with three nodes: 'hello', 'world', 'name', and two directed edges: from hello to world and from hello to name.

marimo @marimo.io now supports graphviz
Here is a basic notebook to play online:
molab.marimo.io/notebooks/nb...
Here is my merged PR πŸ™‚
github.com/marimo-team/...

19.01.2026 15:29 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Batch processing using transformers and litelines libraries
Batch processing using transformers and litelines libraries YouTube video by Alonso Silva

Batch processing using transformers and litelines libraries. In this video, I process 900 prompts in 30 seconds with an RTX A4000 with 16GB of VRAM.
www.youtube.com/watch?v=7hVU...

09.01.2026 19:46 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

The new litelines release should work much better in marimo notebooks.
You can try it in a marimo molab: molab.marimo.io/notebooks/nb...
Here is litelines documentation: alonsosilvaallende.github.io/litelines/
Here is the release changelog: github.com/alonsosilvaa...

07.01.2026 15:53 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Qwen logo in Chinese.

Qwen logo in Chinese.

New blog post: Force a Qwen model not to use Chinese
alonsosilvaallende.github.io/blog/posts/2...

06.01.2026 14:39 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Qwen3-1.7B beating GPT-4o at a lipogram task
Qwen3-1.7B beating GPT-4o at a lipogram task YouTube video by Alonso Silva

How is it possible that a 1.7 billion parameter model succeeds where a model with hundreds or thousands of billions of parameters fails?
www.youtube.com/watch?v=wmgw...

03.01.2026 18:36 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
How to define a logits processor and generate a structured response.

How to define a logits processor and generate a structured response.

How to visualize the selected paths defined by the logits processors.

How to visualize the selected paths defined by the logits processors.

The latest release of Litelines supports batch processing for Transformers library.
`pip install --upgrade litelines`

Here is a colab to get started:
huggingface.co/datasets/alo...

And here is the library documentation:
alonsosilvaallende.github.io/litelines/

30.12.2025 17:10 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Lightning talks - session 1
Lightning talks - session 1 YouTube video by PyData

My talk, "Processors for Language Models," at PyData Paris 2025 is now available. I discuss my personal project, Litelines, as well as common libraries used to transform unstructured data into structured data.
Link to the video:
www.youtube.com/watch?v=VP4I...

21.12.2025 17:58 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Structured code generation for domain-specific languages

The slides of the presentation can be found here: alonsosilvaallende.github.io/automata-gui...

The repo of the presentation is here: github.com/alonsosilvaa...

11.12.2025 06:42 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

I gave a talk about structured code generation for domain-specific languages: Abstract Syntax Trees (ASTs), Concrete Syntax Trees (CSTs), Deterministic Finite Automata (DFA), Regular Expressions (Regex), Pushdown Automata (PA), Context-Free Grammars (CFGs), outlines, guidance, Georges Perec, etc.

11.12.2025 06:40 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
alonsosilva/litelines-notebooks at main We’re on a journey to advance and democratize artificial intelligence through open source and open science.

Here are the starting notebooks I presented at @pydataparis.bsky.social
tinyurl.com/litelines-hf
And here is the documentation of litelines:
tinyurl.com/litelines
#PyDataParis

30.09.2025 18:27 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Featured in marimo newsletter 🀩
marimo.io/blog/newslet...

29.09.2025 18:14 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Doing a slightly better documentation than just the README.md
alonsosilvaallende.github.io/litelines/ge...
Feeback?

27.09.2025 12:03 πŸ‘ 4 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - alonsosilvaallende/litelines: Customize, control, and enhance LLM generation with logits processors, featuring visualization capabilities to inspect and understand state transitions Customize, control, and enhance LLM generation with logits processors, featuring visualization capabilities to inspect and understand state transitions - alonsosilvaallende/litelines

To install it, just do `pip install litelines`.

Here are the docs:
github.com/alonsosilvaa...

Litelines is a lightweight wrapper of `outlines-core` by .txt

16.09.2025 07:18 πŸ‘ 4 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image Post image

Want to visualize the response format constraints on the LLM when working in a Jupyter notebook?
Then you might be interested in my new project `litelines`.
Litelines lets you visualize the selected path by the LLM.
It supports a Pydantic schema as a response format, as well as regular expressions.

16.09.2025 07:18 πŸ‘ 9 πŸ” 4 πŸ’¬ 1 πŸ“Œ 2
Certainty-Guided Reasoning in Large Language Models: A Dynamic Thinking Budget Approach
Certainty-Guided Reasoning in Large Language Models: A Dynamic Thinking Budget Approach YouTube video by Pupusse LINCS

The recording of my presentation "Certainty-Guided Reasoning: A Dynamic Thinking Budget Approach" at the Laboratory for Information, Networking and Communication Sciences (LINCS) is now available:
www.youtube.com/watch?v=8a44...

28.07.2025 09:48 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

Here is the Hugging Face space to play with it: huggingface.co/spaces/alons...

Here is a Google Colab with the same information as the post:

nbviewer.org/gist/alonsos...

23.07.2025 19:17 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

New blog post: Constrain a language model not to use the letter 'e'

alonsosilvaallende.github.io/blog/posts/2...

In this post, I constrain a small language model (0.6B parameters) with a logits processor to accomplish something GPT-4o fails to do (see chatgpt.com/share/687908...).

23.07.2025 19:17 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

TIL how to add notebook cells running on @pyodide.org to Quarto projects, such as my blog:
alonsosilvaallende.github.io/til/posts/20...
It's very easy to change the Pyodide version if needed. Thanks @coatless.bsky.social for this great Quarto extension

18.07.2025 15:33 πŸ‘ 3 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0

tfw u need neo4j to put together the polycule chart

18.07.2025 05:56 πŸ‘ 78 πŸ” 4 πŸ’¬ 4 πŸ“Œ 0
Post image

New blog post: Understanding Logits Processors
alonsosilvaallende.github.io/blog/posts/2...
I start with a basic min length example, then force the model to check its answer, followed by making reasoning models stop thinking once they reach a thinking budget & finally force the model to think longer

16.07.2025 15:29 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

New blog post: Understanding Structured Outputs
alonsosilvaallende.github.io/blog/posts/2...
This is the power behind structured ouputs libraries such as Instructor and Marvin.
I provide a basic example of extraction, a slightly more complex one, then classification, and finally SO in WebAssembly.

11.07.2025 12:19 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Where is that?

06.07.2025 08:25 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

New blog post: Understanding Function Calling

I provide a basic example of FC, then a slightly more complex example by allowing an LM to use Python. I explain the conversational response as a tool trick. Finally, FC in the browser by using WebAssembly
alonsosilvaallende.github.io/blog/posts/2...

05.07.2025 20:24 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

So I appear in the Celebration of 100 years of Bell Labs video with our LLM robots (a.k.a. IndustrialGPT) for less than a second :-D
www.youtube.com/watch?v=Fu_I...

30.06.2025 09:58 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

New blog post: Understanding LLM Memory

alonsosilvaallende.github.io/blog/posts/2...

Using the Marimo extension for Quarto.

28.06.2025 22:44 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Understanding Chat Templates – Homepage

New post: Understanding Chat Templates

alonsosilvaallende.github.io/blog/posts/2...

20.06.2025 16:52 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0