Setup a local environment for experimentation with AI Tools and Platforms
K3ai is a lightweight infrastructure-in-a-box specifically built to install and configure AI tools and platforms to quickly experiment and/or run in production over edge devices.
“Innovation is taking two things that exist and putting them together in a new way.“ — Tom Freston (born 1945), Co-founder of MTV
When Alessandro Festa (twitter: @bringyourownai) and Gabriele Santomaggio (twitter: @Gsantomaggio) met the first time in January 2019 were coming from different worlds.
Gabriele was and is an expert on everything DevOps, Kubernetes, Coding. He didn’t knew much around AI, he’s an Engineer.
Alessandro was and is a Product Manager with a broad knowledge around Artificial Intelligence and not only. He’s not an Engineer and “even worse” he’s a fully adopted of the “chaos theory” where ideas do not come through standard ways of doing your stuff but more from thinking “out-of-the-box” constantly.
They met and start collaborating on a specific topic: AiOps
Artificial intelligence for IT operations (AIOps) is an umbrella term for the use of big data analytics, machine learning (ML) and other artificial intelligence (AI) technologies to automate the identification and resolution of common information technology (IT) issues. — https://bit.ly/2Kn6pRi Margaret Rouse
Well… collaborating we simply asked each other 2 simple questions:
- How do I start learning AI without having to spend days understanding what to do just to have something up and running?
- Is there a simple way I can have infrastructure up and running locally and experiment with AI tools and platforms ?
Depending who you are talking to I’m sure the answers will be YES or NO.
Why Yes
It depends a lot on what you expect. Let me do a quick analysis of the current situation:
Your end goal is:
Have a full AI platform at your disposal on your laptop that you may use to learn, experiment and replicate somewhere else easily.
You have probably need a mix of all these:
- Docker
- Virtual Machines
- Kubernetes
- Kustomize
- Kubectl
- Helm
- Bash or Powershell
- The documentation for that specific AI tool/platform you want to play with
- A good amount of time to learn how to put this stuff together
Don’t get me wrong, the solutions out there are great and work perfectly all the time but… yes but…
First, each single part of that list require a minimum of 3 or 5 commands plus at least 5 pages of documentations. Most cases the AI tool/platform is not included so you have to install it by yourself.
Even worse the you cannot cherry-picking but you have to take it or leave it. You want to explore Kubeflow components? You’ll have to install everything.
- Problem: you’ll need a minimum of 12 Gb of RAM just as a starter.
- Problem: Are you on Windows? Most of those solution do not work there so you’ll have to have a Virtual Machine setup, and that means how do you connect to it?
- Problem: What’s inside that VM? Can I change it? We all want the freedom of doing the things as we like not as someone tell us..
- Problem: Is it everything within the same solution?
So the Yes is actually is a “Yes but..”.
Why No
Because of the reasons we mentioned before, because it’s an “all or nothing”, because everyone gives you the infrastructure (maybe) but not the tools/platforms. Because all of those promises they made in their docs in the end are simply about:
I give you a VM with a cluster I did setup and 1 or 2 AI tools/platforms …up to you to figure out how to do everything else…
So if you are a Data Scientist or simply someone with not enough knowledge on the infrastructure side you’ll have to take a deep breath and start learning or adapt to what is there… and again, don’t get me wrong there are plenty of amazing projects out there.
And if you are a DevOp who want to become and AIOp you’ll have to keep writing down your automation scripts to deploy that AI platform/tool over that CI/CD pipeline.
Here come the sun
Can we change it? We designed a simple flow that had to be within a simple set of constrains:
- you need to be able to do stuff with less than 3 commands
- it need to be self-explainable, whatever you do it will do what you expect
- it need to be frictionless. No complexity just stuff done.