r/learnmachinelearning

If you were an aspiring ML/Data Science professional, which 5 projects would you build for your portfolio?

If you were a computer science student passionate about machine learning and data science, with a strong foundation in machine learning, mathematics, and probability, what five projects would you prioritize to build a strong GitHub portfolio?

I'm particularly interested in projects that would stand out to ML/Data Science professionals working in industry, rather than simple tutorial or Kaggle-style projects.

If you were starting from my position, which five projects would you choose, and what skills would you try to demonstrate with each one?

reddit.com
u/Upbeat-Ad-817 — 1 day ago

Probabilistic Machine Learning Textbook for the lectures.

Hello Folks,

When I started teaching my free online lectures, on Machine Learning, the intent was to help learners understand the topics of Machine Learning in a simple and digestible manner.

When I was a first time learner, started my grad program, books as Probabilistic Machine Learning by Murphy, Bishop, were told to us as excellent text books for Machine Learning, yet seemed always very difficult to read and understand.

To work around that, I started making content based on these foundational textbooks. We covered Introductory concepts, Probabilities and Statistics.

Slowly I started understanding, that the difficulty is faced not just by me, but all the learners. Hence the need.

I do hope that learners will see the importance of core foundational concepts, which are the pillars for modern machine learning, and Probabilistic Machine Learning is that core pillar, without which ML always seemed to me to be some blackbox.

Link: https://youtube.com/@aayushsugandh4036

u/Negative_War_65 — 1 day ago

AS A MACHINE LEARNING ENGINEER

where can a engineer add value if AI can write better code than me . i am currently learning programming only because so that i can understand what is happening and i can operate effieciently. but AI is fast and i have go through multiple things to keep up and not just in programming but reading books and getting deep knowledge of algorithims.
But still one question is always in my mind where can i add value cause every thing i learn or do i am not better than AI

reddit.com
u/No-Reach-3503 — 1 day ago
▲ 4 r/learnmachinelearning+1 crossposts

Amazon applied scientist intern through amazon ml summer school

So I got selected in mlss but didn't receive any acknowledgement letter or anything about swags(yea I missed some modules but thought that I can complete in 30 days and my attendance will be tracked as they mentioned the recordings will be live for 30 days)

Nvm ig I fucked up

Now I want to know what they ask in interview and how many people are selected.

Also do they have any bias for girls or tier 1/2 colleges? And do they keep interview a lil bit easy for people getting through mlss

Ps: I haven't received any oa link yet..like have heard people get it late so I just want to confirm about this

reddit.com
▲ 19 r/learnmachinelearning+1 crossposts

What are the best resources to get started with Reinforcement Learning???

I've been trying to get into rl for a long time but I don't see any good resources out there. help me out!

reddit.com
u/Jaded-Bus2966 — 1 day ago
▲ 8 r/learnmachinelearning+3 crossposts

I focused on full-stack development until my 3rd year — now I want to move seriously into ML/research. What should I learn next?

Hi everyone,

I’ve mainly been focused on full-stack development throughout the first few years of my degree. Now that I’m in my 3rd year, I’ve started thinking more seriously about my long-term direction, and I’m becoming much more interested in machine learning and research.

My goal isn’t just to learn how to use ML libraries. I’d eventually like to understand the fundamentals well enough to read research papers, do my own research, and potentially pursue a research-focused master’s/PhD.

Right now, I’m planning to study these three DeepLearning.AI programs:

  1. Mathematics for Machine Learning and Data Science
  2. Machine Learning Specialization
  3. Deep Learning Specialization

The math specialization covers linear algebra, calculus, probability, and statistics, while the ML specialization focuses on foundational ML algorithms and practical implementation.

My question is:

Is this a good learning path if my long-term goal is ML research?

What would you recommend I add or change?

For example:

  • Should I study more mathematics beyond these courses?
  • Should I learn statistics more deeply?
  • Should I learn PyTorch, NumPy, etc. separately?
  • When should I start reading research papers?
  • Should I work on Kaggle/projects before trying research?
  • Are there any textbooks or university courses (Stanford/MIT/etc.) that you would strongly recommend?
  • Should I specialize in an area such as NLP, computer vision, or something else?

I’d really appreciate advice from people who have gone through a similar transition from software/full-stack development → machine learning → research.

Thanks!

