Launch HN: Nyckel (YC W22) – Train and deploy ML classifiers in minutes
The ML-as-a-Service space is dense, including some recent YC companies; so why did we create Nyckel? Our goal is to create a tool that is light, fast, fun, and accessible. Training only takes seconds, you only need 10s of annotations, we avoid ML-lingo and abstract away concepts that make developers feel like outsiders. Our pricing is transparent, signup is instant, and the platform is 100% self-serve.
Dan, an experienced engineer without any ML background, was building a social website that required manual curation of user-contributed content. He looked into automating this curation with ML and found offerings that required complicated setup and knowledge of ML concepts. He talked to his AI-researcher friend Oscar, and together they realized that the current solutions were unnecessarily complex and didn’t expose the right developer-friendly abstractions. We think there are many engineers like Dan who leave similar problems unsolved because of the effort required.
Using Nyckel, you upload a small (or large) amount of data, annotate a minimum of 2 examples per class, and have a trained model deployed in the cloud and callable via a REST API. All of this happens in seconds. As you use the model, you can continue to improve it by providing more data points as you encounter them. You can also explore and annotate your data in the UI.
The Nyckel AutoML engine is based on meta transfer learning. It’s “transfer” because it leverages a large set of pre-trained neural networks to represent your data, and it’s “meta” because we make informed decisions on which of the networks to try based on your particular problem. The design allows for a highly parallel execution where features are extracted and models trained by 100s of compute nodes in parallel requiring only 10s of seconds to train even with 1,000s of samples. We keep abreast of the latest deep-learning networks and add new networks to the system to improve existing and new models. Your trained model is immediately deployed on an elastic inference infrastructure.
Our customers are using us to do things like: tag and organize photos in a used-car marketplace; triage customer responses and support tickets for CRM (in multiple languages); determine fake vs real profile pictures to help with user verification; analyze blood sugar charts to suggest corrective actions; and build a barcode-less scanner for bulk foods.
Oscar has over 4k scientific citations of his AI research, as well as several industry applications behind him. Dan has designed multiple developer APIs throughout his career, most recently Square’s developer APIs. I led the Functions-as-a-Service team at Oracle Cloud and have extensive experience building large cloud systems. We think that ML, cloud, and API expertise is the right combination for this problem!
We have elastic pricing with an always-free tier. Beyond the free tier, we make money when you invoke your function to make a prediction.
We're really happy we get to show this to you all. Thank you for reading it all! We’d love for you to check us out, and share your thoughts on Nyckel and your experiences in the ML tooling space in general.
49 comments
[ 4.7 ms ] story [ 106 ms ] threadQuestions: What do you guys see as the long term vision here? Where would you like to go, if you could? Obviously the value prop is simple and clear right now, and you have tons of competition. But assuming you're profitable, get traction, what would you LIKE to be in 5-10 years? What's your dream as entrepreneurs?
Best of luck. Also, for some small feedback, the UI currently looks a bit generic, bootstrap-y. I'd recommend giving it a small facelift if you can.
Thanks for the feedback on the UI! None of us are UI experts and we agree that it isn't great. We're working to make it better.
I'm playing with Nykel right now and it looks pretty straightforward with a clear and simple UI.
1.) Would it be possible to buy the model and integrate/host it on my own machines?
2.) Would you consider making solutions for embedded ML in the future?
Just spitballing here; these two would be the most convinent for the use-cases I have in mind.
Would love to talk more about your use case so we prioritize the right things for model export. Drop me a line (george at nyckel dot com).
Makes sense that this would be less beginner friendly so maybe you're correct that this is a P2 feature.
I guess I was thinking more in terms of pricing models and scaling up a service which is obviously a complicated decision for a startup so I'm not really sure what makes sense here. My rationale for wanting to buy/rent the model is that as a service scales it becomes increasingly important to own the model and the hosting. One of my concerns with building on top of a service like this is that it will potentially reach a chokepoint in the future. In general training a model is expensive and unique but hosting it is a commodity service. This will incentivize customers to use the service when they are small and then drop it when they grow to a certain size which is not necessarily ideal for either party.
In terms of keeping customers as they grow, our view (hope?) is that these models will be continually updated because of new annotations on their end, and from new training techniques on ours. And that concept of continuous improvement will push people toward a SaaS model.
When you say chokepoint, are you referring to cost, or latency, or something else?
Thanks.
While I'm sure the founders are competent and understand these limitations, it's unfortunate that they've chosen such flawed examples to show off on their home page.
I went through the upload process. But then I don't really know what to do from there. I tried some filters. I went to the invoke page, but I had no idea what invoke does or what the example output is. (Eventually figured out that I can just put text in the invoke and run it). All in all, there are a bunch of things that I don't really know what they are. I was a statistician before ml became popular, so I understand the underlying premises, but none of the modern language.
I would also really have liked to been able to filter by say, if the confidence level is over 80%, how accurate is the model. Because then I can say, well, if we use this, I can knock out tons of work at the 80% confidence rate and then just manually work with the rest.
I'm also not sure if you are seperating training/test data. All in all, looks nice, it was very easy to get started, but I'm a bit lost on what to do next and I'm having trouble judging how useful this will be to me and if I should invest more time.
- To see all cases where the model disagrees with your annotation: Function Output = Disagrees, Desired Output = Any.
- To see the least confident predictions from the model: Function Output = Any, Desired Output = Any, Sort By = Least Confident Prediction.
Your idea us helping you pick a confidence threshold is a good one. We'll get that into our near-term roadmap.
We use a technique called cross-validation to seperate training and test data. We have that documented here: https://www.nyckel.com/docs#cross-validation
I think output is confusing me a bit. Output being predicted value? And then desired output is user tagged value?
We tried to make the lingo developer-friendly. We think of models as functions that transform inputs to outputs. Instead of writing code to do so, as developers usually do, you train the function by providing desired outputs to sample inputs.
We’ve also found that people can get lost in the filters; in particular the “Not assigned” annotation filter we probably need to remove for people who have annotated all of their data.
In terms of separating training / test data: we use cross-validation so that we can abstract away the concept of train vs. test vs. validate sets.
Easy to use UI, easy data upload and the training was quick. A great tool for testing new ideas for classifiers. For bigger projects I'd be concerned about long term cost with pay per invocation.
Is weak labeling via labeling functions (snorkel, skweak) something that's on the roadmap for Nyckel? Also, do you plan to add named entity recognition?
Our goal is to be cost-competitive, even for bigger projects. Given how early we are, our pricing structure is still being worked on, especially for high-volume.
Integrating with labeling solutions is in our roadmap. In the meantime, our API should enable any data/labeling integrations.
Named entity recognition is also in the roadmap. Would love to hear more about your use-case and we can give you access to the beta when ready.
We may look at adding weak labeling as a first class feature of our site down the road, but we are not yet sure we need to. With the powerful semantic representations offered by the latest deep nets, we find that smaller number of hand-annotated samples often suffice for the desired accuracy which makes the whole annotation process simpler and faster. Of course, if you have data & evidence to the contrary, we'd love to take a look.
We benchmarked ourselves against Google AutoML and HuggingFace, looking at both user experience and model performance, and wrote it up in a blog post that may interest you: https://www.nyckel.com/blog/automl-benchmark-nyckel-google-h...
Minor clarification, I assume those 'includes X invocations' are per month, not a one time credit?
Yes, you are right - 'includes X invocations' are per month.