Posted on Leave a comment

AI Edge Engineering at University of Oxford

This week I’m wrapping up a continuing education course from Oxford focused on the approaches and tools of the AI Edge Engineering discipline. I’m overwhelmed with how much I’ve learned and how much I still have to learn. Without a doubt, this course will help set the direction of my career moving forward.

I wasn’t new to the concept of AI Edge Engineering. Before entering the course I had already passed my AZ-220 and AI-100. Two certifications I saw as fundamental to practicing AEE on the Azure platform. These certifications focus on Azure’s IoT tools with the AZ-220 and Azure’s AI services and Machine Learning tools with AI-100. It’s important to note that the AI-100 primarily focuses on applying existing AI in solutions. It only covers Data Science from a high level; you might be expected to understand what clustering, categorizing, and regression are, but you aren’t expected to build them from scratch or use any DS tools to build them for the certification test. That’s appropriate for a 100 level certification. Despite having these certifications, I wasn’t ready for the depth we would take on in the course in such a short period.

Luckily, the course used cohort learning as a mechanism to complete some of the more challenging projects. Our group efforts afforded us the opportunity to trade opinions, approaches, and skills to achieve project deliverables. This is also a skill in the AEE field. Few people will have all the skills needed to apply artificial intelligence at the edge. This means that organizations who wish to use AEE will need to team members who have varied specialized skills and knowledge of the bigger picture of AEE. Our projects made this very clear to me.

I won’t go into detail on what we learned and how we learned it, because much of that is the IP of the course and Oxford, but I will say that we dived deep in the following general areas:

  • The basic concepts of delivering AI to the edge using IoT and Edge platforms
  • Cloud- all the clouds (Azure, AWS, GCS)
  • Cloud concepts like PaaS, SaaS, and Cloud Native Services
  • All the big pieces of Machine Learning and Machine Learning concepts
  • 5G networks
  • Device design and development
  • DevOps, MLOPS, and even AIOPs

That doesn’t even cover all the guest lectures and insights into AI and AEE application demonstrated. And without the fantastic instruction of course director Ajit Jaokar and his amazing team of tutors and instructors, we wouldn’t have been able to learn so much in such a short period of time. Ajit’s passion for this specialty was clear in every class, which made it a joy to attend. It was definitely worth waking up at 3 AM to attend a class remotely just to spend the time with others who have such a strong appreciation for this burgeoning discipline. This course succeeds because of the people behind it. I have to include the choice of students as well in that success. My study group was full of passionate, knowledgeable, curious, and delightful professionals. We plan to stay in contact well after the course ends. I expect to see amazing accomplishments from their careers.

We wrap up the course on Tuesday and submit all our final homework projects over the next couple of months. I won’t be officially done with the course until May. However, I won’t ever consider myself officially done with AEE, from a learning perspective. I’m taking what I’ve learned from Oxford and building a continuing learning track to master most of the concepts covered in the course.

It’s even clearer to me now that the engineering skills of delivering greater levels of intelligence closer to the source of events and data, so that they may act upon those events and data is a skillset that will be in higher demand in the coming years. I believe this course has helped me to begin building a better roadmap toward mastery of AI Edge Engineering.

Posted on Leave a comment

AZ-220 and AI-100 = AI Edge Engineer

Microsoft doesn’t have an official certification for an AI Edge Engineer yet, but I have a feeling one is on the horizon. The term Edge continues to insert itself into a number of products. There’s even a version of Azure Stack Edge developed specifically for Edge compute devices. If this whole Edge concept is new to you, don’t worry, you’ll hear a lot more about it in the coming years.

IoT Alone isn’t Enough

IoT isn’t new. It’s been with us for 20 years. Longer if you count the many systems developed for the manufacturing and agriculture industries. The idea is to gather telemetry data, things like machine vibrations, humidity levels, or light levels, and send that data to a central data store for processing. The processing tends to involve searching to actionable insights. Can I build a correlation between machine vibration levels and machine breakdowns. If I can, I can add predictive maintenance triggered on vibration. Same goes for watering plants in a field or adjusting light levels in an office building.

