Live data from Hacker News

Machine Learning Is Still Too Hard for Software Engineers

nyckel.com

61–70 of 112 posts

Re: Machine Learning Is Still Too Hard for Software Engineers

#61
post #46
post #31

Earlier quoted context omitted.

What's the normal meaning of 'kernel'? EDIT: Hacker news won't let me respond, but the answers below all seem to be because the original meaning has been lost on everyone. In English, the word 'kernel' means 'core'. An OS kernel is the core of an operating system. In linear algebra, the kernel of a matrix (or a linear transformation, same thing) is the set of vectors it maps to zero, which is also in a sense the 'cor…

The bit of code at the center of an operating system that mediates access between userspace code and the hardware. Whereas in CUDA programming, a kernel is just the code running on the device. When I first heard kernel in relation to CUDA programming, I expected it to be a) the actual OS kernel, and then b) something akin to a GPU driver. I can see how NVIDIA got there, but it's not immediately obvious if you're comi…

> Whereas in CUDA programming, a kernel is just the code running on the device. When I first heard kernel in relation to CUDA programming, I expected it to be a) the actual OS kernel, and then b) something akin to a GPU driver.

I think this is still not the machine learning 'kernel' being talked about. While you'd inevitably need to know about this for tooling in the space, looks like kernel is also a mathematical term.

Re: Machine Learning Is Still Too Hard for Software Engineers

#63

ML is one of the easiest fields out there. When I learned it I was actually turned off by how simplistic the concept was. Of course let me preface to say that it's hard to develop the intuition and skill in the same way learning to skateboard is hard. But conceptually it's easy and very possible for almost anyone. The whole thing is just curve fitting. Literally finding some best fit curve across a series of points.…

LLM's are all about "let's think this through step by step". That's literally a loop in the programming/software engineering sense, it's just expressed via natural language.

Re: Machine Learning Is Still Too Hard for Software Engineers

#64
I can relate to the article. Knowing JavaScript, I've been fiddling about with Tensorflow.js, learning DL concepts through the lens of the library and working my way backwards. For anyone interested, here are a few books in this vein:

Learning TensorFlow.js: Powerful Machine Learning in JavaScript Deep Learning with JavaScript: Neural networks in TensorFlow.js

Good luck

Re: Machine Learning Is Still Too Hard for Software Engineers

#65
The bottleneck is that the Python libraries have a poor user experience.

“Get familiar with one or more ML libraries like PyTorch, Tensorflow, FastAI, or scikit-learn. This is harder than getting familiar with a normal programming library because the concepts and paradigms are very different from what programmers are used to.”

Re: Machine Learning Is Still Too Hard for Software Engineers

#66
I am mathematician by training. The algorithms relied mostly on undergrad level mathematics when I took some courses six years ago, not easy, but I think there are harder algorithms.

I think it is qualitatively different from programming, because you try to find a reasonable good fit for data you know to guess new future data. Classical programming relies on rules and decisions. ML is closer to numerics, statistics, simulations. Guess the function from the data vs define a function and programm it.

Re: Machine Learning Is Still Too Hard for Software Engineers

#67
post #18
post #7

ML is a broad topic, and it keeps getting wider, and deeper. Even ML specialists don't try to keep up with it all. Be comfortable with not knowing everything. Machine learning engineers are software engineers, and they exist, so the title is wrong. I suppose it is in Nyckel's interest to claim otherwise.

The industry has been consolidating around transformers. I'd say it's getting deeper, not wider.

Transformers are in many state-of-art models but they don't solve all machine learning problems. Even within the world of transformers, there are many variations depending on the application: generating embeddings, translation, next-token prediction, recommendations.

Re: Machine Learning Is Still Too Hard for Software Engineers

#68
Yeah, but ML is extremely math heavy, and the fact that it is done in software doesn’t mean that any software engineer should be able to pick it up readily. I think it is much easier to train up a person with deep understanding of math the basics of python and have them do ML, then someone with a understanding software graduate level math and then have them do ML

Re: Machine Learning Is Still Too Hard for Software Engineers

#69

I feel so validated by this article. I took two semesters of machine learning electives for my CS masters and feel nearly as ignorant and mystified as when I started. I worked so hard to create something useful and at the end of the day, my work felt like it was 96% example code with modifications hacked in to make it work. And in the end it was still terrible! At least now I know what people are talking about when d…

I have done ML R&D for I guess 7 years now. It doesn’t get easier. You just get used to it.

Re: Machine Learning Is Still Too Hard for Software Engineers

#70
post #31

Earlier quoted context omitted.

> There is a lot of jargon and you do have to sit down and learn how things work, but once you do, deep learning is fairly simple. This is my realization too. I think ML for SWE courses should focus on "translation" first. Like by "kernel" they mean this specific thing, not the normal meaning of kernel. This is similar to other fields like finance (which I'm working on). After you learn the language, it's actually no…

What's the normal meaning of 'kernel'? EDIT: Hacker news won't let me respond, but the answers below all seem to be because the original meaning has been lost on everyone. In English, the word 'kernel' means 'core'. An OS kernel is the core of an operating system. In linear algebra, the kernel of a matrix (or a linear transformation, same thing) is the set of vectors it maps to zero, which is also in a sense the 'cor…

In a ML context kernel would probably be understood as a way to quantify similarity between different examples: https://en.m.wikipedia.org/wiki/Kernel_method

But it was hilarious to see how many other "normal" meanings came up in the comments.

Post reply on HN