跳到主要内容人工智能与大语言模型学习指南 | 极客日志PythonAI算法
人工智能与大语言模型学习指南
提供了一条从零开始掌握人工智能与大语言模型的技术路径。涵盖数学基础、编程工具、机器学习与深度学习核心概念,以及大语言模型的微调与应用实践。强调动手实践与公开分享的重要性,建议通过构建项目、参与竞赛及持续跟踪前沿论文来保持技术更新。内容涉及线性代数、微积分、概率统计在算法中的应用,Python 与 PyTorch 框架的使用,以及提示工程、RAG 架构和云端 GPU 资源部署等关键技能点。
月光旅人1 浏览 想学习人工智能吗?但不知道如何开始?要熟练掌握人工智能相关的技术,光学习很多课程是不够的。
为了摆脱只是跟着教程学习,你需要亲自动手,从头开始编写算法,动手实践,并通过使用人工智能解决问题来做一些有趣的边项目。这篇文章试图创建一份免费的学习路径,希望对大家学习有帮助。(注意:有大量教程、书籍、论文和资源都是英文的,请配合 AI 翻译工具来阅读吧。)
自上而下的学习方法
建议大家在必要时才进行学习。即,如果我需要解决某个问题或制作一个原型,我会四处寻找所需的信息,学习、理解然后进行实践。
例如,我目标是成为一个从根本上理解大型语言模型(LLM)的 AI 工程师,这包括从头编码变换器的技能和在 GPU 上微调 LLM 等。我现在还做不到,因为我的知识有缺口,我希望填补这些缺口。
在我给你推荐一堆链接之前,还有两个学习过程中的建议:不要闷头自学。
学无止境,尤其是在人工智能领域,每个月都有前沿的论文发布。
最大的错误是自己闷头学习。除了能完成了某些事之外,你没有任何成果可展示。这样你会错失很多机会。更重要的是你如何处理这些信息,如何将其转化为可以与公众分享的知识,以及从这些信息中产生了什么新颖的想法和解决方案。
因此,你应该在公开你的学习进展,学习经验,甚至是一些成果。
这意味着要养成创造的习惯。这可能意味着,你尝试做这些事情:
- 写博客和教程
- 参加黑客马拉松并与他人合作
- 在社区中提问和回答问题
- 做你感兴趣的项目
- 在一些社交媒体上发表你新发现的有趣的事
算法与数学基础
机器学习严重依赖三大数学支柱:线性代数、微积分、概率与统计。每个都在算法有效运行中扮演着独特的角色。
- 线性代数:数据表示和操作的数学工具箱,矩阵和向量构成算法解释和处理信息的语言。在神经网络中,权重通常以矩阵形式存储,输入数据被转换为向量进行处理。
- 微积分:机器学习中优化的引擎,通过理解梯度和变化率,使算法能够学习和改进。反向传播算法的核心就是链式法则的应用。
- 概率与统计:在不确定性下做决策的基础,允许算法通过随机性和可变性的模型预测结果并从数据中学习。贝叶斯推断和假设检验是许多高级算法的理论基础。
这是一套从程序员视角出发的机器学习数学系列:由 Weights & Biases 提供的《机器学习的数学》。
如果你想从代码角度学习线性代数,可以学习 fast.ai 创造者的《计算线性代数》。
同时阅读《Python 应用机器学习线性代数入门》。
如果你想要更传统的内容,可以看伦敦帝国学院的讲座——线性代数与多变量微积分为例。(这两个视频,在国内视频网站中没有搜到,大家可以自己跳转去看)
观看 3Blue1Brown 的《线性代数的本质》和《微积分的本质》。
为了学习统计学,观看 StatQuest 的《统计学基础》。
- 书籍:《机器学习的数学》
- 论文:《深度学习所需的矩阵微积分》
开发工具
Python
初学者从这里开始:实用 Python 编程。当然,在线视频平台也有清华北大整理的 Python 教程,也不错,大家可以自己搜索。
如果你已经熟悉 Python,可以学习这个高级 Python 精通课程。
这两个课程都是由 David Beazley(《Python Cookbook》的作者)提供的。
- 书籍:《流畅的 Python,第二版》
- 播客:Real Python & Talk Python
PyTorch
- PyTorch 示例
- 通过一些谜题测试你的知识:提升你的 PyTorch 技能。
机器学习
从头编写
如果你想要挑战自己,可以通过以下课程尝试从头开始编写 PyTorch。
参加比赛
- 在 Kaggle 和天池等平台上参加机器学习竞赛;在 Papers with Code,你可以找到更多类似竞赛。
- 查看过去参与竞赛的解决方案,并学习它们。
做一些小项目
例如阅读 Vicki Boykis 撰写的文章。她还写了关于构建一种图书的语义搜索的学习经验。
获取数据集并构建模型(例如,使用 NASA 地球数据)。你也可以尝试一些已经开源的模型,从部署、训练到微调。如果你缺少合适的 GPU 资源,还有硬件资源,你可以尝试使用 GPU 云来解决。
部署它们
将模型投入生产环境,并跟踪你的实践成果。学习如何监控模型。亲身体验数据和模型的变化。
深度学习
如果你想从上而下开始,先从 fast.ai 开始。你可以浏览 fast.ai,以及其官方论坛。
如果你想要一个更全面、传统的课程,查看 François Fleuret 教授的深度学习课程。
- 包含 PyTorch、NumPy/MXNet、JAX 和 TensorFlow 的代码示例
- 《深度学习》,这本书的作者是 Ian Goodfellow, Yoshua Bengio 和 Aaron Courville
- Papers with Code 是一个很好的资源;这里有关于 Transformer 的解释。
计算机视觉
- 很多人推荐。它很有挑战性,但如果你能坚持下来,会发现很值得一读。
强化学习
对于想要了解强化学习的人来讲,这两个资源很值得看:
自然语言处理(NLP)
- 另一个很棒的斯坦福课程
- 学习 Hugging Face:
- 查看这个
一些好文章和解析,其中一些插图版本的内容会更加生动易懂:
大型语言模型
首先,观看由 Andrej Karpathy 主讲的 1 小时演讲。接着观看由 Alexander Rush — Cornell Tech 主讲的课程。
同时,还推荐观看 Andrej Karpathy 的视频。它从解释和从头编写反向传播算法开始,最后教你从头编写 GPT。Andrej Karpathy 最近发布了新视频。
由相关机构提供,现已免费。它会教你提示工程、LLMOps、LLM 的用户体验设计,以及如何在一小时内启动 LLM 应用。
如果你已经跃跃欲试想要在训练营后开始构建,那你看看这些资源,学习如何使用 LLM 构建应用:
- 阅读相关文档
- 以及 Eugene Yan 的文章
- 参考 OpenAI 开发者文档
- 使用模板开始
当然,还推荐你参加一些黑客马拉松,练练手。每周都有新的 AI 黑客马拉松。
如果你想深入理论并了解一切如何运作。那么可以阅读论文:
- 撰写的一篇文章是一篇很棒的文章,列出了你应该阅读的一些论文。
- 他最近还发表了,介绍了你应该在 2024 年 1 月阅读的论文,涵盖了 Mistral 模型。
从头编写变换器
- 阅读以获取概览。
- 选择最适合你的格式,并从头开始实现。
- Sebastian Raschka 博士撰写的文章
看完这些,现在你可以从头开始编码变换器了。但还有更多。
- Gradient Descent into Madness — 从头构建一个 LLM
- 插图变换器 — Jay Alammar
- 关于注意力和变换器的一些直觉 — Eugene Yan
- 加速 GPT — KV 缓存 | Becoming The Unbeatable
- 超越自我注意:一个小型语言模型如何预测下一个标记
- 从头开始的 Llama(或如何在不哭泣的情况下实现一篇论文)| Brian Kitano
- 改进 LoRA:从头开始实现权重分解的低秩适应(DoRA)
学习如何运行开源模型
提示工程
另外,DeepLearning.ai 还提供了其他你可以免费注册的短期课程。
微调 LLM
RAG(检索增强生成)
上手实践
千万不要忘了我们在最开始说的,一定要多动手实践,在实践过程中,你会发现自己的知识盲区,然后学习会更有动力。
如果你手上没有合适的 GPU 或电脑设备能让你去运行那些大语言模型,那么你可以考虑使用 GPU 云服务。支持包括 H100、A100、V100 等多种 GPU,并预装机器学习常用的技术栈(包括语言、工具、框架等)。随时扩展,按需停止,只需按使用量付费。这也是个不错的选择。
如何保持知识更新
学到这里,你要做的更多的就是保持自己能得到更多新的资讯、知识,了解当前 AI 行业中又有哪些新模型、新论文。所以你可以通过结合新闻、播客,在社交平台上关注一些博主,来保证得到最新的信息。
我们已经花了足够的时间编写和组织这些内容,以至于收益递减。现在是时候学习和构建了。希望这能帮助你在 AI 旅程中前行!
补充技术细节
为了确保大家能够更深入地理解上述内容,这里补充一些关键的技术细节。
关于 Transformer 架构
Transformer 是目前大语言模型的基石。它摒弃了传统的循环结构,完全基于注意力机制。核心组件包括多头自注意力(Multi-Head Self-Attention)、前馈神经网络(Feed Forward Network)以及层归一化(Layer Normalization)。理解 QKV(Query, Key, Value)向量的交互过程对于掌握模型原理至关重要。
关于微调策略
全量微调成本高昂且容易过拟合。目前主流方案包括 LoRA(Low-Rank Adaptation)和 P-Tuning。LoRA 通过冻结预训练权重并在旁路添加低秩矩阵来实现高效微调。在实际操作中,选择合适的学习率和 Batch Size 同样关键。
关于 RAG 系统
RAG 通过将外部知识库与生成模型结合,解决了大模型幻觉问题。构建流程包括文档切片、向量化索引、检索匹配以及上下文注入。选择合适的 Embedding 模型和向量数据库(如 Milvus, Pinecone)直接影响检索效果。
关于评估指标
在 NLP 任务中,BLEU 和 ROUGE 是传统指标,但在 LLM 时代,人工评估和基于模型的评估(如 LLM-as-a-Judge)更为重要。关注困惑度(Perplexity)和吞吐量也是衡量模型性能的重要维度。
关于算力优化
推理阶段显存占用往往成为瓶颈。可以使用量化技术(如 INT8, FP16)减少显存占用。此外,Flash Attention 等优化算法能显著提升训练和推理速度。在生产环境中,需要考虑并发处理和负载均衡策略。
关于伦理与安全
随着 AI 能力的增强,安全对齐变得尤为重要。避免模型输出有害内容、偏见信息是开发者的责任。实施内容过滤、红队测试(Red Teaming)是标准的安全流程。同时,注意数据隐私合规性,特别是在处理用户数据时。
相关免费在线工具
- 加密/解密文本
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- curl 转代码
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online