Sebastian Raschka分享了如何如何高效阅读技术书籍(尤其是他那些关于从零构建 LLM 的书)的建议。-------------------------我经常收到读者提问,关于如何阅读我的(一本或多本)关于从零开始构建 LLM 的书,并从中获得最大收获。我的建议通常基于我自己阅读技术书籍的方式。这并非一个“放之四海而皆准”的方法,但我想分享出来可能会有用:1️⃣阅读章节时,最好是离线状态,远离电脑。 要么是经典的纸质书,或者至少是在没有联网的电子设备上阅读。这真的有助于在阅读时集中注意力和减少干扰。标记或注释令人困惑或有趣的内容是好的,但在这个阶段我不会去查资料。在这个阶段我也不会运行代码。至少暂时不会。2️⃣第二遍阅读时,把章节中的代码敲出来并运行。 复制粘贴代码很诱人,因为重敲一遍工作量很大,但这通常能帮我更多地思考代码(而不是仅仅扫一眼)。如果我得到的结果和书中的不一样,我会检查书的 GitHub 仓库,并尝试运行那里的代码。如果结果还是不同,我会试着查看是否是由于不同的包版本、随机种子、CPU/CUDA 等原因。如果我还是找不到原因,询问作者会是个不错的主意(通过书籍论坛、公开的 GitHub 仓库的 issues 或 discussions,最后万不得已再用电子邮件)。3️⃣在第二遍阅读并重敲代码之后, 通常是做练习来巩固理解的好时机。用来检验我是否真正理解了内容,并能独立运用它。4️⃣浏览一遍标记和注释。 如果与某个项目相关,我会把重要的所学或感悟收藏到我的笔记文件中。我也经常会查找额外的参考资料,以便更深入地阅读感兴趣的主题。此外,如果经过之前的阅读和练习,我仍感觉有些问题没有答案,我会上网搜索以了解更多。5️⃣之前的步骤都是关于吸收知识。 但最终,我还是想以某种方式运用这些知识。所以我会思考哪些项目能从我所学的内容中受益,并将其融入到项目中。这可能涉及使用章节中的主要概念,但有时也包括在此过程中学到的一些小知识点,例如,即使是像在我的项目中显式调用 torch.mps.manual_seed(seed) 而不是 torch.manual_seed(seed) 是否真的有区别这样的琐碎事情。当然,以上所说的一切都不是一成不变的。如果某个主题总体上非常熟悉或简单,而且我读这本书主要是为了获取后续章节的某些信息,那么略读某一章也是可以的(为了不浪费我的时间)。总之,我希望这能有所帮助。祝大家阅读和学习愉快!
