大模型学习路线
建议先从主流的Llama开始,然后选用中文的Qwen/Baichuan/ChatGLM,先快速上手体验prompt工程,然后再学习其架构,跑微调脚本
如果要深入学习,建议再按以下步骤,从更基础的GPT和BERT学起,因为底层是相通的,而且实际落地到一个系统中,应该也是大模型结合小模型(大模型在做判别性的任务上,比BERT优势不是特别大)
可以参考如下方案,按需学习。
一、简述
按个人偏好总结了学习目标与路径,后续将陆续整理相应学习资料,并输出学习笔记。
学习思路: 快速应用Transformer等轮子来微调和使用LLM,同时深入学习NLP预训练模型原理和推理部署(因为偏底层的东西变化不大)
学习目标
- 熟悉主流LLM(Llama, ChatGLM, Qwen)的技术架构和技术细节;有实际应用RAG、PEFT和SFT的项目经验
- 较强的NLP基础,熟悉BERT、GPT、Transformer、T5等预训练语言模型的实现,有对话系统相关研发经验
- 掌握TensorRT-LLM、vLLM等主流推理加速框架,熟悉模型量化、FlashAttention等推理加速技术方案,对分布式训练DeepSpeed框架有实战经验
- 熟悉Pytorch,具备扎实的深度学习和机器学习基础,基本掌握C/C++、Cuda和计算机系统原理
参考项目
参考书籍
Alt text
参考课程
- 面向开发者的LLM入门课程(吴恩达课程-中文版)github.com/datawhalechi
- 普林斯顿-COS 597G (Fall 2022): Understanding Large Language Modelscs.princeton.edu/course
- 斯坦福-CS324 - Large Language Modelsstanford-cs324.github.io
教程
- Huggingface Transformers官方课程 huggingface.co/learn/nl
- Transformers快速入门(快速调包BERT系列)transformers.run/
学习方式
- 力求快速应用 (先调包,再深入学习)
- 在实践中动手学习,力求搞懂每个关键点
- 【原理学习】+【代码实践】 + 【输出总结】
基础知识
- 视频课程
- 吴恩达机器学习入门:coursera.org/learn/mach
- 李沐讲AI:space.bilibili.com/1567
- 台大李宏毅-机器学习: speech.ee.ntu.edu.tw/~h
- 斯坦福NLP cs224n: web.stanford.edu/class/
- 书籍
- 深度学习入门:基于Python的理论与实践, numpy实现MLP、卷积的训练
- 《深度学习进阶:自然语言处理》:numpy实现Transformers、word2vec、RNN的训练
- Dive In Deep Learning(动手学深度学习): d2l.ai/
- 《神经网络与深度学习》:nndl.github.io/
- 《机器学习方法》:李航的NLP相关的机器学习 + 深度学习知识(按需选学)
- 强化学习
- 强化学习教程-蘑菇书EasyRL(李宏毅强化学习+强化学习纲要): datawhalechina.github.io
- 动手学强化学习: github.com/boyu-ai/Hand
- 博客
- 苏剑林科学空间:信息时代下的文章 - Scientific Spaces
学习纲要
应用:
1、Zero Shot / Few Shot 快速开箱即用
- Prompt调优:
- 上下文学习In-Context Learning, ICL
- 思维链 Chain of Thought, COT
- RAG (Retrieval Augmented Generation)
- 基于文档分块、向量索引和LLM生成,如Langchain文档问答
2、领域数据-指令微调LLM
- PEFT (Parameter-Efficient Fine-Tuning):
- LORA (Low-Rank Adaption of LLMs)
- QLORA
- SLORA
- P-Tuning v2
参数高效的微调,适合用于纠正模型输出格式(PEFT上限不高,并向LLM输入的知识有限)
- SFT (Supervised Fintuning):
- 全参数监督微调,使用prompt指令样本全量微调LLM(可以注入新的领域知识)
- 需要控制样本配比(领域数据 + 通用数据)
3、对齐
- 对齐人类偏好 (RLHF):
- RewardModel 奖励模型 (排序标注,判断答案价值)
- RL (PPO, 更新SFT模型)
专注基于强化学习的大语言模型对齐,有前景的方向是SuperhumanAI AutoALign
4、预训练
- 小模型预训练 (GPT2, TinyLlama)不考虑训练参数规模较大的语言模型
5、训练推理优化
- 模型量化
- 推理加速
- 蒸馏
- 推理框架(vLLM、TensorRT-LLM、Llama.cpp)
二、学习目录
第1章 技术与需求分析
1.1 技术分析
- LLM的发展历程与趋势
- 开源LLM生态
- Llama系列
- Mistral / Mixtral-8X7B-MOE :mistral.ai/news/mixtral
- ChatGLM / Baichuan / Qwen
1.2 市场需求分析
- 需求和就业市场分析
- 预训练、对齐
- 微调、应用
- 推理加速
- 商业落地分析(2C、2B应用场景)
第2章 ChatGPT背景与原理
2.1 ChatGPT的工作原理
- 预训练与提示学习阶段
- 结果评价与奖励建模阶段
- 强化学习阶段
2.2 算法细节
- 标注数据
- 建模思路
第3章 预训练语言模型
3.1 Transformer
- 论文
- 《Attention Is All Your Need》
- 解析:
- 图解Transformer:jalammar.github.io/illu
- 详解Transformer原理:cnblogs.com/justLittleS
- 实战
- Torch代码详解和训练实战:cnblogs.com/justLittleS
3.2 GPT
- GPT论文
- GPT-1:Improving Language Understanding by Generative Pre-Training
- GPT-2: Language Models are Unsupervised Multitask Learners
- GPT-3:Language Models are Few-Shot Learners
- GPT-4:GPT-4 Technical Report(openai.com)
- 解析
- GPT2图解:jalammar.github.io/illu
- GPT2图解(中文):cnblogs.com/zhongzhaoxi
- GPT3分析:How GPT3 Works - Visualizations and Animations
- GPT原理分析:cnblogs.com/justLittleS
- 推理
- GPT2模型源码阅读系列一GPT2LMHeadModel
- 60行代码实现GPT推理(PicoGPT):cnblogs.com/justLittleS
- 动手用C++实现GPT:ToDo, 参考:CPP实现Transformer
- 训练
- 训练GPT2语言模型:基于Transformers库-Colab预训练GPT2
- Transformers库GPT实现分析:ToDo
- MiniGPT项目详解-实现双数加法:blog.csdn.net/wxc971231
- NanoGPT项目详解
- 代码分析:zhuanlan.zhihu.com/p/60
- 训练实战:莎士比亚数据训练, ToDo
- GPT2微调-文本摘要实战
- 数据预处理模块
- GPT-2模型模块
- 模型训练和推理模块
3.3 BERT
- 原理
- 实战
- BERT结构和预训练代码实现:ToDo
- BERT预训练实战:动手学深度学习-BERT预训练 Colab
- 基于HuggingFace的BERT预训练:
- BERT微调:
- 文本分类
- BERT-CRF NER
- BERT+指针网络(UIE)信息抽取
- 文本摘要/问答
- 相似性检索: SimCSE-BERT
- 衍生系列
- RoBERTa / ALBERT / DistillBERT
3.4 T5系列
- T5-Pegasus对话摘要微调
- PromptClue关键词抽取微调
3.5 UniLM
- UniLM模型介绍
- 基于夸夸闲聊数据的UniLM模型实战
第4章 提示学习与大型语言模型
4.1 提示学习PromptLearning
- 提示学习介绍
- 提示模板设计
- 答案空间映射设计
4.2 上下文学习 ContextLearning
- 上下文学习介绍
- 预训练阶段提升上下文
- 推理阶段优化上下文
4.3 指令数据构建
- 手动和自动构建指令
- 开源指令数据集
- 基于提示的文本情感分析实战: github.com/liucongg/Cha
第5章 开源大型语言模型
5.1 Mistral
- Mistral 7B Tutorial: datacamp.com/tutorial/m
- Mistral-8X7B-MOE的模型结构
- Mistral -8X7B-MOE源码解析
- Mistral-7B微调
5.2 Llama
- Llama1
- Llama1源码深入解析: zhuanlan.zhihu.com/p/64
- Llama2
- Llama2的优化
- Llama2源码解析
- llama 2详解: zhuanlan.zhihu.com/p/64
- Llama2-6B微调
5.3 ChatGLM
- ChatGLM简介
- ChatGLM-6B微调
- ChatGLM2微调保姆级教程: zhuanlan.zhihu.com/p/64
第6章 LLM微调
6.1 全量指令微调SFT
6.2 高效微调PEFT
LORA系列
- LoRA(Low Rank Adapter)
- ChatGLM-6B: zhuanlan.zhihu.com/p/62
- ChatGLM2微调保姆级教程: zhuanlan.zhihu.com/p/64
- ChatGLM3-6B微调
- QLoRA
- 用bitsandbytes、4比特量化和QLoRA打造亲民的LLM:cnblogs.com/huggingface
- AdaLoRa
- SLoRA
其他
- P-Tuning V2介绍
- P-Tuning v2微调实战
实战
- HuggingFace PEFT库详解
- Deepspeed-Chat SFT 实践
第7章 大型语言模型预训练
7.1 预训练模型中的分词器
- BPE详解
- WordPiece详解
- Unigram详解
- SentencePiece详解
- MinBPE实战和分析:github.com/karpathy/min
7.2 分布式训练
- 分布式训练概述
- 分布式训练并行策略
- 分布式训练的集群架构
- 分布式深度学习框架
- Megatron-LM详解
- DeepSpeed详解
- 实践
- 基于DeepSpeed的GLM预训练实战
- 基于DeepSpeed的LLaMA 分布式训练实践
7.3 MOE混合专家模型
- 基础概念
- Mixstral-8X7B-MOE-介绍
- 相关论文
第8章 LLM应用
8.1 推理规划
- 思维链提示(Chain-of-Thought Prompting)
- 论文
- 实战
- 由少至多提示(Least-to-Most Prompting)
8.2 综合应用框架
- LangChain框架核心模块
- 9个范例带你入门langchain: zhuanlan.zhihu.com/p/65
- 知识库问答实践
8.3 智能代理AI Agent
- 智能代理介绍
- LLM Powered Autonomous Agents: lilianweng.github.io/po
- 智能代理的应用实例
第9章 LLM加速
9.1 注意力优化
- FlashAttention系列
- PagedAttention
- 深入理解 BigBird 的块稀疏注意力: cnblogs.com/huggingfacehf.co/blog/big-bird
9.2 CPU推理加速
- Llama.c应用与代码详解
- Llama.cpp应用与代码详解
- ChatGLM.cpp应用与代码详解
9.3 推理优化框架
- vLLM推理框架实践
- TensorRT-LLM应用与代码详解
9.4 训练加速
第10章 强化学习
10.1 强化学习概述
10.2 强化学习环境
10.3 强化学习算法
- Q-learning算法
- DQN算法
- Policy Gradient算法
- Actor-Critic算法
第11章 PPO算法与RLHF理论实战
11.1 近端策略优化算法PPO
- PPO:Proximal Policy Optimization Algorithms 论文
- PPO介绍
- 广义优势估计
- PPO算法原理剖析
- PPO算法对比与评价
- 使用PPO算法进行RLHF的N步实现细节: cnblogs.com/huggingface
- PPO实战
- 基于PPO的正向情感倾向性 github.com/liucongg/Cha
11.2 基于人类反馈的强化学习RLHF
- InstructGPT模型分析
- InstructGPT:Training language models to follow instructions with human feedback
- 论文RLHF:Augmenting Reinforcement Learning with Human Feedback
- RLHF的流程
- RLHF内部剖析
- 详解大模型RLHF过程(配代码解读) zhuanlan.zhihu.com/p/62
- RLHF价值分析
- RLHF问题分析
- 数据收集与模型训练
- RLHF内部剖析
- RLHF实践
- 数据预处理模块
- 模型训练\生成\评估
- zhuanlan.zhihu.com/p/63
- MOSS-RLHF 实践
- 奖励模型训练
- PPO 微调
第12章 类ChatGPT实战
12.1 任务设计
12.2 数据准备
- 基于文档生成问题任务的类 github.com/liucongg/Cha
- SFT阶段
- RM阶段
- RL阶段
第13章 语言模型训练数据
13.1 数据来源
- 通用数据
- 专业数据
13.2 数据处理
- 低质过滤
- 冗余去除
- 隐私消除
13.3 数据影响分析
- 数据规模影响
- 数据质量影响
- 数据多样性影响
13.4 开源数据集合
- Pile
- ROOTS
- RefinedWeb
- SlimPajama
第14章 大语言模型评估
14.1 模型评估概述
14.2 大语言模型评估体系
- 知识与能力
- 伦理与安全
- 垂直领域评估
14.3 大语言模型评估方法
- 评估指标
- 评估方法
14.4 大语言模型评估实践
- 基础模型评估
- SFT/RL 模型评估
第15章 多模态大模型
- 多模态大模型调研
- 实战
第16章 大模型原生应用
16.1 落地调研
- 应用分析
- 提供大模型基础服务:ChatGPT、Gemini、文心一言和GLM4等,主要面向ToC/ToB提供chat能力(内容创作、代码开发等),通过会员收费或按Token计费
- ToB提供成套解决方案
- 集成现有接口二次开发,应用开发
- 开源模型增量预训练、全量微调、高效微调,行业内落地
模型最终还需落地解决实际问题,创造价值:优化现有问题、满足、甚至创造用户需求。
总的来说,就是规模化、自动化人的工作,替代人工,批量化、大规模生成或提供服务。
16.2 应用分析
一些思考
在企业里面做7B、13B量级的微调,主要就是在搞数据、样本,技术壁垒不高。预训练壁垒高,因为需要烧钱堆经验。
在这个日新月异的时代,如何紧跟行业主流发展,并具备不可替代性是个难题:
- 稀缺(不可替代性)
- 稳定(业务和表层技术天天变,但底层的理论变化不大)
- 需求持续(最好是类似衣食住行的刚需,否则技术 过时/热度褪去/不达预期,泡沫崩溃)
- 不能越老越吃香(放到绝大多数行业都适用:不能经验积累,持续长期创造价值)
- 壁垒(技术、业务、资本上有垄断)
尽量往底层和工程化上靠,学习相对不变的技术(理论上变化很难),迁移到稳定或有前景的行业,不断提升自己的学习效率:
- 计算机系统知识(训练、推理、开发,模型推理部署工程化)
- 数学(深入学习并实践)
如何学习AI大模型?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
标签:神仙,教程,训练,AGI,模型,微调,学习,LLM,com From: https://blog.csdn.net/2401_85343303/article/details/143244528