My Internship Experience at H2O.ai

My Internship Experience at H2O.ai

H2O.ai logo

H2O.ai logo

Soon after a pleasant interview experience, I vividly remember the moment I received the excellent news that H2O.ai had offered me a position as a Machine Learning Engineering Intern. To say that I was thrilled would be an understatement. Eight months later, I feel very fortunate to have been part of such an amazing internship experience.

The H2O.ai Team

Everyone I worked with at H2O was nothing short of impressive. Since my GSoC experience at Blender, this was the first time I worked closely with a multi-national team. As a team, there’s almost no question you might have that they cannot clarify for you. However, despite the brilliance, the company is full of friendly and lighthearted individuals.

Throughout the internship, H2O has provided many avenues to clarify any doubts you have, to make sure you get the best experience possible. From team syncs, intern syncs, and one-on-one syncs with supervisors, to numerous available slack group channels and private chats.

What I worked on during the internship

At H2O, I was given the opportunity to work on a wide variety of products. Consequently, I was exposed to a myriad of fields and in each field, I got to work at the cutting edge of the respective technologies. This was often accompanied by a requirement for reading existing research such that I understood how things work behind the scenes and was able to make changes and improvements accordingly. As a result, I was able to develop my skills in reading research papers.

Talking about everything I worked on would take way too long, so I’ll be touching on a few products that I worked on the most. In addition to the four products mentioned in the subtopics below, I also got the opportunity to explore multiple other areas of machine learning such as different techniques for rule extraction (e.g: SHAP) and univariate, covariate, and multivariate anomaly detection.

H2O AutoInsights

AutoInsights was probably the product that I spent most of the first half of the internship with, and likely the main source of my exposure to H2O Wave (H2O’s open-source Python framework for developing web applications) and to software engineering practices in general. Given a dataset, AutoInsights analyzes it and generates a large variety of insights regarding the data. During my time working on this product, not only did I implement new features (e.g.: a data profiler), but I also received the responsibility of making multiple version releases on AI Cloud. Considering that this was part of the core services that H2O AI Cloud (HAIC) offers, I felt highly privileged to receive this opportunity.

AutoInsights analysis result view

AutoInsights analysis result view

Document AI

Document AI is another core product that tackles multiple document-related tasks such as OCR and layout detection. It was through the work on Document AI that I was first introduced to the field of UI testing. I got the opportunity to develop the entirety of the front-end UI tests for the application. Although accomplishing these tasks was not smooth sailing, I can confidently say that with each solved problem, my skills as a developer saw significant growth. Seeing how often my contributions have assisted in catching bugs before merging, I can’t help but feel a sense of pride.

Document AI image annotator view

Document AI image annotator view

Image Styler

The Image Styler (a.k.a Image Styling Playground) is a product that transforms images of faces into different styles while also allowing the user to alter different attributes of the face in the image. The product was one of the most fun projects that I worked on during my internship, and I was fortunate enough to join in at a fairly early stage of the product. With its growth, I also learned a lot about different image generation AI algorithms such as generative adversarial networks (GANs) along with their strengths and weaknesses.

Example of changing facial attributes

Example of changing facial attributes

Image Styler user interface

Image Styler user interface

Model Analyzer

Model Analyzer is a product to assist in exploring a model’s behavior and limitations either by manual perturbations or by automatically generating counterfactuals and adversarial examples. Having worked with the product for most of the second half of the internship, I received exposure to the technologies and algorithms in the field of adversarial machine learning. This knowledge exceeded that which I needed to complete a given task, and instead touched upon a lot of different areas which were previously alien to me. Additionally, working on this product has shown me how people with malicious intent can exploit the vulnerabilities of a model, which is an aspect of machine learning that ML engineers often overlook.

Model Analyzer’s interactive view

Model Analyzer’s interactive view

Final Remarks

As probably apparent by the above descriptions, I always received as much responsibility as I needed to grow, and despite this, I never felt overwhelmed. Having completed my internship, I am immensely grateful for the growth and opportunities I received at H2O.ai over the past 9 months.