Thanks a lot for the invitation. It's great to be here.
So today I'd like to tell you a little bit more about HiVerge, our company. But before we go into that, I want to share with you a little bit of history behind myself, the founders, and what we've been doing before.
So as Honor Alp was saying,
I was at Google DeepMind. I was part of the science team. So this is the team that, for example, used AI in order to do protein structure prediction with AlphaFold that eventually won the Nobel Prize.
But I was working on using AI in order to do algorithmic discovery.
So this idea, I came up with this idea back in May 2018 or so where The realization here is that most algorithms that we use today, and the computer scientists in the room will recognize this, most of the algorithms we use today actually date back from decades ago. So if you think about shortest path algorithms, all the heuristics that we use, these actually date back quite a bit.
And so the question that I had at that time is, Why can't we actually generate new algorithms, new like tailored algorithms that are specific to every use case and that really beat the existing algorithms out there, right?
So these are written in textbooks and have been invented by very smart people like Dijkstra, for example. But surely today we can invent better algorithms that are specific to a distribution of problems as opposed to having a one size fit all algorithm.
So the first problem we worked on is matrix multiplication. I'm sure many of you are familiar with the task of matrix multiplication. So that's one of the most fundamental computational problem.
It's really the core of everything. Like if you think of, for example, training neural networks today, A lot of matrix multiplications are happening.
So the question was at that time, can we actually accelerate matrix multiplication with AI? Can we discover new algorithms to do matrix multiplication that are more efficient than what we currently have?
And so we trained the reinforcement learning agent to actually come up with better algorithms to do matrix multiplication. And it was really mind blowing the first time I saw the kind of learning curves starting from scratch, because these agents usually start from scratch, like alpha zero style.
and then discovering the algorithm that we all use today, then discovering like historically, essentially like rediscovering the historical algorithms, like rediscovering the algorithm of 1969 from Strassen, and then 1973, and then all the way to actually going beyond all the algorithms that we know today. And this is really something fascinating, and it's something that is enabled with technologies like reinforcement learning.
So this is a result we published in Nature and led to essentially an acceleration of matrix multiplication.
But then the question that we asked ourselves was, Do we have to do this?
This is a multi-year effort with the best people in reinforcement learning in the world. So you can imagine that this is not something that you can do for every problem.
Let's say, for example, I want to consider a different computational problem. Do I need to train another agent on this new environment that will take a multi-year effort from the best people in the world? Surely not.
So we said, okay, let's do something that is more generalizable, and this is where we started working with large language models. So trying to find algorithms in the space of code,
Now, the thing is that if you use large language models like ChatGPT, for example, and you ask ChatGPT, discover for me a new algorithm that is faster than what's existing, you'll get one of two things. Either you'll get a hallucination, like it says, sure, I'll give you something, but it's actually not an algorithm that is correct in any way, or you'll get just an existing algorithm, right? So it's not something that goes beyond the frontier of current algorithms that we have.
So what we did with this paper in the middle here, which is called FunSearch, is actually applying this to using large language models, but in a way that is smart enough to encourage new knowledge, to encourage the discovery of new knowledge. So the idea here was to embed large language models in an evolutionary approach by asking essentially the large language model to give you algorithms.
Many of them are incorrect, but that's fine. You pick the ones that are actually correct and then you reinforce them in a smart way in order to essentially end up finally with something that is that is novel and that is better than what's existing.
So we applied this to different combinatorial problems. One of them is actually a very famous mathematical open problem, and this led to a new discovery. So this was the first time a large language model was actually used in order to discover new knowledge for a mathematical problem.
And the reason why we chose a mathematical problem was that in math, it's very clear what's known and what is, if you have a new result, it's clearly a new result, right? So it's very well known what's the state of the art.
So we applied this to mathematical problems and it worked really well. But then the question was, does this have actually practical applications?
And the interesting bit is yes. So applying the same technology to, for example, Google's data centers to optimize the scheduling algorithms in Google's data centers led to massive improvements.
Over the existing heuristics that have been used by developed by software Google software engineers, which are really really good so Continuing on this along with my co-founders Bernardino who was also a deep mind and and Hamza was a professor at the University of Cambridge We decided to essentially focus on this idea and then make it a extend it and make it much better and applicable to many businesses that do need these state-of-the-art algorithms but do not have the software engineers or the algorithms engineers or the performance engineers that are needed in order to come up with these sophisticated algorithms.
And that's what exactly Hive Verge is focused on.
So the product that we're developing is called the Hive. So it's an algorithm optimization agent or a code optimization agent that autonomously finds more effective, most effective algorithms for a given task.
So we've applied this across a multiple number of areas in aerospace, for example, but also there is other optimization problems that are super interesting.
So one of the applications that we applied this to was, just to maybe make it more concrete, we applied this to what's called the Beluga Challenge, which is actually by Airbus. I don't know if you're familiar with this Beluga airplane. It's sort of like a huge airplane that carries airplane parts.
It's a very sophisticated supply chain problem. How do you essentially unload this Beluga plane and load it in such a way that you're operationally efficient?
And so this this was a challenge that was posed by Airbus an algorithmic challenge because they're not they're not able to or like the like the efficiency of this of the current solutions that they have is currently lacking so They open this as a challenge and said okay like we want better algorithms in order to solve this supply chain problem and so we we tackle this challenge and we want the the the first place in this challenge and The idea here is is that this is a planning problem, right?
so at the end of the day you want to come up with a planning algorithm that that is efficient in terms of the metric that they care about here's the number of movements of parts in the supply chain, right and Maybe to show you a little bit how it looks like so
Yeah, so this is essentially the code base that essentially describes the problem, right? So you have a readme file that explains what is the problem about, like in this case, for example, the supply chain problem. It's important to have a readme file because at the end of the day, there is a large language model that will look at this whole code base and then try to come up with this new planning algorithm.
And then there is here an evaluation file that essentially tells you, that describes what is it that you'd like to optimize. So it can be cost, it can be energy, it can be the number of movements. There is a data folder here that has the different scenarios that we'd like to optimize.
And then when you essentially feed that to a user, to our platform, the Hive, then this is the kind of solutions that you're getting where it tells you what are the different algorithms that you need to modify, what are the improvements that you can make in order to make this solution essentially more efficient.
Now, what I like to focus on here is really when we start from scratch, where you have this policy planner. So we start from scratch, essentially. You start from a planner that is so bad that it's not able to plan anything, essentially.
So this is, I mean, people who are familiar with Python would know here that this is essentially not doing anything. So this is the function that we'd like to come up with, right? So this is the policy. It takes us in to input a problem and then it outputs us a certain plan, right?
And you're starting from something that is super simple, and then you're evolving your solution until you get something here on the right. You're getting a new planner that is 1,600 lines of code in this case, and that is able to solve the problem perfectly.
So this is actually like... The first time I saw this, this is quite mind-blowing that you can actually come up with very sophisticated algorithms. I don't know if it's here.
You can come up with very sophisticated algorithms that solve this. You can see here the extent of the solution. that solve this problem of very hard supply chain problem. And you can see here all the scenarios where it actually was able to find a plan, whereas on the left hand side here, it wasn't able to find any plan.
When you actually look at those solutions, they're quite surprising in the sense that these algorithms come up with new ideas. They're not things that just are in textbooks. You can think of this as algorithms that are tailored to the specific use case.
As someone who worked a lot on computer science, we always thought of algorithms as a fixed piece of code or pseudocode that works well for all problems. 1And what we are trying to do here with HiVerge is to shift this thinking from a fixed piece of code that works for everything to actually a generative piece of code that works well for the distribution of problems that you care about. Okay, so the algorithm becomes data dependent and the piece of code becomes data dependent.
And that's exactly, I think, the interesting bit here is that we're not going to find an algorithm that works for all use cases. We're going to find an algorithm that works for your use cases much better than anything else. I hope this idea of tailoring is clear.
This is the kind of ideas this came up with, the Hive came up with, starting from absolute scratch, from nothing, all the way to a very complicated planning algorithm. We know that LLMs can't plan at all. So if you actually ask from an LLM to solve this planning problem, it's not going to solve it at all. So it's really a technology that goes well beyond large-angle models.
So you can see here that at the beginning, like in the first few hours, it came up with some greedy approaches, like trying to see some blocking jigs. In this case, jigs are just the things that are used to transport parts. So trying to identify and handle the blocking jigs, all the way to coming up with very smart meta heuristics here at the very end of convergence.
So yeah, I mean we apply this to other planning problems too and like benchmarks and it works well So a few maybe if we compare this approach compare if we compare this approach with other ways that optimization problems are solved Let's say there's two categories where optimization problems are solved.
The first one are classical solvers, like mixed integer program solvers, for example. These are mathematically sound, explainable to some extent, safe and easy to deploy, but they're not scalable at all. When you consider problems that are millions of variables and constraints, then this doesn't work well.
There are learning methods that are based on neural networks, for example. But the problem is that they are not explainable. Neural networks are really a black box. They're not safe to deploy. They're not easy to deploy. So at the end of the day, you need a GPU in order to deploy those.
But here, what we're trying to do really is that we're trying to solve this problem with code so that engineers can read what's behind this, but essentially being much smarter than what algorithms engineers are able to come up with, or helping them to be much smarter.
This is not, by the way, vibe coding. So vibe coding is very good when it's about solving, or like, coming up with front-end solutions like websites or apps and so on.
But this is really about finding algorithms which are fundamental to businesses and it's things that we're current coding agents are not good at. OK.
Yeah, so we came out of stealth not last week. This was a presentation a few weeks ago, so like last month or so.
If you follow us on our LinkedIn page, we are hiring. So we're hiring for a few positions.
If you're interested, please apply on the website. If you're interested also, please contact me.
And that will be it. Thank you very much.