2024年学习人工智能的路线图
一份免费的课程计划,供程序员学习人工智能使用

使用excalidraw制作
所以,你想学习人工智能?但你不知道如何开始或从哪里开始?
我在2020年写了一篇互联网上前20个免费的数据科学、机器学习和人工智能MOOC课程。但我意识到,参加很多课程并不是正确的方法。
为了摆脱教程地狱并真正学到东西,你必须动手实践,从零开始编写算法,实现论文,并使用人工智能进行有趣的项目来解决问题。
本文试图制定一份遵循这一理念的免费课程计划。
首先,关于课程计划的一些说明和学习建议。
自上而下的方法
这个课程计划采用自上而下的方法——先写代码,后学理论。
我喜欢根据需求学习。所以,如果我需要解决一个问题,或者需要制作一个原型,我会广泛地寻找所需的信息,学习、理解并付诸行动。
例如,我希望成为一个人工智能工程师,在理解LLMs的基本水平上,这涉及到具备从头编写transformers的技能,以及在GPU上微调LLMs等。由于我的知识存在空白,我现在还无法做到这一点,我希望填补这些空白。
这个课程计划也侧重于自然语言处理;如果你想学习其他人工智能专业,比如计算机视觉或强化学习,
在我给你提供一堆链接之前,我希望在我开始学习任何东西之前,有人告诉我两件重要的事情。
在公开场合学习
有很多东西需要学习,而且你永远不会学完,特别是在人工智能领域,每周都会发布新的革命性论文和想法。
你最大的错误就是在私下学习。如果你这样做,你就不会为自己创造任何机会。除了能说你完成了某件事之外,你没有任何可以展示的东西。更重要的是,你如何将信息转化为知识,与公众分享,并从这些信息中产生新的想法和解决方案。
所以,你应该在公开场合学习。
这意味着要有创造的习惯。
这可以包括:
- 写博客和教程
- 参加黑客马拉松并与他人合作
- 在Discord社区提问和回答问题
- 从事你热衷的副业项目
- 推文分享你发现的有趣事物
说到Twitter,
使用Twitter
如果你关注正确的人并正确使用它,Twitter是当今任何人都可以使用的最有价值的社交平台。
关注谁?看看Suhail的AI列表。
如何使用Twitter?阅读Near的如何成功使用Twitter。
在Twitter上给人发私信。真诚、简短,并提出明确的要求。Sriram Krishnan的这篇关于如何写一封冷邮件的指南也适用于私信。
如何发推文?阅读推文的解剖,由Jason(Instructor的创作者)撰写,他在几个月内从0到14k的关注者增长。
现在让我们开始吧。
目录
- 数学
- 工具
∘ Python
∘ PyTorch - 机器学习
∘ 从零开始编写
∘ 参加比赛
∘ 做副业项目
∘ 部署它们
∘ 补充 - 深度学习
∘ Fast.ai
∘ 参加更多比赛
∘ 实现论文
∘ 计算机视觉
∘ 自然语言处理 - 大型语言模型
∘ 观看神经网络:从零到英雄
∘ 免费的LLM训练营
∘ 使用LLMs构建项目
∘ 参加黑客马拉松
∘ 阅读论文
∘ 从零开始编写Transformers
∘ 一些好的博客
∘ 观看Umar Jamil
∘ 学习如何运行开源模型
∘ Prompt工程
∘ 微调LLMs
∘ RAG - 如何保持更新
- 其他你可能会发现有用的课程计划/清单
数学
DALL·E
机器学习在数学的三个支柱上严重依赖:线性代数、微积分、概率和统计。每个支柱在使算法有效地运行方面发挥着独特的作用。
- 线性代数: 数据表示和处理的数学工具包,其中矩阵和向量构成了算法解释和处理信息的语言
- 微积分: 机器学习中的优化引擎,通过理解梯度和变化率,使算法能够学习和改进
- 概率和统计: 在不确定性下进行决策的基础,允许算法通过随机性和变异性模型预测结果并从数据中学习
这是一个很好的关于机器学习数学的系列视频:Math for Machine Learning by Weights & Biases(代码)
如果你想以代码为先导的方式学习线性代数,可以参考Computational Linear Algebra(视频,代码),由fast.ai的创始人编写。
同时阅读Introduction to Linear Algebra for Applied Machine Learning with Python。
如果你想要更传统的学习方式,可以看看伦敦帝国学院的讲座——线性代数和多元微积分。
观看统计学基础,由StatQuest提供的统计学视频。
补充材料
- 书籍:数学与机器学习
- 论文:你需要的深度学习矩阵微积分
工具
DALL·E
Python
初学者从这里开始:实用的Python编程。
如果你已经熟悉Python,可以学习高级Python掌握。
这两门课程都是由David Beazley主讲的,他是《Python Cookbook》的作者。
之后,观看一些James Powell的演讲。
阅读Python设计模式。
补充材料
- 书籍:流畅的Python,第2版(代码)
- 播客:Real Python & Talk Python
PyTorch
视频
官方
实践
补充材料
机器学习
DALL·E
阅读100页机器学习书籍。
从零开始编写
在阅读过程中,从零开始编写算法。
查看以下存储库:
如果你想挑战自己,可以按照这门课程从零开始编写PyTorch。
参加比赛
将学到的知识应用于比赛中。
做副业项目
阅读Vicki Boykis的文章,了解如何将机器学习部署到生产环境中。
她还写了关于她构建的Viberary的语义搜索引擎的文章。
获取一个数据集并构建一个模型(例如,使用earthaccess获取NASA地球数据)。
使用streamlit创建一个用户界面,并在Twitter上分享。
部署模型
将模型投入生产。跟踪实验。学习如何监控模型。亲身体验数据和模型的漂移。
以下是一些优秀的资源
- Made With ML
- DataTalksClub/mlops-zoomcamp: 免费的MLOps课程
- chiphuyen/machine-learning-systems-design
- Evidently AI — ML系统设计:300个案例研究
- stas00/ml-engineering: 机器学习工程在线书籍
补充材料
深度学习
如果你想从上到下学习,可以从fast.ai开始。
Fast.ai
- fast.ai(part1,part2)+ W&B Study Group
喜欢fast.ai吗?看看全栈深度学习。
如果你想要一门更全面、传统的课程,可以参考François Fleuret的UNIGE 14x050 — 深度学习。
如果你需要在某个时候深入理论,这些是很好的书籍。
- 深度学习导论(有PyTorch、NumPy/MXNet、JAX和TensorFlow的代码示例)
- 深度学习,作者:Ian Goodfellow、Yoshua Bengio和Aaron Courville
- 神经网络与深度学习
- 理解深度学习(附有实践笔记本)
在你的神经网络收敛时阅读以下内容。
参加更多比赛
实现论文
Papers with Code是一个很好的资源;在他们的网站上,可以找到BERT的解释。
以下是深度学习专业化的一些资源
计算机视觉
很多人推荐CS231n:计算机视觉的深度学习。如果你能坚持下去,它是具有挑战性但值得的。
自然语言处理(NLP)
另一个很棒的斯坦福课程,CS 224N | 自然语言处理与深度学习
学习Hugging Face:Hugging Face NLP课程
好的文章和解析
- BERT研究 — 第1集 — 关键概念和来源 · Chris McCormick
- 图解Word2vec — Jay Alammar
- 图解BERT、ELMo等(NLP如何破解迁移学习)
- 理解LSTM网络 — colah’s博客
- 从头开始的PyTorch RNN — Jake Tae
补充材料
大型语言模型
首先观看【1小时演讲】大型语言模型简介,由Andrej主讲。
然后观看Cornell Tech的Alexander Rush的五个公式中的大型语言模型。
观看神经网络:从零到英雄
它从零开始解释和编写反向传播,最后从零开始编写GPT。
你也可以在此期间查看Jay Mody的用60行NumPy编写的GPT。
免费的LLM训练营
由Full Stack Deep Learning免费发布的LLM训练营。
它教授提示工程、LLMOps、LLM的用户体验以及如何在一个小时内启动LLM应用程序。
现在你已经渴望在这个训练营之后开始构建,
使用LLM构建
想要使用LLM构建应用程序吗?
以及Eugene Yan的基于LLM的系统和产品模式
参考OpenAI Cookbook获取示例。
使用Vercel AI模板开始。
参加黑客马拉松
lablab.ai每周都有新的AI黑客马拉松。如果你想组队,请告诉我!
如果你想深入理论并了解一切是如何工作的:
阅读论文
Sebastian Raschka的一篇很棒的文章理解大型语言模型,其中列出了一些你应该阅读的论文。
关注他的Substack Ahead of AI。
从零开始编写Transformer。
阅读Lil’Log的Transformer Family Version 2.0以获取概述。
选择适合你的格式,并从头开始实现它。
论文
- Attention Is All You Need
- The Illustrated Transformer
- The Annotated Transformer by Harvard
- Thinking like Transformer
博客
- Creating a Transformer From Scratch — Part One: The Attention Mechanism (part 2) (code)
- Understanding and Coding the Self-Attention Mechanism of Large Language Models From Scratch by Sebastian Raschka, PhD
- Transformers from scratch
视频
- Coding a Transformer from scratch on PyTorch, with full explanation, training and inference
- NLP: Implementing BERT and Transformers from Scratch
现在你可以从零开始编写Transformer。但还有更多内容。
观看这些Stanford CS25 — Transformers United视频。
一些好的博客
- Gradient Descent into Madness — Building an LLM from scratch
- The Illustrated Transformer — Jay Alammar
- Some Intuition on Attention and the Transformer by Eugene Yan
- Speeding up the GPT — KV cache | Becoming The Unbeatable
- Beyond Self-Attention: How a Small Language Model Predicts the Next Token
- Llama from scratch (or how to implement a paper without crying) | Brian Kitano
观看Umar Jamil
他有深入解释论文的精彩视频。他还展示了代码。
- LoRA: Low-Rank Adaptation of Large Language Models — Explained visually + PyTorch code from scratch
- Mistral / Mixtral Explained: Sliding Window Attention, Sparse Mixture of Experts, Rolling Buffer
- Attention is all you need (Transformer) — Model explanation (including math), Inference and Training
- LLaMA explained: KV-Cache, Rotary Positional Embedding, RMS Norm, Grouped Query Attention, SwiGLU
- Retrieval Augmented Generation (RAG) Explained: Embedding, Sentence BERT, Vector Database (HNSW)
还有一些与LLM相关的链接,这里列举的并不详尽。查看LLM课程大纲以获取更全面的LLM课程大纲。
学习如何运行开源模型。
使用ollama: Get up and running with Llama 2, Mistral, and other large language models locally
他们最近发布了Python & JavaScript Libraries
提示工程
由Ise Fulford(OpenAI)和Andrew Ng编写的ChatGPT Prompt Engineering for Developers
DeepLearning.ai还有其他短期课程,你可以免费参加。
微调LLM
阅读Hugging Face fine-tuning guide。
一本好的指南书:Fine-Tuning — The GenAI Guidebook
查看axolotl。
这是一篇好文章:Fine-tune a Mistral-7b model with Direct Preference Optimization | by Maxime Labonne
RAG
Anyscale的一篇很棒的文章:Building RAG-based LLM Applications for Production
Aman Chadha撰写的Retrieval Augmented Generation的综合概述
如何保持更新
结合新闻通讯+播客+Twitter
对于论文,你可以关注AK (@_akhaliq)
对于播客,我发现最好的是Swyx和Alessio的Latent Space
加入他们的Discord。
他们还有这个新闻通讯Smol Talk,总结了所有重要的AI Discord。
我喜欢的其他新闻通讯有:
- The Batch | DeepLearning.AI | AI News & Insights
- Deep Learning Weekly
- Interconnects | Nathan Lambert
- AI Tidbits | Sahar Mor
更多内容请参阅这篇文章。
其他可能有用的课程/列表
我的列表并不全面,但如果你仍然想找到更多,这里有一些。
- openai/syllabus.md
- AI Canon | Andreessen Horowitz
- AI Learning Curation — LLM Utils
- Threshold to the AI Multiverse | Open DeepLearning
- louisfb01/start-llms: A complete guide to start and improve your LLM skills in 2023
我花了足够的时间来写和组织这些内容,现在是学习和建设的时候了。
希望这些对你的AI之旅有所帮助!