我如何在两周内全面学习LLMs?【实习求职必读】

旅行   2024-10-21 06:00   北京  
从入门到高级的逐日 LLM 学习路线图,外加一些学习技巧。

转自:Hesam Sheikh

理解 LLM(大规模语言模型)的工作原理已经成为机器学习中必备的技能。无论你是想为应用选择合适的模型,还是只是想了解这一领域的基础知识,亦或是跟随有关 LLM 的讨论,了解它们如何“理解”、创造 或者如何通向通用人工智能(AGI),第一步都是理解它们是什么

在这篇文章中,我将分享我的学习经历,以及我在大约 14 天内学习 LLM 基础知识时找到的最有用的资源,帮助你在相对较短的时间内掌握几乎所有的核心内容:

  • 为什么我开始这段旅程
  • 我的学习材料
    • 1. 从零构建一个 LLM
    • 2. LLM 的幻觉问题
    • 3. LLM 的前沿技术:超越注意力机制
  • 我的学习资源
  • 开始学习的前提条件
    • 数学
    • 编程与框架
    • 深度学习基础
  • 一些额外的学习建议 ✨
    • 享受学习过程
    • 不要盲目跟随我的路线图
    • 不要追求学完所有内容
  • 总结

为什么我开始这段旅程

我对深入研究概念有着近乎痴迷的热情,即使这些概念我已经掌握。我能阅读并理解有关 LLM 的研究论文,也能够构建智能体或微调模型,但这对我来说仍然不够。

我想知道大规模语言模型在数学上和直觉上的工作原理,以及它们为何会表现出某些特定行为。

由于我之前对该领域已有所了解,所以我很清楚自己的知识盲区。正因为我有机器学习背景,才能在两周内完成这些学习,否则这可能需要一个多月。

我的学习材料

我不仅想学习 LLM,还想学习许多其他感兴趣的话题(例如量子机器学习、Jax 等)。因此,我创建了 ml-retreat **GitHub 仓库**[1],用来记录和整理我的学习过程。这个仓库的想法是,有时我们需要从日常工作中抽身,反思我们认为已经掌握的知识,并填补其中的空白。

ml-retreat 仓库截图

这个仓库获得的反馈比我预期的要好得多。写这篇文章时,该仓库已经获得了 ⭐ 330 个收藏,并且还在不断增加。我注意到,很多人也在寻找一个包含所有优质资源的全面学习路线图

我使用的所有学习材料都是免费的,你不需要花钱。

我主要通过以下三步来学习 LLM:

1. 从零构建一个 LLM[2]

这一步涵盖了语言模型的基础知识。包括 token 和位置嵌入、自注意力机制、Transformer 架构、《Attention is All You Need》论文的精髓以及微调的基础知识。虽然我使用了许多资源来学习每个主题,但最关键的资源是 Sebastian Raschka 的 _从零构建大规模语言模型_[3] 这本书(可以在线免费阅读)。这本书详细介绍了每个主题,使之尽可能易于理解。

我关于 LLM 基础知识的学习笔记。(来源[4])

挑战:在我看来,自注意力机制是学习的难点——不是理解它是什么,而是它的工作原理。自注意力如何将每个 token 与其他 token 的上下文进行映射?查询(Q)键(K) 和 值(V) 代表什么,为什么它们如此重要?我建议大家在这部分内容上花足够的时间,因为这是 LLM 的核心机制。

2. LLM 的幻觉问题[5]

学习的第二部分,我希望了解什么是幻觉现象,以及为什么 LLM 会产生幻觉。这是我个人一直困惑的问题,但也让我理解了语言模型的一些方面。

我学到了位置偏差,即 LLM 倾向于优先处理较近的 token,而忘记较远的 token。我还学到了暴露偏差,它意味着在推理阶段,如果预测错误的 token,接下来的生成过程可能会像滚雪球一样逐渐偏离。我还了解到,数据训练 和 推理 如何分别导致幻觉问题的出现。

我关于 LLM 幻觉现象的学习笔记。(来源[6])

幻觉问题是研究人员以及构建 LLM 应用的人面临的一个重大挑战。我强烈建议花时间研究它发生的原因以及一些缓解方法。

