How many books did you read in your education? Far fewer that what LLMs read, no doubt. Of course we "have a life" and so we interact with hundreds of people, which is also a form of learning.
But in any case there's are fundamental differences here between these two systems (LLMs and humans) that we have not yet discerned clearly.
Say I ask it who are the most beloved Indian cricketers and why, it might not be correct but it will have the right vocabulary - cricket terms and gameplay I’ve not heard of, player names and styles I don’t recognise, things critics and commentators like and dislike about game strategies. And it is like that for almost any topic.
If they hallucinate a Python function, it will look like a plausible function e.g. “hn.create_user_account()”. They don’t hallucinate like
# create HN user account
# requires eye of newt and frog leg
“Oh great spirit of the internet I request and command you make a new account…”
It’s a terrific amount of facts to be able to write even plausibly about tons of topics.We don't even need machines that can answer any question in a specific topic area. But we could use machines that can answer "I don't know." when they cannot compute the answer.
Consider the possibility of much-smaller LLMs that answer questions only in limited domains (physics, chemistry, math, medicine, etc.)?
Could not such LLMs exist? If not, why not? Would they not likely be more useful and far, far easier and cheaper to create and run (possibly even with far less hardware) than the current "know-all" LLMs? Also might they possibly avoid certain problems ( e.g., hallucinations, deceit, apparently undesirable behavior, etc.) associated with the "know-all" LLMs we now have?
One can train a decent model at home, for a specific task but you are absolutely correct that in order to have a model that's an expert in any topic it requires training and data on all topics.
I sometimes jokingly explain to certain people not immersed in tech that sometimes saying the "magic words" (commands) from the "codex" (script) in the right sequence with a lot of hand waving allow "magic" (applications/web apps/etc.) to happen.
It generally brightens a patients day and makes things relatable to those non-technical, children, the elderly, or the like.
TLDR: thanks for the chuckle.
In the software engineering world, we're accustomed to the reality that to do great work, all you need is a sharp mind and a cheap laptop. Better tools help, but aren't really a necessity. You could probably become a top-notch Linux kernel engineer with nothing but dedication and self-study, a $300 laptop and a shabby apartment with internet access.
You just can't really learn ML that way, just like you can't do it with banking, professional trading or medicine.
Maybe you are right! I'd like to hear the justifications more though.
But I can't do the same for things that excite me in this DL domain, even running pretrained models requires hardware that most hobbyists can't afford.
Cloud solutions exist but unlike traditional dev where we could test almost everything about the application locally, only thing unsolved was deployment and distribution in some cases, which is a sensible spend on infrastructure.
Compute is only an issue if you want to train large foundational models from scratch. You can easily train non-neural models on CPU, and fine-tune smaller models (say <4B) on a commodity GPU.
For training data there's lots of datasets online (like Kaggle), but you can build your own and can label things yourself or get a language model to label them for you. Getting good data is the hardest part of ML so this is a good exercise.
Then do some hobby projects: classify whether your photos contain a photo of you or a particular friend/family member, predict the expense category from bank transaction exports, classify your emails into categories, extract book recommendations from Hacker News, ...
For a junior coder, there's usually a path to recommend, joining some open source project or doing some home scripting, etc. Something where you can be useful even if it's not your full time job.
I'm wondering whether there's some similar hobbyist path available here, or whether there's too much of a jump between the educational/pop sci stuff and the professional realm. If it's the second, that's also fine, I just want to know if I'm missing something.
You don't need to change many weights, relatively, to add capabilities or modify behavior. Look up LoRas for instance.
I'm of the opinion that post-training existing models is an area with a lot of benefit and fun in the near future (it's already being done here and there of course).
I doubt you _really_ have to know everything in this course to know how to do that, but I'd want this as background personally for it.
You also don’t have to go straight into LLMs. You can learn most of the training mechanics via classic deep learning. It isn’t much different with LLMs except the training data and losses are specific and the models are much larger.
He recommends reading offline and code-free first (although chapter-by-chapter).
https://github.com/rasbt/LLMs-from-scratch/blob/cdbd33e6d57a...
...I wanna mention this book as well, although it doesn't fit the criteria: https://www.thelittlelearner.com[
But there is so, so much interesting work and research to do at a much smaller scale. I work on drug discovery models, and none of my work requires data or infrastructure that are not generally accessible to the public (it's nice to have the computing resources of my institution but there are other ways to access a GPU).
So if you are really interested in this stuff, I would suggest looking at the endless supply of interesting problems in domains that are not dominated by huge frontier labs.
You can google stuff to learn without the need to build a search engine too.
I have however learned a lot about math! And other related stuff. I'd argue if you extend your low level skills in math and code when the need for an AI comes up, simple weather / sales forecast, who knows, you'll have an easier time building one.
Don't try to pretrain from scratch. Take an already-trained Qwen and give it new powers.
That's what Karpathy's videos are for. You end up with a GPT-2.0 equivalent if you follow them to the end.
Opportunity knocks, but you have to build the door first.
For the rest of us, the sense of discovery that we get from training and running toy models is a big part of the reward. This stuff is not an exact science, at least not yet, so time spent building intuition with small-scale models is an incredibly important part of the learning process. Not pointless at all.
Compared to software coding, you build websites, apps etc. The barrier to entry is much higher.
I am trying to pivot into machine learning myself, so far my understanding is try to find a software engineer role where you deal with data, model infra, data pipeline, etc. Then within the same company, try to do more modeling work and build intuition and resume credentials in this area. Someone correct me if I am wrong.
The "baby steps" are not there just for intelectual satisfaction, the baby steps give you the building blocks to understand things that become progressively more complex. The baby steps are tools, that once you get familiar with them, you'll find new and new uses everywhere.
A good practical illustration of this: It is pretty hard to figure out how differential equations can be useful if you don't understand what they are. And yet, I bet that on january of 2020, there was at least one math teacher deep down in the amazonian jungle playing with a compartimental model based on a system of ordinary differential equations, to figure out the diverse scenarios this new epidemic could play out if that scary new virus escaped China and those few cruise ships.
Another example: take the concept of backpropagation: the underlying idea behind it is the chain rule from calculus, used to work backward through a computation and calculate how each parameter affects the error. Now, it is way easier to understand it in a small CNN that you are training to recognize handwritten digits than trying to understand it in the context of a full transformer model. A digit classifier is something that is way easier and affordable for you to fiddle with stuff and develop and intuition on loss functions, gradients, backpropagation and overfitting.