为了账号安全,请及时绑定邮箱和手机立即绑定

我的AI研究计划

一个以项目为核心的AI研究计划,旨在深入了解架构、新时代的应用、研究方向以及从基础原理学习概念。

“要是你不能简单地解释一件事,就说明你还不够明白它。” — 爱因斯坦

随着所有这些AI更新和新闻,你是否有这样的冲动,深入了解模型架构的细节,理解训练这些模型需要哪些条件?我也有这种感觉有一段时间了,我终于屈服了,决定开展自己的研究项目,深入探索AI研究和工程的世界。

这就是问题所在:我并不适合读博士。我天生适合动手实践,一有想法就付诸行动。但我明白,若想真正理解人工智能,仅仅了解表面知识是不够的。我需要更深入地学习。

虽然我没有拿到博士学位,但决定可以为自己设计一个研究项目,就像蒂莫西·费里斯为自己设计的个人MBA课程那样。

这篇帖子详细说明了我将如何执行学习计划的每个细节。

点击链接观看视频

设计一个研究计划可以有成千上万的方向,对于这个项目,我试图逆向分析通往研究员(RE)职位的路径,这些职位位于Meta AI、OpenAI和Anthropic这样的顶尖AI实验室。

我不愿意在这些组织工作,但这样做会让我的项目更有方向感,并且帮助我集中精力在真正重要的事情上。

当我请Eugene Yan审阅课程内容时,他说很好,并建议保持项目导向。

会有很多需要重新学习的话题,也有很多不那么有价值的话题。我的心态是享受其中的每一项,而不觉得有需要达到某种目的的压力。

所以,就是这样。

  • 理解JD中提到的RE的作用,
  • 找出最重要的技能,
  • 围绕这些技能找或做项目,
  • 深入且一步步地构建这些项目(正如Andrej Karpathy所说),
  • 写或教这些内容
研究工程师是做什么的

我研究了一下来自AnthropicOpenAIMeta AI的职位描述,来了解顶尖AI研究员都在做什么。

让我给你分解一下。

研究工程师们就像是人工智能界的瑞士军刀般的存在。

搭建大型系统
  • 研发工程师从底层构建大规模的机器学习系统。
  • 他们在分布式计算和系统架构方面是专家。
  • 一个典型的项目?将训练任务扩展至数千个GPU,这真是考验耐心和调试技术的绝佳机会。
性能优化和调整
  • 这些人不断调整和优化系统。
  • 例如,他们可能花几周的时间来微调一个新的注意力机制以达到最优表现。
  • 这需要对机器学习算法有深刻理解,并且具备优化性能的技巧。
数据清洗与整理
  • 数据准备是工作中非常重要的一步。
  • 想象一下将维基百科转化为机器学习模型可以轻松处理的格式。
  • 这就像一个数据厨师的工作——你需要知道你的食材(也就是数据结构)以及如何处理它们(也就是ETL过程)。
实验与探索
  • 研究工程师设计并运行科学实验。
  • 他们会比较不同的模型架构或训练方法。
  • 就像是疯狂科学家,但手头有更多的电脑,少了一些吓人的笑声。
伦理的AI开发
  • 这些工程师处于开发安全且值得信赖的人工智能系统的前沿。
  • 他们不仅会问“我们能否建造它?”,还会问“我们是否应该建造它?”
  • 这需要对人工智能伦理及其社会影响有深刻的理解。
协作和沟通
  • 研究工程师经常进行结对编程(Pair Programming)或者与分布式团队合作。
  • 他们得能够清晰地表达复杂的概念,通常通过撰写论文和进行开源贡献。
数学基础课

虽然没有明说,但工作的复杂性暗示了你需要有坚实的数学和统计学基础,我已经将它纳入了我的基础知识支柱。

这项分析帮助我定义了我的人工智能研究计划的核心要素:

AI研究项目的核心支柱

这包括一个很长的主题列表,很多主题相互重叠,这些内容不适合按顺序阅读或理解。你需要根据自己的兴趣领域、手头的项目和目前的理解程度来选择和取舍,看你对哪些感兴趣、哪些项目需要做、你的理解程度如何。

学习在这里会有点像分形,但你的项目会帮助你集中精力。