3\. LLM 的前沿技术:超越注意力机制[7]

前两个阶段展示了 LLM 的工作原理。然而,还有一些技术虽然不算基础,但在构建 LLM 时已经成为主流。因此,我研究了以下内容:

  • 暂停 token:让 LLM 有更多时间“思考”。
  • 无限注意力机制(Infini-attention):通过一种记忆以前 token 的方式,让 LLM 拥有非常大的上下文窗口(如 Gemini 的 100 万上下文窗口)。
  • 旋转位置嵌入(RoPE):一种用于 Llama 和许多其他 LLM 的相对位置嵌入方法,允许模型关注序列中较远的 token。
  • KV 缓存:通过消除生成先前 token 时重复的计算来加速生成过程。
  • 专家混合模型(MoE):将多个较小的 LLM 结合,而不是使用一个大模型。这一技术在语言模型中由 Mistral 推广。其 7B 大小的 8 个模型在某些任务上能超越 Llama 2 70B,确实非常令人印象深刻!

我关于 LLM 前沿技术的学习笔记。(来源[8])

为了复习这些内容,我研究了 Meta 的 Llama 架构和代码,它涵盖了我提到的许多主题。相关资源同样在我的仓库中。

我的学习资源

我没有只使用单一资源来学习这些主题。

对于 LLM 的基础知识,我使用了 _从零构建大规模语言模型_[9]

我还阅读了许多论文。虽然读论文看起来很困难,但它们确实能提供很多价值。尤其是那些首次提出某个技术的论文(如最初的 Transformer 论文),以及总结多篇论文并给出精华的综述论文。

Andrej Karpathy 的视频播放列表。(来源[10])

YouTube 视频也非常有帮助。我在学习许多材料时,首先会看 YouTube 视频,让自己快速熟悉相关内容,获得一个大致的框架。我强烈推荐观看 Andrej Karpathy 的播放列表,里面主要是关于语言建模和 LLM 的视频。

有什么比让一位天才从零到精通地给你讲解 LLM 更好的呢?

开始学习的前提条件

学习 LLM 并不算 复杂,但它也并非 完全适合初学者。对机器学习及相关领域的基础了解会让学习过程更加顺畅。

数学

  • 线性代数:向量与矩阵、矩阵乘法
  • 概率与统计:概率基础、随机变量和分布、期望和方差、最大似然估计(MLE)
  • 微积分:微分与积分(尤其是反向传播部分)、偏导数(用于基于梯度的优化)
  • 优化:梯度下降法、随机梯度下降法(SGD)、高级优化器(如 Adam)

编程与框架

  • Python:熟悉 NumPy 和 Pandas 等库
  • 深度学习框架:TensorFlow 或 PyTorch,熟悉模型训练、调试与评估

深度学习基础

  • 理解感知机、激活函数和层的概念。反向传播和梯度下降法。损失函数(如交叉熵、均方误差)
  • 卷积神经网络(CNN)(可选,但有帮助):有助于理解模型中的层如何工作

当然,你可能对这些不完全了解。但这并不意味着你不应该开始学习。只需知道,如果你在某些时候遇到困难,这是正常的,你可以稍后再回来更深入地学习。

一些额外的学习建议 ✨

在学习过程中,我还发现了一些有用的技巧,可能对你也有所帮助:

享受学习过程

我提到过自己在两周内学习了这些内容。它们并不十分复杂,但我提到时间的目的是强调这些内容并不难学。我建议大家不要过于在意要在严格的时间期限内学完这些材料。实际上,我一开始并没有打算在 14 天内学完。我只是学完了。但即使这过程持续一个月,我也不会介意,只要我享受发现新事物的过程

不要盲目跟随我的路线图

这听起来可能有些奇怪,但我的学习路径是我的学习路径。不要觉得你需要完全照搬我的学习路线。对我来说它效果很好,但这不代表对你也同样有效。

学习是一种非常个性化的体验。 你所学的内容是你已有知识与想要了解内容的结合。每个人都不同。所以,请不要完全照搬我的路线图,而是挑选其中你感兴趣的部分。同样,对于你看到或听到的其他学习路线图也是如此。没有一本书、一个资源或一条路线图是最好的,所以不要把自己局限在某个单一的资源上。