IoT is still valid for these operations, however the demand is increasing for devices and intelligent actions that happen closer to the source. Why send constant streams of telemetry data to the cloud when you know the parameters that trigger an event? Why not bring the event trigger closer to the device? And what if you need greater levels of intelligence, like vehicle recognition in a shipping yard or warning zones on drilling platforms that recognize when a human not wearing the appropriate safety attire has crossed into that zone? For these types of situations you need something more sophisticated than the basic telemetry gathering tools. You need devices with the sort of AI typically hosted in the cloud brought to the edge of the cloud. Edge devices. More powerful systems that can serve as telemetry gathering systems, decision systems, and routing gateways. This is what Edge Computing is all about.

Developing for The Edge

Microsoft has developed a suite of tools that make working with edge technologies fairly simple. It’s not outside the realm of possibility that in the next few years Edge developers and Edge Engineers will be in high demand. The technologies used today are IoT Hub, IoT Edge Development kits, Edge enabled devices (which can be as simple as a PC), containers like Docker. Cognitive services like Computer Vision can be loaded onto these devices in the form of modules that are managed by Edge Agents and routed to the cloud or other devices using Edge Hubs and routing. These developers will need an understanding of developing for IoT devices, as well as development for the cloud. Azure provides many services for making this possible. There are services like IoT Hub and the Device Provisioning Service that make managing devices and integration with backend services possible. There’s also a SaaS platform called IoT Central that covers the majority of the use cases for specific industries that want to begin their journey into IoT Edge data processing.

These are the platforms that enable AI at the Edge using Microsoft Azure technologies, but these certainly aren’t the only tools that are taking advantage of this particular pattern. AWS, Google, NVIDIA, and many other manufacturers and services have staked a claim in this burgeoning field.

A New Type Of DevOps

DevOps is the word that has come to replace agile as the term to best describe the marriage of development and operations in the service of quickly delivering working systems to market. MLOPs is a similar term used to describe the process of bringing machine learning and AI to market. I’m not aware of a term specific for Edge development, perhaps EdgeOps should be the label, but what’s important to understand is that for this type of development there is a transformative workflow.

For a greenfield engagement, you probably won’t start with AI. You’ll probably start with telemetry in order to gain insights and develop actionable plans based on the data. This means you need a deployment pipeline that allows a device to go from being a simple hub or gateway for telemetry data to a more sophisticated application platform. Intelligence from the cloud moves from cloud services to Edge containers that are utilized by the Edge devices. This requires an evolutionary Edge network that can grow more responsive and cost effective as the business evolves its goals and strategies around gathered data.

This is an enormous opportunity developers and engineers, as well as value added providers, delivery partners, and definitely the organizations who embrace this new way to capture and manage data and events.

Why Did I Follow this Path?

For most of my career I’ve worked with different organizations that have struggled with their data. There are a large number of anti-pattens deployed by companies that make their data nothing more than a trailing indicator asset. It’s rarely a form of strategic information and even more rarely an active asset helping to shorten the loop between value delivery and cash flow. I decided not too long ago that I wanted the focus of my career to be toward that goal; helping organizations use their systems and data to shorten that loop. This isn’t always a technology solution. Sometimes achieving this goal requires organization change. I’m regularly looking for people, tools, and processes that I can utilize to help deliver on that goal.

Becoming an AI Edge Engineer as well as diving deeper into the world of Data Science seem the natural extension of that goal. If you are interested in exploring this path, you should take a look at Microsoft’s related training materials as well as the Oxford course mentioned on the training page: https://docs.microsoft.com/en-us/learn/paths/ai-edge-engineer/

Additionally, I’ll continue to post my lab work related to IoT Edge development and my thoughts on how this applies to helping businesses use their data to achieve their financial goals on this blog.