u/OppositeGround9175 — 1 day ago

Looking for people to learn AI/ML together

I’m starting my AI/ML journey and want to connect with people who are also learning AI/ML from scratch or are at a similar stage.

Instead of just collecting resources and watching courses, I want to actually build things, practice consistently, and improve step by step.

I’m looking for people who are interested in:

  • Learning AI/ML together
  • Sharing useful resources
  • Discussing doubts and concepts
  • Building projects together
  • Keeping each other accountable
  • Sharing progress and mistakes
  • Staying consistent for the long term

No competition or pressure just a group of people seriously trying to get better.

If you're also starting or currently learning AI/ML, let’s connect and follow this journey together.

Comment or DM if you're interested!

reddit.com
u/Wise_Departure2637 — 1 day ago
▲ 9 r/learnmachinelearning+2 crossposts

Is there a "TypeScript for Python"? What you do for type checking!?

Conclusion: Thanks for the comments, everyone has been so helpful and generous with the suggestions. I realized that I did not asked my question properly and my main problem went unseen... (Well I'm at fault by opening the conversation by Is there a "TypeScript for Python"?).
I will create a new post with the right problem statement, but let me thank u/ProsodySpeaks, and u/JamzTyson which gave me idea on what to do next.

Cheers!

Hi, sorry for the basic question. I'm coming from strongly/statically typed languages (Kotlin, Go, Rust, etc.), and I was aware that Python is dynamically typed, but given how popular Python is, I expected its typing utilities (type hints + static type checkers) to provide something closer to TypeScript.

I'm working on an ml framework where the main interface has to be Python, and I ran into a magnitude of problem I was not expecting...

Requirements:

  • Type checking before a pipeline runs (no values exists yet, just type hints/annotations)
  • Type checking during the pipeline run (value and type hints/annotation should match)
  • The type hints are used to decide if pipeline components are compatible (similar to LangChain or similar frameworks)
  • Require as little setup as possible, so even junior engineers can use the framework safely.

I spent some time trying to implement this using Python's existing typing mechanisms. A few thousand lines of code later, I ended up with a type checker for my specific pipeline system:

https://github.com/trained-by-humans/ml-pipes/blob/main/packages/core/src/ml_pipes/validation.py

And my own type checking utilities:

https://github.com/trained-by-humans/ml-pipes/blob/main/packages/core/src/ml_pipes/_typing/annotation.py

But now I'm wondering:

Am I going way too far here? Is there a much more idiomatic Python approach that I'm completely missing?

And just to be clear: this is only the pre-run check so far. Runtime type checking doesn't exist yet.

Update1: Thanks for highlighting Pydantic, I've considered to use it for runtime since it covers enforcing type hint/annotation on values.

Update2: The TS or other "typing languages", would essentially help with highlighting the compatibility, they answers questions like is input of type A is assignable to parameter of type B, which is very very important for pipeline validation before running the pipeline.

Update3: The type of type checking I need is this, imagine a pipeline like this:

Pipeline([
    Resize((640, 640)),
    Store("resize_transform", source=1),
    Pick(0),
    Normalize(),
    Infer(model_path),
    Extract("output0", as_="preds"),
    Squeeze("preds"),
    Transpose("preds"),
    Slice("preds", slice(None, 4), as_="boxes"),
    Slice("preds", slice(4, None), as_="scores"),
    ArgMax("scores", as_="classes"),
    GatherRows("scores", "classes"),
    ConvertBoxFormat(from_="cxcywh"),
    NMS(conf_threshold=conf_threshold),
    Recall("resize_transform"),
    ProjectBoxes(),
    ToDetections(),
])

I need to make sure the upstream operator output is compatible with downstream input. You can find out more about it in the page (Validation.md under the operator compatibility section)

Please save me from implementing another few thousand lines of code. 😭

u/tenkei_01 — 1 day ago
▲ 5 r/learnmachinelearning+4 crossposts

We retrained our prompt-injection classifier from scratch because it was crying wolf too often. [R]

We retrained Wolf Defender.

The main reason was not that attack detection was bad. The bigger issue was false positives.

The previous models were already good at detecting prompt injections, but especially on short benign inputs, security-related text, code snippets or ordinary conversations they could still be too aggressive. We also got a few reports from users that made this pretty obvious.

One example was just:

“Who are you?”

Wolf Defender Small previously classified this as a prompt injection with around 94% confidence.

For v2 we therefore changed the training setup quite a bit. Both Wolf Defender and Wolf Defender Small were retrained from fresh mmBERT checkpoints, with a much stronger focus on hard negatives.

That includes short conversations, emails, documentation about prompt injections, benign policy and system language, code and configuration snippets and generally inputs that contain words or structures which look suspicious without actually trying to manipulate a model.

We also added more counterfactual samples, multilingual examples, adversarial obfuscations and long-context injections at different positions in a document. Training combines short 256-token samples with full 2,048-token windows and uses supervised contrastive regularization, FreeLB adversarial training and Smooth-Max aggregation for long documents.

The main change can be seen in the benign benchmarks:

Model Benchmark v1 v2
Wolf Defender Hard benign specificity 81.57% 96.23%
Wolf Defender Real-world benign specificity 66.85% 96.63%
Wolf Defender Small Hard benign specificity 82.12% 96.67%
Wolf Defender Small Real-world benign specificity 73.60% 94.38%

At the same time, attack detection stayed roughly where we wanted it:

Model Qualifire F1 Jayavibhav F1
Wolf Defender 95.14% 97.84%
Wolf Defender Small 95.21% 97.68%

There is also a tradeoff here. Some of the very high scores on our cleaner validation distributions went down slightly.

For us that is fine.

A security classifier with near-perfect benchmark scores is not very useful if normal traffic gets blocked all the time. We would rather lose a small amount on an easier validation set and get substantially better behavior on actual benign inputs.

The “Who are you?” example now gets classified as benign by Wolf Defender Small v2 with 98.55% confidence. A real instruction-override attempt is still detected as an injection with 99.99%.

We also updated the deployment variants. Both models are available as regular Transformers checkpoints and as ONNX exports in FP32, FP16, mixed INT8/FP16 and INT8 with INT4 embeddings.

The smallest Wolf Defender Small artifact is now 96 MB.

More details, benchmarks and model files are here:

https://huggingface.co/patronus-studio/wolf-defender-prompt-injection

https://huggingface.co/patronus-studio/wolf-defender-prompt-injection-small

If anyone is running prompt-injection classifiers on real traffic, I’d also be interested in which benign inputs still cause the most false positives for you.

u/PatronusProtect — 1 day ago

Looking for a free AI course with a certificate

Hi everyone! I’m looking to learn more about AI and was wondering if anyone knows of any good, legitimate online courses that are free and offer a certificate after completion.

I’d prefer something from a reputable university, company, or platform that would actually be worth adding to my CV/LinkedIn.

Would really appreciate any recommendations, especially if you’ve taken the course yourself. Thanks!

reddit.com
u/Street-Weekend164 — 1 day ago

need suggestions on how to start learning about ai, llms and machine learning from scratch

hi, i want suggestions on how i can upskill myself in learning about LLMs , machine learning and AI and would appreciate any reference for any courses that do so really well in explaining the fundamentals and basics (preferably free). i want to build a project soon so i can actually get hands on experience. any leads would be much appreciated

reddit.com
u/SirArtemis77 — 1 day ago

I built a simple CNN in cpp , should I keep improving it or move on?

I'm a first-year Computer Engineering student, and I've been learning about machine learning and CNNs recently.

As a learning exercise, I built a small sketch classifier from scratch in C++17, without using PyTorch/TensorFlow. It implements the CNN, backpropagation, gradient checking, SGD, etc., and currently gets around 94% validation accuracy.

GitHub: https://github.com/rituuu001/Doodle-guesser

Now I'm stuck on what I should do next.

I could keep improving this project — better training, data augmentation, a deeper CNN, more classes, etc. But I'm wondering if that's actually the best use of my time, or if I should consider this project "done" and start something completely different.

For people who have more experience with ML:

How do you decide when a project has taught you enough and it's time to move on?

Would you recommend:

  • continuing to improve this project until I've explored it more deeply, or
  • moving on to a new ML project where I can learn something different?

I'm mainly trying to avoid spending months endlessly polishing the same beginner project, but I also don't want to move on too quickly without getting enough out of it.

Would really appreciate some honest advice.

▲ 19 r/learnmachinelearning+1 crossposts

I built a reinforcement learning environment around Pokelike! Try to beat it!

Hey everyone!

I'm a data scientist and I've been pretty fascinated by reinforcement learning for a while. A few days ago my friends showed me Pokelike, a small Pokémon roguelike that runs in the browser. The first thing I thought was that it could be pretty fun to turn it into an RL environment.

So I did.

The repo is here:

https://github.com/pierpierpy/pokelike.xyz.bot

The idea is to run the actual game locally and expose its state and actions to an agent. There is no image processing involved. The bot gets the game state directly and decides what to do next. The agent has to make the decisions around the battles, like where to go on the map, which Pokémon to catch, which items to take, when to swap Pokémon and which moves to learn.

One thing I found interesting is that the map forces you to make some decisions quite early. Once you choose a node, the other nodes on that layer are gone, so deciding where to go can matter quite a bit later in the run. There is also a lot of information in the state that could potentially be useful, but I'm still not sure what the best way to represent it is.

I've already implemented a few basic RL agents. There is currently a Dyna-Q agent and two linear SARSA agents in the repo. The results are not amazing yet. On the current benchmark, random gets around 0.56 badges, Dyna-Q gets around 0.62, while the two SARSA agents get around 1.30 and 1.36. The two SARSA agents mainly differ in their state representation, with the better one using 100 hand-designed features instead of 81.

This is probably the part I'm most interested in at the moment. Finding a good state representation seems to make a pretty big difference, and the environment has some properties that make it a bit more interesting than I initially expected. The reward is fairly sparse, the action space depends on the current state, and some decisions only become useful several steps later.

At the same time, the environment is completely reproducible. With the same seed and the same actions you get exactly the same run. For the current leaderboard I'm using 50 fixed seeds, so different agents can be compared on the same games.

The interface is also intentionally pretty simple. You can basically implement a bot that takes the current state and returns an action. It doesn't have to be a specific RL algorithm either. You could try DQN, PPO, search, a hand-written policy, or pretty much anything else.

I'm still experimenting with the environment and the agents, so I'd be really curious to see what other people would try. In particular I'd love to see if someone can get significantly better results with a better state representation or a different reward function.

you can experiment with the environment with no efforts, just follow the guide and readme, setup the enrinvonment, experiment a bit and then if you like the result, you can create a pull request to the repo with your bot in the bots/ folder (everything is clearly explained in the GUIDE.md)

If you want to try it, everything is in the repo

https://github.com/pierpierpy/pokelike.xyz.bot

If you find bugs or have ideas for the environment, please let me know. I'm happy to make changes if there are things that would make it more useful for experimenting with RL.

The whole thing also runs offline. During setup it downloads the game and the required assets, and after that everything runs locally.

I originally started this because I thought it would be a fun little RL project, so I'm mostly curious to see how far people can push it.

▲ 33 r/learnmachinelearning+1 crossposts

"MATHEMATICS FOR MACHINE LEARNING " A bit overwhelming?

When I started focusing on practical mathematical implementation of machine learning I found that I lack so very math basics(I blame my school for that) so I tried making my way through basics to go deep into machine learning and while I was learning from professor Leonard on YouTube someone recommended me this "Mathematics for machine learning" by Marc peter. Tbh I dont understand shit in this book, I genuinely get overwhelmed by this book. I dont understand is it only me ? Am I that dumb in maths?

Well I need to get on track asap really! Suggest me something and please share your opinion

reddit.com
u/Visual_Teacher_6474 — 2 days ago

I am a total beginner just starting out with machine learning. Help me out!

I just started with machine learning and I would love to know the best resources out there to learn machine learning. I wanna go into ml research so I would love to go deep in ml math.

reddit.com
u/Jaded-Bus2966 — 1 day ago
▲ 2 r/learnmachinelearning+3 crossposts

I deliberately sabotaged five of my own QLoRA runs to see if a training linter could catch them. Four got caught. One fooled it completely. Body:

I went to bed with a fine-tune running. Woke up eight hours later to a loss that had been NaN since step 300 — the whole night of GPU time gone, and nothing had told me. If you fine-tune, you've lived some version of this: the run that trained at learning-rate-zero the entire time, or quietly ate a dataset with 40 broken rows, and you only find out at the end.

So I built a deterministic linter for training runs — trainproof (pip install trainproof, MIT) — and then I spent days trying to prove it wrong.

One Qwen2.5-3B QLoRA, run five times: once clean, four times with exactly one thing sabotaged. Four it caught instantly. One fooled it completely — and that one taught me the most.

It wasn't the NaN run. It wasn't the fp16 overflow. It wasn't the learning rate cranked 100× too high (that spiked the gradient norm to 2650× the median — caught in seconds).

It was shuffled labels. Pure garbage — a dataset that literally cannot be learned.

That run reduced its loss by 62%. On the curve it looked like textbook-healthy training. It was learning absolutely nothing — just memorizing the statistics of noise, which any network will happily do. From its own loss curve it is indistinguishable from a real run. No single-run, loss-only rule can catch it. So instead of pretending my tool is magic, I wrote that limitation straight into the README — and added a compare mode, because the failure is visible the moment you put it next to a known-good run.

That's the whole philosophy: no ML judging ML, no "87%-confidence" scores. Every check is a deterministic rule that either fires or doesn't, and every finding cites the exact numbers behind it. When it can't be sure, it says so instead of guessing.

Across a run's life:

  • Before a single GPU-second — lints the dataset + tokenizer (malformed JSONL with the line number, empty rows, duplicates, missing eos_token, pad==eos, over-length samples). Exits non-zero → straight into CI.
  • During training — one-line HuggingFace callback. Warns by default; flip on stop_on_fail and it aborts a doomed run itself. In testing it killed a diverging run at step 20 of 300 — 93% of the scheduled steps never ran.
  • After — reads the log: diverged / flatlined / NaN'd / spiked.
  • vs a baseline — the ratio rules that catch the shuffled-labels case.

All five sabotaged runs' real logs ship in the repo (examples/gallery/) with a 15-run / 3-seed evidence matrix — reproduce every verdict yourself. Reads plain logs (HF trainer_state.json, Coqui, JSONL/CSV), doesn't import torch.

Repo: https://github.com/Mormolykos/trainproof · pip install trainproof

Honest question: what's burned your GPU hours? If a deterministic check would've saved you, tell me — it goes in, with credit.

u/CupGlass540 — 1 day ago

At what point did you realize you were actually learning ML, not just using libraries?

I've been learning machine learning and I keep wondering where the line is between actaully understanding ML and just knowing how to use libraries.

For example, you can train a model, tune some parameteres, look at the accuracy, and get a good result without fully understanding what is happening underneath.

So for people who have been doing ML for a while:

What concepts make you feel like you finally understood machine learning?

What is the math behind gradient descent, understanding loss functions, overfitting, reading research papers, implementing algorithms from scratch, or something else?

And what do you think beginners spend too much time learning that isn't actually that important?

reddit.com
u/Suspicious_Pizza9529 — 2 days ago
▲ 9 r/learnmachinelearning+1 crossposts

What do full time graduated ai/ml engineers do everyday?

Okay so I'm a 3rd year undergrad whos an ai remote intern at a startup, and I spend most of my day just looking at data, preprocessing, verifying data, and debugging and training models. I realized most of my time does in debugging and training and running smaller ablations alongside, but a lot of time just goes into waiting for results during the training phase. My meetings mostly just consist of showing my training curves and predictions and getting feedback on it. I'm curious to know what a day looks like in a full-time ai/ml engineer's life that works in a larger structured MNC.

Edit: personally one main difference I noticed from academia is that my supervisors don't like the idea of me building an entirely new model like I do in research, they tell me to test current models and then tweak them and retrain (tho my own models are better ngl).

reddit.com

Visualise PyTorch Tensors as Lego blocks

Been working on a visualisation engine for PyTorch tensors.

When I was learning PyTorch, tensors really started to click once I stopped thinking of them as arrays and started thinking of them more like Lego blocks — things you can slice, reshape, stack, repeat, squeeze, and combine.

So I built a visualisation library to make those operations tangible.

Write a PyTorch operation and actually see what it does to the tensor.

A huge amount of machine learning ultimately comes down to manipulating tensors. Once you can build an intuition for their shape and how operations transform them, a lot of PyTorch starts to feel much less abstract.

Would love to hear whether something like this would have helped when you were learning PyTorch and if you'd like me to open source this :)

u/InternationalSlice72 — 2 days ago