Particularly, one of the most useful feedback we heard early on was adding support for rendering the GUI in jupyter/colab notebooks. Extremely common use case (that also allowed us to distinguish ourselves from some competitors)
It's interesting that for Hugging Face Spaces that Gradio beat out the more-established/more VC-backed Streamlit, despite many functional and API similarities (I haven't used both enough to explicitly compare/contrast).
Forgive me for the somewhat disparaging comment, but Gradio's product seems very basic to be. Can anyone shed some light on why HF felt the need to acquire them, rather than to just build their own version? Is there really so much complexity there that it was quicker to just acquire?
I agree about the product; perhaps they were acquired for the people rather than the actual IP. Would make sense from that perspective for HF, which has leaned strongly in the text direction, if they want to expand in the AI space.
Gradio is already integrated to some extent to HF's platform, and nothing is as trivial to build as it seems. So it just made sense to buy an existing refined solution and to hit the ground running rather than build from scratch.
As I understand, it's a reference to the Hugging Face emoji, which is supposed to be a kind of emblem for the complexity and promise of natural language processing. Or something like that, anyway.
Asking for clarification so that we can improve it -- is it that the UI is not usable, or is that the model predicts things inaccurately? If it's the latter, it might say more about the model (a convolutional network with high accuracy on the MNIST dataset) than Gradio
The UI is fine. The model seems to struggle with me drawing 6 on desktop.
Reading "Sketch Recognition" I was expecting something akin to Google draw which recognises objects like cars and trees. The digit classifier is of course fine, but I felt a bit disappointed when I realised it "only" does numbers. I also think it's the least impressive of the demos you have.
Probably not even the model, but the preprocessing - MNIST-trained models expect all the digits to have the same preprocessing that MNIST had (because that's all they saw), so if you apply a MNIST-optimized model directly to user-generated input without e.g. resizing and re-centering the images (or, alternatively, a "robustized" model trained with various data augmentations), then you're going to have horrible results.
I just drew a vertical line, slightly off center to the left, almost perfectly straight, starting about x=0.1 and proceeding to x=0.95. I expected it would show as a digit 1. Page said it was a 6. Tried a 1 with a serif on top. Page said it was an 8. Added a serif on the bottom. Still an 8.
Heck, if you mouse over the area without drawing, the model is torn between 1, 9 and 3.
I got to work with the Gradio founders as an early investor. They are a fantastic ML team, and they really leaned into doing lots of customer outreach to find their market. Congrats to Abu, Ali^2, Dawood, and the team; well-deserved and excited for the next phase of your journey.
Both seem like such weird products to me. As soon as you build something that people would find useful the thing becomes unusable with a 10 day queue since apps are only granted CPU resources. The only reason I see for the flood of people making thing on there is the heavy amount somewhat annoying amount of attention they grab for on twitter etc. Just a weird thing in my eyes.
If I (as a Gradio founder) can offer a different perspective: most apps on Hugging Face Spaces are not designed for production-level traffic. Instead, it might be a researcher who wants to share a demo of their model for reproducibility purposes, a student who's built a class project, or a hobbyist interested in building out a portfolio. For most of these projects, writing a simple gradio application and hosting on Spaces is the easiest way to share their machine learning model.
I just tried the demo sketch thing on the Gradio site and it wasn't able to correctly interpret a single digit I tried, even after 6 or 7 attempts with different values. Serious question - is this a spoof site? I find it hard to believe character recognition can be that bad, in a marketing demo no less.
I have used Gradio and Streamlit extensively, and I am very disappointed with Gradio.
The options are limited, the UI is ugly, customisability is near non-existent.
I dumped using it, and focused entirely on Streamlit.
I am satisfied. At a previous company, we used Gradio + Strelit to demo apps to clients. We ditched Gradio and switched fully to Streamlit.
I recommend Streamlit over Gradio any day.
What Gradio has better than Streamlit is just better marketing.
The CEO twitted tirelessly about Gradio demos that others built, and these are the most eye-catching parts of AI "research". So those tweets would catch attention and RTs.
Then they hired one of the most followed person in the AI space- Abdul Khalique. He is @ak<some_number> on Twitter. He, for a long time, tweets new and noticeable arXiv papers, and hence has a considerable following.
Gradio hired him, and he now posted arXiv papers and their Gradio demos, and tagged Gradio at each tweet. That's how the word got around and with their marketing game, they increased market share.
Now I see the acquisition.
I would say that the CEO had this acquisition as his goal for a long time.
He would post Gradio demos, tag Hugging Face at each possible tweets.
Gradio is sub-quality product at best, and useless at worst.
(Note: I'm Head of Developer Relations at Streamlit)
While I cannot speak to your experience with either project, I do want to point out that open-source doesn't have to be a zero-sum game. Gradio has different goals than Streamlit, which has different goals than Flask and Django.
In the end, congratulations to both HuggingFace and Gradio, Streamlit looks forward to seeing what they end up building!
Can someone comment on the use case for StreamLit ? It initially seemed exciting in that “I don’t need designers and front end coders, and I can build a cool looking web app in a few hours all in Python”, my conclusion is that you can do a few simple things super easily, but you hit a wall when you want to have anything beyond basic navigation and layouts.
In other words, great for INTERNAL apps or DEMOS but not for a SaaS product?
In that company we used Streamlit for demoing our solutions to our business clients.
We used CNNs to make a list of visually similar products to end users. Before deploying that, we used Streamlit to demo the client.
The backend was run on AWS, and we used GPU for inference.
If the client said that our results were satisfactory, then we would simply store the data in a DB (using PostgreSQL), and that will be used to show similar products to end users (consumers), and here no GPU or Streamlit was involved.
This Streamlit demo was a core part of our (B2B) business.
I have also used Streamlit for a public frontend receiving thousands of hits per hour with multiple GPUs for inference. It could tackle that.
> my conclusion is that you can do a few simple things super easily, but you hit a wall when you want to have anything beyond basic navigation and layout
That's the reason Streamlit was used. We did not need a very customisable frontend. When we needed that, we passed that to our webdev team who used Js +// Vue/React +// Django/Flask.
You use Streamlit when you don't need a very custom interface. You use it so that you can very quickly prototype something.
38 comments
[ 3.3 ms ] story [ 90.2 ms ] thread[1]: https://news.ycombinator.com/item?id=23901834
[0] https://streamlit.io/
[1] https://en.wikipedia.org/wiki/Alien_(creature_in_Alien_franc...
EDIT: to be fair, it does work slightly better on mobile.
[1]: https://imgur.com/a/pZMNiIU.
[2]: https://www.dkriesel.com/en/blog/2013/0802_xerox-workcentres...
Reading "Sketch Recognition" I was expecting something akin to Google draw which recognises objects like cars and trees. The digit classifier is of course fine, but I felt a bit disappointed when I realised it "only" does numbers. I also think it's the least impressive of the demos you have.
Heck, if you mouse over the area without drawing, the model is torn between 1, 9 and 3.
The options are limited, the UI is ugly, customisability is near non-existent.
I dumped using it, and focused entirely on Streamlit.
I am satisfied. At a previous company, we used Gradio + Strelit to demo apps to clients. We ditched Gradio and switched fully to Streamlit.
I recommend Streamlit over Gradio any day.
What Gradio has better than Streamlit is just better marketing.
The CEO twitted tirelessly about Gradio demos that others built, and these are the most eye-catching parts of AI "research". So those tweets would catch attention and RTs.
Then they hired one of the most followed person in the AI space- Abdul Khalique. He is @ak<some_number> on Twitter. He, for a long time, tweets new and noticeable arXiv papers, and hence has a considerable following.
Gradio hired him, and he now posted arXiv papers and their Gradio demos, and tagged Gradio at each tweet. That's how the word got around and with their marketing game, they increased market share.
Now I see the acquisition.
I would say that the CEO had this acquisition as his goal for a long time.
He would post Gradio demos, tag Hugging Face at each possible tweets.
Gradio is sub-quality product at best, and useless at worst.
While I cannot speak to your experience with either project, I do want to point out that open-source doesn't have to be a zero-sum game. Gradio has different goals than Streamlit, which has different goals than Flask and Django.
In the end, congratulations to both HuggingFace and Gradio, Streamlit looks forward to seeing what they end up building!
In other words, great for INTERNAL apps or DEMOS but not for a SaaS product?
We used CNNs to make a list of visually similar products to end users. Before deploying that, we used Streamlit to demo the client.
The backend was run on AWS, and we used GPU for inference.
If the client said that our results were satisfactory, then we would simply store the data in a DB (using PostgreSQL), and that will be used to show similar products to end users (consumers), and here no GPU or Streamlit was involved.
This Streamlit demo was a core part of our (B2B) business.
I have also used Streamlit for a public frontend receiving thousands of hits per hour with multiple GPUs for inference. It could tackle that.
> my conclusion is that you can do a few simple things super easily, but you hit a wall when you want to have anything beyond basic navigation and layout
That's the reason Streamlit was used. We did not need a very customisable frontend. When we needed that, we passed that to our webdev team who used Js +// Vue/React +// Django/Flask.
You use Streamlit when you don't need a very custom interface. You use it so that you can very quickly prototype something.