Posted on Leave a comment

Passing the AI-100 Exam

I recently passed the AI-100 Certification Test from Microsoft and wanted to take the opportunity to discuss my experience studying for the test, passing the test, and finally how I plan to apply what I’ve learned to my larger career journey of helping organizations build better systems.

First, I actually had no intention of taking the AI-100 this soon. I had planned to take it, but I was thinking more along the lines of next year when I had more time to work with more AI projects than I had. My experience was pretty much limited to building out a proof of concept Form Recognizer solution for a client. The opportunity to take the test came up last month when it appeared we needed this particular certification to help unlock a benefit around Microsoft Teams.

Basically, one of our team leads reached out to a handful of us with a request to take it and to take it soon. I committed to a month, hoping that would be enough time to get experience with the material in order to pass.

First, I can’t recommend Linux Academy enough. I took the course on that platform by Dan Sasse for the AI-100 and it gave me a great overview of everything I needed to study. The practice test for this course was also excellent for preparing me for the certification.

In addition to Dan’s course, I also worked through a handful of Microsoft’s Learning paths related to Azure Machine Learning Services and Studio. I initially didn’t like ML Studio, but after working with it I began to see the real benefits. These specialized studios are something that have become a trend with Microsoft products. Working with AI you will get used to the various interfaces developed for LUIS, QnA Maker, and so on.

Taking the actual test is always the most nerve wrecking for me. I’ve been developing for years – I’m an old guy in this field – but I still get sweaty palms when faced with these types of tests. So I had to precondition myself before diving in and taking the test. If you are taking the test, I would suggest you do what I did. Take your time.

So here’s my process for taking the test:

  1. Take your time. Take a few deep breaths before each question.
  2. Read the questions slowly and carefully to make sure you understand exactly what the objective is. Microsoft no longer creates “trick,” questions, but it does sometimes give more detail than needed to discover the answer.
  3. If it’s a multiple choice question, begin with the process of elimination. Be sure you are sure about what answers it is not. That will usually leave you with 2 answers.
  4. If you have any doubts about the answers you’ve selected for the question, mark it for review later. There were at least 2 questions I had marked for review that I was able to change because the answer seemed obvious to me when I reviewed them.

Lastly, go into the test with the attitude that everything is going to be fine no matter what. If you pass the test, well that’s great! That was the goal. It means you studied enough to know the subject material and were lucky enough to get the right combination of questions to match your knowledge – yes, I do believe luck has a hand in passing the tests. You can help luck by studying and knowing the materials, but sometimes the questions just don’t align well with your knowledge. Which leads me to the second point; don’t beat yourself up if you fail. Failure is an opportunity to learn. Be sure to look over your results and focus on the areas you did poorly in.

I did great on all my service knowledge, but even though I passed the test I know I have a weakness in deploying AI services. I need to brush up on certain technologies around that part of the discipline.

I count this as a fun certification. You get to work with a lot of cool technology and dive a little into the world of Data Science and Machine Learning. I would encourage anyone who is interested in working with AI to attempt this certification. Even if you don’t plan to be a data scientist, you will likely one day need to work with the output of the data science pipeline—an AI. And Microsoft has given the AI Engineer a lot of great tools to work with.

How do I plan to use this new certification? Well, by developing AI solutions of course. Right now I have a prototype QnA bot created that I’m building out. I only have a web connection created for it now, but the plan is to build it out to other channels like Facebook Messenger, Twilio SMS, and even email. I have also found many uses for the Form Recognizer and the possibilities for LUIS are endless.

Yesterday I even spent the afternoon building out a residential property assessment AI in Tensorflow – yes, and I’m not even a data scientist, so it’s not that hard if you have some development experience and you aren’t too scared of math.

AI will be embedded in everything soon. Edge Computing is on the rise. As a developer, you can’t afford to ignore this sector of the development world. And I think the AI-100 is the perfect way to jump in and start learning more about Artificial Intelligence.