不要追求学完所有内容

当你开始学习一本书、观看一个 YouTube 视频或阅读一篇论文时,你并不需要誓死读完。你只是去获取你想要的答案,然后继续前进。特别是论文,阅读起来非常耗时。所以我的建议是:

在阅读任何材料之前,明确你心中的问题,然后专门寻找答案。这样可以避免浪费时间在不相关的内容上,即便这些内容很精彩,但可能对你并无帮助。

总结

我对社区对我 GitHub 仓库以及我分享的学习路径的支持感到非常感激。我将继续学习更多主题,全能模型、ViT、GNN、量子机器学习 等等都在我的学习计划中。所以,不要错过我在 X[11] 上的分享,我会在那里发布我学习笔记的精华。

此外,我的 GitHub 仓库 ml-retreat 也分享了我迄今为止收集的所有学习材料:

  • GitHub - hesamsheikh/ml-retreat: 从中级到高级的 AI 学习路径[12]

感谢你阅读本文! 如果你还感兴趣,这里有一些我推荐的进一步阅读内容 :)

我们仍未理解的机器学习问题

研究人员仍在努力理解的机器学习难题——从 Batch Norm 到 SGD 隐藏的秘密[13]

在编程中更聪明地使用 AI

摆脱使用过时方法将 AI 集成到编程工作流程中的旧方式,探索超越 ChatGPT 的新方法[14]

图片由 Midjourney 生成

参考资料

[1]

GitHub 仓库https://github.com/hesamsheikh/ml-retreat

[2]

1. 从零构建一个 LLM: https://github.com/hesamsheikh/ml-retreat/blob/main/assets/LLM-from-scratch-notes.pdf

[3]

从零构建大规模语言模型https://www.manning.com/books/build-a-large-language-model-from-scratch

[4]

来源: https://github.com/hesamsheikh/ml-retreat/tree/main

[5]

2. LLM 的幻觉问题: https://github.com/hesamsheikh/ml-retreat/blob/main/assets/LLM-Hallucination.pdf

[6]

来源: https://github.com/hesamsheikh/ml-retreat/blob/main/assets/LLM-Hallucination.pdf

[7]

3. LLM 的前沿技术:超越注意力机制: https://github.com/hesamsheikh/ml-retreat/blob/main/assets/LLM-Edge-Beyond-Attention.pdf

[8]

来源: https://github.com/hesamsheikh/ml-retreat/blob/main/assets/LLM-Edge-Beyond-Attention.pdf

[9]

从零构建大规模语言模型https://www.manning.com/books/build-a-large-language-model-from-scratch

[10]

来源: https://www.youtube.com/playlist?list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ

[11]

Xhttps://x.com/Hesamation

[12]

从中级到高级的 AI 学习路径: https://github.com/hesamsheikh/ml-retreat

[13]

从 Batch Norm 到 SGD 隐藏的秘密: https://towardsdatascience.com/what-we-still-dont-understand-about-machine-learning-699e0002a057

[14]

探索超越 ChatGPT 的新方法: https://towardsdatascience.com/the-smarter-way-of-using-ai-in-programming-0492ac610385


👇

👇

👇

👇

本文同步自知识星球《AGI Hunt》

星球实时采集和监控推特、油管、discord、电报等平台的热点AI 内容,并基于数个资讯处理的 AI agent 挑选、审核、翻译、总结到星球中。

  • 每天约监控6000 条消息,可节省约800+ 小时的阅读成本;

  • 每天挖掘出10+ 热门的/新的 github 开源 AI 项目;

  • 每天转译、点评 10+ 热门 arxiv AI 前沿论文。

星球非免费。定价99元/年,0.27元/天。(每+100人,+20元。元老福利~)

  • 一是运行有成本,我希望它能自我闭环,这样才能长期稳定运转;

  • 二是对人的挑选,鱼龙混杂不是我想要的,希望找到关注和热爱 AI 的人。

欢迎你的加入!

AGI Hunt
关注AGI 的沿途风景!
 最新文章