Octeract Neural is our latest experimental technology that solves optimisation problems using machine learning. This is something that works very well for us and for the kinds of problems we solve in production for clients. Optimisation problems are so vastly varied that we honestly don’t know how well it will work for you and the problems you have, so we are now testing whether this is something people like you will find useful. One thing we will say about its performance is that internally we use it more than we do our own engine, and that’s a product that’s broken multiple world records.
If the technology is well received and people use it a lot, we plan to invest into improving the public service, and to eventually monetise it. This will allow us to add more compute, increase usage limits, and of course to train larger and better models.
The service is currently free of charge.
Parts of the technology are based on Deepmind’s work on Neural Diving, Neural Large Neighbourhood Search, and FunSearch. It’s pretty cool stuff, you should check them out if you haven’t already. We adapted those concepts to work for nonlinear programming, and expanded them using our own technology to be much more compute efficient.
Octeract Neural is a complex system with numerous components. Part of the service is an automated algorithmic generation framework which is capable of dynamically spawning a custom algorithm to solve the exact problem you submitted. We also use a number of generative techniques to predict parts of the solutions.
The model currently available for public testing is called neuralF_small, which is a lightweight Neural Feasibility model.
neuralF_small is trained to find good feasible points for nonlinear problems as quickly as possible. Your anonymised model (the .nl file) will be added to our training set and, even if you don’t get a solution immediately, the system will keep trying to solve it in the background, which means you may receive a notification in your mailbox that your problem was solved at a later time.
There are three main reasons:
First, there are already plenty of excellent MIP solvers out there so it’s much harder to give you something you are likely to use frequently. Nonlinear solvers on the other hand are a bit meh.
Second, even though we do have MIP Neural models capable of outperforming current MIP solvers, they are much more expensive to evaluate, and the performance gap is not as impressive. Modern MIP solvers are very good at what they do. However, depending on how successful we are in eventually monetising the service, it may become cost-effective for us to start making some of those models publicly available.
Third, in our experience feasibility is not nearly of as much practical interest in MIP as it is in nonlinear programming.
It doesn’t. No, really. Different solvers are good are different things, and Octeract Neural will not necessarily be a substitute for other things you currently use. For instance, neuralF_small does not guarantee optimality. In fact, it’s not even trained to achieve it. The system attempts to predict a good feasible solution with no guarantees of optimality (local or global) whatsoever. It can be very fast, and it can solve some very hard things, but it’s not a solver in the way we understand solvers today.
Sure, knock yourself out. Just keep in mind a few things:
You can access our cloud service by creating a user account and downloading the Neural client for Linux or Windows. You can then retrieve an API key from your account page, which the client will use to send your problem to our servers and to retrieve the solution if one is found. Check out our documentation for tutorials on how to set that up.
The Neural client is currently supported for Pyomo on Windows and Linux. It’s not too hard to get it up and running on JuMP too, but we don’t officially support that yet.
As far as you are concerned, if you are using a framework with an ASL interface (e.g. Pyomo) you can install and run the client exactly as you would a regular solver.
Wherever you want. As long as you comply with our terms of use you can use it in any (legal) way you want and install it wherever you want.
Usage limits are in place to help us manage server load. These are very extremely likely to change over time as we figure out the best way to meet demand and expand our compute. There’s also a file size limit which you’re unlikely to encounter since you’re solving nonlinear problems. You can let us know if you do, so that we can look into increasing it in the future.
These are the current limits:
Since this is a demo of a service still under heavy development, there are a few things you should know: