Github项目上有一个大语言模型学习路线笔记,它全面涵盖了大语言模型的所需的基础知识学习,LLM前沿算法和架构,以及如何将大语言模型进行工程化实践。这份资料是初学者或有一定基础的开发/算法人员入门活深入大型语言模型学习的优秀参考。这份资料重点介绍了我们应该掌握哪些核心知识,并推荐了一系列优质的学习视频和博客,旨在帮助大家系统性地掌握大型语言模型的相关技术。 大语言模型(Large Language Model,LLM)入门学习路线包括了三个方面: 大语言模型基础: 这涵盖了学习LLM所需的基本知识,包括数学、Python编程语言以及神经网络的原理。 大语言模型前沿算法和框架: 在这一部分,重点是利用最新的技术构建LLM。这包括研究和应用先进的算法和模型架构,以提高模型的性能和效率。 大语言模型工程化: 这一部分专注于创建基于LLM的应用程序,并将这些应用部署到实际环境中。这包括学习如何将LLM集成到各种平台和系统中,以及如何确保这些系统的稳定性和可扩展性。 1. 大语言模型基础包括了数学基础知识、python基础、神经网络和NLP自然语言四个方面的学习。 1.1 机器学习的数学线性代数:理解算法的关键。主要概念包括向量、矩阵、行列式、特征值和特征向量、向量空间和线性变换。 微积分:许多机器学习算法涉及连续函数的优化,这需要理解导数、积分、极限和级数。多变量微积分和梯度的概念也很重要。 概率与统计:对于理解模型如何从数据中学习也同样重要。主要概念包括概率论、随机变量、概率分布、期望、方差、协方差、相关性、假设检验、置信区间、最大似然估计和贝叶斯推断。 📚 资源:(可能需要科学上网,国内可访问版本在这里也给出一些链接) 1.2 机器学习的PythonPython一直是机器学习和深度学习的首选语言,这得益于其可读性、一致性和鲁棒的数据科学库生态系统。 Python基础:理解基本语法、数据类型、错误处理和面向对象编程。 数据科学库:包括熟悉NumPy进行数值操作,Pandas进行数据操作和分析,Matplotlib和Seaborn进行数据可视化。 数据预处理:涉及特征缩放和规范化、处理缺失数据、异常值检测、分类数据编码以及将数据分割成训练、验证和测试集。 机器学习库:熟练掌握Scikit-learn,这是一个提供了许多监督和非监督学习算法的库。重点需要了解如何实现线性回归、逻辑回归、决策树、随机森林、最近邻(K-NN)和K均值聚类等算法。 📚 资源: 1.3. 神经网络基础知识:这包括理解神经网络的结构,如层、权重、偏置和激活函数(sigmoid、tanh、ReLU等)。 训练和优化:熟悉反向传播和不同类型的损失函数,如均方误差(MSE)和交叉熵。理解各种优化算法,如梯度下降、随机梯度下降、RMSprop和Adam。 过拟合:理解过拟合的概念(模型在训练数据上表现良好但在未见数据上表现差)并学习各种正则化技术(dropout、L1/L2正则化、早停、数据增强)以防止它。 实现多层感知器(MLP):使用PyTorch构建一个MLP,也称为全连接网络。 📚 资源: 1.4. 自然语言处理(NLP)NLP在许多应用中扮演着关键角色,如翻译、情感分析、聊天机器人等。 文本预处理:学习各种文本预处理步骤,如分词(将文本分割成单词或句子)、词干提取(将单词还原为其根形式)、词形还原(类似于词干提取但考虑上下文)、停用词去除等。 特征提取技术:熟悉将文本数据转换为机器学习算法能理解的格式的技术。关键方法包括词袋模型(BoW)、词频-逆文档频率(TF-IDF)和n-gram。 词嵌入:词嵌入是一种单词表示,允许具有相似含义的单词具有相似的表示。关键方法包括Word2Vec、GloVe和FastText。 循环神经网络(RNNs):理解RNNs的工作原理,这是一种为序列数据设计的神经网络类型。探索LSTMs和GRUs,两种RNN变体,它们能够学习长期依赖关系。 📚 资源: 2. 大语言模型前沿算法和框架 2.1. 大语言模型(LLM)架构需要清楚地了解模型的输入(token)和输出(logits),而原始的注意力机制( attention mechanism)是另一个必须掌握的关键部分,因为它是很多改进算法的基础,具体来说需要包括以下技术。 高层视角(High-level view:):编码器encoder-解码器decoder的Transformer架构,特别是仅有解码器的GPT架构,几乎所有流行LLM都应用了该架构。 令牌化(Tokenization):如何将原始文本数据转换成模型能理解的格式,这包括将文本拆分成Token(通常是单词或子词)。 注意力机制(Attention mechanisms):掌握注意力机制的理论,包括自注意力和缩放点积注意力,这使得模型能够在产生输出时关注输入的不同部分。 文本生成(Text generation):模型生成输出序列的多种方式。常见方法包括了贪婪解码(greedy decoding)、束搜索(beam search)、top-k采样(top-k sampling,)和核心采样(nucleus sampling)。 📚 资源: 2.2. 构建指令数据集虽然从维基百科和其他网站可以轻松地找到原始数据,但何如将数据转换为问题和答案的配对配对却很难。而数据集的质量将直接影响模型的质量,它们是大模型微调(finetune)过程中最重要的组成部分。 📚 参考资料: 2.3. 模型预训练是指从大量的无监督数据集中进行模型预训练,模型预训练是一个非常漫长和消费资源的过程,因此它不是本学习路线教程的重点。但是我们可以了解它,以方便后续的学习。它主要包括以下几个部分: 📚 参考资料: 2.4. 监督式微调(Supervised Fine-Tuning)监督式微调就是让我们在已经标注的数据集上对已经预训练好的模型进行再次训练,以符合任务需求,它是一个非常重要的过程。 📚 参考资料: 2.5. 通过人类反馈进行强化学习(Reinforcement Learning from Human Feedback)在监督式微调之后,RLHF是一个用来将LLM产生的答案达到和人类回答差不多的重要步骤。其思想是从人工反馈中学习偏好。它比SFT更复杂,但是该步骤通常被视为可选的。 📚 参考资料: 2.6. 评估(Evaluation)评估LLM是一个被低估的部分,它既耗时但是又相对可靠。你的下游任务应该决定你想评估什么,但始终记住Goodhart法则:“当一个指标成为目标时,它就不再是一个好的指标。” 📚 参考资料: 2.7. 量化量化是将模型的权重(和激活)使用更低精度进行转换的过程。例如,使用16位存储的权重可以转换为4位表示。这项技术已经越来越重要,因为它可以减少与LLM相关的计算和内存成本,以使其在计算资源更低的设备上运行。 📚 参考资料: 2.8. 新趋势📚 参考资料: 3. LLM工程化在这阶段集中于如何构建和部署基于大语言模型(LLM)的应用程序,以便在生产环境中使用。它分为几个部分,每部分都聚集于LLM应用开发的不同方面: 3.1 运行大型语言模型 (LLMs)运行LLMs可能会因为硬件要求而变得困难。而我们可以通过Api的方式(如GPT-4)来简单的使用大模型。当然也可以进行本地运行。无论哪种方式,都需要额外的提示和引导技巧(也叫做提示工程, prompting engineer)来提升模型的输出质量。 📚 参考资料: 3.2. 构建向量存储(Building a Vector Storage)有时候我们想要在特定知识库下让LLMs搜索答案,而检索增强生成(RAG)结合了信息检索(IR)方法的能力,提高文本生成任务的质量和相关性。这种方法在处理需要广泛背景知识或特定信息的任务时特别有用,例如问答、文章撰写、摘要生成等。构建向量存储是构建检索增强生成(RAG)管道的第一步。它涉及文档加载,拆分,生成向量表示(嵌入),并存储等步骤: 📚 参考资料: 3.3. 检索增强生成 (Retrieval Augmented Generation, RAG)RAG技术可以使LLMs从数据库检索上下文文档以提高其答案的准确性。RAG是一种流行的增强模型知识的方式,无需任何微调。 📚 参考资料: 3.4. 高级RAG现实生活中的应用可能需要复杂的管道,包括SQL或图数据库,以及自动选择相关工具和API。这些高级技术可以改进基线解决方案并提供额外功能。 📚 参考资料: 3.5. 推理优化 ( Inference optimization)文本生成是一个成本高昂的过程,需要昂贵的硬件资源。除了量化,还提出了各种技术来最大化吞吐量并降低推理成本。 📚 参考资料: 3.6. 部署LLMs部署LLMs是一项工程壮举,可能需要多个GPU集群。 📚 参考资料: 7. 保护LLMs除了与软件相关的传统安全问题外,由于LLMs的训练和提示方式,它们还有独特的弱点。 📚 参考资料: 我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。 我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。 第一阶段: 从大模型系统设计入手,讲解大模型的主要方法; 第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用; 第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统; 第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统; 第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型; 第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例; 第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。 👉学会后的收获:👈 • 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求; • 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握; • 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。 1.AI大模型学习路线图 👉获取方式: |