Show HN: Build an open-source computer vision model in seconds using text (usezeroshot.com)
Here's a 2 minute video that shows it off: https://www.youtube.com/watch?v=S4R1gtmM-Lo
How/why does it work? We believe that with the rise of foundation vision models, computer vision will fundamentally change. These powerful models will let any devs “compile” a model ahead of time with a subset of the foundation model’s characteristics, using only text and a web-tool. The days of teams of MLEs building complex models and pipelines are ending.
Zeroshot works by using two powerful pre-trained models, CLIP and DINOv2 together. The web-app allows users to quickly create our training sets via text search. Using pre-cached DINOv2 features, we generate a simple linear model that can be trained and deployed without any fine-tuning. Since you can see what’s going into your training set, you can tune your prompts to get the type of performance or detail you want.
CLIP Small -- Size: 335 MB, Latency: 35ms
CLIP Large -- Size: 891 MB, Latency: 276ms
Zeroshot -- Size: 85 MB, Latency: 20ms
What’s next? We wanna see how people use or would use the tool before deciding what to do next. On the list: clients for iOS and NodeJS, speeding up GPU inference times via TensorRT, offering larger Zeroshot models for better accuracy, easier results refining, support for bringing your own data lake, model refinement using GPT-V, we’ve got plenty of ideas.
14 comments
[ 0.26 ms ] story [ 44.4 ms ] threadDid you solve your error? If it's still happening, do you have a code snippet I can try and repro?
/opt/homebrew/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py:69: UserWarning: Specified provider 'CUDAExecutionProvider' is not in available provider names.Available providers: 'AzureExecutionProvider, CPUExecutionProvider'
Not really sure what this means but I could do some searching.
Could also be interesting to:
- Allow base64 images
- Build in real-time video classifying
- Generate models in terminal
Good ideas too, especially base64 should be fairly easy to implement. I've wanted to try doing a video to see how it looks as well.
as popular as the language is getting, not everyone knows python, or has it set up.
and even if they do, arguably python is not even a good language to build real applications
When it produces a set of images for a given prompt, wouldnt it be better if we could remove a set of images from the possible selection ? Does it not work this way? Another idea would be to provide a few different kinds of prompts and based on that select all the images that matter for the given "class".
Some other things that would be good to know:
1. Can we keep adding items to the classifier? and getting newer versions of the classifier with the newly added item ? 2. How to deploy and host this kind of models? Is there any guidelines on how to deploy this in AWS or GCS for production use cases ?
Deployment guidelines are a good idea! It's fairly straightforward to deploy since it's just a Python package and you can run it via CPU or GPU. With CPU we deploy using ONNX which means the dependency list is quite small (compared to torch). For example, the part on the web app which tests your model is just deployed to AWS Lambda.
Would having us host the models be useful or something worth paying for? Obviously we couldn't offer that for free, but may be able to offer an endpoint for your model that is pay-per-call.