“要是你不能简单地解释一件事,就说明你还不够明白它。” — 爱因斯坦
随着所有这些AI更新和新闻,你是否有这样的冲动,深入了解模型架构的细节,理解训练这些模型需要哪些条件?我也有这种感觉有一段时间了,我终于屈服了,决定开展自己的研究项目,深入探索AI研究和工程的世界。
这就是问题所在:我并不适合读博士。我天生适合动手实践,一有想法就付诸行动。但我明白,若想真正理解人工智能,仅仅了解表面知识是不够的。我需要更深入地学习。
虽然我没有拿到博士学位,但决定可以为自己设计一个研究项目,就像蒂莫西·费里斯为自己设计的个人MBA课程那样。
这篇帖子详细说明了我将如何执行学习计划的每个细节。
设计一个研究计划可以有成千上万的方向,对于这个项目,我试图逆向分析通往研究员(RE)职位的路径,这些职位位于Meta AI、OpenAI和Anthropic这样的顶尖AI实验室。
我不愿意在这些组织工作,但这样做会让我的项目更有方向感,并且帮助我集中精力在真正重要的事情上。
当我请Eugene Yan审阅课程内容时,他说很好,并建议保持项目导向。
会有很多需要重新学习的话题,也有很多不那么有价值的话题。我的心态是享受其中的每一项,而不觉得有需要达到某种目的的压力。
所以,就是这样。
- 理解JD中提到的RE的作用,
- 找出最重要的技能,
- 围绕这些技能找或做项目,
- 深入且一步步地构建这些项目(正如Andrej Karpathy所说),
- 写或教这些内容
我研究了一下来自Anthropic、OpenAI和Meta AI的职位描述,来了解顶尖AI研究员都在做什么。
让我给你分解一下。
研究工程师们就像是人工智能界的瑞士军刀般的存在。
搭建大型系统- 研发工程师从底层构建大规模的机器学习系统。
- 他们在分布式计算和系统架构方面是专家。
- 一个典型的项目?将训练任务扩展至数千个GPU,这真是考验耐心和调试技术的绝佳机会。
- 这些人不断调整和优化系统。
- 例如,他们可能花几周的时间来微调一个新的注意力机制以达到最优表现。
- 这需要对机器学习算法有深刻理解,并且具备优化性能的技巧。
- 数据准备是工作中非常重要的一步。
- 想象一下将维基百科转化为机器学习模型可以轻松处理的格式。
- 这就像一个数据厨师的工作——你需要知道你的食材(也就是数据结构)以及如何处理它们(也就是ETL过程)。
- 研究工程师设计并运行科学实验。
- 他们会比较不同的模型架构或训练方法。
- 就像是疯狂科学家,但手头有更多的电脑,少了一些吓人的笑声。
- 这些工程师处于开发安全且值得信赖的人工智能系统的前沿。
- 他们不仅会问“我们能否建造它?”,还会问“我们是否应该建造它?”
- 这需要对人工智能伦理及其社会影响有深刻的理解。
- 研究工程师经常进行结对编程(Pair Programming)或者与分布式团队合作。
- 他们得能够清晰地表达复杂的概念,通常通过撰写论文和进行开源贡献。
虽然没有明说,但工作的复杂性暗示了你需要有坚实的数学和统计学基础,我已经将它纳入了我的基础知识支柱。
这项分析帮助我定义了我的人工智能研究计划的核心要素:
AI研究项目的核心支柱这包括一个很长的主题列表,很多主题相互重叠,这些内容不适合按顺序阅读或理解。你需要根据自己的兴趣领域、手头的项目和目前的理解程度来选择和取舍,看你对哪些感兴趣、哪些项目需要做、你的理解程度如何。
学习在这里会有点像分形,但你的项目会帮助你集中精力。
我的AI研究计划是基于几个关键支柱的,每个支柱代表一个重要的知识和技能领域:
- 支柱1:基础知识 — 人工智能和机器学习的基础数学和理论知识。
- 支柱2:编程与工具 — 用于开发和部署人工智能所需的基本编程技能和工具。
- 支柱3:深度学习基础 — 深度学习和神经网络的核心概念和架构。
- 支柱4:强化学习 — 强化学习在人工智能中的原则和应用场景。
- 支柱5:NLP/LLM研究 — 自然语言处理和大型语言模型的高级话题。
- 支柱6:研究论文分析与复现 — 批判性分析和复现前沿人工智能研究的分析和复现技能。
- 支柱7:高性能AI系统与应用 — 优化和扩展人工智能系统以适应实际应用的技术。
- 支柱8:大规模ETL与数据工程 — 处理和利用大规模数据的方法以支持人工智能应用。
- 支柱9:伦理AI与负责任开发 — 人工智能开发中的伦理考量和负责任的开发实践。
- 支柱10:社区参与与网络 — 构建联系并为人工智能研究社区做出贡献。
- 支柱11:研究与发表 — 开展原创的人工智能研究并通过学术出版物分享研究发现。
查看 GitHub 仓库,了解你应该关注的主题、子主题、学习资源和项目。
这最初会既令人不知所措又令人谦卑,不过提醒自己你不需要在这里精通所有的东西。
我为我对生成式AI的个人喜好设计了这个程序,它可以根据你的兴趣领域进行调整。你可以让它更专注于计算机视觉领域。
如何走过这个项目你可以这样试试看。
- 评估你的起点:确定你每个支柱当前的知识水平。
- 为自己制定项目和目标:明确你想要实现的目标,并选择或设计那些你认为非常有趣的目标。
- 边做边学:以迭代的方式从头到尾构建你的项目。如果遇到不懂的地方,可以回头查阅学习资料。通过项目制作具体的成果,并记录你的过程、挑战和想法(相信我你会有很多想法),这些想法在将来可能需要你进一步探索。
- 参与社区:在构建复杂项目时,你有时会感到孤独,这时社区会有帮助。加入专注于AI的论坛、Discord服务器,参加研讨会、聚会或见面会,分享你的学习旅程。
- 写作/教学:作为最后一步,不要把你的学习成果和发现藏起来,写下来,这会暴露你理解上的不足和你在完成项目时采取的捷径。回头查看你的学习资源,填补这些空白,并简化复杂的概念。
别急,不然会把自己累垮。
最后,不要拿自己和别人比较。你比一些人强,但也会比一些人弱。
好的,这就是我开始这个程序的方法。
一个以LLM研究启动的程序任务: 从头开始构建并分析一个微小语言模型
学习目的:彻底搞懂大模型的研究和工程
时间安排:我给自己三个月的时间来完成这个项目,每天花1到2个小时左右,周末就多花点时间。
这个项目将从零开始创建一个小型语言模型,让你能够深入了解大规模语言模型(LLMs)的架构、训练过程及关键概念。
随着我进步,我会在这里记录我的旅程、心得和发现(别忘了订阅哦),以及在我的YouTube频道。
高级步骤包括以下内容(将不断更新):
- PyTorch 基础与文本处理
- 掌握 PyTorch 基础(张量、自动求导、nn.Module)
- 实现文本处理技术(分词、编码)
- 理解并实现词嵌入
- 模型架构与实现
- 使用 PyTorch 实现和学习一个基础的 Transformer 模型
- 分析关键组件(自注意力机制、前向网络)
- 数据管道与训练
- 开发高效的文本数据加载与批处理
- 实现并优化训练过程(包括分布式训练)
- 构建一个大语言模型(LLM)
- 可视化注意力模式并分析学到的嵌入
- 实验模型大小、训练数据和解码策略
- 微调基础模型
- 实现特定任务的微调并探索少量样本学习(Few-shot learning)
- 应用优化技术(量化、剪枝)以提高性能
- 核心概念:我将深入探讨 Transformer 架构、嵌入模型和注意力机制、为微调准备数据集、从零开始使用 PyTorch 编码注意力机制并构建大语言模型(LLM),最后了解训练所需的硬件和计算资源。
通过开始研究LLM,我将自己定位在人工智能研究的最前沿,同时打下了坚实的神经网络架构和NLP技术基础。
资源:https://github.com/dswh/ai-research-program/tree/main/resources
虽然我有很多常参考的资源,但其中很大一部分是不断更新的,我会不断增加高质量的资源到 资源 文件夹中,并也会在这里和其他通讯中写有关它们的内容。
书为了开始我的LLM研究项目,我将参考两本参考书。
研究文章我会在接下来的几周里分享一个更详细的列表,但先从下面这些开始。
还有更多内容即将呈现……
课程 / YouTube 视频目前我可能会参考一些课程来提高编写PyTorch代码的能力。
- PyTorch 由 fast.ai 及其文档
- Andrej 训练 GPT 的教程
- 3b1b 的 transformers 和 GPT 相关教程
接下来的几周内,我还会陆续分享一些博客、时事通讯,甚至有时候也会有播客节目。
怎样才能一直保持这种学习的心态呢?所有的这些学习努力最终都归结于你能坚持学习的热情有多久。
- 不要因为兴奋而过度劳累:我的第一条建议(尤其是给自己)就是在任何时候都不要太苛求自己,循序渐进。有的时候你需要全力以赴,有的时候只需要轻松地读一读或看一点。
- 公开承诺:虽然不是每个人都喜欢这样做,但很多情况下这确实有效。它会促使你保持责任感。你每天都会不得不回来做这件事。这是我第一次尝试,让我们看看效果如何。
- 零日不可有:保持一致是关键。你可能遇到过类似的挑战,比如“100天学习计划”或“75 Hard”,但我个人更喜欢“没有零日”的概念。每天都要取得一些进步,这是一段漫长的旅程,它会逐渐积累起成果。
- 找到更多像你这样的人:和你处在同一个阶段的人总是能让你感到安心,特别是在你怀疑自己的时候。交朋友是其中最好的方式,最有效的方法是专注于你能给予什么,而不是你想要得到什么。你可以加入我的Discord服务器来找到更多和你相似的人。
- 关注我哦 :p
保持联系哦。我每天在IG有更新。
点击这里关注我们
这个程序中的缺失虽然我已经花了不少时间来规划这个,但它还是不完整,肯定还有需要补充的地方。
在这个研究项目中,我需要填补的一个空白是导师辅导。
无论是做项目、学新东西、写东西还是教东西,获取有用的高质量反馈也相当重要。
找个导师或教练相当重要,特别是在这个过程中。
目前,我建议利用社区、寻求同行反馈、公开发表、发送冷邮件,以及团队工作。
关注我们,获取每日和每周更新- 我会在这里分享我的成长过程和心得,记得订阅哦。
- 视频在 YouTube。
- 每天在 Instagram 有更新。
- 想与我交流或参与讨论,加入我们的 Discord 服务器 一起参与吧。
共同学习,写下你的评论
评论加载中...
作者其他优质文章