
Machine Learning Engineer @huggingface Open Source team
New york
Joined February 2023
- Tweets767
- Following528
- Followers1.7K
- Likes3.6K
🤗 transformers serve now speaks 🔊
We just added an OpenAI-compatible `/v1/audio/speech` endpoint.
And we couldn't have picked a better model to launch it
with than Phonon, @GradiumAI brand-new on-device TTS: tiny, fast and multilingual.
Run with:
transformers serve gradium/phonon-40m-en
Huge kudos to @eustlb for the day-0 transformers integration, and @GradiumAI for open-sourcing their models!
Phonon-31m is Apache 2.0 🔥
huggingface.co/gradium/phono…
Marc Sun retweeted
A new frontier for on-device speech.
We're open-sourcing Phonon, a suite of TTS models under 50m parameters, setting a new standard for naturalness and accuracy across languages, with the broadest inference support to date.
Phonon-31m is available under Apache 2.0.
gradium.ai/phonon🧵
Marc Sun retweeted
Harness Lens - what harness for your use-case?
Compare 19 (and counting!) harnesses across tools, design, and how opinionated they are.
Learn about how each compacts, their system prompt, and what makes them 𝙩𝙝𝙚𝙢.
Impressive tool by @yb2698: huggingface.co/spaces/ybelka…
Marc Sun retweeted
There are 2,274 open-source decision models on the Hub. Which one should you actually use?
Now there's an answer: typed-decisions is officially a benchmark on the Hub 🏆
Live leaderboard, filterable by size, from <1B to <500B. The community moves fast, and now you can see who's winning 👇
huggingface.co/datasets/Loca…
Adapt your small model on your target harness with less than 20$ using RL + HF jobs !
We improved Qwen3.5-0.8B from 10% to 36% on our test set by reducing the number of tool calls by almost 2.
Everything fits on a single 24GB GPU and no need to generate synthetic trajectories !
🧵 👇
Marc Sun retweeted
There are 505 "agent traces" datasets on the @huggingface Hub (17.6 GB).
I parsed them to answer: what models, which harnesses, what tasks, how long are sessions?
Real user usage is ~15% of sessions. Here it is broken down:
🧵 👇
Marc Sun retweeted
Could not post last week as beam was released!
Now we are working on a dtype plan for arbitrary quantization per layer!
MOE fans, this one is for you 👀
Marc Sun retweeted
Tell your robot what you want, in plain words.
New in LeRobot: a vision-language model breaks your goal into skills your robot's brain already knows, steers it step by step, and answers questions as it works.
Demo: huggingface.co/spaces/lerobo…
Marc Sun retweeted
Fun and crazy napkin math: Meta, NVIDIA, Alibaba, DeepSeek, Moonshot, Mistral and ~30 other labs have shared close to $1B worth of training compute on the Hugging Face Hub
Free to download
End of 2023 it was under $40M
Wikipedia was written in volunteer hours. This AI age commons is written in GPU-hours and data
(it's a floor btw: about half comes from official compute numbers rest is educated guess and it still miss the ~900k community fine-tunes)
Space with data to explore: thomwolf-hub-dollars.static.…
Marc Sun retweeted
Meta is releasing Muse Spark Open as the most-capable US open-weight model.. 🥁 and it's an agent focused MoE that takes all modalities 🔥
Welcoming the model to Hub with day-0 support in transformers and llama.cpp 🤗
huggingface.co/blog/meta-mus…
Marc Sun retweeted
Btw for the latest updates on `tokenizers` follow @SimonBrandeis as I'll post more on `transformers`!
He's our new maintainer and he'll be landing v1 in ~1 month I heard 👀
Marc Sun retweeted
How do you reach a 50x speedup on the old, 8 years old BERT tokenizer?
@SimonBrandeis went deep in the bert-base-uncased tokenizer with a single objective: make it as a fast as possible.
Turns out 88% of the encoding time was spent normalizing text, with the actual WordPiece tokenization only being 8%.
Is that normalization even necessary?
Most English/code is ASCII. Most non-ASCII text uses a small, predictable part of Unicode; and most text is already normalized.
So instead of making all that work faster, we started skipping it.
→ SIMD to skip entire ASCII ranges at once
→ cache Unicode properties instead of repeatedly searching tables
→ avoid allocations when normalization changes nothing
Result: up to another 5.7x faster BERT tokenization, or around 50x compared to tokenizers 0.23, with exactly the same tokens coming out.
And BERT is very much not dead: BERT-like tokenizers still sit behind embeddings, search, RAG, rerankers and classifiers used at massive scale.
Tokenmaxxing BERT: huggingface.co/blog/huggingf…
Marc Sun retweeted
We made tokenizers 50x faster for BERT-like models!
I wrote a piece about the techniques we used to get there:
huggingface.co/blog/huggingf…
Marc Sun retweeted
🌲 Tree packing has landed in AsyncGRPO in TRL!
⚡ 26× less trainer compute to reach the same reward on agentic RL.
GRPO starts from the same prompt G times, and forked multi-turn rollouts share most of their history. Sequence packing forwards those shared tokens once per sample. Tree packing forwards each unique token once.
The first version used FlexAttention, but the shipped one is a single FA3 varlen call. Each token retains its own target, advantage, and previous log-prob.
Extensively tested against sequence packing on dense, sliding-window, softcap, MoE, and VLM models. When it can't pack anything, it costs ~1%.
On a REAL agentic RL run on MiMo Envs, tree packing reached the same reward with 26× less trainer compute 👇
For a small model, ipython is all you need
While testing different harnesses, turns out a single tool harness can tie some complex production grade harnesses on Terminal-Bench Lite.
Less scaffolding --> better small agents - let's explore this together
🧵 👇
Marc Sun retweeted
Yesterday and today I worked on the new "decision" pipeline to support all `jev`-like models in `transformers`.
This will bring good standards in the mayhem that the ecosystem is now 👀
Meaning support for all jev/clef/von/etc via the simple and efficient `transformers serve`
Pi harness optimized for Qwen models? 👀
We tried to optimize the Pi harness for Qwen model series by trying to tweaking various components from the harness. Despite early findings on ALE (Agents Last Exam), it seems nothing much improves with Terminal-Bench Lite, why is that?
Experiment setup and findings in the thread 🧵
















