Watch our interview with iKVA's CSO, Dr Liang Wang on the publication of his new book OCaml Scientific Computing
Read the transcript here
Interview with Dr Liang Wang, Author of OCaml Scientific Computing
Get your copy here: https://amzn.to/3sKDIqB
Today we’re talking to Dr. Liang Wang iKVAs CSO about his new book. OCaml Scientific Computing. Hi, Liang, how are you?
I’m fine. Hi.
I’m good. Thank you for asking very well, yeah. So Liang, your new book, OCaml Scientific Computing, which I believe is out on the shelves. Why don’t you tell us a little bit more about it.
Well, the book is about really scientific computing as a pretty big topic, we covered a lot of fundamental stuff in the numerical in the scientific computing field, from the basic numerical techniques, to the very advanced, more than analytics, like deep neural network, artificial intelligence, machine learning and everything. And then the history of the book is actually quite long. I started this project, basically building the numerical infrastructure for a specific programming language called OCaml. So it’s a very popular functional programming language widely used in the academia, also in industry. But it missed some foundational software like SciPy Julia, for example. So it doesn’t allow the user to build up this modern analytic application quickly, easily. So that’s original motivation. So we start building this software then, we learned quite a lot in the different area in scientific computing, that’s the starting point. At that point, our only purpose is just building up this software, not necessarily writing a book. And then after, after that, I started introducing the software and I got involved into more involved into the industry. Building this, for example, the iKVA technology stack, I build a lot of application there; AI based searching, and later also involved into, for example, Nokia’s 5g research, there’s a lot of also development here. But all in all, you can see the AI and the modern analytics is everywhere, really, from the, from the from the search to the, for example, the modern communication technology, like 5g systems, you can see AI everywhere. And then every time I present the solutions to the audience, this broader range of different audience, I find is really, really challenging to explain the fundamentals behind the AI. So usually, people treat it like a black box, just like magic, then, you know, you’re casting the spells here and there to solve the problem in a fancy way. And people see the result, people get impressed. But people still think this is a magic, this is a black box, they don’t really understand what happens behind the scene. But sometimes I have this very curious audience sitting there and I start explain more and more. But it’s the I basically repeating my explanation all the time. And I see this gap between the application widely application of AI, and general public’s understanding about what’s actually the building block. So I mean, we all learn the basic math, you know, addition, subtraction, multiplication, division, we all learn the, for example, random numbers, but how this can be the things we can build up with this basic tools until we build some very fancy deep neural network. So the steps step, so there’s missing pieces there. So even though this technology has been widely used, so the book is really about filling this gap, because we gained a lot of experience by building up the system, because we were building the magic now, like customer spell. So it’s not about applying AI is actually about the magic, per se itself. No, so that’s the basic give the magicians some spell you can cause so we understand things inside out. So we can actually explain very well, from this random generator, how we can deal with some random matrix, how it’s going to be used to initialise matrix, how is going to be initialised a deep neural network, how the new deep neural network can be layered up and here you have very complicated network, start solving the problem. And then basically, based on our previous experience, also the lot of motivation from introducing these AI based solutions in both iKVA and also my current work in Nokia solving this 5g stuff, then then I basically motivate me to basically write up his book. So I can use this as a basis to introduce people that these are the building blocks to make the modern AI application. So that’s the whole story behind it.
Wow. Okay. And so, you know, when you were going about this, because I mean, it sounds really like the book encompasses quite a wide area that you’re trying to get out to people. What kind of did you feel were the challenges when you were writing
The challenges is, the topic itself is a huge is a huge topic. Because even when you’re when you’re usually when you’re talking about scientific computing, people doesn’t really make the natural connection with the, you know, the AI or ml, they think the other different things. But from the, you know, the software developer or the research perspective still falls into the same category, they still basically using applying the advanced analytics to solve the problem. So it’s the same thing. It is the scientific computing is more general, it covers a lot of topics, the biggest challenge we have is, even though we’re pretty experienced in this domain, but putting everything in a coherent way to tell a consistent story to the general public. So they can still make sense out of this basic building block, not really kind of overwhelmed by a lot of technical details, that’s the biggest challenge. So basically telling a good story out of this very technical, scientific topics. That’s the, that’s the biggest challenge. And also, because of the coverage is so big, we want to tell the user a very kind of consistent story from the very basic math, which you can learn in elementary school, until you reach the for example, the more advanced math functions, and then the regression optimization, and then how this derivative can be used in calculating the deep neural network. So so you can, you can reach there step by step. But in order to cover all this topic, with reasonable amount of pages, and also the reasonable technical depth, that is really difficult, that’s really, really difficult. So writing power is really difficult, because the audience we’re targeting, is you will assume them have the basic knowledge, but not as deep as the professional, artificial intelligence researcher. So that’s the biggest challenge in open.
Okay. And so, as this book is really aimed to educate, and to help people understand what do you think is the biggest thing that people really don’t understand about this subject?
People really don’t understand the subject. Oh, in terms of scientific computing, or is artificial intelligence, which topic you’re talking about? The AI? AI? Okay. I think I already mentioned that at the beginning is the people don’t really understand the connection between the this very kind of fancy advanced analytics, and the basic math what we learn in elementary school. I mean, they probably think there’s a really, really long journey from here to there. But it’s actually not that far away. Because you know, we learn the math, we learn there’s a function, a plus b equals something, then we learn in order to get the maximum value, or minimum value, you need to calculate the derivative. So you can no worse derivative equals zero can get the extreme value, then their knowledge stop there, then they will think there’s a long journey until they reach deep neural network. But actually, you’re almost there. It’s not that far away. It just the we’re just extrapolate from this scalar value, because what you usually deal with just one single number, right? But then the deep neural network works in usually in the high dimensional space. So we deal with vectors, we deal with a matrix we deal with tensors. So dimensionality just increase all the time. It’s not just a point is more than a line is more than three dimensions 45 to 6300 dimensions. So what really gap between this is it’s actually the dimensionality not really the the mass of course, there are some other advanced technology, but most people actually they don’t really realise they are pretty close in understanding the whole thing. You just need to make a bridge between this gap and then they will understand that, so I think that’s the missing piece they don’t really understand. I don’t I think AI as the technology is very well received by the societies already people know it can solve a lot of problems. People know there’s pros and cons, people know, there are some limits about AI. But what’s missing is the technology perspective, we have a group of even including the data, scientists actually just drop in modelling data in analysing the data. But because of the tooling is already so mature, we have TensorFlow Py torch, you’re basically, you know, just define your model. And then the framework will execute the model. But, but then the how the, how the this framework is going to action model how the how the framework is going to decompose your deep neural network into the fundamental basic operations, because our computer only does, you know, add, subtract multiplication, division, out of this deep, deep neural network has to be translated into this basic math operation. So that link is missing, even for the professional data scientists. So that is the things I think people probably the general of public hasn’t really understood very well. So if you look at the target of this book is included in the undergraduate education. So basically, when you finish your high school, you enter into the college, then you start studying is a more professional topics. So the books that basically touched on this group of people so they can start making a link, fill this gap in the first place. So this is good for their future studies and career development.
And where do you see the future of OCaml? How do you see that going?
OCaml has been a pretty niche language for a long time, it doesn’t really have a real big, big, huge community like Python, for example. I think it will remain niche for some time, but I think the popularity is gaining little by little, the biggest barrier for the OCaml is the parallelism, because their compiler is the single core. So writing the parallel application is not very easy. But the good news is, I think OCaml labs just conquered this, actually last year or the beginning of this year. And this parallelism feature will be included in OCaml 5. So if that feature has been introduced, the OCaml will become even more competitive. I’m not saying OCaml is not competitive. It’s very competitive in some very specific fields, like finance, for example. So OCaml is good. If you care about the robustness of your code, the safety of your code. But OCaml does have some challenges in terms of the learning curve is pretty steep for many of the people. But the biggest challenge from my perspective, I mean, that’s also the motivation, why we build this numerical software is the application generally divided into two categories. One is the system application. So we’re writing up software system software, like Linux, or Windows, these sort of things that operate on the machines. Another is really about data processing, data modelling, so some analytical applications. So OCaml, as language is perfect for writing the system software for building up tools, but the ecosystem, the numerical ecosystem, it is very much fragmented, but didn’t really have a tool which can unify all the all the system, all the numerical computing like SciPy pie, Numpy, Julia, MATLAB, these sort of very powerful software, there wasn’t until Owl, I built the software, and then that does solve a large part of the problem, not everything, but it’s a good starting point. So the big challenge for OCaml is basically the three things in my opinion, one is the sub parallelism, which has been solved. So that’s a good thing. The second is the is the steep learning curve, which I don’t have very good solution, you just have to get over but the good thing is this a functional programming as a concept is getting more and more popular. So you can see the functional programming different language even in Python, you know, whatever, but they introduce the functional programme in a more like incremental way. So the language itself is not designed for the functional programming, whereas OCaml is a functional programming language in the first place. So that means the learning curve is actually smoothing down but now because of OCaml is doing the courage, is it because the other language is moving towards because functional language is a very powerful paradigm, right. And the third challenge is the is the ecosystem. So you need to have enough libraries that actually can kind of improve your working efficiency. Without that amount of software, you just simply cannot do that, which I think also improving. If there’s a more and more people start using OCaml, for example, I build this numerical stuff. So people can really start building the application very easily. So these three challenges, I think they will all be kind of sorted out in the future. I think in the future, they will be very popular languages like Python, right. But there will be also places for other languages like OCaml, if you have specific requirements, like safety, efficiency and different things. Yeah.
Okay. Thank you very much. And just lastly, because I don’t want to take up too much of your time. Liang. What’s the next big challenge for you, now that you’ve written this book? What are you working on? You’re CSO of iKVA? Any exciting news that you can discuss about what you’re doing there?
Yeah, I think we, OCaml has been kind of very important programming language. When we build up our first prototype, and I think there, we still have some component running with this, with OCaml. And I think the next step is not only about using the numeral technique we learned in building system, but also the applied architecture, you’ll probably not know that we have been spending a lot of efforts improving our software architecture, it’s not only about one specific service is basically the platform where we are going to hosting our, our services. And one of the biggest lessons we learn from the to our software is the software architecture is really, really important. So that gives you a lot of flexibility. And the power actually you can grow your competence in the future, in building up different applications. I think we are going to probably apply more this architectural thinking what we learned in all software in the iKVA technology stack, trying to try to kind of guide us our future development, how we build up our competence on this technology. We actually already started the following up book. So we will have another book published if not necessarily, if not this year, the next year, that we’re specifically focusing on the on the architecture of the Owl, because this book, the books we just published for Springer was actually about the application you can build on top of so with different numerical technique, but the following up book is specifically focused on what is the advantages of our architecture per se. So, so that will give the but the target audience is very, very professional software and numerical scientists that want to build the magic, not only casting the spell, so that’s another book. Yeah.
Excellent – I’m sure they’ll be lots of people looking forward to that hitting the shelves
Yeah, we will see.
Listen Liang thank you very much for your time today. Great to speak with you. And hopefully we’ll speak to you again soon.
Yeah, thank you. Okay, thank you. Okay, bye bye. See you
Get your copy here: https://amzn.to/3sKDIqB