How to succeed as a Machine Learning Engineer
5 tips that helped me exceed expectations at Meta
Have you ever wondered what it takes to succeed as a machine learning engineer? Do you struggle with defining your role in this dynamic field? I’ve been there too!
Hi! I'm Kartik Singhal, a Senior Machine Learning Engineer at Meta. With six years of experience in the field, I still find myself learning every day. Today, I will share five tips that have helped me achieve ‘exceed expectations’ rating as a senior machine learning engineer in Meta.
💻 Building Foundation
You need a good understanding of machine learning fundamentals and an awareness of its limitations in real-world applications.
Understand Core Concepts:
Grasp the basics of supervised vs. unsupervised learning, classification vs. regression, and the fundamentals of deep learning.
Knowing error metrics, objective functions, and the limitations of each approach is crucial.
Pro tips:
Start with coursera Machine Learning which introduces you to all the core concepts.
I also recommend looking at "The Hundred-Page Machine Learning Book" and "Machine Learning Engineering" by Andriy Burkov to learn more about applied machine learning.
Checkout coursera Deep Learning specialization if you are more interested in deep learning. Recommend getting the basics of ML down with a foundational course before taking this one.
Learn About Libraries:
Become knowledgeable about core ML libraries such as TensorFlow, PyTorch, and scikit-learn.
Working on small projects on platforms like Kaggle will help you become comfortable with these libraries early in your career.
Pro tip:
Highly recommend educative.io’s Machine Learning Engineer course which introduces most libraries and functionalities.
Stay Updated with State-of-the-Art Research: Keep up with the latest research in your domain by reading recent papers and attending conferences like KDD. This will build your confidence and ensure you’re aware of current trends.
Since I am interested in NLP applications in Search, I familiarized myself with landmark papers like Word2Vec, BERT and the latest developments in large language models.
💪 Play to your strengths
As an MLE, focus on your strengths and seek help in areas where you're less experienced. Here are some key responsibilities you might perform:
1) Data and Feature Engineering: You'll often need to find and prepare your own data. This involves:
Understanding the Problem: Grasping the problem statement and determining which data is most critical.
Identifying Data Sources: Finding relevant sources for raw data
Data Preprocessing: Cleaning and formatting data to make it usable.
2) Modelling: This involves turning data into actionable insights by having ML models. Key steps include:
Understanding the domain: Do your research about the domain you are working in. Each domain has its own challenges.
Formulating the Problem: Defining what you’re optimizing and the objective function you ll need to use.
Create Baselines: Determining minimum acceptable performance for your project.
Training Models: Finding and training the appropriate models.
3) Model Deployment and Scalability:
Understanding Scale: Know the scale at which the model will operate and which technologies you'll require to satisfy those requirements. There are several technologies like Amazon Sagemaker and Tensorflow Serving that provide large scale model deployment frameworks.
Robustness: Ensuring the model inference integrates well with existing systems and can handle real-world traffic.
Pro tip: Checkout Udacity’s Machine Learning Engineer Nano-degree for deployments using Sagemaker. For Tensorflow Serving, their user guide is pretty good.
🎯 Focus on business goals and data
I've personally struggled with this, and I know many MLEs do too. We often improve models without considering business goals. Aligning with these goals ensures projects meet expectations and deliver value.
Identify the Business Goal or User Objective: Understand the business objective—revenue, user experience, fraud reduction, etc.
Define a Problem Statement: Craft a problem statement that aligns with the business goal.
Example: To increase number of user sessions in a streaming service (business goal), optimize click-through rates to improve user engagement (problem statement).
Validate Hypothesis with Data: Support your problem statement with data analysis.
Example: For a recommendation system optimizing click-through rate, analyze user interaction data to identify patterns and preferences.
Understand Limitations: Choose models that fit the domain and business needs.
Example: If the goal is to provide transparency to sellers about which product features drive sales on an e-commerce platform, a simpler, more interpretable model like a decision tree might be more appropriate than a deep learning model.
🔍 Understand Return-on-investment (ROI) and trade-offs
Can you deploy a large language model (LLM) with millions of parameters in a user-facing app with 100 ms latency? Probably not. Resource constraints are critical considerations and often overlooked.
Trade-offs: Understand project trade-offs and set clear milestones. Balance time, resources, and model performance.
Example: Choose between a year-long, four engineer project for developing a complex model which will achieve high performance or a six-month, two engineer project with slightly lower model performance based on project goals and deliverables.
ROI: Evaluate the return on investment for your models. Opt for models that balance performance with budget constraints.
Example: If a state-of-the-art model requires hundreds of GPUs, but a simpler model can run efficiently on fewer resources, the latter may be more practical.
Iterative Process: Start with resource-efficient models and improve them iteratively.
🔁 Embrace Experimentation
Machine learning is experimentative and iterative. You start with an ambiguous problem, formulate hypothesis, deploy solutions, learn, and refine.
Due Diligence: Research and analyze the domain thoroughly to anticipate and mitigate potential surprises.
Learn from Feedback: Use user feedback and performance metrics to improve models continuously.
Learn from Failures: Analyze both your own and others' failures to identify weaknesses, improve model architecture, and understand dataset issues.
🌟 Bonus Tip: Mentorship and Networking
Building connections within the industry can accelerate your learning, open up new opportunities, and provide valuable support throughout your career.
Seek and Be a Mentor: Find mentors for guidance and mentor others to reinforce your knowledge. Having strong mentorship support early in my career helped me navigate blockers.
Network Actively: Attend conferences, meetups, and webinars. Join online communities to stay updated and share knowledge.
As a parting note I would like to say, I don't claim to have all the answers, but I believe in the power of continuous learning and sharing knowledge. This letter is my way of doing just that. I’m committed to making this newsletter a valuable resource for anyone interested in machine learning, from beginners to professionals. Your support and feedback will be invaluable. Thank you for reading.
Special Thanks to Raviraj, Akash and Kushal for helping me write my first article. Checkout their newsletters to learn about leadership and how to grow in your career. Here are some of my favorite articles from them :
How I got the highest rating in performance reviews by Raviraj
Is it Still Worth it for Big Tech? by Akash
How would I design an App to improve scheduling medical appointments? by Kushal
Insightful, thanks KK.