我的AI研究计划是基于几个关键支柱的,每个支柱代表一个重要的知识和技能领域:

  1. 支柱1:基础知识 — 人工智能和机器学习的基础数学和理论知识。
  2. 支柱2:编程与工具 — 用于开发和部署人工智能所需的基本编程技能和工具。
  3. 支柱3:深度学习基础 — 深度学习和神经网络的核心概念和架构。
  4. 支柱4:强化学习 — 强化学习在人工智能中的原则和应用场景。
  5. 支柱5:NLP/LLM研究自然语言处理和大型语言模型的高级话题。
  6. 支柱6:研究论文分析与复现 — 批判性分析和复现前沿人工智能研究的分析和复现技能。
  7. 支柱7:高性能AI系统与应用 — 优化和扩展人工智能系统以适应实际应用的技术。
  8. 支柱8:大规模ETL与数据工程 — 处理和利用大规模数据的方法以支持人工智能应用。
  9. 支柱9:伦理AI与负责任开发 — 人工智能开发中的伦理考量和负责任的开发实践。
  10. 支柱10:社区参与与网络 — 构建联系并为人工智能研究社区做出贡献。
  11. 支柱11:研究与发表 — 开展原创的人工智能研究并通过学术出版物分享研究发现。

查看 GitHub 仓库,了解你应该关注的主题、子主题、学习资源和项目。

这最初会既令人不知所措又令人谦卑,不过提醒自己你不需要在这里精通所有的东西。

我为我对生成式AI的个人喜好设计了这个程序,它可以根据你的兴趣领域进行调整。你可以让它更专注于计算机视觉领域。

如何走过这个项目

你可以这样试试看。

  1. 评估你的起点:确定你每个支柱当前的知识水平。
  2. 为自己制定项目和目标:明确你想要实现的目标,并选择或设计那些你认为非常有趣的目标。
  3. 边做边学:以迭代的方式从头到尾构建你的项目。如果遇到不懂的地方,可以回头查阅学习资料。通过项目制作具体的成果,并记录你的过程、挑战和想法(相信我你会有很多想法),这些想法在将来可能需要你进一步探索。
  4. 参与社区:在构建复杂项目时,你有时会感到孤独,这时社区会有帮助。加入专注于AI的论坛、Discord服务器,参加研讨会、聚会或见面会,分享你的学习旅程。
  5. 写作/教学:作为最后一步,不要把你的学习成果和发现藏起来,写下来,这会暴露你理解上的不足和你在完成项目时采取的捷径。回头查看你的学习资源,填补这些空白,并简化复杂的概念。

别急,不然会把自己累垮。

最后,不要拿自己和别人比较。你比一些人强,但也会比一些人弱。

好的,这就是我开始这个程序的方法。

一个以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研究项目,我将参考两本参考书。

  1. 深度学习入门
  2. 从零构建大规模语言模型
研究文章

我会在接下来的几周里分享一个更详细的列表,但先从下面这些开始。

还有更多内容即将呈现……

课程 / YouTube 视频

目前我可能会参考一些课程来提高编写PyTorch代码的能力。

  • PyTorch 由 fast.ai 及其文档
  • Andrej 训练 GPT 的教程
  • 3b1b 的 transformers 和 GPT 相关教程

接下来的几周内,我还会陆续分享一些博客、时事通讯,甚至有时候也会有播客节目。

怎样才能一直保持这种学习的心态呢?

所有的这些学习努力最终都归结于你能坚持学习的热情有多久。

  • 不要因为兴奋而过度劳累:我的第一条建议(尤其是给自己)就是在任何时候都不要太苛求自己,循序渐进。有的时候你需要全力以赴,有的时候只需要轻松地读一读或看一点。
  • 公开承诺:虽然不是每个人都喜欢这样做,但很多情况下这确实有效。它会促使你保持责任感。你每天都会不得不回来做这件事。这是我第一次尝试,让我们看看效果如何。
  • 零日不可有:保持一致是关键。你可能遇到过类似的挑战,比如“100天学习计划”或“75 Hard”,但我个人更喜欢“没有零日”的概念。每天都要取得一些进步,这是一段漫长的旅程,它会逐渐积累起成果。
  • 找到更多像你这样的人:和你处在同一个阶段的人总是能让你感到安心,特别是在你怀疑自己的时候。交朋友是其中最好的方式,最有效的方法是专注于你能给予什么,而不是你想要得到什么。你可以加入我的Discord服务器来找到更多和你相似的人。
  • 关注我哦 :p

保持联系哦。我每天在IG有更新。

点击这里关注我们

这个程序中的缺失

虽然我已经花了不少时间来规划这个,但它还是不完整,肯定还有需要补充的地方。

在这个研究项目中,我需要填补的一个空白是导师辅导。

无论是做项目、学新东西、写东西还是教东西,获取有用的高质量反馈也相当重要。

找个导师或教练相当重要,特别是在这个过程中。

目前,我建议利用社区、寻求同行反馈、公开发表、发送冷邮件,以及团队工作。

关注我们,获取每日和每周更新
  • 我会在这里分享我的成长过程和心得,记得订阅哦。
  • 视频在 YouTube
  • 每天在 Instagram 有更新。
  • 想与我交流或参与讨论,加入我们的 Discord 服务器 一起参与吧。
查看这个帖子的视频版,YouTube 上有
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消