IBM’s initiatives into artificial intelligence have served as bellwethers for how AI helps us re-imagine computing, but also how it can transform the industries to which it is applied. There was no more clear a demonstration of AI’s capability than when IBM had its Watson supercomputer defeat all the human champions in the game show Jeopardy.
The years that followed that success back in 2011, however, were years of struggle for IBM to find avenues for Watson to turn its game-show success into commercially viable problem solving. For example, attempts to translate that problem-solving capability to medical diagnosis has been fraught with challenges.
That said, IBM’s core business is enterprise-wide information technology and it is this arena that the company has targeted for its next AI initiative: IBM Watson AIOps. Launched in May, the aim is to provide a broad range of new AI-powered capabilities and services to help enterprises automate various aspects of IT development, infrastructure and operations.
A key focus is getting AI to “speak” code. The market demand for AI communicating in code is immense. According to Gartner, AI augmentation will recover 6.2 billion hours of worker productivity in 2021. Teaching AI code could streamline and automate many of the IT processes that currently require time-consuming manual oversight and troubleshooting, such as security, system management, and multiple cloud environments.
To discuss the challenge of getting AI to translate code and how it fits into the decade-long story of IBM’s Watson, we talked to Ruchir Puri, Chief Scientist at IBM Research, who has been one of the architects that has been behind Watson going back to its success at Jeopardy.
Ruchir Puri Photo: IBM Research
Q: It would seem that being able to have computers communicate with one another, in code, wouldn't be such a big challenge. Presumably, it's a language that computers use to communicate with each other. So why has it been such a challenge for AI to do this? And how are you overcoming those challenges?
A: This is a question that we've asked ourselves as well. And intuitively, one would hypothesize that it should be easy for AI. The problem actually lies in the not-so-successful endeavors of rule-based systems. So, take programming language translation as an example. If it was easy enough and the rule-based systems would work, then early programming languages like COBOL and others, that have long since seen their heydays, would have been converted by now. So, what is stopping this?
What is stopping this is really—just like human languages—programming languages have context. And the meaning of a particular statement on a line actually is related to what occurs before, and deriving that context and making the translation, just like human languages, takes a lot of effort and time and resources. And the larger the program gets, the harder it gets to translate it over, even more so than human languages. While in human language, the context may be limited to that paragraph or maybe that particular document, here the context can actually relate to multiple libraries and other services that are related to that particular program. So, I think the difficulty really lies in the context, which is preventing the rule-based systems from being successful.
I'll make it even more concrete. Roughly speaking, rule-based systems will be successful in translating somewhere between 50 to 60 percent of a program. It is true that part of the program can be translated reasonably well, however, that still leaves half of the program to be translated manually, and that remaining 50 percent is the hardest part, typically involving very complex rules. And that's exactly where AI kicks in because it can act like humans. It can derive the context with sequence-to-sequence models, just like we have applied in human languages, and really piggyback on a lot of that research being done on Natural Language Processing to make a more significant dent in that technology.
Q: If an IT group at a large organization were to migrate their COBOL-based data into an open-source platform, how long would that typically take? And how much faster is AI at doing those kinds of jobs?
A: So, let me give you some examples. One of the large automobile companies we were working with, was working on a mission-critical application that they had, with roughly around million lines of code, and all written in old versions of Java technology.
They wanted to build micro-services out of that and build a true cloud-native application. They worked on this for more than a year with some of their experts. And keep in mind, in many of these applications, the architects and the programmers and the coders who wrote these applications are long gone, so that expertise is hard to find.
With our system—we call it the Accelerator for Application Modernization with AI—we were able to reduce the time to roughly around six weeks. And a lot of that was just setting up the data. It wasn't the execution of the program. So, you are looking at almost an order of magnitude improvement.
Q: One of the challenges with Watson AI—in particular in healthcare—has been overcoming the difference between the way machines learn and the way people work. Will the advancement in enabling AI to speak code, help address those kinds of issues?
A: Let me first step back and say having machines able to speak the language of code will help in every area. However, healthcare is one of the industries that presents some unique challenges in the areas of security and vulnerability and compliance, where it will absolutely be helpful.
The use of AI in healthcare is still evolving, and it’s a journey. To expect AI to be able to give the right answer in all diagnosis scenarios is expecting too much. The technology has not reached that level yet. However, that's precisely why we say it's more about augmenting the healthcare experts than it is about replacing in many ways.
It's about being able to give you the analysis that you may not have seen before, presenting it to the physician, and seeing if it enhances the notion of that particular scenario they are looking at. This is because AI can look at literally thousands and thousands of documents and on-going drug studies, analyze them, find the insights, and summarize that information and present it in the right way to augment the experts.
We have documented cases, in particular, for example, leukemia case studies done in Japan and North Carolina, where it was proven that it has been very helpful. I can certainly say it's not about presenting the right diagnosis all the time; it's about augmenting the experts, in this particular case, physicians, with the right information.
AI for code I would say has less relevance in this particular scenario because it is more about patient data. It is more about the documents that have existed or the ongoing drug trials and studies in a fast-evolving medical literature.
Q: Do you think enabling AI to speak in code will soon lead to the obsolescence of human coders?
A: No, I don’t believe this will occur. Does automation lead to elimination of demand for human skills? I would say if anything, it increases it. We've seen this throughout history. From the very beginning with the invention of wheel, when somebody was carrying things on their back, society has progressed forward. And in this particular case, I would say, use of AI will reduce and eliminate the need for cumbersome tasks like code reviews, testing, migration, translation, search and others, but AI is not going to invent the algorithm for you.
That critical human ingenuity remains key in creating a totally new way, a re-imagined way, of solving a problem. Those kinds of creative breakthroughs are very far away for AI, which is exactly what humans are good at. But the use of AI for automating manually intensive tasks does leave lot more time for people to think through what is the right way of solving the problem structure, the algorithm, and the overall solution correctly, and letting machines do the rest of the job.
So, if anything, I would say, it's going to make our life and the solutions that the programmers are developing a lot better because it gives them a lot more time to really focus on the issues which make the biggest difference. This is in contrast to now when majority of our time goes into translating the code, refactoring it into micro-services for hybrid cloud and cloud-native applications, and testing them.
Q: How do you see this current work with Watson AIOps fitting into the overall context of Watson, moving from Watson’s Jeopardy! initiative to where it is now in tackling large enterprise IT issues?
A: IBM has been very forward thinking when it comes to AI. If you look at a lot of companies out there, everybody is applying AI to their own expertise, their own mainline business. For instance, Google is applying it to its search engine and maybe targeted advertising and then Facebook applying it to social networks and Amazon applying it to recommendation systems and so on.
The business that IBM lives and breathes every day is information technology applied to enterprises. So, information technology is what we do, and AI applied to information technology has and will have a transformative impact on enterprises. This is exactly the reason we started this AI initiative: to apply AI to IT, from modernizing legacy applications for hybrid cloud to intelligently managing those applications with Watson AIOps. Underlying all of this are our AI innovations and breakthrough research milestones like Watson Jeopardy and the Project Debater. AI innovations in understanding human language can be leveraged to understand programming languages. It’s about that continuum and transferring that learning into newer domains like software engineering.
Enterprises are on a journey to transform their information technology for hybrid cloud and that journey has many challenges. I would say most clients are only 20 to 30 percent of the way there and 70 percent of the journey is still remaining, which is exactly what AI can help accelerate - in advising the enterprises on that journey, moving and building their legacy applications for hybrid cloud, and intelligently managing those applications.
I believe AI is on a path to disrupt a lot of areas, and help a lot of areas. But the intersection of AI and software engineering is really interesting. It is said that software is eating the world. In this case, I would say AI is eating software. AI is really disrupting software engineering itself.