作者:Benedict Neo 2024年2月9日翻译:陈之炎、潘玏妤校对:潘玏妤本文约8000字,建议阅读15分钟本文是为黑客和程序员学习人工智能提供的免费课程。如果觉得本文有帮助,请在推特和领英上关注我!我每周都会和朋友 ...
本文约8000字,建议阅读15分钟 本文是为黑客和程序员学习人工智能提供的免费课程。 如果觉得本文有帮助,请在推特和领英上关注我!我每周都会和朋友们分享有趣的链接,也可以及时订阅。 想学习人工智能吗?却不知道如何或从哪里开始? 早在2020年,我就在互联网上写下了前20大免费数据科学、ML和AI MOOCs(https://towardsdatascience.com/top-20-free-data-science-ml-and-ai-moocs-on-the-internet-4036bd0aac12),时至今日,很多课程已今非昔比。 为了摆脱“教程陷阱”,学习到真东西,必须动手实践,从头编写算法,复现论文,并通过真实项目用人工智能来解决实际问题。 本文设计了一套遵循该理念的免费课程,我自己也正在学习其中的一些课程,所以如果你想一起学习的话,请联系推特或领英! 另外,如果你认为课程内容不完整的话,敬请留言! 首先,需要做一些关于课程的笔记和一些学习建议。 用excalidraw绘图 自上而下的方法本课程遵循一种自上而下的方法——首先是代码,然后是理论。 我倾向于根据实际需要进行学习。所以,如果需要弄清楚某个东西、解决问题或制作原型,我将广泛地搜集所需信息,深入研究并理解它,然后采取行动。 例如,我的目标是成为一名理解LLM的人工智能工程师(https://www.latent.space/p/ai-engineer),这需要拥有从零开始编写Transformer以及在GPU上微调LLM等技能。但由于存在知识缺漏,我目前无法做到这些。因此,我的目标是填补这些空白。 这个课程主要关注自然语言处理(Natural Language Processing,NLP),如果寻求学习其他人工智能专业,如计算机视觉或强化学习,请在文后评论或在推特或领英上DM我,我会给你一些建议。 在把一堆链接交给你之前,我希望在开始学习之前能有人告诉我两件重要的事情。 公开学习有很多东西要学习,或许永远也学不完。尤其是人工智能,每周都有新的革命性论文和想法发布。 容易犯的最大错误是在私密状态下学习。这样无法为自己创造任何机会。除了能说你完成了一些事情之外,没有什么可以展示的。更重要的是,如何利用这些信息,将其转化为知识并与公众分享,对这些信息有什么新的想法和解决方案。 所以,应该公开学习(https://www.swyx.io/learn-in-public)。 这意味着要养成创造的习惯,例如:
再来说说推特。 使用推特如果你关注了对的人,并能够正确地使用它,推特是当今任何人都能参与的价值最高的社交平台。 要关注谁?看看Suhail的人工智能列表(https://twitter.com/i/lists/1539497752140206080?s=20)。 如何使用推特?请阅读尼尔的《如何成功发布推特》(https://near.blog/how-to-twitter-successfully/?curius=1935)。 在推特上发送私信给别人时,要真诚、简洁,并提出具体的要求。Sriram Krishnan写的《如何写冷电子邮件》指南(https://sriramk.com/coldemail/)也适用于私信。 如何发推文?请阅读Instructor创始人Jason(https://twitter.com/jxnlco)写的《推文剖析》(https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=77&createType=0&token=837735478&lang=zh_CN×tamp=1712153003025#hook)一文。他在几个月内从0关注者长大到14k粉丝。 如果你正在读本文,请在推特上关注我! 给我发私信,告诉我你在做什么!我愿意和你合作一些很酷的项目。 现在让我们开始吧。 内容列表
∘ 5.1观看神经网络: 从零基础到高手 ∘ 5.2免费 LLM 训练营 ∘ 5.3使用LLMs构建应用 ∘ 5.4参加黑客松比赛 ∘ 5.5阅读论文 ∘ 5.6从头开始写 Transformers(https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=77&createType=0&token=837735478&lang=zh_CN×tamp=1712153003025#4df0) ∘ 5.7一些优质博客 ∘ 5.8观看 Umar Jamil的视频 ∘5.9学习如何运行开源模型 ∘5.10 提示工程 ∘ 5.11 微调LLM ∘ 5.12 RAG
1 数学DALL·E 机器学习依赖于三大数学支柱:线性代数、微积分、概率和统计学。它们各自发挥着独特的作用,使算法能够有效地运行。
从程序员的角度来看,这是一个关于机器学习数学的优秀视频系列:由Weight&Biases团队出品的《机器学习数学》(https://www.youtube.com/playlist?list=PLD80i8An1OEGZ2tYimemzwC3xqkU0jKUg))(代码)(https://github.com/wandb/edu/tree/main/math-for-ml) 如果想要学习从代码入手的线性代数方法,可以看看由fast.ai团队制作的《计算线性代数》(https://www.fast.ai/posts/2017-07-17-num-lin-alg.html)(视频,代码)(https://www.youtube.com/playlist?list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY) 在学习过程中,可以阅读《应用机器学习的线性代数简介与Python》(https://pabloinsente.github.io/intro-linear-algebra)。 如果想学习一些更传统的东西,可以观看伦敦帝国理工学院的讲座——《线性代数》(https://www.youtube.com/playlist?list=PLiiljHvN6z1_o1ztXTKWPrShrMrBLo5P3)和《多元微积分》( https://www.youtube.com/playlist?list=PLiiljHvN6z193BBzS0Ln8NnqQmzimTW23)。 还可以观看3Blue1Brown的《线性代数的本质》和《微积分的本质》 《线性代数的本质》 https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab 《微积分的本质》 https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr 如果你想要学习统计学,可以观看StatQuest的《统计学基础》(https://www.youtube.com/playlist?list=PLblh5JKOoLUK0FLuzwntyYI10UQFUhsY9) 补充 书籍:《机器学习数学》(https://mml-book.github.io/book/mml-book.pdf) 论文:《深度学习所需的矩阵微积分》(https://arxiv.org/pdf/1802.01528.pdf) 2 工具DALL·E 2.1 Python面向初学者:《实用Python编程》 https://dabeaz-course.github.io/practical-python/Notes/Contents.html 有一定Python基础:《高级Python进阶》 https://github.com/dabeaz-course/python-mastery?tab=readme-ov-file 以上课程均由Python Cookbook作者David Beazley制作,制作精良。 之后,可以观看James Powell的一些演讲,以及阅读《Python设计模式》一书。 James Powell的一些演讲https://www.youtube.com/playlist?list=PLdQruVCKu10lhVEnAQqRncVc8EIQN-x-X《Python设计模式》https://python-patterns.guide/补充书籍:《Fluent Python》第二版(代码) https://www.oreilly.com/library/view/fluent-python-2nd/9781492056348/ 代码: https://github.com/fluentpython/example-code-2es 播客:《Real Python》和《Talk Python》 《Real Python》https://realpython.com/podcasts/rpp/ 《Talk Python》 https://talkpython.fm/episodes/all 2.2 PyTorch观看Aladdin Persson的《PyTorch教程》 Aladdin Persson https://www.youtube.com/c/AladdinPersson 《PyTorch教程》 https://www.youtube.com/playlist?list=PLhhyoLH6IjfxeoooqP9rhU3HJIAVAJ3Vz PyTorch官网同样提供了丰富的学习资源:
完成一些有趣的谜题来测试你的 PyTorch 知识: lsrush/Tensor-Puzzles: 通过解决谜题提升你的 PyTorch 技能 (https://github.com/srush/Tensor-Puzzles) 补充书籍:《深度学习PyTorch编程》 (https://www.oreilly.com/library/view/programming-pytorch-for/9781492045342/) 3 机器学习 DALL·E 继续阅读《100页机器学习书》。 https://themlbook.com/ 3.1 从零开始动手实践在阅读理论知识的同时,尝试从头开始实现算法。 参考以下代码库:
如果想要接受挑战,可以跟随以下课程尝试从零开始搭建PyTorch 深度学习框架: lMiniTorch: 机器学习工程 DIY 课程 (视频, 代码) MiniTorch: 机器学习工程 DIY 课程 https://minitorch.github.io/ 视频 https://www.youtube.com/playlist?list=PLO45-80-XKkQyROXXpn4PfjF1J2tH46w8 代码 https://github.com/minitorch 3.2 竞赛将所学的知识运用到竞赛中。 参加bitgrit和Kaggle等平台上的ML比赛;你可以阅读这篇文章获取更多信息。 bitgrit https://bitgrit.net/competition/ Kaggle https://www.kaggle.com/ 这篇文章 https://towardsdatascience.com/12-data-science-ai-competitions-to-advance-your-skills-in-2021-32e3fcb95d8c 研究过去获奖的解决方案:学习并分析他们是如何解决问题的。 https://farid.one/kaggle-solutions 3.3 做项目阅读Vicki Boykis的《将机器学习投入生产》。 https://vickiboykis.com/2020/06/09/getting-machine-learning-to-production/ Vicki Boykis还写了一篇关于构建图书语义搜索引擎Viberary的心得体会,可以作为参考。 https://vickiboykis.com/2024/01/05/retro-on-viberary/ 获取一个数据集并搭建模型(即,使用earthaccess获取NASA的地理数据)。 https://www.earthdata.nasa.gov/learn/blog/earthaccess 创建一个带有streamlit的UI,并在推特上分享它。 https://streamlit.io/ 3.4 部署项目将模型部署到生产环境并追踪实验结果,学习如何监控模型,亲身体验数据和模型漂移。 以下是一些优质资源:
3.5 补充PyTorch 和Scikit-Learn 机器学习(代码) PyTorch 和Scikit-Learn 机器学习 https://www.oreilly.com/library/view/machine-learning-with/9781801819312/ 代码 https://github.com/rasbt/machine-learning-book [1811.12808]机器学习模型评估, 模型选择和算法选择 https://arxiv.org/abs/1811.12808 机器学习面试攻略 · MLIB https://huyenchip.com/ml-interviews-book/ 4 深度学习如果想要自上而下学习,从fast.ai开始。 4.1 Fast.ailfast.ai (part1, part2) + W&B 学习小组 part1 https://course.fast.ai/ part2 https://course.fast.ai/Lessons/part2.html W&B 学习小组 https://wandb.ai/wandb_fc/events/reports/W-B-Study-Group-Lectures-fast-ai-w-Hugging-Face--Vmlldzo4NDUzNDU?galleryTag=events 喜欢 fast.ai?看看《全栈深度学习》课程。 https://fullstackdeeplearning.com/course/2022 如果想要一个更全面的经典课程,可以考虑François Fleuret的《UNIGE 14x050-深度学习》课程。 François Fleuret https://fleuret.org/francois/ 《UNIGE 14x050-深度学习》 https://fleuret.org/dlc/ 如果需要在学习过程中需要用到理论,这些都是很棒的书: 《深入深度学习》(附 PyTorch, NumPy/MXNet, JAX, and TensorFlow示例源代码) https://d2l.ai/index.html Ian Goodfellow、Yoshua Bengio和Aaron Courville的《深度学习》 https://www.deeplearningbook.org/ 《神经网络和深度学习》 http://neuralnetworksanddeeplearning.com/ 《理解深度学习》(附笔记) https://udlbook.github.io/udlbook/ https://github.com/udlbook/udlbook/tree/main/Notebooks 与其刷社交媒体,不如在手机上阅读《深度学习小书》。 https://fleuret.org/francois/lbdl.html 利用神经网络训练的间隙,可以看看这些资源: 《训练神经网络的秘诀》 https://karpathy.github.io/2019/04/25/recipe 《深度神经网络:33年之前和33 年之后》 https://karpathy.github.io/2022/03/14/lecun1989/ 4.2 参与更多的竞赛PlantTraits2024 — FGVC11 | Kaggle (计算机视觉) https://www.kaggle.com/competitions/planttraits2024 4.3 复现论文查看labml.ai注释的PyTorch论文复现。 https://nn.labml.ai/index.html Papers with Code是个很棒的论文资源网站,例如他们网站上这篇关于BERT的解释文章。 https://paperswithcode.com/method/bert 下面是一些深度学习的专业资源。 4.4计算机视觉很多人推荐《CS231n:计算机视觉的深度学习》。这门课程很有挑战性,但值得一试。 http://cs231n.stanford.edu/ 4.5强化学习对于强化学习领域,以下两个资源非常棒: OpenAI 的《旋转式深度强化学习》 https://spinningup.openai.com/en/latest/ Hugging Face的《深度强化学习教程》 https://huggingface.co/learn/deep-rl-course/unit0/introduction 4.6 NLP斯坦福课程的另一门精彩课程:《CS 224N |深度学习自然语言处理》 https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1234/ 学习 《Hugging Face: Hugging Face NLP教程》 https://huggingface.co/learn/nlp-course/chapter1/1 看看Super Duper NLP Repo https://notebooks.quantumstat.com/?trk=public_post-text 优质文章和解析 《BERT研究 - 第1集 - 核心概念和资源》- Chris McCormick https://mccormickml.com/2019/11/11/bert-research-ep-1-key-concepts-and-sources 《图解Word2vec》- Jay Alammar https://jalammar.github.io/illustrated-word2vec 《图解 BERT、ELMo 和其他NLP模型 (自然语言处理如何破解迁移学习)》 https://jalammar.github.io/illustrated-bert 《理解 LSTM 网络》 — colah的博客 https://colah.github.io/posts/2015-08-Understanding-LSTMs 《从零开始用PyTorch实现RNN》- Jake Tae https://jaketae.github.io/study/pytorch-rnn/ 补充 《Transformers 自然语言处理》一书 https://transformersbook.com/ 5 大型语言模型首先,观看Andrej的《一小时大型语言模型介绍》。 https://www.youtube.com/watch?v=zjkBMFhNj_g 然后是Alexander Rush(康奈尔科技校区)的《用五个公式理解大型语言模型》 Alexander Rush https://tech.cornell.edu/people/alexander-rush/ 《用五个公式理解大型语言模型》 https://www.youtube.com/watch?v=KCXDr-UOb9A 5.1 观看《神经网络:从零基础到高手》它以解释和编写反向传播算法为开始,以从头开始编写GPT为结尾。 《神经网络:从零基础到高手》,作者:AndrejKarpathy https://karpathy.ai/zero-to-hero.html 他刚刚发布了一个新的视频→《构建GPT分词器》 https://www.youtube.com/watch?v=zduSFxRajkE 你也可以看看Jay Mody的《用60行NumPy代码实现GPT》 |