按个人偏好总结了学习目标与路径,后续将陆续整理相应学习资料,并输出学习笔记。
- 熟悉主流LLM(Llama, ChatGLM, Qwen)的技术架构和技术细节;有实际应用RAG、PEFT和SFT的项目经验
- 较强的NLP基础,熟悉BERT、GPT、Transformer、T5等预训练语言模型的实现,有对话系统相关研发经验
- 掌握TensorRT-LLM、vLLM等主流推理加速框架,熟悉模型量化、FlashAttention等推理加速技术方案,对分布式训练DeepSpeed框架有实战经验
- 熟悉Pytorch,具备扎实的深度学习和机器学习基础,基本掌握C/C++、Cuda和计算机系统原理
-
torchkeras https://github.com/lyhue1991/torchkeras/
-
llm-action https://github.com/liguodongiot/llm-action
- 大规模语言模型:从理论到实践 https://intro-llm.github.io/intro-llm
- ChatGPT原理与实战 https://github.com/liucongg/ChatGPTBook
-
面向开发者的LLM入门课程(吴恩达课程-中文版) https://github.com/datawhalechina/prompt-engineering-for-developers/blob/main/README.md
-
普林斯顿-COS 597G (Fall 2022): Understanding Large Language Models https://www.cs.princeton.edu/courses/archive/fall22/cos597G/
-
斯坦福-CS324 - Large Language Models https://stanford-cs324.github.io/winter2022/
- Huggingface Transformers官方课程 https://huggingface.co/learn/nlp-course/
- Transformers快速入门(快速调包BERT系列) https://transformers.run/
- 基于transformers的自然语言处理(NLP)入门: https://github.com/datawhalechina/learn-nlp-with-transformers/tree/main
- 力求快速应用 (先调包,再深入学习)
- 在实践中动手学习,力求搞懂每个关键点
- 【原理学习】+【代码实践】 + 【输出总结】
-
视频课程:
-
书籍
- 深度学习入门:基于Python的理论与实践:numpy实现MLP、卷积的训练 -《深度学习进阶:自然语言处理》:numpy实现Transformers、word2vec、RNN的训练
- Dive In Deep Learning(动手学深度学习) https://d2l.ai/
- 《神经网络与深度学习》https://nndl.github.io/
- 《机器学习方法》:李航的NLP相关的机器学习 + 深度学习知识(按需选学)
-
强化学习
- 强化学习教程-蘑菇书EasyRL(李宏毅强化学习+强化学习纲要)https://datawhalechina.github.io/easy-rl/
- 动手学强化学习 https://github.com/boyu-ai/Hands-on-RL/blob/main/README.md
应用:
Zero Shot / Few Shot 快速开箱即用
-
Prompt调优:
- 上下文学习In-Context Learning, ICL
- 思维链 Chain of Thought, COT
-
RAG (Retrieval Augmented Generation)
- 基于文档分块、向量索引和LLM生成,如Langchain文档问答
领域数据-指令微调LLM
-
PEFT (Parameter-Efficient Fine-Tuning):
- LORA (Low-Rank Adaption of LLMs)
- QLORA
- SLORA
- P-Tuning v2
参数高效的微调,适合用于纠正模型输出格式(PEFT上限不高,并向LLM输入的知识有限)
-
SFT (Supervised Fintuning):
- 全参数监督微调,使用prompt指令样本全量微调LLM(可以注入新的领域知识)
- 需要控制样本配比(领域数据 + 通用数据)
对齐
-
对齐人类偏好 (RLHF):
- RewardModel 奖励模型 (排序标注,判断答案价值)
- RL (PPO, 更新SFT模型)
专注基于强化学习的大语言模型对齐,有前景的方向是SuperhumanAI AutoALign
预训练
-
小模型预训练 (GPT2, TinyLlama)
不考虑训练参数规模较大的语言模型
训练推理优化:
- 模型量化
- 推理加速
- 蒸馏
- 推理框架(vLLM、TensorRT-LLM、Llama.cpp)
- Llama系列
- Mistral / Mixtral-8X7B-MOE :https://mistral.ai/news/mixtral-of-experts/
- Qwen / Baichuan/ ChatGLM
- 预训练、对齐
- 微调、应用
- 推理加速
- 图解Transformer:http://jalammar.github.io/illustrated-transformer/
- 论文:《Attention Is All Your Need》
详解Transformer原理:https://www.cnblogs.com/justLittleStar/p/17322172.html
Torch代码详解和训练实战:https://www.cnblogs.com/justLittleStar/p/17786071.html
论文
- 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图解:http://jalammar.github.io/illustrated-gpt2/
- GPT2图解(中文):https://www.cnblogs.com/zhongzhaoxie/p/13064404.html
- GPT3分析:How GPT3 Works - Visualizations and Animations
- GPT2模型源码阅读系列一GPT2LMHeadModel
GPT原理分析:https://www.cnblogs.com/justLittleStar/p/17322259.html
60行代码实现GPT,可加载GPT2 128M进行推理:https://www.cnblogs.com/justLittleStar/p/17925108.html
ToDo 参考:CPP实现Transformer
-
Transformers库GPT实现分析:ToDo
- 数据预处理模块
- GPT-2模型模块
- 模型训练和推理模块
双数加法:https://blog.csdn.net/wxc971231/article/details/132000182
- 代码分析:https://zhuanlan.zhihu.com/p/601044938
- 训练实战:莎士比亚数据训练
原理
- BERT可视化:A Visual Guide to Using BERT for the First Time
- BERT原理:https://www.cnblogs.com/justLittleStar/p/17322240.html
实战
- BERT结构和预训练代码实现:ToDo
- BERT预训练实战:动手学深度学习-BERT预训练 Colab
- 基于HuggingFace的BERT预训练
- BERT微调:文本分类、BERT-CRF NER、BERT+指针网络(UIE)信息抽取、文本摘要和相似性检索
- RoBERTa
- ALBERT / DistillBERT
- SimBERT
- 数据预处理
- UniLM模型
- 模型训练与推理
https://github.com/liucongg/ChatGPTBook/tree/main/PromptProj
- 数据预处理
- 模型结构与训练模块
Mistral 7B Tutorial: https://www.datacamp.com/tutorial/mistral-7b-tutorial
Llama1源码深入解析: https://zhuanlan.zhihu.com/p/648365207
- Llama2的优化
- Llama2源码解析
llama 2详解: https://zhuanlan.zhihu.com/p/649756898
- Llama2-6B微调
ChatGLM2微调保姆级教程: https://zhuanlan.zhihu.com/p/643856076
微调入门 https://lightning.ai/pages/community/article/understanding-llama-adapters/
LORA和QLoRA微调的调参心得Finetuning LLMs with LoRA and QLoRA: Insights from Hundreds of Experiments https://lightning.ai/pages/community/lora-insights/
- ChatGLM-6B: https://zhuanlan.zhihu.com/p/625468667
- ChatGLM2微调保姆级教程:https://zhuanlan.zhihu.com/p/643856076
- Qwen1.5 7B 微调: https://github.com/datawhalechina/self-llm/blob/master/Qwen1.5/04-Qwen1.5-7B-chat%20Lora%20%E5%BE%AE%E8%B0%83.md
- Qwen7b微调保姆级教程: https://zhuanlan.zhihu.com/p/655935378
用bitsandbytes、4比特量化和QLoRA打造亲民的LLM:https://www.cnblogs.com/huggingface/p/17816374.html
动手学大模型应用开发: https://datawhalechina.github.io/llm-universe/
Kaggle RAG实战: https://www.kaggle.com/code/gpreda/rag-using-llama-2-langchain-and-chromadb/notebook
9个范例带你入门langchain: https://zhuanlan.zhihu.com/p/654052645
LLM Powered Autonomous Agents: https://lilianweng.github.io/posts/2023-06-23-agent/
深入理解 BigBird 的块稀疏注意力: https://www.cnblogs.com/huggingface/p/17852870.html https://hf.co/blog/big-bird
PPO:Proximal Policy Optimization Algorithms.
使用PPO算法进行RLHF的N步实现细节: https://www.cnblogs.com/huggingface/p/17836295.html
RLHF:Augmenting Reinforcement Learning with Human Feedback
RLHF in 2024 with DPO & Hugging Face https://www.philschmid.de/dpo-align-llms-in-2024-with-trl
RLHF实践 https://zhuanlan.zhihu.com/p/635569455
详解大模型RLHF过程(配代码解读) https://zhuanlan.zhihu.com/p/624589622
InstructGPT:Training language models to follow instructions with human feedback
https://github.com/liucongg/ChatGPTBook/tree/main/PPOProj
https://github.com/liucongg/ChatGPTBook/tree/main/RLHFProj
-
提供接口服务: ChatGPT、Gemini、文心一言和GLM4等,主要面向ToC/ToB提供chat能力(内容创作、代码开发等),通过会员收费或按Token计费。
-
ToB提供成套解决方案
-
集成现有接口二次开发,应用开发
-
开源模型增量预训练、全量微调、高效微调,行业内落地
模型最终还需落地解决实际问题,创造价值:优化现有问题、满足、甚至创造用户需求。
总的来说,就是规模化、自动化人的工作,替代人工,批量化、大规模生成或提供服务。
在企业里面做7B、13B量级的微调,主要就是在搞数据、样本,技术壁垒不高。预训练壁垒高,因为需要烧钱堆经验。
在这个日新月异的时代,如何紧跟行业主流发展,并具备不可替代性是个难题:
- 稀缺(不可替代性)
- 稳定(业务和表层技术天天变,但底层的理论变化不大)
- 需求持续(最好是类似衣食住行的刚需,否则技术 过时/热度褪去/不达预期,泡沫崩溃)
- 不能越老越吃香(放到绝大多数行业都适用:不能经验积累,持续长期创造价值)
- 壁垒(技术、业务、资本上有垄断)
尽量往底层和工程化上靠,学习相对不变的技术(理论上变化很难),迁移到稳定或有前景的行业:
- 计算机系统知识(训练、推理、开发,模型推理部署工程化)
- 数学(深入学习并实践)
- 经济学 / 心理学