I do not consider myself an expert in generative AI, but I now know enough to build full-stack web applications on top of generative AI models, evaluate the quality of those applications, and decide whether new models or frameworks will be useful. These are the resources that I personally used for getting up to speed with generative AI.
AI foundation
Let's start first with the long-form content: books and videos that gave me a more solid foundation.
![]() AI Engineering By Chip Huyen | This book is a fantastic high-level overview of the AI Engineering industry from an experienced ML researcher. I recommend that everybody read this book at some point in your learning journey. Despite Chip's background in ML, the book is very accessible - no ML background is needed, though a bit of programming with LLMs would be a good warm-up for the book. I loved how Chip included both research and industry insights, and her focus on the need for evaluation in the later chapters. Please, read this book! |
![]() Build a Large Language Model |
This book is a deep dive into building LLMs from scratch using Python and Pytorch, and includes a GitHub repository with runnable code. I found it helpful to see that LLMs are all about matrix manipulation, and to wrap my head around how the different layers in the LLM architecture map to matrices. I recommend it to Python developers who want to understand concepts like the transformer architecture, or even just common LLM parameters like temperature and top p. If you're new to Pytorch, this book thankfully includes an intro in the appendix, but I also liked the Deep Learning with PyTorch book. |
![]() Zero to Hero |
This video series builds neural networks from scratch, entirely in Jupyter notebooks. Andrej is a fantastic teacher, and has a great way of explaining complex topics. Admittedly, I have not watched every video from start to finish, but every time I do watch a video from Andrej, I learn so much. Andrej also gives great talks at conferences, like his recent one about how software is changing due to LLMs. |
![]() By James Briggs |
This video series goes into technical details of vector search and database technologies. I watched several of the videos when I was trying to understand the different indexes (like HNSW/IVF), and I liked the explanations from James more than any others I found. James also actually tried out the different indexes and parameters, and shared performance findings, so I came away with both conceptual and practical knowledge. |
AI news
Now that I have a foundation, how do I find out what's happening in the generative AI space?
- Company chats: We have one at Microsoft specifically around Generative AI, and another around AI-assisted Coding (with GitHub Copilot, in our case). We share external news and our own experiences in those channel. If you don't have such a channel, start one!
- Newsletters from AI companies like Langchain and Pydantic AI. Even if I'm not actively using a framework, seeing what they're working on is a good indication of what's happening in the space.
- HackerNews
Plus a few folks in particular...
- Simon Willison: Whenever a new model comes out, Simon finds time to experiment with the model and publish his findings on his blog. Simon is also the creator of the popular llm CLI (which I played with recently), and is quick to integrate new model support into the CLI. Check his about page for the many ways you can subscribe to his posts.
- Gergeley Orsosz: Gergely sends a newsletter with deep dives into industry topics, and many of the topics this year have been around generative AI and the use of AI for software development. I haven't yet paid for the full posts, but I am often tempted to! Fortunately, even his free content is insightful.
Practice, practice, practice
How do I practice what I've learnt? With projects, of course, the best form of learning! I have learnt the most from maintaining our RAG-on-Azure solution as so many developers have shared their RAG trials and tribulations in the issue tracker. However, I've also learnt from the many other projects I've put on my GitHub, like trying out the myriad Python AI frameworks, and building agents to automate boring every-day tasks.
I recommend starting with low-risk projects that are personally useful for you, and where you have domain expertise, so that you can reason about whether your LLM-based solution is truly giving you high quality output. LLMs can be very helpful, but they can also be very inaccurate: the trick is to find the scenarios where they are both helpful and accurate.
I don't always have time to create a whole new project using a new AI technology, but I at least try to spend an hour trying things out. I ran an internal "AI Study Hour" with colleagues for several months, where we would just poke around documentation and get the basic examples working. Lately I've been doing similar study hours on my YouTube channel, since I figure other people may want to study along with me. 😊
Sharing what I've learnt
When I learn new technologies, my goal is then to share what I learn with others - that's why I like being a developer advocate, as it gives me an excuse to continually learn and share. I recently put on a Python + AI video series with my colleague (who gave it in Spanish), which is designed to be a great introductory series for Python developers who are new to generative AI. You can find my other talks on my website. Let me know what series I should put on next. There's always more to learn!
No comments:
Post a Comment