The Machine Learning Tools Approach to API and Coding
An application programming interface (API) is the set of definitions, protocols and tools that allow one component of a system to communicate with another. API specifications tell software how to deliver commands and send and receive data in the appropriate format. APIs are the key to getting separate applications or machines to communicate. Automating this communication is a key use case for machine learning and AI.
Example: A common real-life parallel would take place at a restaurant. A patron has a menu with food options listed, but no way to personally communicate his order to the kitchen. The waiter is the connection to the kitchen, delivering the order from the customer to the kitchen and then bringing the food when it’s ready. In this instance, the waiter is the API.
An API is a useful way to interact with a system, but it exists on its own isolated terms. If your system doesn’t deliver information in the right way, it can’t successfully talk to an API. That’s where a machine learning engine comes in. The engine can learn to speak to any API and translate data and commands where necessary.
Example, Part II: A customer enters the restaurant mentioned above. But he only speaks Japanese. The menu is in English and the waiter only speaks English. Normally the waiter API can’t do much to help serve the customer. However, the machine learning engine has the ability to communicate both with the customer and with the waiter. It understands the menu and also has the ability to communicate in Japanese, so it serves as the go-between to facilitate ordering food.
Example, Part III: The restaurant expects a handful of Japanese tourists to visit. So it asks the AI to be ready to translate the menu for the customers and translate their orders for the waiter. Japanese-speaking customers are served just as successfully as English-speaking customers.
So what’s the big deal? It’s relatively straightforward to translate the request from one API into the response from another. It’s just a matter of mapping one data field to another and forming the request properly.
Example, Part IV: The restaurant is now able to serve customers in at least two languages. However, a new customer arrives who only speaks Polish. The restaurant did not expect a Polish-speaking customer, so it is not equipped to translate. However, an AI with access to Google Translate is able to assist the customer with service in a third language on the fly.
That’s where machine learning tools provides a real difference. It can work with any open API because the keys to it are completely documented and the engine has been programmed to understand this documentation. The ability exists to dynamically apply the necessary formatting and translation required to utilize any API that it’s previously encountered. If necessary, it can also reach out to the internet to access documentation on APIs it has never encountered before.
This provides an unlimited set of options to deploy monitoring tools on your network, solve Big Data analytics problems and swiftly integrate new components or functions in your existing IT environment.
Open API vs. Closed
The full power of machine learning is shown through the use of open APIs where the engine can research on its own and find the “language” unique to that API. An open API — sometimes called a public API — provides anyone with the tools, documentation and formatting needed to send or receive data from an application. This greatly increases the flexibility, reach and power of an AI because it is able to access any open API.
However, business reality dictates that some functions must be supported by specific products or applications. And many of these hyper-focused product lines are controlled by closely guarded closed API. A closed API is one that does not provide integration with other software without authorization of the API owner. Closed APIs are not all negative. Owners of closed API infrastructures can provide better support to their specific client base without worrying about supporting any and all other users.
Closed APIs provide a problem for AI engines because they can’t speak the language without receiving permission for the API owner. This is not always a major stumbling block, but it can require some negotiation, additional licensing or other permissions. Then, when authorized, the deployment of the machine-learning engine must be customized to support the unique protocols of the closed AI. As with any customized software instance, there are development and support costs.
It comes down to a business need and cost analysis. If there is an open solution that closely matches functionality of the closed solution, it could be worthwhile to migrate to the open solution. If the closed solution is necessary, it could be worth it to spend the time and money to support a full integration. Knowing these factors ahead of time is a key stage in planning an AI engine deployment.
Speaking your Language(s)
Integrations with more obscure languages or libraries can be more difficult, but are certainly possible as well. Again, as with a closed API, this could require substantial development time and costs in order to get up and running. Examining the role and value of older or obscure languages is another key cost metric. Funding a six-month development project to integrate your older applications might be more expensive than converting to something more modern.
Bringing AI & Machine Learning Tools Home
The largest AI engines require massive amounts of computing power, giant data centers to store the information and customized rigs with graphics processing units (GPUs) to process it. Processing data on a massive scale takes time and computing power. The good news for many companies is that the computing power – and thus the cost – scales downward with the size of the dataset.
Hosting a machine-learning engine and the data it processes in a local environment with your own server has some advantages. Generally, a physical server with GPUs to support large-scale processing can have better performance than many cloud-based providers at data centers. But the difficulty comes in building and maintaining such a system along with the depreciation that accompanies all major hardware investments. Getting the most out of this type of large-scale purchase of hardware requires careful planning, cost-analysis and accurate projections on your return on investment. You have to know how much power you need (and how much you will be investing) before you start building the server. And if you guess wrong you have a situation where you either have too little computing power or you’ve overspent beyond your actual needs.
To avoid this, many companies turn to specialized IT providers who offer outsourced virtual or hosted servers. The use and maintenance of these systems is often provided as a service with a predictable monthly cost and regular upgrades to hardware and performance. Going with a managed IT service offers the benefit of being able to get started more quickly with a smaller investment in time and money. Going with an outsourced provider also allows for easy expansion of your capabilities, storage space and power. On the other hand, many third-party offerings lack the true powerhouse performance of a dedicated local AI machine. Accurate planning and projection of your needs and costs structure is still important with an outsourced third-party service, but a course correction is not as big a deal when you can just ask your partner IT firm to spin up a new server or rework your existing system.
How AI and Machine Learning Tools work for you
The open-ended nature of machine learning permits a nearly limitless application of an engine and its machine learning abilities. In addition to operating successfully with any API, it is hardware and network agnostic. The ability to automate and analyze your system operations is nearly unlimited.
Here are a few common use cases.
Use case: Security
One of the most straight-forward applications of machine learning is in Network Security. It can also be the one of the most powerful and useful applications. The key to a successful network security posture is to respond quickly to serious issues without letting the mundane or routine issues interrupt normal operations.
Existing network security applications monitor and report back on connectivity, protocols and access. When attempting to assure that a particularly vulnerability is not compromised, there is a tendency to lean towards over-reporting in the interests of ensuring that you’ve covered all potential access points.
The result can be a flood of alerts that a person must manual examine and dismiss as a routine part of their job. These tickets may represent a legitimate threat or simply be a minor issue that’s impacting network performance. In theory, the IT staff should document the problem and the solution and use that information to remedy the issue. The reality is that most IT departments are too busy chasing down unusual tickets and don’t have the time to properly document the issue and the solution to minor problems.
An AI engine can help alleviate this workload in two ways. The engine can respond and examine any routine alert and analyze the root cause. If appropriate, it would close and dismiss the ticket as routine traffic. Most important, an AI can log the occurrence with full documentation of all current conditions before and after the fix for later use in analysis or reporting. This documentation of a routine solution can be as extensive as needed and can help inform a complete solution at a later date.
If the engine encounters something unusual or non-routine, it will escalate the ticket as appropriate to a person or it may even take automated action to secure the network from the possible threat while awaiting a response.
The second way AI can contribute to your overall network security is through the use of reporting and analysis across multiple platforms and channels. Even if your security policy still requires a human response to particular routine trouble tickets, the engine can handle all the investigation, reporting and “paperwork” related to the ticket. This turns a series of routine tickets into useful and complete data points for trend analysis.
Using AI to monitor network security frees up man-hours and expertise to focus on other issues.
Use Case: Business Process Automation for Network Monitoring
Closely related to the security function is the monitoring and maintenance of system performance. An AI machine learning tools is able to ingest and analyze information on patches, system updates and other data streams and compare them to each machine on your network. This ensures that each component in your system is operating on the correct version of any application or OS.
It can also analyze logs from startup or applications to detect and mitigate slowdowns, disk-space issues, network ping times or other contributors to decreased system performance.
By taking advantage of the structured and unstructured data already generated in your network infrastructure, the engine can ensure each component is operating consistently at peak efficiency.
Example: In a network that supports 4,000 local Windows devices, the AI engine is able to scan and monitor performance. It quickly determines average boot times, memory and CPU usage and other factors that these similar devices have in common – even accounting for differences in hardware and installed software. After creating a framework for an average functioning machine, it can compare live metrics on each machine to assess individual performance. When one machine starts to boot a little more slowly or hang on certain processes, it can either recommend a maintenance check or — if allowed by your policy — even run its own analysis and repairs on the system.
Example two: While monitoring the individual devices, the system can learn usage patterns and analyze application activity against licensing. Such a company-wide audit may show that certain machines have an ongoing license for an expensive application that is never used. When aggregated, this data can save a company thousands in reduced licensing costs.
By aggregating system monitoring and examining it from a machine-learning perspective, the engine is able to act as an intelligent triage for any large-scale issues. If a system-wide event breaks network connectivity for a large segment of your devices, monitoring tools on every single system are programmed to alert immediately to make sure human eyes on the case as quickly as possible. Because every device that went offline alerted at the same time, there is a flood of tickets and notifications throughout the system.
In a typical IT department, a person has to examine each ticket and drill down to determine the device affected, the exact problem it’s having and the root cause. That’s a ton of clicking, typing and waiting just to process the initial flow. With automation in place, the tickets are automatically processed, compared and grouped into a single alert listing all the machines with the same reported problem. This takes the initial stage of analysis out of human hands and lets IT techs start a real root analysis on the big problems.
Use Case: Data Analysis
Building frameworks to deal with Big Data problems is an ongoing challenge. The ability to use AI to work with Big Data is a synthesis of proven methodologies and database interactions.
AI assists with much of arduous labor of combining data from unrelated sources, delivering a more coherent look at the information you collect. By bringing together everything you have under one roof, the real work of analysis and true deep understanding can take place.
Use Case: Marketing Analysis
For many, taking a AI machine learning tool out of the back IT office and putting it in the hands of sales or marketing people might seem like an edge case. But marketing and sales data is closer to logistics or operational data than many people think.
When examined in the right way, marketing response is simply another revenue channel that has measurable metrics and data streams.
Using its ability to interface with an API, an AI engine can lock in with Enterprise Resource Planning software to examine your key performance indicators. Just one example would be an analysis of the precision and profitability of delivering messaging through targeted social media. Gathering and compiling information beyond a simple click-through report can be a tedious and difficult manual task. But when it is properly integrated with the infrastructure, this information flows down easily into a report, a meaningful metric or even a dashboard style “pane of glass” that gives a complete look at all revenue channels.
Gathering that information and successfully drawing analytics-based conclusions will help you launch the next stage of an AI-powered marketing playbook. Once you know which channels and methodologies are successful to each slice of the market, the engine can help automate content delivery in the form of contextual content, personalization and targeted cross-channel campaigns.
The flexibility and growth potential is nearly unlimited in this area, and many experts believe the use of machine learning in marketing is only scratching the surface.
Getting started with machine learning
Adding a machine learning application to your existing technological ecosystem offers unlimited potential for working with data, automating technical tasks and gaining insight into any level of business operations.
But to bring a machine-learning-enabled AI engine into your system requires proper planning, a complete knowledge of your existing technology and the ability match your expected usage with the necessary processing power and data storage capability.
Juggling all these variables is a massive challenge made even bigger when you consider what’s at stake. Taking the wrong first step into machine learning can be even worse than sitting still and ignoring the potential of the technology.